@bastani/atomic 0.9.4-alpha.1 → 0.9.4-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.4-alpha.3] - 2026-06-30
6
+
7
+ ### Fixed
8
+
9
+ - Made release shrinkwrap preparation hermetic by deriving `@bastani/atomic-natives` and generated platform optional package entries from local stamped package metadata with deterministic registry tarball URLs, removing post-native-publish npm metadata lookups that could race registry propagation.
10
+
11
+ ## [0.9.4-alpha.2] - 2026-06-29
12
+
13
+ ### Fixed
14
+
15
+ - Hardened the coding-agent npm shrinkwrap generator so release publishes resolve the already-published `@bastani/atomic-natives` registry metadata and generated platform optional packages before packing `@bastani/atomic`, while versionless main keeps deterministic placeholder native package entries for shrinkwrap checks.
16
+
5
17
  ## [0.9.4-alpha.1] - 2026-06-29
6
18
 
7
19
  ### Changed
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.4-alpha.3] - 2026-06-30
6
+
7
+ ### Changed
8
+
9
+ - Published a synchronized Atomic 0.9.4-alpha.3 prerelease for the Cursor provider package; no functional Cursor provider changes were made after 0.9.4-alpha.1.
10
+
5
11
  ## [0.9.4-alpha.1] - 2026-06-29
6
12
 
7
13
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/cursor",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Experimental first-party Atomic extension for Cursor OAuth, model discovery, and streaming provider registration.",
6
6
  "contributors": [
@@ -40,7 +40,7 @@
40
40
  }
41
41
  },
42
42
  "dependencies": {
43
- "@bastani/atomic-natives": "0.9.4-alpha.1",
43
+ "@bastani/atomic-natives": "0.9.4-alpha.3",
44
44
  "@bufbuild/protobuf": "^2.0.0",
45
45
  "@earendil-works/pi-ai": "^0.80.2"
46
46
  }
@@ -4,6 +4,12 @@ All notable changes to the `pi-intercom` extension will be documented in this fi
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.9.4-alpha.3] - 2026-06-30
8
+
9
+ ### Changed
10
+
11
+ - Published a synchronized Atomic 0.9.4-alpha.3 prerelease for the intercom extension; no intercom extension changes were made after 0.9.4-alpha.1.
12
+
7
13
  ## [0.9.4-alpha.1] - 2026-06-29
8
14
 
9
15
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/intercom",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension providing a private coordination channel between parent and child agent sessions. Fork of: https://github.com/nicobailon/pi-intercom",
6
6
  "contributors": [
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.9.4-alpha.3] - 2026-06-30
11
+
12
+ ### Changed
13
+
14
+ - Published a synchronized Atomic 0.9.4-alpha.3 prerelease for the MCP extension; no MCP extension changes were made after 0.9.4-alpha.1.
15
+
10
16
  ## [0.9.4-alpha.1] - 2026-06-29
11
17
 
