klaus's @anthropic-ai/claude-agent-sdk is a large per-platform native binary that cannot bundle and cannot ship as a single prebuilt tree. It is declared consumeExternals (pi-ext), so the published package ships no baked node_modules; Pi's git-install npm install resolves the correct per-platform binary. This deliberately breaks the architecture's "runs without ancestor node_modules / self-contained" rule for klaus only.
Version is derived from the installed SDK (src/sdk-version.ts), not pinned; binary checksums were removed (npm lockfile integrity is sufficient).
PENDING VERIFICATION on win32 and android/Termux (built + tested on linux-x64 only). Android now only locates the installed claude-agent-sdk-linux-arm64 binary and wraps it in a grun glibc shim (bionic has neither glibc nor musl); the on-device npm pack fallback was removed. Note: npm skips the SDK's os: linux packages on an android platform, so the arm64 binary may need manual install there; if android breaks, restore the pack path from git history.
Temporary dependency deviations (revert to */latest when resolved)
typescript pinned to next (7.1 nightly): stable 7.0.2 panics on isolatedDeclarations (native declaration-emit bug). Revert to * once TS 7.1 reaches the latest tag.
Dropped the typescript programmatic compiler API (not shipped in native TS7); structural checks now parse via oxc-parser (scripts/lib/esast.ts). Reconsider if TS7 publishes a JS API.
Skills
fix crome-cdp
Extensions
nushell instead bash: models might be ready
research claudes/codex "run in bg" tools
# TODO
## klaus: self-contained-package exception (approved)
- klaus's `@anthropic-ai/claude-agent-sdk` is a large per-platform native binary that cannot bundle and cannot ship as a single prebuilt tree. It is declared `consumeExternals` (pi-ext), so the published package ships no baked `node_modules`; Pi's git-install `npm install` resolves the correct per-platform binary. This deliberately breaks the architecture's "runs without ancestor node_modules / self-contained" rule for klaus only.
- Version is derived from the installed SDK (`src/sdk-version.ts`), not pinned; binary checksums were removed (npm lockfile integrity is sufficient).
- PENDING VERIFICATION on win32 and android/Termux (built + tested on linux-x64 only). Android now only locates the installed `claude-agent-sdk-linux-arm64` binary and wraps it in a `grun` glibc shim (bionic has neither glibc nor musl); the on-device `npm pack` fallback was removed. Note: npm skips the SDK's `os: linux` packages on an `android` platform, so the arm64 binary may need manual install there; if android breaks, restore the pack path from git history.
## Temporary dependency deviations (revert to `*`/latest when resolved)
- `typescript` pinned to `next` (7.1 nightly): stable `7.0.2` panics on `isolatedDeclarations` (native declaration-emit bug). Revert to `*` once TS 7.1 reaches the `latest` tag.
- Dropped the `typescript` programmatic compiler API (not shipped in native TS7); structural checks now parse via `oxc-parser` (`scripts/lib/esast.ts`). Reconsider if TS7 publishes a JS API.
## Skills
- fix crome-cdp
## Extensions
- nushell instead bash: models might be ready
- research claudes/codex "run in bg" tools