From 8a07a32eb4580b3f9b05386f75907e123664cd80 Mon Sep 17 00:00:00 2001 From: Alex Lavaee Date: Fri, 9 Oct 2026 10:45:47 -0700 Subject: [PATCH] Upgrade the Atomic harness to 0.9.31 The harness catalog moves @bastani/atomic from 0.9.29 to 0.9.31, and bun.lock moves @bastani/atomic, @bastani/atomic-natives (with all eight platform packages) and @bastani/pi-ai to 0.9.31. Atomic's @earendil-works packages stay at 1.1.0. Bun drops the nested @modelcontextprotocol/sdk 1.30.0 because Atomic now uses the hoisted 1.32.1. docs/self-hosting.md now says 0.9.31. The five builtin packages are unchanged, so BUILTINS_OFF still turns off each one for the isolated Planner. 0.9.30 is skipped: its linux-x64-gnu native package never reached npm. Assistant-workflow: inline Assistant-model: Claude Opus 5.5 (fast) Assistant-verification: bun test passed: 4350 pass, 4 skips, 0 fail, with GIT_CONFIG_GLOBAL=/dev/null Assistant-verification: bun run types passed: all workspace checks Assistant-verification: bun run ci passed: dprint, oxlint, tokens, design contract, design record, Impeccable (no new findings) Assistant-verification: source check passed: Atomic 0.9.31 dist/builtin lists intercom, mcp, subagents, web-access, workflows User-preference: Keep pdd-kit and Chopin on the same Atomic release, with transitive deps upgraded together Co-authored-by: Alex Lavaee --- bun.lock | 26 ++++++++++++-------------- docs/self-hosting.md | 2 +- package.json | 2 +- 3 files changed, 14 insertions(+), 16 deletions(-) diff --git a/bun.lock b/bun.lock index 6178b3de1..2010677ed 100644 --- a/bun.lock +++ b/bun.lock @@ -300,7 +300,7 @@ "@ai-sdk/harness-pi": "1.0.148", "@ai-sdk/mcp": "2.0.72", "@ai-sdk/sandbox-just-bash": "1.0.146", - "@bastani/atomic": "0.9.29", + "@bastani/atomic": "0.9.31", "@earendil-works/pi-coding-agent": "0.85.1", "ai": "7.0.135", "typebox": "1.3.7", @@ -454,27 +454,27 @@ "@base-ui/utils": ["@base-ui/utils@0.3.2", "", { "dependencies": { "@babel/runtime": "^7.29.2", "@floating-ui/utils": "^0.2.12", "reselect": "^5.2.0", "use-sync-external-store": "^1.6.0" }, "peerDependencies": { "@types/react": "^17 || ^18 || ^19", "react": "^17 || ^18 || ^19", "react-dom": "^17 || ^18 || ^19" }, "optionalPeers": ["@types/react"] }, "sha512-oWy1aq/I2GmYjpl4PhEAhzflF8VPGKgZeq0xAWTbfD5KBWyxcN0ZP2+WHSUm/5Z6lVMBDLReLcoXwSYoRc/zNQ=="], - "@bastani/atomic": ["@bastani/atomic@0.9.29", "", { "dependencies": { "@bastani/atomic-natives": "0.9.29", "@bastani/pi-ai": "0.9.29", "@dbos-inc/dbos-sdk": "4.25.14", "@earendil-works/pi-agent-core": "1.1.0", "@earendil-works/pi-client": "1.1.0", "@earendil-works/pi-codemode": "1.1.0", "@earendil-works/pi-protocol": "1.1.0", "@earendil-works/pi-tui": "1.1.0", "@modelcontextprotocol/ext-apps": "^1.7.5", "@modelcontextprotocol/sdk": "1.32.1", "@mozilla/readability": "^0.6.0", "@silvia-odwyer/photon-node": "0.3.4", "@typesafe-ai/sdk": "0.6.0", "brace-expansion": "5.0.12", "chalk": "6.0.0", "cross-spawn": "7.0.6", "diff": "8.0.4", "embedded-postgres": "18.4.0-beta.17", "glob": "13.0.6", "grok-mermaid": "0.2.3", "highlight.js": "10.7.3", "hosted-git-info": "9.0.3", "ignore": "7.0.8", "jiti": "2.7.0", "linkedom": "^0.18.13", "lru-cache": "11.5.3", "markit-ai": "0.5.3", "minimatch": "10.2.6", "open": "^11.0.1", "p-limit": "^7.3.2", "pg": "8.23.0", "proper-lockfile": "4.1.2", "quickjs-wasi": "3.6.2", "semver": "7.8.5", "turndown": "^7.2.0", "typebox": "1.3.27", "undici": "8.10.2", "unpdf": "1.8.1", "yaml": "2.9.0", "zod": "^3.25.0 || ^4.0.0" }, "optionalDependencies": { "@mariozechner/clipboard": "0.3.9" }, "bin": { "atomic": "dist/cli.js" } }, "sha512-OPkX58blC9cFmzd/HF/jUMFry0Ba1us+FEDrUv9/ck6H/mctMn4GtDR1hYOguzXSHj0rcyX547S+gUClHNwieQ=="], + "@bastani/atomic": ["@bastani/atomic@0.9.31", "", { "dependencies": { "@bastani/atomic-natives": "0.9.31", "@bastani/pi-ai": "0.9.31", "@dbos-inc/dbos-sdk": "4.25.14", "@earendil-works/pi-agent-core": "1.1.0", "@earendil-works/pi-client": "1.1.0", "@earendil-works/pi-codemode": "1.1.0", "@earendil-works/pi-protocol": "1.1.0", "@earendil-works/pi-tui": "1.1.0", "@modelcontextprotocol/ext-apps": "^1.7.5", "@modelcontextprotocol/sdk": "1.32.1", "@mozilla/readability": "^0.6.0", "@silvia-odwyer/photon-node": "0.3.4", "@typesafe-ai/sdk": "0.6.0", "brace-expansion": "5.0.12", "chalk": "6.0.0", "cross-spawn": "7.0.6", "diff": "8.0.4", "embedded-postgres": "18.4.0-beta.17", "glob": "13.0.6", "grok-mermaid": "0.2.3", "highlight.js": "10.7.3", "hosted-git-info": "9.0.3", "ignore": "7.0.8", "jiti": "2.7.0", "linkedom": "^0.18.13", "lru-cache": "11.5.3", "markit-ai": "0.5.3", "minimatch": "10.2.6", "open": "^11.0.1", "p-limit": "^7.3.2", "pg": "8.23.0", "proper-lockfile": "4.1.2", "quickjs-wasi": "3.6.2", "semver": "7.8.5", "turndown": "^7.2.0", "typebox": "1.3.27", "undici": "8.10.2", "unpdf": "1.8.1", "yaml": "2.9.0", "zod": "^3.25.0 || ^4.0.0" }, "optionalDependencies": { "@mariozechner/clipboard": "0.3.9" }, "bin": { "atomic": "dist/cli.js" } }, "sha512-iEHe8KXq0G1Xk6n1b52MO8K2Iud4RNt7iL570QuLV1a4YcK+sJQV4ocDzfaq89KOaf0WNSviq0K+afrrGnNOFQ=="], - "@bastani/atomic-natives": ["@bastani/atomic-natives@0.9.29", "", { "optionalDependencies": { "@bastani/atomic-natives-darwin-arm64": "0.9.29", "@bastani/atomic-natives-darwin-x64": "0.9.29", "@bastani/atomic-natives-linux-arm64-gnu": "0.9.29", "@bastani/atomic-natives-linux-arm64-musl": "0.9.29", "@bastani/atomic-natives-linux-x64-gnu": "0.9.29", "@bastani/atomic-natives-linux-x64-musl": "0.9.29", "@bastani/atomic-natives-win32-arm64-msvc": "0.9.29", "@bastani/atomic-natives-win32-x64-msvc": "0.9.29" } }, "sha512-OA92ViK+gq28/EDPfBPOU0oOgYnslOfXfdiFqGpenitE5eWi8no7n7bv9M4mUFhIOtjzV+kfigDzgfeirWhq1A=="], + "@bastani/atomic-natives": ["@bastani/atomic-natives@0.9.31", "", { "optionalDependencies": { "@bastani/atomic-natives-darwin-arm64": "0.9.31", "@bastani/atomic-natives-darwin-x64": "0.9.31", "@bastani/atomic-natives-linux-arm64-gnu": "0.9.31", "@bastani/atomic-natives-linux-arm64-musl": "0.9.31", "@bastani/atomic-natives-linux-x64-gnu": "0.9.31", "@bastani/atomic-natives-linux-x64-musl": "0.9.31", "@bastani/atomic-natives-win32-arm64-msvc": "0.9.31", "@bastani/atomic-natives-win32-x64-msvc": "0.9.31" } }, "sha512-N2BFAm6K0AEriXQ5rtdgpncNhn9qEQ/rwRK1Ck0QHtrooMgZStxnyUiEDlJsvTu/pNwPse1t3LMEHPitxmQsFw=="], - "@bastani/atomic-natives-darwin-arm64": ["@bastani/atomic-natives-darwin-arm64@0.9.29", "", { "os": "darwin", "cpu": "arm64" }, "sha512-juvxIJf9mzY3M4ONNF6z4L+7jATD914iieXWF2lmrQ/CD5RzhmRgzUu2d0lV+AI1wdFssQCZUgPV4oOblF8Mlw=="], + "@bastani/atomic-natives-darwin-arm64": ["@bastani/atomic-natives-darwin-arm64@0.9.31", "", { "os": "darwin", "cpu": "arm64" }, "sha512-lNrS+99g580zsZaQY/ewM9ZS+/KWSTd7qI0SToVtNF4ujsSoEyShN0MyiiJmm6dNabTfPrYNEMMFBcRWLZHhlg=="], - "@bastani/atomic-natives-darwin-x64": ["@bastani/atomic-natives-darwin-x64@0.9.29", "", { "os": "darwin", "cpu": "x64" }, "sha512-xfJcuzfn+UnwOCoQ+o7TlynZBuiJu97kW/WhDmIDhYTdHhCxTPT3yhhtGijfmugKOpPAOHSALPvffbADkgN9Aw=="], + "@bastani/atomic-natives-darwin-x64": ["@bastani/atomic-natives-darwin-x64@0.9.31", "", { "os": "darwin", "cpu": "x64" }, "sha512-MrCWQTyuF6OYFVZZ/fK/xoHe04PmWjzcie/3GxdfejFlqwQZ16TsademRzuV9OVK53C4HUyVKSgjBLl5kdMNgA=="], - "@bastani/atomic-natives-linux-arm64-gnu": ["@bastani/atomic-natives-linux-arm64-gnu@0.9.29", "", { "os": "linux", "cpu": "arm64" }, "sha512-0bWhYK+z/F8aPllXzdIV4mRHSUHHwjumYXl4oFnEwPJScaeuW6GM425SgeW77xf+cAQCOBg/0j3uxMc9bKA2XQ=="], + "@bastani/atomic-natives-linux-arm64-gnu": ["@bastani/atomic-natives-linux-arm64-gnu@0.9.31", "", { "os": "linux", "cpu": "arm64" }, "sha512-1si6hq3QcDLMxWZMlg3lkQ+X/Orhc75tlapNHFhhVuxcrZs4xLZiF56IVGqGYntyHXy34RWUfhjqRzzpVImSEg=="], - "@bastani/atomic-natives-linux-arm64-musl": ["@bastani/atomic-natives-linux-arm64-musl@0.9.29", "", { "os": "linux", "cpu": "arm64" }, "sha512-TPOxrLBtr7fgTTydDuJRETf3vKPrZvw3R+5l70CJoskvSkdG5pBV3C+BxRMKlDbssCUf69OYeug2xUqPEULXrg=="], + "@bastani/atomic-natives-linux-arm64-musl": ["@bastani/atomic-natives-linux-arm64-musl@0.9.31", "", { "os": "linux", "cpu": "arm64" }, "sha512-oPl7okgeTUhPXE0TF60/YDJr5iEQnNQv/7cDkXLlOgyExkl1tnXYzN23vl/mAkqmVCoVcZfdJxH9lLNzOHasiA=="], - "@bastani/atomic-natives-linux-x64-gnu": ["@bastani/atomic-natives-linux-x64-gnu@0.9.29", "", { "os": "linux", "cpu": "x64" }, "sha512-MpNy5FSoIubgoUk2y3MzGKCcV38qwPRT2jaGges40QB9/kgrJ+Icbc2NSio8J0TWWUaKpZfzva3bdJSnHtWrCA=="], + "@bastani/atomic-natives-linux-x64-gnu": ["@bastani/atomic-natives-linux-x64-gnu@0.9.31", "", { "os": "linux", "cpu": "x64" }, "sha512-SXHm4OleVePHq8GC7asDXkElfzU4HIiqPmJRWdxlhHVTrO1r8QJjjKKOXKXfUfrQlB8/6rTCRMw3dQz49bm4Rg=="], - "@bastani/atomic-natives-linux-x64-musl": ["@bastani/atomic-natives-linux-x64-musl@0.9.29", "", { "os": "linux", "cpu": "x64" }, "sha512-GnptA3peKlmQdZcYFTVIvZB6Bf3JfYH8y58TG3/SiXQ0lDsxdUfd5SwLBsQbNtIaDwGw8mI8ORsSY9PZ7NJKLw=="], + "@bastani/atomic-natives-linux-x64-musl": ["@bastani/atomic-natives-linux-x64-musl@0.9.31", "", { "os": "linux", "cpu": "x64" }, "sha512-GYWtFdcCE20mr6mOrc1Kia/8z0KbGKnXrLaoWEiSA5YdkRXMufGVzNj1Cd+1NyuFrDpGlv0mgA8Ry5V4ae06QQ=="], - "@bastani/atomic-natives-win32-arm64-msvc": ["@bastani/atomic-natives-win32-arm64-msvc@0.9.29", "", { "os": "win32", "cpu": "arm64" }, "sha512-Z1A07HxTlKK8k6qgK6nK1maArkT4GqPOQI2jX0LQz0Q6jywlhHj27u9j1UnMYb4QHSPoMXOH2UDzYIopIlUJrw=="], + "@bastani/atomic-natives-win32-arm64-msvc": ["@bastani/atomic-natives-win32-arm64-msvc@0.9.31", "", { "os": "win32", "cpu": "arm64" }, "sha512-2gEeRfcPWba5wK1bmP6kTfLFJzwZXNq4aJypLyz1wd2K8QY6RPSG823cZthkc9Ya6VfZmVkgtWbBV3puHvUIMw=="], - "@bastani/atomic-natives-win32-x64-msvc": ["@bastani/atomic-natives-win32-x64-msvc@0.9.29", "", { "os": "win32", "cpu": "x64" }, "sha512-ymq4Zn/digeEwuJAnahAtm+aUbRpH00j0tg2WNsrlr8wR1HWgVyL9aimkBIW9BDhtOp/6tTV1osD/SEo8XYulQ=="], + "@bastani/atomic-natives-win32-x64-msvc": ["@bastani/atomic-natives-win32-x64-msvc@0.9.31", "", { "os": "win32", "cpu": "x64" }, "sha512-9OLy1/Ut7mI5Saz1dRabkH1OYsjjITzKOsPtamVDSJi5Pbs36nzNCEe/IuuuiOxFwGu/vpBaNAPS6UOsukXl2A=="], - "@bastani/pi-ai": ["@bastani/pi-ai@0.9.29", "", { "dependencies": { "@anthropic-ai/sdk": "0.129.0", "@aws-sdk/client-bedrock-runtime": "3.1127.0", "@earendil-works/pi-telemetry": "1.1.0", "@google/genai": "2.21.0", "@smithy/node-http-handler": "4.12.1", "http-proxy-agent": "9.1.0", "https-proxy-agent": "9.1.0", "openai": "7.19.0", "partial-json": "0.1.7", "typebox": "1.3.27" }, "bin": { "pi-ai": "dist/cli.js" } }, "sha512-hDnUaU8L1/iAAH9D7lxfyIa1h6r0KDwdiDA6zzWftfzv9l0BFU1HskZYVL1CasCfEB+U5UF6NfBwXAgzvHaTnA=="], + "@bastani/pi-ai": ["@bastani/pi-ai@0.9.31", "", { "dependencies": { "@anthropic-ai/sdk": "0.129.0", "@aws-sdk/client-bedrock-runtime": "3.1127.0", "@earendil-works/pi-telemetry": "1.1.0", "@google/genai": "2.21.0", "@smithy/node-http-handler": "4.12.1", "http-proxy-agent": "9.1.0", "https-proxy-agent": "9.1.0", "openai": "7.19.0", "partial-json": "0.1.7", "typebox": "1.3.27" }, "bin": { "pi-ai": "dist/cli.js" } }, "sha512-RdwJ8b4avhxsxuSR10I3Mm8XFFT5G6FPQQmNxaWvUX12sYKnYKazOo470Roos3gr17VsIC6IXjNRbhpI0dmzjQ=="], "@borewit/text-codec": ["@borewit/text-codec@0.2.2", "", {}, "sha512-DDaRehssg1aNrH4+2hnj1B7vnUGEjU6OIlyRdkMd0aUdIUvKXrJfXsy8LVtXAy7DRvYVluWbMspsRhz2lcW0mQ=="], @@ -2508,8 +2508,6 @@ "@babel/helper-compilation-targets/semver": ["semver@6.3.1", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA=="], - "@bastani/atomic/@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@1.30.0", "", { "dependencies": { "@hono/node-server": "^1.19.9 || ^2.0.5", "ajv": "^8.17.1", "ajv-formats": "^3.0.1", "content-type": "^1.0.5", "cors": "^2.8.5", "cross-spawn": "^7.0.5", "eventsource": "^3.0.2", "eventsource-parser": "^3.0.0", "express": "^5.2.1", "express-rate-limit": "^8.2.1", "hono": "^4.11.4", "jose": "^6.1.3", "json-schema-typed": "^8.0.2", "pkce-challenge": "^5.0.0", "raw-body": "^3.0.0", "zod": "^3.25 || ^4.0", "zod-to-json-schema": "^3.25.1" }, "peerDependencies": { "@cfworker/json-schema": "^4.1.1" }, "optionalPeers": ["@cfworker/json-schema"] }, "sha512-xKd8OIzlqNzcqcNumGAa6g+PW2kjD5vrpcKOnfldAUPP3j7lnqMPwlTXQm8gF+UwH72z0lqaRbjr9hqGz0eITA=="], - "@bastani/atomic/diff": ["diff@8.0.4", "", {}, "sha512-DPi0FmjiSU5EvQV0++GFDOJ9ASQUVFh5kD+OzOnYdi7n3Wpm9hWWGfB/O2blfHcMVTL5WkQXSnRiK9makhrcnw=="], "@bastani/atomic/typebox": ["typebox@1.3.27", "", {}, "sha512-zu+jc1pcy4UiNThxikUr36f0Rybk9PEeCg/NE6adeWr/SKsdNO4EzZHYRDlv2YCVAfj3Odq3dESSo/jNyoBXzA=="], diff --git a/docs/self-hosting.md b/docs/self-hosting.md index 217b81e03..f6c2e19b3 100644 --- a/docs/self-hosting.md +++ b/docs/self-hosting.md @@ -115,7 +115,7 @@ it. The Pi contract suite (`apps/server/src/harness/pi.contract.test.ts`) covers this against the real Pi agent loop; run it before bumping `@ai-sdk/harness-pi` or `@earendil-works/pi-coding-agent`. -`HARNESS=atomic` runs Atomic 0.9.29 in the Chopin server process through its +`HARNESS=atomic` runs Atomic 0.9.31 in the Chopin server process through its headless SDK (`createAgentSession()`). It does not spawn the `atomic` CLI, use RPC mode, or substitute Atomic for Pi's runtime. diff --git a/package.json b/package.json index cbd5d7ae1..8caa23160 100644 --- a/package.json +++ b/package.json @@ -67,7 +67,7 @@ "@ai-sdk/harness-pi": "1.0.148", "@ai-sdk/mcp": "2.0.72", "@ai-sdk/sandbox-just-bash": "1.0.146", - "@bastani/atomic": "0.9.29", + "@bastani/atomic": "0.9.31", "@earendil-works/pi-coding-agent": "0.85.1", "ai": "7.0.135", "typebox": "1.3.7",