@bingjiang0611/rotom 0.1.25 → 0.1.26

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.
Files changed (107) hide show
  1. package/THIRD_PARTY_NOTICES.md +1 -1
  2. package/extensions/observability/index.ts +20 -2
  3. package/extensions/qoder/messages.mjs +1 -1
  4. package/extensions/qoder/provider.mjs +14 -6
  5. package/extensions/qoder/transport.mjs +53 -11
  6. package/extensions/third-party/node_modules/.package-lock.json +6 -6
  7. package/extensions/third-party/node_modules/pi-subagents/README.md +17 -0
  8. package/extensions/third-party/node_modules/pi-subagents/agents/delegate.md +2 -0
  9. package/extensions/third-party/node_modules/pi-subagents/agents/oracle.md +18 -14
  10. package/extensions/third-party/node_modules/pi-subagents/agents/reviewer.md +5 -3
  11. package/extensions/third-party/node_modules/pi-subagents/docs/models.md +1 -1
  12. package/extensions/third-party/node_modules/pi-subagents/docs/tool-reference.md +2 -2
  13. package/extensions/third-party/node_modules/pi-subagents/docs/workflows.md +2 -2
  14. package/extensions/third-party/node_modules/pi-subagents/package.json +1 -1
  15. package/extensions/third-party/node_modules/pi-subagents/prompts/gather-context-and-clarify.md +1 -1
  16. package/extensions/third-party/node_modules/pi-subagents/prompts/parallel-research.md +4 -6
  17. package/extensions/third-party/node_modules/pi-subagents/skills/pi-subagents/references/constraints-and-recipes.md +8 -8
  18. package/extensions/third-party/node_modules/pi-subagents/skills/pi-subagents/references/execution-controls.md +5 -5
  19. package/extensions/third-party/node_modules/pi-subagents/skills/pi-subagents/references/prompting-and-roles.md +7 -8
  20. package/extensions/third-party/node_modules/pi-subagents/src/agents/agents.ts +0 -1
  21. package/extensions/third-party/node_modules/pi-subagents/src/extension/index.ts +9 -2
  22. package/extensions/third-party/node_modules/pi-subagents/src/profiles/profiles.ts +1 -2
  23. package/extensions/third-party/node_modules/pi-subagents/src/runs/background/async-execution.ts +81 -52
  24. package/extensions/third-party/node_modules/pi-subagents/src/runs/background/process-terminal.ts +13 -0
  25. package/extensions/third-party/node_modules/pi-subagents/src/runs/background/stale-run-reconciler.ts +7 -3
  26. package/extensions/third-party/node_modules/sol-pi/UPSTREAM.md +1 -0
  27. package/extensions/third-party/node_modules/sol-pi/package.json +1 -1
  28. package/extensions/third-party/node_modules/sol-pi/src/sol-pi/extensions/evidence-preserving-reducer/index.ts +1 -0
  29. package/extensions/third-party/node_modules/sol-pi/src/sol-pi/extensions/evidence-preserving-reducer/receipt.ts +79 -16
  30. package/extensions/third-party/package-lock.json +8 -8
  31. package/extensions/third-party/package.json +2 -2
  32. package/extensions/third-party/vendor/README.md +12 -12
  33. package/extensions/third-party/vendor/pi-subagents-0.52.1-rotom.10.tgz +0 -0
  34. package/extensions/third-party/vendor/sol-pi-0.1.0-rotom.2.tgz +0 -0
  35. package/package.json +3 -3
  36. package/runtime/pi/fork-build.json +9 -9
  37. package/runtime/pi/node_modules/.package-lock.json +7 -7
  38. package/runtime/pi/node_modules/@earendil-works/pi-agent-core/package.json +1 -1
  39. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.d.ts.map +1 -1
  40. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js +2 -1
  41. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/api/anthropic-messages.js.map +1 -1
  42. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts +8 -0
  43. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/error-body.d.ts.map +1 -1
  44. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js +37 -1
  45. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/error-body.js.map +1 -1
  46. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts +6 -0
  47. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/retry.d.ts.map +1 -1
  48. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/retry.js +34 -0
  49. package/runtime/pi/node_modules/@earendil-works/pi-ai/dist/utils/retry.js.map +1 -1
  50. package/runtime/pi/node_modules/@earendil-works/pi-ai/package.json +1 -1
  51. package/runtime/pi/node_modules/@earendil-works/pi-codemode/package.json +1 -1
  52. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/anthropic-messages-H6BRNJYC.js +6 -0
  53. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{azure-openai-responses-KZZFKCXW.js → azure-openai-responses-45AJGMB6.js} +1 -1
  54. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/bedrock-converse-stream.js +1 -1
  55. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-2CKNKV2I.js → chunk-5MTGRVNE.js} +2 -2
  56. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-ITZNWD4K.js → chunk-7OCND3IM.js} +1 -1
  57. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-CTEAMRDY.js +2 -0
  58. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-6NUCYK64.js → chunk-ESL4WJJF.js} +9 -9
  59. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{chunk-DSV77X2M.js → chunk-MXCOAUPD.js} +1 -1
  60. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{cloudflare-workers-ai-system-one-UTBL2KOF.js → cloudflare-workers-ai-system-one-IEPXKTM7.js} +1 -1
  61. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{execute-4WILIDZF.js → execute-ULZNGRYF.js} +1 -1
  62. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{google-generative-ai-KJOKBJM3.js → google-generative-ai-KXRSXWRQ.js} +1 -1
  63. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{google-vertex-VCLZ36OB.js → google-vertex-CVLJXJIO.js} +1 -1
  64. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{llama-cpp-classify-FYN623RH.js → llama-cpp-classify-42ZH3VVO.js} +1 -1
  65. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{openai-codex-responses-ZYGHVE5B.js → openai-codex-responses-L4P7LV62.js} +1 -1
  66. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{openai-completions-BGCEXFAB.js → openai-completions-ZIOWDPDJ.js} +1 -1
  67. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{openai-decisions-WVPMQ4JD.js → openai-decisions-L7N23NC7.js} +1 -1
  68. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{openai-responses-KCCCXI3B.js → openai-responses-XT6CQ4R7.js} +1 -1
  69. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{openrouter-images-DUPG5DZO.js → openrouter-images-FQ7HEE4T.js} +1 -1
  70. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{typesafe-system-one-ZSK3RN4B.js → typesafe-system-one-IH2QHGKL.js} +1 -1
  71. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/{virtual-modules-INPREDLP.js → virtual-modules-YSF6BJRF.js} +1 -1
  72. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/cli-runtime.js +1 -1
  73. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/index.js +1 -1
  74. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/rpc-entry.js +1 -1
  75. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts +5 -0
  76. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
  77. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js +56 -27
  78. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/core/agent-session.js.map +1 -1
  79. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.d.ts +1 -0
  80. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
  81. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.js +4 -1
  82. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/interactive/components/status-indicator.js.map +1 -1
  83. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  84. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js +37 -4
  85. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
  86. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/docs/json.md +6 -0
  87. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/docs/rpc-extension-ui.md +2 -0
  88. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/docs/settings.md +3 -1
  89. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/package.json +1 -1
  90. package/runtime/pi/node_modules/@earendil-works/pi-mcp/package.json +1 -1
  91. package/runtime/pi/node_modules/@earendil-works/pi-telemetry/package.json +1 -1
  92. package/runtime/pi/node_modules/@earendil-works/pi-tui/package.json +1 -1
  93. package/runtime/pi/package-lock.json +7 -7
  94. package/runtime/pi/vendor/earendil-works-pi-agent-core-1.3.0-rotom.2.tgz +0 -0
  95. package/runtime/pi/vendor/earendil-works-pi-ai-1.3.0-rotom.2.tgz +0 -0
  96. package/runtime/pi/vendor/earendil-works-pi-codemode-1.3.0-rotom.2.tgz +0 -0
  97. package/runtime/pi/vendor/earendil-works-pi-coding-agent-1.3.0-rotom.2.tgz +0 -0
  98. package/runtime/pi/vendor/earendil-works-pi-mcp-1.3.0-rotom.2.tgz +0 -0
  99. package/runtime/pi/vendor/earendil-works-pi-telemetry-1.3.0-rotom.2.tgz +0 -0
  100. package/runtime/pi/vendor/earendil-works-pi-tui-1.3.0-rotom.2.tgz +0 -0
  101. package/runtime/product-config.mjs +4 -4
  102. package/extensions/third-party/node_modules/pi-subagents/agents/researcher.md +0 -52
  103. package/extensions/third-party/node_modules/pi-subagents/docs/agents.md +0 -383
  104. package/extensions/third-party/vendor/pi-subagents-0.52.1-rotom.7.tgz +0 -0
  105. package/extensions/third-party/vendor/sol-pi-0.1.0-rotom.1.tgz +0 -0
  106. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/anthropic-messages-UIH6DSZT.js +0 -6
  107. package/runtime/pi/node_modules/@earendil-works/pi-coding-agent/dist/bundle/chunks/chunk-TEPMHNKQ.js +0 -2