12
18
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/mcp",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension that adapts MCP (Model Context Protocol) servers into the coding agent. Fork of: https://github.com/nicobailon/pi-mcp-adapter",
6
6
  "contributors": [
@@ -2,6 +2,12 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [0.9.4-alpha.3] - 2026-06-30
6
+
7
+ ### Changed
8
+
9
+ - Published a synchronized Atomic 0.9.4-alpha.3 prerelease for the subagents extension; no subagents extension changes were made after 0.9.4-alpha.1.
10
+
5
11
  ## [0.9.4-alpha.1] - 2026-06-29
6
12
 
7
13
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/subagents",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension for delegating tasks to subagents with chains, parallel execution, and TUI clarification. Fork of: https://github.com/nicobailon/pi-subagents",
6
6
  "contributors": [
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.9.4-alpha.3] - 2026-06-30
8
+
9
+ ### Changed
10
+
11
+ - Published a synchronized Atomic 0.9.4-alpha.3 prerelease for the web-access extension; no web-access extension changes were made after 0.9.4-alpha.1.
12
+
7
13
  ## [0.9.4-alpha.1] - 2026-06-29
8
14
 
9
15
  ### Changed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/web-access",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension for web search, URL fetching, GitHub repo cloning, PDF/video extraction. Fork of: https://github.com/nicobailon/pi-web-access",
6
6
  "contributors": [
@@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [0.9.4-alpha.3] - 2026-06-30
10
+
11
+ ### Fixed
12
+
13
+ - Classified generic provider `Connection error.` / `fetch failed` transport outages as explicit workflow transport errors so stage fallback metadata can distinguish them from ordinary provider/model outages while preserving the normal next-model fallback order.
14
+
9
15
  ## [0.9.4-alpha.1] - 2026-06-29
10
16
 
11
17
  ### Fixed
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/workflows",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "private": true,
5
5
  "description": "Atomic extension for multi-stage workflow authoring and execution.",
6
6
  "contributors": [
@@ -49,6 +49,7 @@ export type ModelFallbackFailureKind =
49
49
  | "rate_limit"
50
50
  | "provider_unavailable"
51
51
  | "network_timeout"
52
+ | "transport_error"
52
53
  | "model_unavailable"
53
54
  | "cancelled"
54
55
  | "task_failure"
@@ -76,6 +77,7 @@ const FALLBACKABLE_FAILURE_KINDS: ReadonlySet<ModelFallbackFailureKind> = new Se
76
77
  "rate_limit",
77
78
  "provider_unavailable",
78
79
  "network_timeout",
80
+ "transport_error",
79
81
  "model_unavailable",
80
82
  ]);
81
83
 
@@ -258,6 +260,17 @@ const PROVIDER_REFUSAL_FAILURE_PATTERNS: readonly RegExp[] = [
258
260
  /\bprovider\b[^\n]*\brefus(?:e|al|ed|es|ing)?\b[^\n]*\b(?:prompt|request|content|policy|safety)\b/i,
259
261
  ];
260
262
 
263
+ const TRANSPORT_OUTAGE_FAILURE_PATTERNS: readonly RegExp[] = [
264
+ /^connection\s+error\.?$/i,
265
+ /^fetch\s+failed\.?$/i,
266
+ ];
267
+
268
+ function transportOutageKindFromMessage(message: string): ModelFallbackFailureKind | undefined {
269
+ return TRANSPORT_OUTAGE_FAILURE_PATTERNS.some((pattern) => pattern.test(message.trim()))
270
+ ? "transport_error"
271
+ : undefined;
272
+ }
273
+
261
274
  function refusalKindFromMessage(message: string): ModelFallbackFailureKind | undefined {
262
275
  if (CANCELLED_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return "cancelled";
263
276
  if (NON_RETRYABLE_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return "task_failure";
@@ -268,6 +281,8 @@ function refusalKindFromMessage(message: string): ModelFallbackFailureKind | und
268
281
  function fallbackKindFromMessage(message: string, name: string | undefined): ModelFallbackFailureKind | undefined {
269
282
  const refusalKind = refusalKindFromMessage(message);
270
283
  if (refusalKind !== undefined) return refusalKind;
284
+ const transportOutageKind = transportOutageKindFromMessage(message);
285
+ if (transportOutageKind !== undefined) return transportOutageKind;
271
286
  const nameKind = kindFromCode(name);
272
287
  if (nameKind !== undefined) return nameKind;
273
288
  if (!RETRYABLE_MODEL_FAILURE_PATTERNS.some((pattern) => pattern.test(message))) return undefined;
@@ -305,6 +320,16 @@ function makeSignal(
305
320
  };
306
321
  }
307
322
 
323
+ function fallbackSignalFromDirectMessage(
324
+ value: unknown,
325
+ source: ModelFallbackFailureSource | undefined,
326
+ ): ModelFallbackFailureSignal | undefined {
327
+ const message = directMessageFrom(value);
328
+ if (message === undefined) return undefined;
329
+ const kind = fallbackKindFromMessage(message, errorName(value));
330
+ return kind === undefined ? undefined : makeSignal(kind, value, source);
331
+ }
332
+
308
333
  function fallbackSignalFromMessage(
309
334
  value: unknown,
310
335
  source: ModelFallbackFailureSource | undefined,
@@ -346,6 +371,9 @@ function structuredSignal(
346
371
  const directRefusalSignal = classifyAssistantRefusalSignal(value, source);
347
372
  if (directRefusalSignal !== undefined) return directRefusalSignal;
348
373
 
374
+ const directMessageSignal = fallbackSignalFromDirectMessage(value, source);
375
+ if (directMessageSignal !== undefined) return directMessageSignal;
376
+
349
377
  const codeKind = kindFromCode(codeFrom(value));
350
378
  const nameKind = kindFromCode(errorName(value));
351
379
  if (codeKind === "cancelled" || nameKind === "cancelled") return makeSignal("cancelled", value, source);
@@ -68,6 +68,16 @@ bun --cwd packages/coding-agent run test -- test/specific.test.ts
68
68
 
69
69
  The file-length gate scans tracked `.ts`, `.tsx`, `.js`, `.jsx`, `.mjs`, `.cjs`, and `.rs` files via `git ls-files`, falls back to a recursive walk outside Git, and counts physical lines with a no-final-newline correction. Only generated/vendored path globs (`node_modules`, `dist`, `target`, `binaries`, `.git`, `vendor`, minified bundles, and the bundled third-party `packages/workflows/skills/impeccable/**` skill) plus first-five-line generated markers are excluded; there is no grandfather/baseline allowlist for authored files.
70
70
 
71
+ ## Release shrinkwrap
72
+
73
+ `@bastani/atomic` ships `packages/coding-agent/npm-shrinkwrap.json` for deterministic package-manager installs. Main stays versionless at `0.0.0`; `scripts/cut-release.ts` stamps the real version in an off-main worktree and regenerates the shrinkwrap there before tagging.
74
+
75
+ The shrinkwrap generator is hermetic for Atomic-owned packages. It derives `@bastani/atomic-natives` and generated native optional package entries from local package metadata plus deterministic registry tarball URLs, so release publishing does not depend on npm metadata for native packages that were just published.
76
+
77
+ ```bash
78
+ bun run scripts/generate-coding-agent-shrinkwrap.mjs --check
79
+ ```
80
+
71
81
  ## Project Structure
72
82
 
73
83
  ```
package/docs/workflows.md CHANGED
@@ -1814,7 +1814,7 @@ export default workflow({
1814
1814
 
1815
1815
  For lower-level integrations, `@bastani/workflows` also exports `setupGitWorktree({ gitWorktreeDir, baseBranch, cwd })`, returning `{ worktreeRoot, cwd, repositoryRoot, created }` with the same validation, symlink-preserving path handling, and cwd-preservation behavior used by workflow stages.
1816
1816
 
1817
- `fallbackModels` retries transient provider/model failures with the primary `model` first, then each fallback, then the current Atomic-selected model when available. It is for rate limits, quota/auth/provider outages, unavailable models, network timeouts, and 5xx errors — not workflow-code errors, tool failures, validation failures, or cancellations.
1817
+ `fallbackModels` retries transient provider/model failures with the primary `model` first, then each fallback, then the current Atomic-selected model when available. It is for rate limits, quota/auth/provider outages, unavailable models, network timeouts, generic transport errors such as `Connection error.` / `fetch failed`, and 5xx errors — not workflow-code errors, tool failures, validation failures, or cancellations.
1818
1818
 
1819
1819
  When a finished stage's session is reattached for a follow-up (for example a post-completion follow-up, or after the CLI is reloaded), the stage resumes on the model the session last settled on — the one that actually worked — instead of replaying the chain from the primary. If that model fails again with a transient/retryable error, the full chain is retried from the primary.
1820
1820
 
@@ -1,15 +1,15 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@bastani/atomic",
9
- "version": "0.9.4-alpha.1",
9
+ "version": "0.9.4-alpha.3",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
- "@bastani/atomic-natives": "0.9.4-alpha.1",
12
+ "@bastani/atomic-natives": "0.9.4-alpha.3",
13
13
  "@bufbuild/protobuf": "^2.0.0",
14
14
  "@earendil-works/pi-agent-core": "^0.80.2",
15
15
  "@earendil-works/pi-ai": "^0.80.2",
@@ -516,17 +516,16 @@
516
516
  }
517
517
  },
518
518
  "node_modules/@bastani/atomic-natives": {
519
- "version": "0.9.4-alpha.1",
520
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives/-/atomic-natives-0.9.4-alpha.1.tgz",
521
- "integrity": "sha512-+HvxHRJ79/QsbwAqNG1sRCDYcQOmnm2TTIy9c40UaZNpf2IFYZoGCQiILGVtQGn6FumKjV/ATr/bOdOvm+vN6A==",
519
+ "version": "0.9.4-alpha.3",
520
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives/-/atomic-natives-0.9.4-alpha.3.tgz",
522
521
  "license": "MIT",
523
522
  "optionalDependencies": {
524
- "@bastani/atomic-natives-win32-x64-msvc": "0.9.4-alpha.1",
525
- "@bastani/atomic-natives-darwin-x64": "0.9.4-alpha.1",
526
- "@bastani/atomic-natives-linux-x64-gnu": "0.9.4-alpha.1",
527
- "@bastani/atomic-natives-linux-arm64-gnu": "0.9.4-alpha.1",
528
- "@bastani/atomic-natives-darwin-arm64": "0.9.4-alpha.1",
529
- "@bastani/atomic-natives-win32-arm64-msvc": "0.9.4-alpha.1"
523
+ "@bastani/atomic-natives-darwin-arm64": "0.9.4-alpha.3",
524
+ "@bastani/atomic-natives-darwin-x64": "0.9.4-alpha.3",
525
+ "@bastani/atomic-natives-linux-arm64-gnu": "0.9.4-alpha.3",
526
+ "@bastani/atomic-natives-linux-x64-gnu": "0.9.4-alpha.3",
527
+ "@bastani/atomic-natives-win32-arm64-msvc": "0.9.4-alpha.3",
528
+ "@bastani/atomic-natives-win32-x64-msvc": "0.9.4-alpha.3"
530
529
  },
531
530
  "engines": {
532
531
  "bun": ">=1.3.14",
@@ -534,14 +533,9 @@
534
533
  }
535
534
  },
536
535
  "node_modules/@bastani/atomic-natives-darwin-arm64": {
537
- "version": "0.9.4-alpha.1",
538
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-arm64/-/atomic-natives-darwin-arm64-0.9.4-alpha.1.tgz",
539
- "integrity": "sha512-muIJSapSOiHPwhNlopCIq0pyx/tU/egwB1gXfDiiVoOaqz/TOSsu/qj2sH17Raso92VzUNToa4DxWrhlBsG5jw==",
536
+ "version": "0.9.4-alpha.3",
537
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-arm64/-/atomic-natives-darwin-arm64-0.9.4-alpha.3.tgz",
540
538
  "license": "MIT",
541
- "engines": {
542
- "bun": ">=1.3.14",
543
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
544
- },
545
539
  "os": [
546
540
  "darwin"
547
541
  ],
@@ -551,14 +545,9 @@
551
545
  "optional": true
552
546
  },
553
547
  "node_modules/@bastani/atomic-natives-darwin-x64": {
554
- "version": "0.9.4-alpha.1",
555
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-x64/-/atomic-natives-darwin-x64-0.9.4-alpha.1.tgz",
556
- "integrity": "sha512-fJWx9YQR/gbhiSKUk/fRxrh5byPAipxhWSs3kNNxf0xOuHoA4bi/uOKa+sI+SVkOGPF4Sl9PXpHXCRell1jayw==",
548
+ "version": "0.9.4-alpha.3",
549
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-darwin-x64/-/atomic-natives-darwin-x64-0.9.4-alpha.3.tgz",
557
550
  "license": "MIT",
558
- "engines": {
559
- "bun": ">=1.3.14",
560
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
561
- },
562
551
  "os": [
563
552
  "darwin"
564
553
  ],
@@ -568,14 +557,9 @@
568
557
  "optional": true
569
558
  },
570
559
  "node_modules/@bastani/atomic-natives-linux-arm64-gnu": {
571
- "version": "0.9.4-alpha.1",
572
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-gnu/-/atomic-natives-linux-arm64-gnu-0.9.4-alpha.1.tgz",
573
- "integrity": "sha512-fvztNdmAbBgcQIgfGrG8whxVJHnrmr5T+LyQUu5Cc8KXbalBiCYAKcAreaJLWhS1Q+jX6CIBQ2/vTFGGYMFeMg==",
560
+ "version": "0.9.4-alpha.3",
561
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-arm64-gnu/-/atomic-natives-linux-arm64-gnu-0.9.4-alpha.3.tgz",
574
562
  "license": "MIT",
575
- "engines": {
576
- "bun": ">=1.3.14",
577
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
578
- },
579
563
  "os": [
580
564
  "linux"
581
565
  ],
@@ -588,14 +572,9 @@
588
572
  "optional": true
589
573
  },
590
574
  "node_modules/@bastani/atomic-natives-linux-x64-gnu": {
591
- "version": "0.9.4-alpha.1",
592
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-gnu/-/atomic-natives-linux-x64-gnu-0.9.4-alpha.1.tgz",
593
- "integrity": "sha512-XjSJqi0293AeZj/pUc8zdllk4ykZb74E3sD6B/AuBIDiu4mPBZ/oXPJ0Izb65rXIl8+sx0t4YZil8GSGIhVfvQ==",
575
+ "version": "0.9.4-alpha.3",
576
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-linux-x64-gnu/-/atomic-natives-linux-x64-gnu-0.9.4-alpha.3.tgz",
594
577
  "license": "MIT",
595
- "engines": {
596
- "bun": ">=1.3.14",
597
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
598
- },
599
578
  "os": [
600
579
  "linux"
601
580
  ],
@@ -608,14 +587,9 @@
608
587
  "optional": true
609
588
  },
610
589
  "node_modules/@bastani/atomic-natives-win32-arm64-msvc": {
611
- "version": "0.9.4-alpha.1",
612
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-arm64-msvc/-/atomic-natives-win32-arm64-msvc-0.9.4-alpha.1.tgz",
613
- "integrity": "sha512-jiqdS60fq99Tfp9H7Dj8LyTPz64tfP4yBEW5xUuN66J2uN4TpZKMNbHQ0ffeb91IWAP+B42UailPguvrov/Tvg==",
590
+ "version": "0.9.4-alpha.3",
591
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-arm64-msvc/-/atomic-natives-win32-arm64-msvc-0.9.4-alpha.3.tgz",
614
592
  "license": "MIT",
615
- "engines": {
616
- "bun": ">=1.3.14",
617
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
618
- },
619
593
  "os": [
620
594
  "win32"
621
595
  ],
@@ -625,14 +599,9 @@
625
599
  "optional": true
626
600
  },
627
601
  "node_modules/@bastani/atomic-natives-win32-x64-msvc": {
628
- "version": "0.9.4-alpha.1",
629
- "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-x64-msvc/-/atomic-natives-win32-x64-msvc-0.9.4-alpha.1.tgz",
630
- "integrity": "sha512-L7nEKNV35pIN1AMNPBH6UmWV0kkM0/KB7wtBPBTildeyyEU2UdwXgLGA8uEqazhgtttJONvjGBF7NySkIz7JFg==",
602
+ "version": "0.9.4-alpha.3",
603
+ "resolved": "https://registry.npmjs.org/@bastani/atomic-natives-win32-x64-msvc/-/atomic-natives-win32-x64-msvc-0.9.4-alpha.3.tgz",
631
604
  "license": "MIT",
632
- "engines": {
633
- "bun": ">=1.3.14",
634
- "node": ">= 12.22.0 < 13 || >= 14.17.0 < 15 || >= 15.12.0 < 16 || >= 16.0.0"
635
- },
636
605
  "os": [
637
606
  "win32"
638
607
  ],
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bastani/atomic",
3
- "version": "0.9.4-alpha.1",
3
+ "version": "0.9.4-alpha.3",
4
4
  "description": "Atomic coding agent CLI with read, bash, edit, write tools and session management",
5
5
  "type": "module",
6
6
  "atomicConfig": {
@@ -66,11 +66,11 @@
66
66
  "docs:check": "bun run scripts/validate-docs-links.ts",
67
67
  "verify:workflow-types": "bun run scripts/verify-workflow-sdk-types.ts",
68
68
  "test": "vitest --run",
69
- "shrinkwrap": "node ../../scripts/generate-coding-agent-shrinkwrap.mjs",
69
+ "shrinkwrap": "bun run ../../scripts/generate-coding-agent-shrinkwrap.mjs",
70
70
  "prepublishOnly": "bun run clean && bun run build && bun run shrinkwrap"
71
71
  },
72
72
  "dependencies": {
73
- "@bastani/atomic-natives": "0.9.4-alpha.1",
73
+ "@bastani/atomic-natives": "0.9.4-alpha.3",
74
74
  "@bufbuild/protobuf": "^2.0.0",
75
75
  "@earendil-works/pi-agent-core": "^0.80.2",
76
76
  "@earendil-works/pi-ai": "^0.80.2",