Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,15 @@ Always keep docs in sync with the code. Do not defer documentation to a later st

### Entry Points

| Export | Purpose |
| ------------------------ | -------------------------------------------------------------------------------------- |
| `assembly-kit` | `createAssemblyKit()`, error classes, token utilities, `paginate()` |
| `assembly-kit/schemas` | All Zod schemas and inferred types (no client dependency) |
| `assembly-kit/client` | `createAssemblyKit`, `AssemblyKit`, `AssemblyKitOptions` |
| `assembly-kit/errors` | All error classes |
| `assembly-kit/token` | `AssemblyToken`, `createToken` |
| `assembly-kit/logger` | `createLogger`, `logger` (requires pino peer dep) |
| `assembly-kit/bridge-ui` | React hooks wrapping app-bridge (`usePrimaryCta`, `useSecondaryCta`, `useActionsMenu`) |
| Export | Purpose |
| ------------------------ | --------------------------------------------------------------------------------------------- |
| `assembly-kit` | `createAssemblyKit()`, error classes, token utilities, `paginate()` |
| `assembly-kit/schemas` | All Zod schemas and inferred types (no client dependency) |
| `assembly-kit/client` | `createAssemblyKit`, `AssemblyKit`, `AssemblyKitOptions` |
| `assembly-kit/errors` | All error classes |
| `assembly-kit/token` | `AssemblyToken`, `createToken` |
| `assembly-kit/logger` | `createLogger`, `createPrettyLogger`, `logger` (pino peer dep; pretty also needs pino-pretty) |
| `assembly-kit/bridge-ui` | React hooks wrapping app-bridge (`usePrimaryCta`, `useSecondaryCta`, `useActionsMenu`) |

### Source Layer Dependency Order

Expand Down
18 changes: 9 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -194,12 +194,12 @@ export const getAssemblyKit = cache((apiKey: string, workspaceId: string) =>

## Entry Points

| Import path | Key exports |
| ------------------------ | --------------------------------------------------------------------------------------------------------- |
| `assembly-kit` | `createAssemblyKit`, `AssemblyKit`, errors, schemas, token utils |
| `assembly-kit/schemas` | All Zod schemas and inferred types |
| `assembly-kit/client` | `createAssemblyKit`, `AssemblyKit`, `AssemblyKitOptions` |
| `assembly-kit/errors` | All error classes |
| `assembly-kit/token` | `AssemblyToken`, `createToken` |
| `assembly-kit/logger` | `createLogger`, `logger` (requires pino peer dep) |
| `assembly-kit/bridge-ui` | `usePrimaryCta`, `useSecondaryCta`, `useActionsMenu` (requires react + @assembly-js/app-bridge peer deps) |
| Import path | Key exports |
| ------------------------ | -------------------------------------------------------------------------------------------------------------------- |
| `assembly-kit` | `createAssemblyKit`, `AssemblyKit`, errors, schemas, token utils |
| `assembly-kit/schemas` | All Zod schemas and inferred types |
| `assembly-kit/client` | `createAssemblyKit`, `AssemblyKit`, `AssemblyKitOptions` |
| `assembly-kit/errors` | All error classes |
| `assembly-kit/token` | `AssemblyToken`, `createToken` |
| `assembly-kit/logger` | `createLogger`, `createPrettyLogger`, `logger` (requires pino peer dep; `createPrettyLogger` also needs pino-pretty) |
| `assembly-kit/bridge-ui` | `usePrimaryCta`, `useSecondaryCta`, `useActionsMenu` (requires react + @assembly-js/app-bridge peer deps) |
12 changes: 10 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,15 @@ import { logger } from "assembly-kit/logger";
logger.info("starting up");
```

The logger emits plain JSON in all environments (no worker-thread transport, so it works in serverless runtimes like Vercel). Pipe output through the `pino-pretty` CLI locally if you want human-readable logs. The default log level respects the `LOG_LEVEL` environment variable.
The logger emits plain JSON in all environments (no worker-thread transport, so it works in serverless runtimes like Vercel). `Error` objects are serialized with Pino's `err` serializer so message and stack survive — no more `{}` in Vercel logs. The default log level respects the `LOG_LEVEL` environment variable.

For human-readable local output, use `createPrettyLogger`. It runs `pino-pretty` as a **synchronous stream** (no worker thread), so it is serverless-safe, but gate it to local runs to keep production plain JSON. Install `pino-pretty` (optional peer dependency) to use it:

```typescript
import { createLogger, createPrettyLogger } from "assembly-kit/logger";

const log = process.env.NODE_ENV === "development" ? await createPrettyLogger() : createLogger();
```

### App Bridge (React Hooks)

Expand Down Expand Up @@ -498,7 +506,7 @@ useActionsMenu([{ label: "Archive", onClick: () => archive() }], hasItems);
| `assembly-kit/errors` | All error classes |
| `assembly-kit/schemas` | All Zod schemas and inferred types (no client dependency) |
| `assembly-kit/token` | `AssemblyToken`, `createToken`, `ClientTokenPayload`, `InternalUserTokenPayload` |
| `assembly-kit/logger` | `createLogger`, `logger` |
| `assembly-kit/logger` | `createLogger`, `createPrettyLogger`, `logger` |
| `assembly-kit/bridge-ui` | `usePrimaryCta`, `useSecondaryCta`, `useActionsMenu` |

## Development
Expand Down
31 changes: 31 additions & 0 deletions bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@
"@typescript/native-preview": "7.0.0-dev.20260505.1",
"bumpp": "^11.0.1",
"pino": "^10.3.1",
"pino-pretty": "^13.1.2",
"react": "^19.2.5",
"typescript": "^6.0.3",
"vite-plus": "^0.1.20",
Expand All @@ -57,6 +58,7 @@
"peerDependencies": {
"@assembly-js/app-bridge": "^1.1.1",
"pino": ">=9",
"pino-pretty": ">=11",
"react": ">=18",
"typescript": ">=5",
"zod": ">=4"
Expand All @@ -68,6 +70,9 @@
"pino": {
"optional": true
},
"pino-pretty": {
"optional": true
},
"react": {
"optional": true
},
Expand Down
Loading
Loading