@@ -1,13 +1,13 @@
1
1
  # Locked Subagent distribution
2
2
 
3
- The default product selects **`pi-subagents@0.52.1-rotom.5`**, independently maintained in the repository's `packages/rotom-subagents/`. New builds consume its reviewed archive, not installed source or a patch stack. This is a Subagent fork, not a Pi fork.
3
+ The default product selects **`pi-subagents@0.52.1-rotom.10`**, independently maintained in the repository's `packages/rotom-subagents/`. New builds consume its reviewed archive, not installed source or a patch stack. This is a Subagent fork, not a Pi fork.
4
4
 
5
- - Archive: `pi-subagents-0.52.1-rotom.5.tgz`
6
- - SHA256: `558daa602ce2efa96fdee0564f55bf1a07c166ef330056c922c3fd9bcbab1f5d`
7
- - SHA512 SRI: `sha512-MT2a8nF5ppzL8MGU+0mwMQpdx/cxtpFgny12EOC2FVt3J46gaCE1I5mUT6EU66rzI9pfJYnS55n3MgSxM+Gg8w==`
8
- - Source digest: `59e755f9c5dd6c317529d337a5da9894e8ef9ec7562e5074f4fc0fd32b29249c`
5
+ - Archive: `pi-subagents-0.52.1-rotom.10.tgz`
6
+ - SHA256: `aee008364cb159c4424678c37a2f77e75a78d292937f0354f318ce483fd5dede`
7
+ - SHA512 SRI: `sha512-5mXSC3zXponiWE+NP16rJ4zo1j1mHS04bbFO+fOc31RVVHA8rKvZ3nvemDOHT9qCBqINAiRcXJuhpZCNNNeoHg==`
8
+ - Source digest: `3474af84fa16bf546df3438066571a51b25698b099f53f8c50ddf34ffe291070`
9
9
 
10
- This batch removes schedule execution and automatic goal-mission continuation, including legacy opt-out sessions; old data remains untouched. Targeted status uses bounded current-session output and native recovery preflight, which is not launch authorization. Shared legacy mission/inspector readers remain. Product schema and prompt guidance are scoped by the product wrapper; raw execution still passes the original fences.
10
+ `.rotom.10` makes the builtin roles launchable in owned scope: `delegate` and `oracle`/`advisor` declare empty ambient extensions and fresh default context (oracle now works from a parent-written decision brief), `reviewer` gains prompt-restricted read-only `bash`, and `researcher` is removed because its web tools do not exist in rotom. `.rotom.9` pauses the retiring runtime's live runners and awaits close finalization before cleanup on quit/reload/session replacement/disposal. A result arriving before the native close callback retains pending only while this process owns the matching live observer; registration is not an exit proof. It never signals historical PIDs or repairs missing old-run proof. Retired schedule execution and automatic goal-mission continuation remain disabled, including legacy opt-out sessions; old data remains untouched. Targeted status uses bounded current-session output and native recovery preflight, which is not launch authorization. Shared legacy mission/inspector readers remain. Product schema and prompt guidance are scoped by the product wrapper; raw execution still passes the original fences.
11
11
  - Upstream: <https://github.com/nicobailon/pi-subagents>
12
12
  - License: MIT, Copyright (c) 2026 Nico Bailon. Original notice remains in `package/LICENSE`; provenance and maintenance notes are in `package/UPSTREAM.md`.
13
13
  - Source baseline: validated `0.52.1-dev-agent-owned-flat.7`; 213 TS and four existing mjs files retained byte-for-byte. The component has independent metadata, lockfile, tests and packaging. In `.rotom.1`, worker/scout/reviewer declare empty ambient extensions and fresh default context without expanding tools; explicit user/project overrides remain effective. `.rotom.3` explicitly loads the verified product Qoder provider for Qoder child models, preserving ambient isolation, tool ceilings, model choice and launch identity. Other custom providers still require explicit child configuration. Offline CLI/RPC coverage does not claim live inference acceptance.
@@ -18,7 +18,7 @@ The former `pi-subagents-0.52.1-rotom.0.tgz` and `pi-subagents-0.52.1-dev-agent-
18
18
 
19
19
  Do not use `--replace-registry-host=always`: npm 11 rewrites even local archive URLs into registry URLs. The product launcher now selects `owned-process-groups-v2` for new sessions and anchors its store under `~/.local/state/rotom/subagent-store`; see `node_modules/pi-subagents/docs/owned-execution.md` for the admitted topologies. That default neither migrates live sessions nor authorizes replay, and unknown ownership remains fenced. Unselected upstream tools/templates/skills remain disabled by product policy.
20
20
 
21
- The selected `.rotom.5` also includes the later terminal-projection fix: projection failure preserves unknown and observed closure evidence, never authorizing replay. It is subsequent development and is **not** included in the already frozen rotom 0.1.17 artifact. Component unit/SDK/type checks and current product gates are separate from the unavailable historical `test:compat` discovery path documented in the component README.
21
+ The `.rotom.5` baseline also included the terminal-projection fix: projection failure preserves unknown and observed closure evidence, never authorizing replay. It is subsequent development and is **not** included in the already frozen rotom 0.1.17 artifact. Component unit/SDK/type checks and current product gates are separate from the unavailable historical `test:compat` discovery path documented in the component README.
22
22
 
23
23
  ## Locked Computer Use distribution
24
24
 
@@ -46,13 +46,13 @@ The default product selects **`@narumitw/pi-goal@0.54.4-rotom.8`**, independentl
46
46
 
47
47
  ## Locked SoL-Pi distribution
48
48
 
49
- The default product selects **`sol-pi@0.1.0-rotom.1`**, maintained in `packages/rotom-sol-pi/`. SoL-Pi has no npm release; this archive is packed from that directory.
49
+ The default product selects **`sol-pi@0.1.0-rotom.2`**, maintained in `packages/rotom-sol-pi/`. SoL-Pi has no npm release; this archive is packed from that directory.
50
50
 
51
- - Archive: `sol-pi-0.1.0-rotom.1.tgz`
52
- - SHA512 SRI: `sha512-t4h2lPg0ktcA4oyiBwKJur13Noc5pfYUhV5lXkRuoPV3CQ/Bf1oYil8zIgz8rBB5vMrYXUn6zRhDQg+S/VljAw==`
51
+ - Archive: `sol-pi-0.1.0-rotom.2.tgz`
52
+ - SHA512 SRI: `sha512-9SOaxYtxnfbnU+IByPpz8dmk95eDsGs4dvi1sq9i2g3VrGxIok0sGatlhPLhiOUgETWZyRBtRHULCm+yZiOu2g==`
53
53
  - Upstream: <https://github.com/NVlabs/SoL-Pi>, License MIT (original notice in `package/LICENSE`; provenance in `package/UPSTREAM.md`).
54
- - Source: the maintainer's branch `b463fad` (upstream `2b791687` plus five fix/compat commits). `.rotom.0` kept `src/` byte-identical. `.rotom.1` records each returned reducer response as a Pi `usage` entry (`sol_pi_reducer`) through the fork's `pi.appendUsage`, so the footer, session stats and Goal budgets include reducer spend; see `UPSTREAM.md`. The `.rotom.0` archive shipped in rotom 0.1.24 and is removed here.
55
- - Tests: `.rotom.1` passes upstream's suite plus the new usage tests, 167/167, against the Pi `1.3.0-rotom.2` packages (`.rotom.0`: 166/166 on `1.3.0-rotom.1`). In `packages/rotom-sol-pi/` itself, the 2 `tests/install-guide.test.ts` cases fail because they read the non-imported upstream `AGENTS.md`/`CLAUDE.md`.
54
+ - Source: the maintainer's branch `b463fad` (upstream `2b791687` plus five fix/compat commits). `.rotom.0` kept `src/` byte-identical. `.rotom.1` records each returned reducer response as a Pi `usage` entry (`sol_pi_reducer`) through the fork's `pi.appendUsage`, so the footer, session stats and Goal budgets include reducer spend; see `UPSTREAM.md`. `.rotom.2` adds a content-free `quoteDiagnostic` (cause, index, length, SHA-256, matched prefix and line, ANSI/whitespace near-match flags) to `unverifiable-quote` journal entries; acceptance is unchanged. The `.rotom.0` (rotom 0.1.24) and `.rotom.1` (rotom 0.1.25) archives are removed here.
55
+ - Tests: `.rotom.2` passes upstream's suite plus the rotom usage and quote-diagnostic tests, 168/168, against both the Pi `1.3.0-rotom.2` packages and the pinned upstream Pi `0.85.1` devDependencies (`.rotom.1`: 167/167; `.rotom.0`: 166/166 on `1.3.0-rotom.1`). In `packages/rotom-sol-pi/` itself, the 2 `tests/install-guide.test.ts` cases fail because they read the non-imported upstream `AGENTS.md`/`CLAUDE.md`.
56
56
  - `extensions/third-party/sol-pi.ts` supplies rotom's default (Action Fusion, Observation Pack, Evidence-Preserving Reducer on; Online Context Compact off) only when no SoL-Pi config file exists.
57
57
 
58
58
  `pi-context-view@0.7.1` is taken unmodified from the public npm registry and pinned by its registry integrity in `package-lock.json` and `runtime/product-config.mjs`.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bingjiang0611/rotom",
3
- "version": "0.1.25",
3
+ "version": "0.1.26",
4
4
  "private": false,
5
5
  "description": "Personal coding agent built on Pi, with explicit tools and runtime contracts",
6
6
  "license": "UNLICENSED",
@@ -88,10 +88,10 @@
88
88
  "extensions/third-party/package.json",
89
89
  "extensions/third-party/package-lock.json",
90
90
  "extensions/third-party/vendor/README.md",
91
- "extensions/third-party/vendor/pi-subagents-0.52.1-rotom.7.tgz",
91
+ "extensions/third-party/vendor/pi-subagents-0.52.1-rotom.10.tgz",
92
92
  "extensions/third-party/vendor/narumitw-pi-goal-0.54.4-rotom.8.tgz",
93
93
  "extensions/third-party/vendor/injaneity-pi-computer-use-0.5.1-rotom.0.tgz",
94
- "extensions/third-party/vendor/sol-pi-0.1.0-rotom.1.tgz",
94
+ "extensions/third-party/vendor/sol-pi-0.1.0-rotom.2.tgz",
95
95
  "extensions/third-party/node_modules",
96
96
  "skills/pi-subagents/SKILL.md",
97
97
  "runtime/pi/package.json",
@@ -2,43 +2,43 @@
2
2
  "schema": "rotom-pi-fork/v1",
3
3
  "version": "1.3.0-rotom.2",
4
4
  "upstreamRevision": "71023aec1546d6d677a65669c5665c0927ce0dd0",
5
- "sourceSha256": "0cbc3f20d1d7666b7945ebcba3ae377d097f69a1766e5bcc3fdc779e9f6bdc5d",
6
- "builderSha256": "acb979e0c9b7e04cac0b0b24a35cca93301400fd4cd936b7b899a4dfb630756e",
5
+ "sourceSha256": "4d29bfc5fb6e95f198de675f2ebcaed9e1f4a6b730c0a480ec0f057fc954ada6",
6
+ "builderSha256": "d18bb9a81cdcbec7959d074c3b781982e0f81bc3cb844d5a8fe8d2a513a3ff60",
7
7
  "artifacts": {
8
8
  "@earendil-works/pi-telemetry": {
9
9
  "version": "1.3.0-rotom.2",
10
10
  "file": "vendor/earendil-works-pi-telemetry-1.3.0-rotom.2.tgz",
11
- "integrity": "sha512-JX+D+lTE5wT1ZwTGIlYhQePxKMbPfctWZ3G9SWXNtcHV0BMKmN9tIW6O3Z5h6FbARDJvq5GgwIkz0P/ctCrDEg=="
11
+ "integrity": "sha512-S/VLSqA9jFw4YR/mIsK2CjpUIxFiUN8pTuAPojSJMPB9dTyj8W4KqTypB2gSUkIXqWSYvicUjrA5SOwLlIqz3g=="
12
12
  },
13
13
  "@earendil-works/pi-ai": {
14
14
  "version": "1.3.0-rotom.2",
15
15
  "file": "vendor/earendil-works-pi-ai-1.3.0-rotom.2.tgz",
16
- "integrity": "sha512-rTZR8o2zh++q1FBqfAOjPgk6eGjjAEAc3ZXS3Id3uTjf/LbyQXeWiu/biDZDtpNw9eBof+z05/mcbfIp3Eethg=="
16
+ "integrity": "sha512-C+amXGgzVvJ3lQ17dSOfpjKzsyA6dvOR+WmMKEMFndG1Ap1cdO7i7gAHd09UG6h2A2vT2mY8ctfDCP4ijSiZVg=="
17
17
  },
18
18
  "@earendil-works/pi-tui": {
19
19
  "version": "1.3.0-rotom.2",
20
20
  "file": "vendor/earendil-works-pi-tui-1.3.0-rotom.2.tgz",
21
- "integrity": "sha512-IDuOXDilIvkRsF4bCx0Q02GK57ohnot6fL1yr70tbA9+TouxmtFBLqW0XeXh0oyZSXmavB8MBSxiVNhlAbiiFw=="
21
+ "integrity": "sha512-D5+gwzxsaEvFbaZqYl1gF2C3VniKbbMlLBBLGvxb1SrjU2Kb5LEj7GrFk8YO8VEd9f3lbom33XRIdrhd3U4HLA=="
22
22
  },
23
23
  "@earendil-works/pi-agent-core": {
24
24
  "version": "1.3.0-rotom.2",
25
25
  "file": "vendor/earendil-works-pi-agent-core-1.3.0-rotom.2.tgz",
26
- "integrity": "sha512-biXnah8jKEs+h75t9Vdl2f71He33mTUAtc846XFg+Ym2uDfBkqoTf9xpQ1NPHMAkS4C/hkO7aOsKY6jQnh+YQw=="
26
+ "integrity": "sha512-c0LiTpRmf4ia7PaEDCJFGF+vs94pl9R0BoNHwrqhqrwR1HdOGGFF8oKptBF4AuebZF/MW4ukPY7PJcHy5EX5bw=="
27
27
  },
28
28
  "@earendil-works/pi-codemode": {
29
29
  "version": "1.3.0-rotom.2",
30
30
  "file": "vendor/earendil-works-pi-codemode-1.3.0-rotom.2.tgz",
31
- "integrity": "sha512-RK2HCSJDciiq+d1wI3wcUEfOtbgHGgQdNBr2Rb6fu7fgo1AMlYVLEB9Usza+yEojQZo1qy+4Q9cntcIhoelliA=="
31
+ "integrity": "sha512-LBakjwHQ8hGkQc9DCGowRTyD7PKcw9/RwpboNq0DrTW/CrOpM0mtTpSIber1C/q+dgsNlcSAZijwpnRyLg+L3A=="
32
32
  },
33
33
  "@earendil-works/pi-mcp": {
34
34
  "version": "1.3.0-rotom.2",
35
35
  "file": "vendor/earendil-works-pi-mcp-1.3.0-rotom.2.tgz",
36
- "integrity": "sha512-PRp1ldn50YH9oewJX/ouxzKScTvpwXkrzn/B2jGvSRuTwNM0z6FifonB3l8YZxR+k17EdO9hG77LQ9cUTpU3FA=="
36
+ "integrity": "sha512-Fph1A8eYjzq8hc3NrshPKNCgX84X4zs29COkLaDZYL8dhzUubL5c2YrBz0o1NtXgP78U2GtrxdXZV5u+JrYgSg=="
37
37
  },
38
38
  "@earendil-works/pi-coding-agent": {
39
39
  "version": "1.3.0-rotom.2",
40
40
  "file": "vendor/earendil-works-pi-coding-agent-1.3.0-rotom.2.tgz",
41
- "integrity": "sha512-exOT4pJFc3E++aNApXsPVJT0XPJ8xotpb4XgtJnVZt+rpCfq+PSucqP7//AFQTcjFgYAaOWPmx8vx3ybNBy1qQ=="
41
+ "integrity": "sha512-DGjn1daN0S9yJnZS/TTRc5jlYZXo80RaqIVfrkbOW+kSQp+J6OSn1rKRkF1o0Uhw0ORfGqfEHjsz2sHfxqkmpw=="
42
42
  }
43
43
  }
44
44
  }
@@ -378,7 +378,7 @@
378
378
  "node_modules/@earendil-works/pi-agent-core": {
379
379
  "version": "1.3.0-rotom.2",
380
380
  "resolved": "file:vendor/earendil-works-pi-agent-core-1.3.0-rotom.2.tgz",
381
- "integrity": "sha512-biXnah8jKEs+h75t9Vdl2f71He33mTUAtc846XFg+Ym2uDfBkqoTf9xpQ1NPHMAkS4C/hkO7aOsKY6jQnh+YQw==",
381
+ "integrity": "sha512-c0LiTpRmf4ia7PaEDCJFGF+vs94pl9R0BoNHwrqhqrwR1HdOGGFF8oKptBF4AuebZF/MW4ukPY7PJcHy5EX5bw==",
382
382
  "license": "MIT",
383
383
  "dependencies": {
384
384
  "@earendil-works/pi-ai": "1.3.0-rotom.2",
@@ -391,7 +391,7 @@
391
391
  "node_modules/@earendil-works/pi-ai": {
392
392
  "version": "1.3.0-rotom.2",
393
393
  "resolved": "file:vendor/earendil-works-pi-ai-1.3.0-rotom.2.tgz",
394
- "integrity": "sha512-rTZR8o2zh++q1FBqfAOjPgk6eGjjAEAc3ZXS3Id3uTjf/LbyQXeWiu/biDZDtpNw9eBof+z05/mcbfIp3Eethg==",
394
+ "integrity": "sha512-C+amXGgzVvJ3lQ17dSOfpjKzsyA6dvOR+WmMKEMFndG1Ap1cdO7i7gAHd09UG6h2A2vT2mY8ctfDCP4ijSiZVg==",
395
395
  "license": "MIT",
396
396
  "dependencies": {
397
397
  "@anthropic-ai/sdk": "0.129.0",
@@ -438,7 +438,7 @@
438
438
  "node_modules/@earendil-works/pi-codemode": {
439
439
  "version": "1.3.0-rotom.2",
440
440
  "resolved": "file:vendor/earendil-works-pi-codemode-1.3.0-rotom.2.tgz",
441
- "integrity": "sha512-RK2HCSJDciiq+d1wI3wcUEfOtbgHGgQdNBr2Rb6fu7fgo1AMlYVLEB9Usza+yEojQZo1qy+4Q9cntcIhoelliA==",
441
+ "integrity": "sha512-LBakjwHQ8hGkQc9DCGowRTyD7PKcw9/RwpboNq0DrTW/CrOpM0mtTpSIber1C/q+dgsNlcSAZijwpnRyLg+L3A==",
442
442
  "license": "MIT",
443
443
  "dependencies": {
444
444
  "quickjs-wasi": "3.6.2"
@@ -450,7 +450,7 @@
450
450
  "node_modules/@earendil-works/pi-coding-agent": {
451
451
  "version": "1.3.0-rotom.2",
452
452
  "resolved": "file:vendor/earendil-works-pi-coding-agent-1.3.0-rotom.2.tgz",
453
- "integrity": "sha512-exOT4pJFc3E++aNApXsPVJT0XPJ8xotpb4XgtJnVZt+rpCfq+PSucqP7//AFQTcjFgYAaOWPmx8vx3ybNBy1qQ==",
453
+ "integrity": "sha512-DGjn1daN0S9yJnZS/TTRc5jlYZXo80RaqIVfrkbOW+kSQp+J6OSn1rKRkF1o0Uhw0ORfGqfEHjsz2sHfxqkmpw==",
454
454
  "license": "MIT",
455
455
  "dependencies": {
456
456
  "@earendil-works/pi-agent-core": "1.3.0-rotom.2",
@@ -486,7 +486,7 @@
486
486
  "node_modules/@earendil-works/pi-mcp": {
487
487
  "version": "1.3.0-rotom.2",
488
488
  "resolved": "file:vendor/earendil-works-pi-mcp-1.3.0-rotom.2.tgz",
489
- "integrity": "sha512-PRp1ldn50YH9oewJX/ouxzKScTvpwXkrzn/B2jGvSRuTwNM0z6FifonB3l8YZxR+k17EdO9hG77LQ9cUTpU3FA==",
489
+ "integrity": "sha512-Fph1A8eYjzq8hc3NrshPKNCgX84X4zs29COkLaDZYL8dhzUubL5c2YrBz0o1NtXgP78U2GtrxdXZV5u+JrYgSg==",
490
490
  "license": "MIT",
491
491
  "dependencies": {
492
492
  "cross-spawn": "7.0.6"
@@ -498,7 +498,7 @@
498
498
  "node_modules/@earendil-works/pi-telemetry": {
499
499
  "version": "1.3.0-rotom.2",
500
500
  "resolved": "file:vendor/earendil-works-pi-telemetry-1.3.0-rotom.2.tgz",
501
- "integrity": "sha512-JX+D+lTE5wT1ZwTGIlYhQePxKMbPfctWZ3G9SWXNtcHV0BMKmN9tIW6O3Z5h6FbARDJvq5GgwIkz0P/ctCrDEg==",
501
+ "integrity": "sha512-S/VLSqA9jFw4YR/mIsK2CjpUIxFiUN8pTuAPojSJMPB9dTyj8W4KqTypB2gSUkIXqWSYvicUjrA5SOwLlIqz3g==",
502
502
  "license": "MIT",
503
503
  "engines": {
504
504
  "node": ">=22.19.0"
@@ -507,7 +507,7 @@
507
507
  "node_modules/@earendil-works/pi-tui": {
508
508
  "version": "1.3.0-rotom.2",
509
509
  "resolved": "file:vendor/earendil-works-pi-tui-1.3.0-rotom.2.tgz",
510
- "integrity": "sha512-IDuOXDilIvkRsF4bCx0Q02GK57ohnot6fL1yr70tbA9+TouxmtFBLqW0XeXh0oyZSXmavB8MBSxiVNhlAbiiFw==",
510
+ "integrity": "sha512-D5+gwzxsaEvFbaZqYl1gF2C3VniKbbMlLBBLGvxb1SrjU2Kb5LEj7GrFk8YO8VEd9f3lbom33XRIdrhd3U4HLA==",
511
511
  "license": "MIT",
512
512
  "dependencies": {
513
513
  "get-east-asian-width": "1.6.0",
@@ -47,6 +47,6 @@
47
47
  "rotomFork": {
48
48
  "upstream": "https://github.com/earendil-works/pi",
49
49
  "revision": "71023aec1546d6d677a65669c5665c0927ce0dd0",
50
- "sourceSha256": "0cbc3f20d1d7666b7945ebcba3ae377d097f69a1766e5bcc3fdc779e9f6bdc5d"
50
+ "sourceSha256": "4d29bfc5fb6e95f198de675f2ebcaed9e1f4a6b730c0a480ec0f057fc954ada6"
51
51
  }
52
52
  }
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAiC,MAAM,mBAAmB,CAAC;AAoBlE,OAAO,KAAK,EASX,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAMb,MAAM,aAAa,CAAC;AAuJrB,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AA2ChE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAwRD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CA0WzE,CAAC;AA2BF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CAgDlF,CAAC"}
1
+ {"version":3,"file":"anthropic-messages.d.ts","sourceRoot":"","sources":["../../src/api/anthropic-messages.ts"],"names":[],"mappings":"AAAA,OAAO,SAAiC,MAAM,mBAAmB,CAAC;AAoBlE,OAAO,KAAK,EASX,mBAAmB,EAEnB,cAAc,EACd,aAAa,EAMb,MAAM,aAAa,CAAC;AAwJrB,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAE1E,MAAM,MAAM,wBAAwB,GAAG,YAAY,GAAG,SAAS,CAAC;AA2ChE,MAAM,WAAW,gBAAiB,SAAQ,aAAa;IACtD;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;OAIG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,EAAE,wBAAwB,CAAC;IAC3C;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACtE;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;CACnB;AAwRD,eAAO,MAAM,MAAM,EAAE,cAAc,CAAC,oBAAoB,EAAE,gBAAgB,CA0WzE,CAAC;AA2BF,eAAO,MAAM,YAAY,EAAE,cAAc,CAAC,oBAAoB,EAAE,mBAAmB,CAgDlF,CAAC"}
@@ -2,6 +2,7 @@ import Anthropic, {} from "@anthropic-ai/sdk";
2
2
  import { ANTHROPIC_FEDERATION_RULE_ID_ENV, ANTHROPIC_IDENTITY_TOKEN_FILE_ENV, ANTHROPIC_ORGANIZATION_ID_ENV, ANTHROPIC_SERVICE_ACCOUNT_ID_ENV, ANTHROPIC_WORKSPACE_ID_ENV, } from "../env-api-keys.js";
3
3
  import { calculateCost } from "../models.js";
4
4
  import { appendAssistantMessageDiagnostic } from "../utils/diagnostics.js";
5
+ import { withConnectFailureCause } from "../utils/error-body.js";
5
6
  import { AssistantMessageEventStream } from "../utils/event-stream.js";
6
7
  import { headersToRecord } from "../utils/headers.js";
7
8
  import { parseJsonWithRepair, parseStreamingJson, parseToolCallArguments } from "../utils/json-parse.js";
@@ -717,7 +718,7 @@ export const stream = (model, context, options) => {
717
718
  delete block.partialJson;
718
719
  }
719
720
  output.stopReason = options?.signal?.aborted ? "aborted" : "error";
720
- output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);
721
+ output.errorMessage = error instanceof Error ? withConnectFailureCause(error.message, error) : JSON.stringify(error);
721
722
  stream.push({ type: "error", reason: output.stopReason, error: output });
722
723
  stream.end();
723
724
  }