@orion-agents/orion-code 0.3.2 → 0.3.4

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 (778) hide show
  1. package/CHANGELOG.md +83 -0
  2. package/README.md +46 -18
  3. package/README.zh-CN.md +36 -16
  4. package/dist/runtime/agent-runtime-controller.d.ts +1 -0
  5. package/dist/runtime/agent-runtime-controller.js +92 -41
  6. package/dist/runtime/capability-receipt-journal.js +1 -1
  7. package/dist/runtime/durable-tool-receipt-reader.js +1 -1
  8. package/dist/runtime/legacy-thread-materializer.js +2 -2
  9. package/dist/runtime/orion-runtime-v1.d.ts +2 -1
  10. package/dist/runtime/orion-runtime-v1.js +18 -16
  11. package/dist/runtime/orion-session-runner.d.ts +2 -0
  12. package/dist/runtime/orion-session-runner.js +12 -4
  13. package/dist/runtime/product-bootstrap.d.ts +6 -0
  14. package/dist/runtime/product-bootstrap.js +389 -337
  15. package/dist/runtime/product-orion-runtime.d.ts +5 -0
  16. package/dist/runtime/product-orion-runtime.js +2 -0
  17. package/dist/runtime/release-receipts.d.ts +7 -3
  18. package/dist/runtime/release-receipts.js +79 -1
  19. package/dist/runtime/step-snapshot.d.ts +12 -0
  20. package/dist/runtime/step-snapshot.js +14 -1
  21. package/dist/runtime/subagent-thread-runtime.js +1 -1
  22. package/dist/runtime/thread-event-store.d.ts +10 -1
  23. package/dist/runtime/thread-event-store.js +48 -12
  24. package/dist/runtime/thread-projection.d.ts +19 -0
  25. package/dist/runtime/thread-projection.js +12 -0
  26. package/dist/runtime/thread-runtime.d.ts +2 -2
  27. package/dist/runtime/thread-runtime.js +2 -2
  28. package/dist/runtime/thread-session-index.d.ts +17 -1
  29. package/dist/runtime/thread-session-index.js +89 -6
  30. package/dist/runtime/thread-session-view.d.ts +4 -1
  31. package/dist/runtime/thread-session-view.js +5 -2
  32. package/dist/runtime/thread-ui-adapter.js +10 -3
  33. package/dist/runtime/tool-gateway.js +1 -0
  34. package/dist/runtime/turn-commit.js +1 -1
  35. package/dist/runtime/ui-events.d.ts +3 -0
  36. package/dist/runtime/workspace-runtime-kernel.d.ts +67 -0
  37. package/dist/runtime/workspace-runtime-kernel.js +148 -0
  38. package/dist/services/global-config.d.ts +2 -0
  39. package/dist/services/global-config.js +7 -1
  40. package/dist/services/provider-resilience/coordinator.d.ts +3 -1
  41. package/dist/services/provider-resilience/coordinator.js +23 -1
  42. package/dist/services/provider-resilience/request-gate.js +7 -2
  43. package/dist/services/redaction.js +19 -2
  44. package/dist/services/settings-coordinator.d.ts +3 -1
  45. package/dist/services/settings-coordinator.js +40 -8
  46. package/dist/services/settings-document-repository.d.ts +8 -1
  47. package/dist/services/settings-document-repository.js +22 -1
  48. package/dist/tui-ui/transcript-inspector-layout.js +13 -6
  49. package/dist/web/event-hub.d.ts +2 -0
  50. package/dist/web/event-hub.js +43 -6
  51. package/dist/web/file-read-service.d.ts +2 -0
  52. package/dist/web/file-read-service.js +39 -12
  53. package/dist/web/git-read-model-service.js +7 -0
  54. package/dist/web/protocol.d.ts +51 -3
  55. package/dist/web/protocol.js +38 -2
  56. package/dist/web/review-service.d.ts +1 -0
  57. package/dist/web/review-service.js +1 -0
  58. package/dist/web/server.js +30 -6
  59. package/dist/web/session-runtime-registry.d.ts +124 -0
  60. package/dist/web/session-runtime-registry.js +448 -0
  61. package/dist/web/terminal-manager.js +23 -4
  62. package/dist/web/terminal-server.js +35 -6
  63. package/dist/web/workbench-controller.d.ts +27 -3
  64. package/dist/web/workbench-controller.js +557 -134
  65. package/dist/web/workspace-mutation-arbiter.d.ts +54 -0
  66. package/dist/web/workspace-mutation-arbiter.js +267 -0
  67. package/dist/web-client/assets/{DiffViewer-eaQNsnCh.js → DiffViewer-D6mG729y.js} +1 -1
  68. package/dist/web-client/assets/FilesPanel-CCDoAZ1J.js +2 -0
  69. package/dist/web-client/assets/{GitPanel-CnU4XVr7.js → GitPanel-DtNgiH7A.js} +1 -1
  70. package/dist/web-client/assets/ReviewPanel-CKEBSt6P.js +1 -0
  71. package/dist/web-client/assets/{TerminalPanel-Q5mSSsoK.js → TerminalPanel-CNxMaBLp.js} +14 -14
  72. package/dist/web-client/assets/index-BBvNg3By.css +1 -0
  73. package/dist/web-client/assets/index-C6TDJwMC.js +17 -0
  74. package/dist/web-client/index.html +4 -4
  75. package/docs/architecture/v0.3.3-web-api.yaml +3205 -0
  76. package/docs/architecture/v0.3.4-stabilization-contract.md +32 -0
  77. package/docs/migration/v0.3.2-to-v0.3.3.md +62 -0
  78. package/docs/migration/v0.3.3-to-v0.3.4.md +36 -0
  79. package/docs/plan/v0.3.3-plan.md +1113 -0
  80. package/docs/plan/v0.3.4-stabilization-plan.md +89 -0
  81. package/docs/test/v0.3.3-web-workbench-e2e-plan.md +79 -0
  82. package/docs/test/v0.3.4-stabilization-e2e-plan.md +54 -0
  83. package/npm-shrinkwrap.json +25 -25
  84. package/package.json +10 -1
  85. package/dist/cli.d.ts.map +0 -1
  86. package/dist/cli.js.map +0 -1
  87. package/dist/commands/context-commands.d.ts.map +0 -1
  88. package/dist/commands/context-commands.js.map +0 -1
  89. package/dist/commands/context-tool-command-handlers.d.ts.map +0 -1
  90. package/dist/commands/context-tool-command-handlers.js.map +0 -1
  91. package/dist/commands/core-command-handlers.d.ts.map +0 -1
  92. package/dist/commands/core-command-handlers.js.map +0 -1
  93. package/dist/commands/diagnostic-command-handlers.d.ts.map +0 -1
  94. package/dist/commands/diagnostic-command-handlers.js.map +0 -1
  95. package/dist/commands/diagnostic-commands.d.ts.map +0 -1
  96. package/dist/commands/diagnostic-commands.js.map +0 -1
  97. package/dist/commands/index.d.ts.map +0 -1
  98. package/dist/commands/index.js.map +0 -1
  99. package/dist/commands/model-command-handlers.d.ts.map +0 -1
  100. package/dist/commands/model-command-handlers.js.map +0 -1
  101. package/dist/commands/model-commands.d.ts.map +0 -1
  102. package/dist/commands/model-commands.js.map +0 -1
  103. package/dist/commands/parser.d.ts.map +0 -1
  104. package/dist/commands/parser.js.map +0 -1
  105. package/dist/commands/registry.d.ts.map +0 -1
  106. package/dist/commands/registry.js.map +0 -1
  107. package/dist/commands/session-command-handlers.d.ts.map +0 -1
  108. package/dist/commands/session-command-handlers.js.map +0 -1
  109. package/dist/commands/session-commands.d.ts.map +0 -1
  110. package/dist/commands/session-commands.js.map +0 -1
  111. package/dist/commands/system-commands.d.ts.map +0 -1
  112. package/dist/commands/system-commands.js.map +0 -1
  113. package/dist/commands/target-command.d.ts.map +0 -1
  114. package/dist/commands/target-command.js.map +0 -1
  115. package/dist/commands/tool-commands.d.ts.map +0 -1
  116. package/dist/commands/tool-commands.js.map +0 -1
  117. package/dist/commands/types.d.ts.map +0 -1
  118. package/dist/commands/types.js.map +0 -1
  119. package/dist/commands/workflow-command-handlers.d.ts.map +0 -1
  120. package/dist/commands/workflow-command-handlers.js.map +0 -1
  121. package/dist/commands/workflow-commands.d.ts.map +0 -1
  122. package/dist/commands/workflow-commands.js.map +0 -1
  123. package/dist/core/checkpoint.d.ts.map +0 -1
  124. package/dist/core/checkpoint.js.map +0 -1
  125. package/dist/core/cost-tracker.d.ts.map +0 -1
  126. package/dist/core/cost-tracker.js.map +0 -1
  127. package/dist/core/security-warning.d.ts.map +0 -1
  128. package/dist/core/security-warning.js.map +0 -1
  129. package/dist/core/strategy-tracker.d.ts.map +0 -1
  130. package/dist/core/strategy-tracker.js.map +0 -1
  131. package/dist/core/tool-artifacts.d.ts.map +0 -1
  132. package/dist/core/tool-artifacts.js.map +0 -1
  133. package/dist/core/warn-dedup.d.ts.map +0 -1
  134. package/dist/core/warn-dedup.js.map +0 -1
  135. package/dist/framework/agent-mode.d.ts.map +0 -1
  136. package/dist/framework/agent-mode.js.map +0 -1
  137. package/dist/framework/external-assertion.d.ts.map +0 -1
  138. package/dist/framework/external-assertion.js.map +0 -1
  139. package/dist/framework/index.d.ts.map +0 -1
  140. package/dist/framework/index.js.map +0 -1
  141. package/dist/framework/loop-budget-contract.d.ts.map +0 -1
  142. package/dist/framework/loop-budget-contract.js.map +0 -1
  143. package/dist/framework/prompt.d.ts.map +0 -1
  144. package/dist/framework/prompt.js.map +0 -1
  145. package/dist/framework/query.d.ts.map +0 -1
  146. package/dist/framework/query.js.map +0 -1
  147. package/dist/framework/stop-decision.d.ts.map +0 -1
  148. package/dist/framework/stop-decision.js.map +0 -1
  149. package/dist/framework/store.d.ts.map +0 -1
  150. package/dist/framework/store.js.map +0 -1
  151. package/dist/framework/tool-call-orchestrator.d.ts.map +0 -1
  152. package/dist/framework/tool-call-orchestrator.js.map +0 -1
  153. package/dist/framework/tool-serializer.d.ts.map +0 -1
  154. package/dist/framework/tool-serializer.js.map +0 -1
  155. package/dist/framework/tool-state.d.ts.map +0 -1
  156. package/dist/framework/tool-state.js.map +0 -1
  157. package/dist/framework/tool.d.ts.map +0 -1
  158. package/dist/framework/tool.js.map +0 -1
  159. package/dist/harness/assembler.d.ts.map +0 -1
  160. package/dist/harness/assembler.js.map +0 -1
  161. package/dist/harness/capability-profile.d.ts.map +0 -1
  162. package/dist/harness/capability-profile.js.map +0 -1
  163. package/dist/harness/capsule.d.ts.map +0 -1
  164. package/dist/harness/capsule.js.map +0 -1
  165. package/dist/harness/compact-benchmark-corpus.d.ts.map +0 -1
  166. package/dist/harness/compact-benchmark-corpus.js.map +0 -1
  167. package/dist/harness/context-harness.d.ts.map +0 -1
  168. package/dist/harness/context-harness.js.map +0 -1
  169. package/dist/harness/contract.d.ts.map +0 -1
  170. package/dist/harness/contract.js.map +0 -1
  171. package/dist/harness/drift-guard.d.ts.map +0 -1
  172. package/dist/harness/drift-guard.js.map +0 -1
  173. package/dist/harness/evidence.d.ts.map +0 -1
  174. package/dist/harness/evidence.js.map +0 -1
  175. package/dist/harness/index.d.ts.map +0 -1
  176. package/dist/harness/index.js.map +0 -1
  177. package/dist/harness/intent.d.ts.map +0 -1
  178. package/dist/harness/intent.js.map +0 -1
  179. package/dist/harness/ledger.d.ts.map +0 -1
  180. package/dist/harness/ledger.js.map +0 -1
  181. package/dist/harness/progress-controller.d.ts.map +0 -1
  182. package/dist/harness/progress-controller.js.map +0 -1
  183. package/dist/harness/state.d.ts.map +0 -1
  184. package/dist/harness/state.js.map +0 -1
  185. package/dist/harness/stop-controller.d.ts.map +0 -1
  186. package/dist/harness/stop-controller.js.map +0 -1
  187. package/dist/harness/turn-summary.d.ts.map +0 -1
  188. package/dist/harness/turn-summary.js.map +0 -1
  189. package/dist/harness/types.d.ts.map +0 -1
  190. package/dist/harness/types.js.map +0 -1
  191. package/dist/harness/verification.d.ts.map +0 -1
  192. package/dist/harness/verification.js.map +0 -1
  193. package/dist/index.d.ts.map +0 -1
  194. package/dist/index.js.map +0 -1
  195. package/dist/memory/embeddings.d.ts.map +0 -1
  196. package/dist/memory/embeddings.js.map +0 -1
  197. package/dist/memory/entrypoint.d.ts.map +0 -1
  198. package/dist/memory/entrypoint.js.map +0 -1
  199. package/dist/memory/index.d.ts.map +0 -1
  200. package/dist/memory/index.js.map +0 -1
  201. package/dist/memory/prompt-context.d.ts.map +0 -1
  202. package/dist/memory/prompt-context.js.map +0 -1
  203. package/dist/memory/prompts.d.ts.map +0 -1
  204. package/dist/memory/prompts.js.map +0 -1
  205. package/dist/memory/relevant-finder.d.ts.map +0 -1
  206. package/dist/memory/relevant-finder.js.map +0 -1
  207. package/dist/memory/semantic-config.d.ts.map +0 -1
  208. package/dist/memory/semantic-config.js.map +0 -1
  209. package/dist/memory/semantic-search.d.ts.map +0 -1
  210. package/dist/memory/semantic-search.js.map +0 -1
  211. package/dist/memory/storage.d.ts.map +0 -1
  212. package/dist/memory/storage.js.map +0 -1
  213. package/dist/memory/store.d.ts.map +0 -1
  214. package/dist/memory/store.js.map +0 -1
  215. package/dist/memory/team-paths.d.ts.map +0 -1
  216. package/dist/memory/team-paths.js.map +0 -1
  217. package/dist/memory/types.d.ts.map +0 -1
  218. package/dist/memory/types.js.map +0 -1
  219. package/dist/memory/validation.d.ts.map +0 -1
  220. package/dist/memory/validation.js.map +0 -1
  221. package/dist/memory/vector-store.d.ts.map +0 -1
  222. package/dist/memory/vector-store.js.map +0 -1
  223. package/dist/migration/command.d.ts.map +0 -1
  224. package/dist/migration/command.js.map +0 -1
  225. package/dist/migration/index.d.ts.map +0 -1
  226. package/dist/migration/index.js.map +0 -1
  227. package/dist/migration/migrate.d.ts.map +0 -1
  228. package/dist/migration/migrate.js.map +0 -1
  229. package/dist/migration/types.d.ts.map +0 -1
  230. package/dist/migration/types.js.map +0 -1
  231. package/dist/print-ui/launch.d.ts.map +0 -1
  232. package/dist/print-ui/launch.js.map +0 -1
  233. package/dist/product/environment.d.ts.map +0 -1
  234. package/dist/product/environment.js.map +0 -1
  235. package/dist/product/identity.d.ts.map +0 -1
  236. package/dist/product/identity.js.map +0 -1
  237. package/dist/product/index.d.ts.map +0 -1
  238. package/dist/product/index.js.map +0 -1
  239. package/dist/product/paths.d.ts.map +0 -1
  240. package/dist/product/paths.js.map +0 -1
  241. package/dist/product/version.d.ts.map +0 -1
  242. package/dist/product/version.js.map +0 -1
  243. package/dist/runtime/agent-loop.d.ts.map +0 -1
  244. package/dist/runtime/agent-loop.js.map +0 -1
  245. package/dist/runtime/agent-runtime-controller.d.ts.map +0 -1
  246. package/dist/runtime/agent-runtime-controller.js.map +0 -1
  247. package/dist/runtime/agent-runtime-protocol.d.ts.map +0 -1
  248. package/dist/runtime/agent-runtime-protocol.js.map +0 -1
  249. package/dist/runtime/agent-runtime-runner.d.ts.map +0 -1
  250. package/dist/runtime/agent-runtime-runner.js.map +0 -1
  251. package/dist/runtime/agent-status.d.ts.map +0 -1
  252. package/dist/runtime/agent-status.js.map +0 -1
  253. package/dist/runtime/aggregate-tool-presenter.d.ts.map +0 -1
  254. package/dist/runtime/aggregate-tool-presenter.js.map +0 -1
  255. package/dist/runtime/batch-read-service.d.ts.map +0 -1
  256. package/dist/runtime/batch-read-service.js.map +0 -1
  257. package/dist/runtime/builtin-tool-provider.d.ts.map +0 -1
  258. package/dist/runtime/builtin-tool-provider.js.map +0 -1
  259. package/dist/runtime/capabilities/compiler.d.ts.map +0 -1
  260. package/dist/runtime/capabilities/compiler.js.map +0 -1
  261. package/dist/runtime/capabilities/index.d.ts.map +0 -1
  262. package/dist/runtime/capabilities/index.js.map +0 -1
  263. package/dist/runtime/capabilities/types.d.ts.map +0 -1
  264. package/dist/runtime/capabilities/types.js.map +0 -1
  265. package/dist/runtime/capability-receipt-journal.d.ts.map +0 -1
  266. package/dist/runtime/capability-receipt-journal.js.map +0 -1
  267. package/dist/runtime/capability-step-factory.d.ts.map +0 -1
  268. package/dist/runtime/capability-step-factory.js.map +0 -1
  269. package/dist/runtime/compact-transaction.d.ts.map +0 -1
  270. package/dist/runtime/compact-transaction.js.map +0 -1
  271. package/dist/runtime/composer/buffer.d.ts.map +0 -1
  272. package/dist/runtime/composer/buffer.js.map +0 -1
  273. package/dist/runtime/composer/grapheme.d.ts.map +0 -1
  274. package/dist/runtime/composer/grapheme.js.map +0 -1
  275. package/dist/runtime/composer/history.d.ts.map +0 -1
  276. package/dist/runtime/composer/history.js.map +0 -1
  277. package/dist/runtime/composer/layout.d.ts.map +0 -1
  278. package/dist/runtime/composer/layout.js.map +0 -1
  279. package/dist/runtime/core-tools/descriptors.d.ts.map +0 -1
  280. package/dist/runtime/core-tools/descriptors.js.map +0 -1
  281. package/dist/runtime/durable-tool-receipt-reader.d.ts.map +0 -1
  282. package/dist/runtime/durable-tool-receipt-reader.js.map +0 -1
  283. package/dist/runtime/first-party-core-provider.d.ts.map +0 -1
  284. package/dist/runtime/first-party-core-provider.js.map +0 -1
  285. package/dist/runtime/first-party-long-tail-provider.d.ts.map +0 -1
  286. package/dist/runtime/first-party-long-tail-provider.js.map +0 -1
  287. package/dist/runtime/first-party-tool-services.d.ts.map +0 -1
  288. package/dist/runtime/first-party-tool-services.js.map +0 -1
  289. package/dist/runtime/first-party-tool-universe.d.ts.map +0 -1
  290. package/dist/runtime/first-party-tool-universe.js.map +0 -1
  291. package/dist/runtime/goal-lifecycle-v2.d.ts.map +0 -1
  292. package/dist/runtime/goal-lifecycle-v2.js.map +0 -1
  293. package/dist/runtime/goal-runtime-coordinator.d.ts.map +0 -1
  294. package/dist/runtime/goal-runtime-coordinator.js.map +0 -1
  295. package/dist/runtime/goals/completion-audit.d.ts.map +0 -1
  296. package/dist/runtime/goals/completion-audit.js.map +0 -1
  297. package/dist/runtime/goals/evidence.d.ts.map +0 -1
  298. package/dist/runtime/goals/evidence.js.map +0 -1
  299. package/dist/runtime/goals/objective.d.ts.map +0 -1
  300. package/dist/runtime/goals/objective.js.map +0 -1
  301. package/dist/runtime/goals/presentation.d.ts.map +0 -1
  302. package/dist/runtime/goals/presentation.js.map +0 -1
  303. package/dist/runtime/goals/types.d.ts.map +0 -1
  304. package/dist/runtime/goals/types.js.map +0 -1
  305. package/dist/runtime/harness-confluence.d.ts.map +0 -1
  306. package/dist/runtime/harness-confluence.js.map +0 -1
  307. package/dist/runtime/harness-eval.d.ts.map +0 -1
  308. package/dist/runtime/harness-eval.js.map +0 -1
  309. package/dist/runtime/harness-metrics.d.ts.map +0 -1
  310. package/dist/runtime/harness-metrics.js.map +0 -1
  311. package/dist/runtime/legacy-session-importer.d.ts.map +0 -1
  312. package/dist/runtime/legacy-session-importer.js.map +0 -1
  313. package/dist/runtime/legacy-thread-materializer.d.ts.map +0 -1
  314. package/dist/runtime/legacy-thread-materializer.js.map +0 -1
  315. package/dist/runtime/long-tail-tools/descriptors.d.ts.map +0 -1
  316. package/dist/runtime/long-tail-tools/descriptors.js.map +0 -1
  317. package/dist/runtime/loop-budget.d.ts.map +0 -1
  318. package/dist/runtime/loop-budget.js.map +0 -1
  319. package/dist/runtime/mcp/first-party-mcp-adapter.d.ts.map +0 -1
  320. package/dist/runtime/mcp/first-party-mcp-adapter.js.map +0 -1
  321. package/dist/runtime/mcp/first-party-mcp-config.d.ts.map +0 -1
  322. package/dist/runtime/mcp/first-party-mcp-config.js.map +0 -1
  323. package/dist/runtime/mcp/index.d.ts.map +0 -1
  324. package/dist/runtime/mcp/index.js.map +0 -1
  325. package/dist/runtime/mcp/lazy-mcp-runtime.d.ts.map +0 -1
  326. package/dist/runtime/mcp/lazy-mcp-runtime.js.map +0 -1
  327. package/dist/runtime/mcp/types.d.ts.map +0 -1
  328. package/dist/runtime/mcp/types.js.map +0 -1
  329. package/dist/runtime/model-coordinator.d.ts.map +0 -1
  330. package/dist/runtime/model-coordinator.js.map +0 -1
  331. package/dist/runtime/orion-runtime-v1.d.ts.map +0 -1
  332. package/dist/runtime/orion-runtime-v1.js.map +0 -1
  333. package/dist/runtime/orion-session-runner.d.ts.map +0 -1
  334. package/dist/runtime/orion-session-runner.js.map +0 -1
  335. package/dist/runtime/plan-review.d.ts.map +0 -1
  336. package/dist/runtime/plan-review.js.map +0 -1
  337. package/dist/runtime/product-bootstrap.d.ts.map +0 -1
  338. package/dist/runtime/product-bootstrap.js.map +0 -1
  339. package/dist/runtime/product-orion-runtime.d.ts.map +0 -1
  340. package/dist/runtime/product-orion-runtime.js.map +0 -1
  341. package/dist/runtime/prompts/index.d.ts.map +0 -1
  342. package/dist/runtime/prompts/index.js.map +0 -1
  343. package/dist/runtime/prompts/prompt-registry.d.ts.map +0 -1
  344. package/dist/runtime/prompts/prompt-registry.js.map +0 -1
  345. package/dist/runtime/prompts/types.d.ts.map +0 -1
  346. package/dist/runtime/prompts/types.js.map +0 -1
  347. package/dist/runtime/protocol/canonical.d.ts.map +0 -1
  348. package/dist/runtime/protocol/canonical.js.map +0 -1
  349. package/dist/runtime/protocol/index.d.ts.map +0 -1
  350. package/dist/runtime/protocol/index.js.map +0 -1
  351. package/dist/runtime/protocol/runtime-protocol-v1.d.ts.map +0 -1
  352. package/dist/runtime/protocol/runtime-protocol-v1.js.map +0 -1
  353. package/dist/runtime/release-receipts.d.ts.map +0 -1
  354. package/dist/runtime/release-receipts.js.map +0 -1
  355. package/dist/runtime/resource-scope.d.ts.map +0 -1
  356. package/dist/runtime/resource-scope.js.map +0 -1
  357. package/dist/runtime/rich-text/ansi-parser.d.ts.map +0 -1
  358. package/dist/runtime/rich-text/ansi-parser.js.map +0 -1
  359. package/dist/runtime/rich-text/layout.d.ts.map +0 -1
  360. package/dist/runtime/rich-text/layout.js.map +0 -1
  361. package/dist/runtime/rich-text/markdown-parser.d.ts.map +0 -1
  362. package/dist/runtime/rich-text/markdown-parser.js.map +0 -1
  363. package/dist/runtime/rich-text/sanitizer.d.ts.map +0 -1
  364. package/dist/runtime/rich-text/sanitizer.js.map +0 -1
  365. package/dist/runtime/rich-text/types.d.ts.map +0 -1
  366. package/dist/runtime/rich-text/types.js.map +0 -1
  367. package/dist/runtime/runtime-event-buffer.d.ts.map +0 -1
  368. package/dist/runtime/runtime-event-buffer.js.map +0 -1
  369. package/dist/runtime/runtime-services.d.ts.map +0 -1
  370. package/dist/runtime/runtime-services.js.map +0 -1
  371. package/dist/runtime/session-composer-control.d.ts.map +0 -1
  372. package/dist/runtime/session-composer-control.js.map +0 -1
  373. package/dist/runtime/session-history-recovery.d.ts.map +0 -1
  374. package/dist/runtime/session-history-recovery.js.map +0 -1
  375. package/dist/runtime/skills/bounded-lru-cache.d.ts.map +0 -1
  376. package/dist/runtime/skills/bounded-lru-cache.js.map +0 -1
  377. package/dist/runtime/skills/filesystem-skill-provider.d.ts.map +0 -1
  378. package/dist/runtime/skills/filesystem-skill-provider.js.map +0 -1
  379. package/dist/runtime/skills/index.d.ts.map +0 -1
  380. package/dist/runtime/skills/index.js.map +0 -1
  381. package/dist/runtime/skills/lazy-skill-runtime.d.ts.map +0 -1
  382. package/dist/runtime/skills/lazy-skill-runtime.js.map +0 -1
  383. package/dist/runtime/skills/types.d.ts.map +0 -1
  384. package/dist/runtime/skills/types.js.map +0 -1
  385. package/dist/runtime/step-snapshot.d.ts.map +0 -1
  386. package/dist/runtime/step-snapshot.js.map +0 -1
  387. package/dist/runtime/subagent-thread-runtime.d.ts.map +0 -1
  388. package/dist/runtime/subagent-thread-runtime.js.map +0 -1
  389. package/dist/runtime/subagents/budget.d.ts.map +0 -1
  390. package/dist/runtime/subagents/budget.js.map +0 -1
  391. package/dist/runtime/subagents/child-executor-guard.d.ts.map +0 -1
  392. package/dist/runtime/subagents/child-executor-guard.js.map +0 -1
  393. package/dist/runtime/subagents/context-builder.d.ts.map +0 -1
  394. package/dist/runtime/subagents/context-builder.js.map +0 -1
  395. package/dist/runtime/subagents/index.d.ts.map +0 -1
  396. package/dist/runtime/subagents/index.js.map +0 -1
  397. package/dist/runtime/subagents/parent-step-fork.d.ts.map +0 -1
  398. package/dist/runtime/subagents/parent-step-fork.js.map +0 -1
  399. package/dist/runtime/subagents/policy.d.ts.map +0 -1
  400. package/dist/runtime/subagents/policy.js.map +0 -1
  401. package/dist/runtime/subagents/presets.d.ts.map +0 -1
  402. package/dist/runtime/subagents/presets.js.map +0 -1
  403. package/dist/runtime/subagents/production.d.ts.map +0 -1
  404. package/dist/runtime/subagents/production.js.map +0 -1
  405. package/dist/runtime/subagents/provider-gate.d.ts.map +0 -1
  406. package/dist/runtime/subagents/provider-gate.js.map +0 -1
  407. package/dist/runtime/subagents/receipt-journal.d.ts.map +0 -1
  408. package/dist/runtime/subagents/receipt-journal.js.map +0 -1
  409. package/dist/runtime/subagents/research-artifact.d.ts.map +0 -1
  410. package/dist/runtime/subagents/research-artifact.js.map +0 -1
  411. package/dist/runtime/subagents/research-citation.d.ts.map +0 -1
  412. package/dist/runtime/subagents/research-citation.js.map +0 -1
  413. package/dist/runtime/subagents/research-contract.d.ts.map +0 -1
  414. package/dist/runtime/subagents/research-contract.js.map +0 -1
  415. package/dist/runtime/subagents/research-quality.d.ts.map +0 -1
  416. package/dist/runtime/subagents/research-quality.js.map +0 -1
  417. package/dist/runtime/subagents/research-renderer.d.ts.map +0 -1
  418. package/dist/runtime/subagents/research-renderer.js.map +0 -1
  419. package/dist/runtime/subagents/research-types.d.ts.map +0 -1
  420. package/dist/runtime/subagents/research-types.js.map +0 -1
  421. package/dist/runtime/subagents/result-parser.d.ts.map +0 -1
  422. package/dist/runtime/subagents/result-parser.js.map +0 -1
  423. package/dist/runtime/subagents/runner.d.ts.map +0 -1
  424. package/dist/runtime/subagents/runner.js.map +0 -1
  425. package/dist/runtime/subagents/runtime-contract.d.ts.map +0 -1
  426. package/dist/runtime/subagents/runtime-contract.js.map +0 -1
  427. package/dist/runtime/subagents/runtime-integration.d.ts.map +0 -1
  428. package/dist/runtime/subagents/runtime-integration.js.map +0 -1
  429. package/dist/runtime/subagents/supervisor.d.ts.map +0 -1
  430. package/dist/runtime/subagents/supervisor.js.map +0 -1
  431. package/dist/runtime/subagents/tool.d.ts.map +0 -1
  432. package/dist/runtime/subagents/tool.js.map +0 -1
  433. package/dist/runtime/subagents/types.d.ts.map +0 -1
  434. package/dist/runtime/subagents/types.js.map +0 -1
  435. package/dist/runtime/subagents/web-research-adapter.d.ts.map +0 -1
  436. package/dist/runtime/subagents/web-research-adapter.js.map +0 -1
  437. package/dist/runtime/task-context-service.d.ts.map +0 -1
  438. package/dist/runtime/task-context-service.js.map +0 -1
  439. package/dist/runtime/thread-admission.d.ts.map +0 -1
  440. package/dist/runtime/thread-admission.js.map +0 -1
  441. package/dist/runtime/thread-compact-persistence.d.ts.map +0 -1
  442. package/dist/runtime/thread-compact-persistence.js.map +0 -1
  443. package/dist/runtime/thread-event-store.d.ts.map +0 -1
  444. package/dist/runtime/thread-event-store.js.map +0 -1
  445. package/dist/runtime/thread-projection.d.ts.map +0 -1
  446. package/dist/runtime/thread-projection.js.map +0 -1
  447. package/dist/runtime/thread-runtime.d.ts.map +0 -1
  448. package/dist/runtime/thread-runtime.js.map +0 -1
  449. package/dist/runtime/thread-session-index.d.ts.map +0 -1
  450. package/dist/runtime/thread-session-index.js.map +0 -1
  451. package/dist/runtime/thread-session-view.d.ts.map +0 -1
  452. package/dist/runtime/thread-session-view.js.map +0 -1
  453. package/dist/runtime/thread-tool-journal.d.ts.map +0 -1
  454. package/dist/runtime/thread-tool-journal.js.map +0 -1
  455. package/dist/runtime/thread-ui-adapter.d.ts.map +0 -1
  456. package/dist/runtime/thread-ui-adapter.js.map +0 -1
  457. package/dist/runtime/tool-detail-repository.d.ts.map +0 -1
  458. package/dist/runtime/tool-detail-repository.js.map +0 -1
  459. package/dist/runtime/tool-gateway.d.ts.map +0 -1
  460. package/dist/runtime/tool-gateway.js.map +0 -1
  461. package/dist/runtime/tool-output-presentation.d.ts.map +0 -1
  462. package/dist/runtime/tool-output-presentation.js.map +0 -1
  463. package/dist/runtime/tool-receipt-validator.d.ts.map +0 -1
  464. package/dist/runtime/tool-receipt-validator.js.map +0 -1
  465. package/dist/runtime/turn-commit.d.ts.map +0 -1
  466. package/dist/runtime/turn-commit.js.map +0 -1
  467. package/dist/runtime/turn-controller.d.ts.map +0 -1
  468. package/dist/runtime/turn-controller.js.map +0 -1
  469. package/dist/runtime/ui-events.d.ts.map +0 -1
  470. package/dist/runtime/ui-events.js.map +0 -1
  471. package/dist/runtime/ui-view-model.d.ts.map +0 -1
  472. package/dist/runtime/ui-view-model.js.map +0 -1
  473. package/dist/services/atomic-write.d.ts.map +0 -1
  474. package/dist/services/atomic-write.js.map +0 -1
  475. package/dist/services/auth/auth.d.ts.map +0 -1
  476. package/dist/services/auth/auth.js.map +0 -1
  477. package/dist/services/auth/aws.d.ts.map +0 -1
  478. package/dist/services/auth/aws.js.map +0 -1
  479. package/dist/services/auth/index.d.ts.map +0 -1
  480. package/dist/services/auth/index.js.map +0 -1
  481. package/dist/services/auto-fix/autoFixConfig.d.ts.map +0 -1
  482. package/dist/services/auto-fix/autoFixConfig.js.map +0 -1
  483. package/dist/services/auto-fix/autoFixHook.d.ts.map +0 -1
  484. package/dist/services/auto-fix/autoFixHook.js.map +0 -1
  485. package/dist/services/auto-fix/autoFixRunner.d.ts.map +0 -1
  486. package/dist/services/auto-fix/autoFixRunner.js.map +0 -1
  487. package/dist/services/auto-fix/index.d.ts.map +0 -1
  488. package/dist/services/auto-fix/index.js.map +0 -1
  489. package/dist/services/bounded-response.d.ts.map +0 -1
  490. package/dist/services/bounded-response.js.map +0 -1
  491. package/dist/services/commit-plan.d.ts.map +0 -1
  492. package/dist/services/commit-plan.js.map +0 -1
  493. package/dist/services/compact/auto-compact.d.ts.map +0 -1
  494. package/dist/services/compact/auto-compact.js.map +0 -1
  495. package/dist/services/compact/compact.d.ts.map +0 -1
  496. package/dist/services/compact/compact.js.map +0 -1
  497. package/dist/services/compact/coordinator.d.ts.map +0 -1
  498. package/dist/services/compact/coordinator.js.map +0 -1
  499. package/dist/services/compact/fingerprint.d.ts.map +0 -1
  500. package/dist/services/compact/fingerprint.js.map +0 -1
  501. package/dist/services/compact/index.d.ts.map +0 -1
  502. package/dist/services/compact/index.js.map +0 -1
  503. package/dist/services/compact/planner.d.ts.map +0 -1
  504. package/dist/services/compact/planner.js.map +0 -1
  505. package/dist/services/compact/semantic-summary.d.ts.map +0 -1
  506. package/dist/services/compact/semantic-summary.js.map +0 -1
  507. package/dist/services/compact/summary-generator.d.ts.map +0 -1
  508. package/dist/services/compact/summary-generator.js.map +0 -1
  509. package/dist/services/compact/tool-call-groups.d.ts.map +0 -1
  510. package/dist/services/compact/tool-call-groups.js.map +0 -1
  511. package/dist/services/concurrent-sessions.d.ts.map +0 -1
  512. package/dist/services/concurrent-sessions.js.map +0 -1
  513. package/dist/services/config-dir.d.ts.map +0 -1
  514. package/dist/services/config-dir.js.map +0 -1
  515. package/dist/services/config.d.ts.map +0 -1
  516. package/dist/services/config.js.map +0 -1
  517. package/dist/services/diagnostic-tracking/diagnosticTracking.d.ts.map +0 -1
  518. package/dist/services/diagnostic-tracking/diagnosticTracking.js.map +0 -1
  519. package/dist/services/diagnostic-tracking/formatter.d.ts.map +0 -1
  520. package/dist/services/diagnostic-tracking/formatter.js.map +0 -1
  521. package/dist/services/diagnostic-tracking/index.d.ts.map +0 -1
  522. package/dist/services/diagnostic-tracking/index.js.map +0 -1
  523. package/dist/services/diagnostic-tracking/types.d.ts.map +0 -1
  524. package/dist/services/diagnostic-tracking/types.js.map +0 -1
  525. package/dist/services/doctor.d.ts.map +0 -1
  526. package/dist/services/doctor.js.map +0 -1
  527. package/dist/services/effort.d.ts.map +0 -1
  528. package/dist/services/effort.js.map +0 -1
  529. package/dist/services/file-context.d.ts.map +0 -1
  530. package/dist/services/file-context.js.map +0 -1
  531. package/dist/services/file-glob.d.ts.map +0 -1
  532. package/dist/services/file-glob.js.map +0 -1
  533. package/dist/services/file-lock.d.ts.map +0 -1
  534. package/dist/services/file-lock.js.map +0 -1
  535. package/dist/services/format.d.ts.map +0 -1
  536. package/dist/services/format.js.map +0 -1
  537. package/dist/services/global-config.d.ts.map +0 -1
  538. package/dist/services/global-config.js.map +0 -1
  539. package/dist/services/goal-storage.d.ts.map +0 -1
  540. package/dist/services/goal-storage.js.map +0 -1
  541. package/dist/services/llm.d.ts.map +0 -1
  542. package/dist/services/llm.js.map +0 -1
  543. package/dist/services/mcp/index.d.ts.map +0 -1
  544. package/dist/services/mcp/index.js.map +0 -1
  545. package/dist/services/mcp/transports.d.ts.map +0 -1
  546. package/dist/services/mcp/transports.js.map +0 -1
  547. package/dist/services/memory.d.ts.map +0 -1
  548. package/dist/services/memory.js.map +0 -1
  549. package/dist/services/model-catalog.d.ts.map +0 -1
  550. package/dist/services/model-catalog.js.map +0 -1
  551. package/dist/services/model-client-pool.d.ts.map +0 -1
  552. package/dist/services/model-client-pool.js.map +0 -1
  553. package/dist/services/model-context.d.ts.map +0 -1
  554. package/dist/services/model-context.js.map +0 -1
  555. package/dist/services/model-registry.d.ts.map +0 -1
  556. package/dist/services/model-registry.js.map +0 -1
  557. package/dist/services/project-instructions.d.ts.map +0 -1
  558. package/dist/services/project-instructions.js.map +0 -1
  559. package/dist/services/prompt-context.d.ts.map +0 -1
  560. package/dist/services/prompt-context.js.map +0 -1
  561. package/dist/services/provider-diagnostics.d.ts.map +0 -1
  562. package/dist/services/provider-diagnostics.js.map +0 -1
  563. package/dist/services/provider-resilience/circuit-breaker.d.ts.map +0 -1
  564. package/dist/services/provider-resilience/circuit-breaker.js.map +0 -1
  565. package/dist/services/provider-resilience/coordinator.d.ts.map +0 -1
  566. package/dist/services/provider-resilience/coordinator.js.map +0 -1
  567. package/dist/services/provider-resilience/error-classifier.d.ts.map +0 -1
  568. package/dist/services/provider-resilience/error-classifier.js.map +0 -1
  569. package/dist/services/provider-resilience/index.d.ts.map +0 -1
  570. package/dist/services/provider-resilience/index.js.map +0 -1
  571. package/dist/services/provider-resilience/request-gate.d.ts.map +0 -1
  572. package/dist/services/provider-resilience/request-gate.js.map +0 -1
  573. package/dist/services/provider-resilience/stream-recovery.d.ts.map +0 -1
  574. package/dist/services/provider-resilience/stream-recovery.js.map +0 -1
  575. package/dist/services/provider-resilience/types.d.ts.map +0 -1
  576. package/dist/services/provider-resilience/types.js.map +0 -1
  577. package/dist/services/redaction.d.ts.map +0 -1
  578. package/dist/services/redaction.js.map +0 -1
  579. package/dist/services/safe-project-reader.d.ts.map +0 -1
  580. package/dist/services/safe-project-reader.js.map +0 -1
  581. package/dist/services/session-index.d.ts.map +0 -1
  582. package/dist/services/session-index.js.map +0 -1
  583. package/dist/services/session-memory/index.d.ts.map +0 -1
  584. package/dist/services/session-memory/index.js.map +0 -1
  585. package/dist/services/session-memory/prompts.d.ts.map +0 -1
  586. package/dist/services/session-memory/prompts.js.map +0 -1
  587. package/dist/services/session-memory/sessionMemory.d.ts.map +0 -1
  588. package/dist/services/session-memory/sessionMemory.js.map +0 -1
  589. package/dist/services/session-storage.d.ts.map +0 -1
  590. package/dist/services/session-storage.js.map +0 -1
  591. package/dist/services/settings-coordinator.d.ts.map +0 -1
  592. package/dist/services/settings-coordinator.js.map +0 -1
  593. package/dist/services/settings-document-repository.d.ts.map +0 -1
  594. package/dist/services/settings-document-repository.js.map +0 -1
  595. package/dist/services/smart-routing.d.ts.map +0 -1
  596. package/dist/services/smart-routing.js.map +0 -1
  597. package/dist/services/storage-maintenance.d.ts.map +0 -1
  598. package/dist/services/storage-maintenance.js.map +0 -1
  599. package/dist/services/tool-allowlist.d.ts.map +0 -1
  600. package/dist/services/tool-allowlist.js.map +0 -1
  601. package/dist/services/usage-state.d.ts.map +0 -1
  602. package/dist/services/usage-state.js.map +0 -1
  603. package/dist/services/verification-profile.d.ts.map +0 -1
  604. package/dist/services/verification-profile.js.map +0 -1
  605. package/dist/services/web-search-adapters.d.ts.map +0 -1
  606. package/dist/services/web-search-adapters.js.map +0 -1
  607. package/dist/services/web-search-mcp.d.ts.map +0 -1
  608. package/dist/services/web-search-mcp.js.map +0 -1
  609. package/dist/services/web-search-provider.d.ts.map +0 -1
  610. package/dist/services/web-search-provider.js.map +0 -1
  611. package/dist/services/workspace-containment.d.ts.map +0 -1
  612. package/dist/services/workspace-containment.js.map +0 -1
  613. package/dist/services/workspace-diff.d.ts.map +0 -1
  614. package/dist/services/workspace-diff.js.map +0 -1
  615. package/dist/services/workspace-registry.d.ts.map +0 -1
  616. package/dist/services/workspace-registry.js.map +0 -1
  617. package/dist/services/workspace-state.d.ts.map +0 -1
  618. package/dist/services/workspace-state.js.map +0 -1
  619. package/dist/services/yaml-config.d.ts.map +0 -1
  620. package/dist/services/yaml-config.js.map +0 -1
  621. package/dist/terminal-ui/completion.d.ts.map +0 -1
  622. package/dist/terminal-ui/completion.js.map +0 -1
  623. package/dist/terminal-ui/editor.d.ts.map +0 -1
  624. package/dist/terminal-ui/editor.js.map +0 -1
  625. package/dist/terminal-ui/launch.d.ts.map +0 -1
  626. package/dist/terminal-ui/launch.js.map +0 -1
  627. package/dist/terminal-ui/output-queue.d.ts.map +0 -1
  628. package/dist/terminal-ui/output-queue.js.map +0 -1
  629. package/dist/terminal-ui/raw-editor.d.ts.map +0 -1
  630. package/dist/terminal-ui/raw-editor.js.map +0 -1
  631. package/dist/tools/_validate.d.ts.map +0 -1
  632. package/dist/tools/_validate.js.map +0 -1
  633. package/dist/tools/bash_security.d.ts.map +0 -1
  634. package/dist/tools/bash_security.js.map +0 -1
  635. package/dist/tools/core/common.d.ts.map +0 -1
  636. package/dist/tools/core/common.js.map +0 -1
  637. package/dist/tools/core/edit-file.d.ts.map +0 -1
  638. package/dist/tools/core/edit-file.js.map +0 -1
  639. package/dist/tools/core/exec-command.d.ts.map +0 -1
  640. package/dist/tools/core/exec-command.js.map +0 -1
  641. package/dist/tools/core/glob.d.ts.map +0 -1
  642. package/dist/tools/core/glob.js.map +0 -1
  643. package/dist/tools/core/grep.d.ts.map +0 -1
  644. package/dist/tools/core/grep.js.map +0 -1
  645. package/dist/tools/core/index.d.ts.map +0 -1
  646. package/dist/tools/core/index.js.map +0 -1
  647. package/dist/tools/core/list-files.d.ts.map +0 -1
  648. package/dist/tools/core/list-files.js.map +0 -1
  649. package/dist/tools/core/read-file.d.ts.map +0 -1
  650. package/dist/tools/core/read-file.js.map +0 -1
  651. package/dist/tools/core/write-file.d.ts.map +0 -1
  652. package/dist/tools/core/write-file.js.map +0 -1
  653. package/dist/tools/git.d.ts.map +0 -1
  654. package/dist/tools/git.js.map +0 -1
  655. package/dist/tools/lsp.d.ts.map +0 -1
  656. package/dist/tools/lsp.js.map +0 -1
  657. package/dist/tools/sandbox.d.ts.map +0 -1
  658. package/dist/tools/sandbox.js.map +0 -1
  659. package/dist/tools/todo.d.ts.map +0 -1
  660. package/dist/tools/todo.js.map +0 -1
  661. package/dist/tools/web.d.ts.map +0 -1
  662. package/dist/tools/web.js.map +0 -1
  663. package/dist/tui-core/frame.d.ts.map +0 -1
  664. package/dist/tui-core/frame.js.map +0 -1
  665. package/dist/tui-core/input-parser.d.ts.map +0 -1
  666. package/dist/tui-core/input-parser.js.map +0 -1
  667. package/dist/tui-core/style.d.ts.map +0 -1
  668. package/dist/tui-core/style.js.map +0 -1
  669. package/dist/tui-core/terminal-writer.d.ts.map +0 -1
  670. package/dist/tui-core/terminal-writer.js.map +0 -1
  671. package/dist/tui-ui/chrome-view-model.d.ts.map +0 -1
  672. package/dist/tui-ui/chrome-view-model.js.map +0 -1
  673. package/dist/tui-ui/inline-surface.d.ts.map +0 -1
  674. package/dist/tui-ui/inline-surface.js.map +0 -1
  675. package/dist/tui-ui/input-ownership.d.ts.map +0 -1
  676. package/dist/tui-ui/input-ownership.js.map +0 -1
  677. package/dist/tui-ui/launch.d.ts.map +0 -1
  678. package/dist/tui-ui/launch.js.map +0 -1
  679. package/dist/tui-ui/layout.d.ts.map +0 -1
  680. package/dist/tui-ui/layout.js.map +0 -1
  681. package/dist/tui-ui/pickers.d.ts.map +0 -1
  682. package/dist/tui-ui/pickers.js.map +0 -1
  683. package/dist/tui-ui/pixel-mascot.d.ts.map +0 -1
  684. package/dist/tui-ui/pixel-mascot.js.map +0 -1
  685. package/dist/tui-ui/render-scheduler.d.ts.map +0 -1
  686. package/dist/tui-ui/render-scheduler.js.map +0 -1
  687. package/dist/tui-ui/runner.d.ts.map +0 -1
  688. package/dist/tui-ui/runner.js.map +0 -1
  689. package/dist/tui-ui/state.d.ts.map +0 -1
  690. package/dist/tui-ui/state.js.map +0 -1
  691. package/dist/tui-ui/terminal-image.d.ts.map +0 -1
  692. package/dist/tui-ui/terminal-image.js.map +0 -1
  693. package/dist/tui-ui/theme-profile.d.ts.map +0 -1
  694. package/dist/tui-ui/theme-profile.js.map +0 -1
  695. package/dist/tui-ui/theme.d.ts.map +0 -1
  696. package/dist/tui-ui/theme.js.map +0 -1
  697. package/dist/tui-ui/transcript-cache.d.ts.map +0 -1
  698. package/dist/tui-ui/transcript-cache.js.map +0 -1
  699. package/dist/tui-ui/transcript-inspector-layout.d.ts.map +0 -1
  700. package/dist/tui-ui/transcript-inspector-layout.js.map +0 -1
  701. package/dist/tui-ui/transcript-inspector-surface.d.ts.map +0 -1
  702. package/dist/tui-ui/transcript-inspector-surface.js.map +0 -1
  703. package/dist/tui-ui/transcript-inspector.d.ts.map +0 -1
  704. package/dist/tui-ui/transcript-inspector.js.map +0 -1
  705. package/dist/tui-ui/transcript-layout.d.ts.map +0 -1
  706. package/dist/tui-ui/transcript-layout.js.map +0 -1
  707. package/dist/ui/box.d.ts.map +0 -1
  708. package/dist/ui/box.js.map +0 -1
  709. package/dist/ui/command-panel.d.ts.map +0 -1
  710. package/dist/ui/command-panel.js.map +0 -1
  711. package/dist/ui/file-completion.d.ts.map +0 -1
  712. package/dist/ui/file-completion.js.map +0 -1
  713. package/dist/ui/markdown.d.ts.map +0 -1
  714. package/dist/ui/markdown.js.map +0 -1
  715. package/dist/ui/multiline-input.d.ts.map +0 -1
  716. package/dist/ui/multiline-input.js.map +0 -1
  717. package/dist/ui/progress.d.ts.map +0 -1
  718. package/dist/ui/progress.js.map +0 -1
  719. package/dist/ui/shared/command-palette.d.ts.map +0 -1
  720. package/dist/ui/shared/command-palette.js.map +0 -1
  721. package/dist/ui/shared/command-suggestions.d.ts.map +0 -1
  722. package/dist/ui/shared/command-suggestions.js.map +0 -1
  723. package/dist/ui/shared/input-frame.d.ts.map +0 -1
  724. package/dist/ui/shared/input-frame.js.map +0 -1
  725. package/dist/ui/shared/text.d.ts.map +0 -1
  726. package/dist/ui/shared/text.js.map +0 -1
  727. package/dist/ui/shared/types.d.ts.map +0 -1
  728. package/dist/ui/shared/types.js.map +0 -1
  729. package/dist/ui/status-bar.d.ts.map +0 -1
  730. package/dist/ui/status-bar.js.map +0 -1
  731. package/dist/ui/stream-markdown.d.ts.map +0 -1
  732. package/dist/ui/stream-markdown.js.map +0 -1
  733. package/dist/ui/suggestions.d.ts.map +0 -1
  734. package/dist/ui/suggestions.js.map +0 -1
  735. package/dist/ui/tool-preview.d.ts.map +0 -1
  736. package/dist/ui/tool-preview.js.map +0 -1
  737. package/dist/ui/user-input.d.ts.map +0 -1
  738. package/dist/ui/user-input.js.map +0 -1
  739. package/dist/utils/debug-log.d.ts.map +0 -1
  740. package/dist/utils/debug-log.js.map +0 -1
  741. package/dist/utils/errors.d.ts.map +0 -1
  742. package/dist/utils/errors.js.map +0 -1
  743. package/dist/utils/json.d.ts.map +0 -1
  744. package/dist/utils/json.js.map +0 -1
  745. package/dist/utils/mask.d.ts.map +0 -1
  746. package/dist/utils/mask.js.map +0 -1
  747. package/dist/utils/observability.d.ts.map +0 -1
  748. package/dist/utils/observability.js.map +0 -1
  749. package/dist/utils/token-estimate.d.ts.map +0 -1
  750. package/dist/utils/token-estimate.js.map +0 -1
  751. package/dist/web/errors.d.ts.map +0 -1
  752. package/dist/web/errors.js.map +0 -1
  753. package/dist/web/event-hub.d.ts.map +0 -1
  754. package/dist/web/event-hub.js.map +0 -1
  755. package/dist/web/file-read-service.d.ts.map +0 -1
  756. package/dist/web/file-read-service.js.map +0 -1
  757. package/dist/web/git-read-model-service.d.ts.map +0 -1
  758. package/dist/web/git-read-model-service.js.map +0 -1
  759. package/dist/web/index.d.ts.map +0 -1
  760. package/dist/web/index.js.map +0 -1
  761. package/dist/web/launch.d.ts.map +0 -1
  762. package/dist/web/launch.js.map +0 -1
  763. package/dist/web/protocol.d.ts.map +0 -1
  764. package/dist/web/protocol.js.map +0 -1
  765. package/dist/web/review-service.d.ts.map +0 -1
  766. package/dist/web/review-service.js.map +0 -1
  767. package/dist/web/server.d.ts.map +0 -1
  768. package/dist/web/server.js.map +0 -1
  769. package/dist/web/terminal-manager.d.ts.map +0 -1
  770. package/dist/web/terminal-manager.js.map +0 -1
  771. package/dist/web/terminal-server.d.ts.map +0 -1
  772. package/dist/web/terminal-server.js.map +0 -1
  773. package/dist/web/workbench-controller.d.ts.map +0 -1
  774. package/dist/web/workbench-controller.js.map +0 -1
  775. package/dist/web-client/assets/FilesPanel-DYs1MhoM.js +0 -2
  776. package/dist/web-client/assets/ReviewPanel-BDxG670T.js +0 -1
  777. package/dist/web-client/assets/index-BWV5sIvw.css +0 -1
  778. package/dist/web-client/assets/index-VVUKj6FE.js +0 -17
@@ -14,7 +14,8 @@ const types_1 = require("./types");
14
14
  const error_classifier_1 = require("./error-classifier");
15
15
  const observability_1 = require("../../utils/observability");
16
16
  class ProviderResilienceCoordinator {
17
- constructor(config) {
17
+ constructor(config, requestGate) {
18
+ this.requestGate = requestGate;
18
19
  this.config = { ...types_1.DEFAULT_PROVIDER_RESILIENCE_CONFIG, ...config };
19
20
  }
20
21
  /** Execute a logical request with full retry/fallback/recovery logic. */
@@ -51,7 +52,13 @@ class ProviderResilienceCoordinator {
51
52
  }
52
53
  const attemptRecord = this.startAttempt(ctx, attempt, diagnostics, currentModel);
53
54
  diagnostics.attempts.push(attemptRecord);
55
+ let gateLease;
54
56
  try {
57
+ gateLease = await this.requestGate?.acquire({
58
+ priority: 0,
59
+ providerKey: ctx.providerKey,
60
+ ...(ctx.abortSignal ? { abortSignal: ctx.abortSignal } : {}),
61
+ });
55
62
  const result = await transport(attempt, ctx.abortSignal, currentModel, this.createAttemptReporter(attemptRecord));
56
63
  attemptRecord.outcome = 'succeeded';
57
64
  attemptRecord.endedAt = Date.now();
@@ -73,6 +80,18 @@ class ProviderResilienceCoordinator {
73
80
  attemptRecord.endedAt = Date.now();
74
81
  attemptRecord.outcome = 'failed';
75
82
  const classification = (0, error_classifier_1.classifyProviderError)(error, attemptRecord.semanticDeltaSeen);
83
+ if (classification.kind === 'aborted') {
84
+ attemptRecord.outcome = 'aborted';
85
+ attemptRecord.failureKind = 'aborted';
86
+ attemptRecord.retryDisposition = 'fail_fast';
87
+ diagnostics.finalState = 'aborted';
88
+ (0, observability_1.incrementDiagnosticMetric)('provider.failure.aborted');
89
+ (0, observability_1.incrementDiagnosticMetric)('provider.request.aborted');
90
+ throw new ProviderRetryExhaustedError(diagnostics, 'aborted by signal', error);
91
+ }
92
+ if (classification.kind === 'rate_limit' && classification.retryAfterMs) {
93
+ this.requestGate?.enterCooldown(ctx.providerKey, Date.now() + classification.retryAfterMs, `Provider rate limit; retry-after ${classification.retryAfterMs}ms`);
94
+ }
76
95
  attemptRecord.failureKind = classification.kind;
77
96
  if (attemptRecord.semanticDeltaSeen && !attemptRecord.usage) {
78
97
  diagnostics.unknownBilledAttemptCount++;
@@ -138,6 +157,9 @@ class ProviderResilienceCoordinator {
138
157
  throw new ProviderRetryExhaustedError(diagnostics, 'provider cooldown active', error);
139
158
  }
140
159
  }
160
+ finally {
161
+ gateLease?.release();
162
+ }
141
163
  }
142
164
  diagnostics.finalState = 'retry_exhausted';
143
165
  throw new ProviderRetryExhaustedError(diagnostics, `max attempts exhausted: ${String(lastError)}`, lastError);
@@ -8,6 +8,11 @@
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.ProviderRequestGate = void 0;
11
+ function createGateAbortError() {
12
+ const error = new Error('Provider request gate acquisition aborted.');
13
+ error.name = 'AbortError';
14
+ return error;
15
+ }
11
16
  class ProviderRequestGate {
12
17
  constructor(options = {}) {
13
18
  this.activeCount = 0;
@@ -26,7 +31,7 @@ class ProviderRequestGate {
26
31
  */
27
32
  acquire(request) {
28
33
  if (request.abortSignal?.aborted) {
29
- return Promise.reject(new Error('aborted'));
34
+ return Promise.reject(createGateAbortError());
30
35
  }
31
36
  return new Promise((resolve, reject) => {
32
37
  const waiter = { request, resolve, reject };
@@ -35,7 +40,7 @@ class ProviderRequestGate {
35
40
  const idx = this.waiters.indexOf(waiter);
36
41
  if (idx >= 0) {
37
42
  this.waiters.splice(idx, 1);
38
- reject(new Error('aborted'));
43
+ reject(createGateAbortError());
39
44
  this.tryDispatch();
40
45
  }
41
46
  request.abortSignal?.removeEventListener('abort', onAbort);
@@ -13,6 +13,10 @@ exports.redactTraceText = redactTraceText;
13
13
  * table-driven test is what stops the next format from silently leaking.
14
14
  */
15
15
  const SECRET_PATTERNS = [
16
+ // Redact URL userinfo before generic `token:` / `secret:` rules can consume
17
+ // only the password tail and make the complete credential boundary
18
+ // unrecognizable (issue #234).
19
+ [/\b([a-z][a-z0-9+.-]*:\/\/)[^\s/@]+@/gi, '$1[REDACTED_CREDENTIAL]@'],
16
20
  [
17
21
  /\b((?:GH_TOKEN|GITHUB_TOKEN|AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY|AWS_SESSION_TOKEN)\s*=\s*)(["']?)[^\s"',;]+/gi,
18
22
  '$1$2[REDACTED_SECRET]',
@@ -46,7 +50,6 @@ const SECRET_PATTERNS = [
46
50
  /(["'](?:token|client[_-]?secret|private[_-]?key|secret[_-]?key|signing[_-]?key|encryption[_-]?key|session[_-]?key|db[_-]?password|credential[_-]?value|account[_-]?key|connection[_-]?string|database[_-]?url|dsn|pwd|auth)["']\s*:\s*)(["'])(?:[^"']+)(["'])/gi,
47
51
  '$1$2[REDACTED_SECRET]$3',
48
52
  ],
49
- [/\b([a-z][a-z0-9+.-]*:\/\/)[^\s/:@]+:[^\s/@]+@/gi, '$1[REDACTED_CREDENTIAL]@'],
50
53
  [
51
54
  /\b((?:OPENAI_API_KEY|DASHSCOPE_API_KEY|ANTHROPIC_API_KEY|XAI_API_KEY)\s*=\s*)(["']?)[^\s"',;]+/g,
52
55
  '$1$2[REDACTED_SECRET]',
@@ -121,6 +124,20 @@ function isSensitiveFilePath(path) {
121
124
  });
122
125
  }
123
126
  function redactTraceText(text) {
124
- return SECRET_PATTERNS.reduce((current, [pattern, replacement]) => current.replace(pattern, replacement), text);
127
+ const labelRedacted = SECRET_PATTERNS.reduce((current, [pattern, replacement]) => current.replace(pattern, replacement), text);
128
+ return redactStructuredSecretFields(labelRedacted);
129
+ }
130
+ function redactStructuredSecretFields(text) {
131
+ const doubleQuoted = text.replace(/("((?:\\.|[^"\\])*)"\s*:\s*)"(?:\\.|[^"\\])*"/gu, (match, prefix, encodedKey) => {
132
+ let key = encodedKey;
133
+ try {
134
+ key = JSON.parse(`"${encodedKey}"`);
135
+ }
136
+ catch {
137
+ // Keep the literal key for JSON-like diagnostic output.
138
+ }
139
+ return isSensitiveFieldName(key) ? `${prefix}"[REDACTED_SECRET]"` : match;
140
+ });
141
+ return doubleQuoted.replace(/('((?:\\.|[^'\\])*)'\s*:\s*)'(?:\\.|[^'\\])*'/gu, (match, prefix, key) => isSensitiveFieldName(key) ? `${prefix}'[REDACTED_SECRET]'` : match);
125
142
  }
126
143
  //# sourceMappingURL=redaction.js.map
@@ -9,6 +9,7 @@ export type SettingsAppliesV1 = 'live' | 'next-logical-request' | 'new-session'
9
9
  export type SettingsStateV1 = 'ready' | 'invalid' | 'read-only' | 'unavailable';
10
10
  export type SettingsThemeV1 = 'system' | 'light' | 'dark';
11
11
  export type SettingsMotionV1 = 'system' | 'reduced';
12
+ export type SettingsUiStyleV1 = 'classic' | 'orion-blocksmith';
12
13
  export interface SettingsFieldViewV1<T> {
13
14
  readonly effectiveValue: T;
14
15
  readonly explicitValue?: T;
@@ -38,7 +39,7 @@ export interface SettingsCurrentSessionV1 {
38
39
  }
39
40
  /** Secret-free settings description suitable for direct Web protocol projection. */
40
41
  export interface SettingsDocumentViewV1 {
41
- readonly schemaVersion: 1;
42
+ readonly schemaVersion: 2;
42
43
  readonly revision: string;
43
44
  readonly state: SettingsStateV1;
44
45
  readonly writable: boolean;
@@ -46,6 +47,7 @@ export interface SettingsDocumentViewV1 {
46
47
  readonly workspace: string;
47
48
  readonly sections: {
48
49
  readonly appearance: {
50
+ readonly style: SettingsFieldViewV1<SettingsUiStyleV1>;
49
51
  readonly theme: SettingsFieldViewV1<SettingsThemeV1>;
50
52
  readonly motion: SettingsFieldViewV1<SettingsMotionV1>;
51
53
  };
@@ -51,6 +51,9 @@ function controlledState(snapshot, workspace) {
51
51
  const appearance = getRecord(getRecord(document, 'web'), 'appearance');
52
52
  const project = getRecord(getRecord(document, 'projects'), workspace);
53
53
  return Object.freeze({
54
+ ...(getString(appearance, 'style')
55
+ ? { style: getString(appearance, 'style') }
56
+ : {}),
54
57
  ...(getString(appearance, 'theme')
55
58
  ? { theme: getString(appearance, 'theme') }
56
59
  : {}),
@@ -75,6 +78,11 @@ function controlledState(snapshot, workspace) {
75
78
  }
76
79
  function controlledDiff(before, after) {
77
80
  const operations = [];
81
+ if (before.style !== after.style) {
82
+ operations.push(after.style
83
+ ? { op: 'set', key: 'appearance.style', value: after.style }
84
+ : { op: 'unset', key: 'appearance.style' });
85
+ }
78
86
  if (before.theme !== after.theme) {
79
87
  operations.push(after.theme
80
88
  ? { op: 'set', key: 'appearance.theme', value: after.theme }
@@ -270,6 +278,7 @@ class SettingsCoordinatorV1 {
270
278
  const appearance = getRecord(web, 'appearance');
271
279
  const projects = getRecord(document, 'projects');
272
280
  const project = getRecord(projects, this.workspace);
281
+ const explicitStyle = getString(appearance, 'style');
273
282
  const explicitTheme = getString(appearance, 'theme');
274
283
  const explicitMotion = getString(appearance, 'motion');
275
284
  const explicitModel = getString(document, 'defaultModel');
@@ -306,7 +315,7 @@ class SettingsCoordinatorV1 {
306
315
  })
307
316
  : snapshot.diagnostic;
308
317
  return deepFreeze({
309
- schemaVersion: 1,
318
+ schemaVersion: 2,
310
319
  revision: snapshot.revision,
311
320
  state,
312
321
  writable: storageWritable,
@@ -314,6 +323,18 @@ class SettingsCoordinatorV1 {
314
323
  workspace: this.workspace,
315
324
  sections: {
316
325
  appearance: {
326
+ style: {
327
+ effectiveValue: explicitStyle ?? 'orion-blocksmith',
328
+ ...(explicitStyle
329
+ ? { explicitValue: explicitStyle }
330
+ : { inheritedValue: 'orion-blocksmith' }),
331
+ source: explicitStyle ? 'global' : 'internal',
332
+ scope: 'global',
333
+ applies: 'live',
334
+ overridden: false,
335
+ writable: storageWritable,
336
+ ...(generalBlocked ? { blockedReason: generalBlocked } : {}),
337
+ },
317
338
  theme: {
318
339
  effectiveValue: explicitTheme ?? 'system',
319
340
  ...(explicitTheme
@@ -532,19 +553,30 @@ class SettingsCoordinatorV1 {
532
553
  const apply = input.runtimeApply ?? this.runtimeApply;
533
554
  await apply?.({ before, document, operations: input.operations });
534
555
  }
535
- catch {
556
+ catch (applyError) {
557
+ let restored;
536
558
  try {
537
- const restored = this.repository.rollback(persisted.rollbackToken);
538
- this.emitInvalidation({
539
- revision: restored.revision,
540
- reason: 'local-write',
541
- state: 'ready',
542
- });
559
+ restored = this.repository.rollback(persisted.rollbackToken);
543
560
  }
544
561
  catch {
545
562
  this.recoveryRequired = true;
546
563
  throw new SettingsCoordinatorError(503, 'settings_recovery_required', 'The durable settings write could not be reconciled with the runtime.');
547
564
  }
565
+ if (applyError instanceof SettingsCoordinatorError &&
566
+ applyError.code === 'settings_recovery_required') {
567
+ this.recoveryRequired = true;
568
+ this.emitInvalidation({
569
+ revision: restored.revision,
570
+ reason: 'local-write',
571
+ state: 'invalid',
572
+ });
573
+ throw applyError;
574
+ }
575
+ this.emitInvalidation({
576
+ revision: restored.revision,
577
+ reason: 'local-write',
578
+ state: 'ready',
579
+ });
548
580
  throw new SettingsCoordinatorError(422, 'settings_rejected', 'The runtime rejected the settings update; the document was restored.');
549
581
  }
550
582
  this.lastAppliedSnapshot = persisted.snapshot;
@@ -8,8 +8,15 @@ import { type GlobalConfigDocument } from './global-config';
8
8
  import { type EffortPreference } from './effort';
9
9
  export declare const SETTINGS_REVISION_KEY_FILE = ".orion-settings-revision.key";
10
10
  export declare const SETTINGS_REVISION_PREFIX = "hmac-sha256:";
11
- export type SettingsKeyV1 = 'appearance.theme' | 'appearance.motion' | 'defaults.model' | 'defaults.effort' | 'defaults.globalEffort' | 'permissions.toolConfirmation';
11
+ export type SettingsKeyV1 = 'appearance.style' | 'appearance.theme' | 'appearance.motion' | 'defaults.model' | 'defaults.effort' | 'defaults.globalEffort' | 'permissions.toolConfirmation';
12
12
  export type SettingsOperationV1 = {
13
+ readonly op: 'set';
14
+ readonly key: 'appearance.style';
15
+ readonly value: 'classic' | 'orion-blocksmith';
16
+ } | {
17
+ readonly op: 'unset';
18
+ readonly key: 'appearance.style';
19
+ } | {
13
20
  readonly op: 'set';
14
21
  readonly key: 'appearance.theme';
15
22
  readonly value: 'system' | 'light' | 'dark';
@@ -82,7 +82,8 @@ function validateSettingsOperationsV1(operations) {
82
82
  if (!isRecord(operation) || (operation.op !== 'set' && operation.op !== 'unset')) {
83
83
  invalidOperation();
84
84
  }
85
- if (operation.key !== 'appearance.theme' &&
85
+ if (operation.key !== 'appearance.style' &&
86
+ operation.key !== 'appearance.theme' &&
86
87
  operation.key !== 'appearance.motion' &&
87
88
  operation.key !== 'defaults.model' &&
88
89
  operation.key !== 'defaults.effort' &&
@@ -99,6 +100,11 @@ function validateSettingsOperationsV1(operations) {
99
100
  continue;
100
101
  }
101
102
  switch (operation.key) {
103
+ case 'appearance.style':
104
+ if (operation.value !== 'classic' && operation.value !== 'orion-blocksmith') {
105
+ invalidOperation();
106
+ }
107
+ break;
102
108
  case 'appearance.theme':
103
109
  if (operation.value !== 'system' &&
104
110
  operation.value !== 'light' &&
@@ -139,6 +145,21 @@ function applyOperations(source, workspace, operations) {
139
145
  const candidate = cloneDocument(source);
140
146
  for (const operation of operations) {
141
147
  switch (operation.key) {
148
+ case 'appearance.style': {
149
+ if (operation.op === 'set') {
150
+ const web = isRecord(candidate.web) ? candidate.web : {};
151
+ const appearance = isRecord(web.appearance) ? web.appearance : {};
152
+ appearance.style = operation.value;
153
+ web.appearance = appearance;
154
+ candidate.web = web;
155
+ }
156
+ else if (isRecord(candidate.web) && isRecord(candidate.web.appearance)) {
157
+ delete candidate.web.appearance.style;
158
+ pruneEmptyObject(candidate.web, 'appearance');
159
+ pruneEmptyObject(candidate, 'web');
160
+ }
161
+ break;
162
+ }
142
163
  case 'appearance.theme': {
143
164
  if (operation.op === 'set') {
144
165
  const web = isRecord(candidate.web) ? candidate.web : {};
@@ -15,7 +15,9 @@ function renderTranscriptInspectorFrame(view, options) {
15
15
  const width = frame.width;
16
16
  const height = frame.height;
17
17
  (0, frame_1.writeFrameText)(frame, 0, 0, ' Orion Code Tool Inspector', theme.heading);
18
- const search = view.searchQuery ? `search: ${view.searchQuery}` : `${view.entries.length} tools`;
18
+ const search = view.searchQuery
19
+ ? `search: ${sanitizeInlineIdentifier(view.searchQuery)}`
20
+ : `${view.entries.length} tools`;
19
21
  (0, frame_1.writeFrameText)(frame, 1, 1, search, theme.toolMeta);
20
22
  if (width < 60) {
21
23
  const listRows = Math.max(2, Math.min(6, Math.floor((height - 4) / 3)));
@@ -43,10 +45,12 @@ function renderList(frame, view, top, maxRows, width, theme) {
43
45
  const entry = view.entries[index];
44
46
  const selected = index === view.selectedIndex;
45
47
  const marker = entry.state === 'success' ? '✓' : entry.state === 'error' ? '✗' : '-';
46
- const text = `${selected ? '›' : ' '} ${marker} #${entry.sequence} ${entry.toolName}`;
48
+ const text = `${selected ? '›' : ' '} ${marker} #${entry.sequence} ${sanitizeInlineIdentifier(entry.toolName)}`;
47
49
  (0, frame_1.writeFrameText)(frame, top + row, 0, truncateWidth(text, Math.max(1, width - 1)), selected
48
50
  ? { ...theme.toolName, inverse: true }
49
- : entry.state === 'error' ? theme.toolError : theme.toolMeta);
51
+ : entry.state === 'error'
52
+ ? theme.toolError
53
+ : theme.toolMeta);
50
54
  }
51
55
  }
52
56
  function renderDetail(frame, view, top, maxRows, left, width, theme) {
@@ -55,17 +59,17 @@ function renderDetail(frame, view, top, maxRows, left, width, theme) {
55
59
  const entry = view.selected;
56
60
  if (!entry)
57
61
  return;
58
- const heading = ` ${entry.toolName} · ${formatBytes(entry.outputBytes)}${entry.artifactId ? '' : ' · legacy'}`;
62
+ const heading = ` ${sanitizeInlineIdentifier(entry.toolName)} · ${formatBytes(entry.outputBytes)}${entry.artifactId ? '' : ' · legacy'}`;
59
63
  (0, frame_1.writeFrameText)(frame, top, left, heading, theme.toolName);
60
64
  const expanded = view.expandedCallIds.includes(entry.callId);
61
65
  const detail = view.detail;
62
66
  const body = !expanded
63
- ? entry.summary ?? 'Press Enter to expand detail.'
67
+ ? (entry.summary ?? 'Press Enter to expand detail.')
64
68
  : detail?.loading
65
69
  ? 'Loading detail...'
66
70
  : detail?.error
67
71
  ? `Detail error: ${detail.error}`
68
- : detail?.content ?? entry.summary ?? 'Press Enter to load detail.';
72
+ : (detail?.content ?? entry.summary ?? 'Press Enter to load detail.');
69
73
  const lines = (0, style_1.sanitizeTerminalText)(body).split('\n');
70
74
  const detailOffset = expanded ? Math.max(0, view.detailOffset) : 0;
71
75
  for (let index = 0; index < maxRows - 1 && detailOffset + index < lines.length; index += 1) {
@@ -82,6 +86,9 @@ function formatBytes(bytes) {
82
86
  return `${(bytes / 1024).toFixed(1)} KB`;
83
87
  return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
84
88
  }
89
+ function sanitizeInlineIdentifier(value) {
90
+ return (0, style_1.sanitizeTerminalText)(value, 2).replace(/\s+/gu, ' ').trim();
91
+ }
85
92
  function truncateWidth(value, maxWidth) {
86
93
  let output = '';
87
94
  let width = 0;
@@ -18,6 +18,7 @@ export declare class WebEventHub {
18
18
  private nextCursor;
19
19
  private retainedBytes;
20
20
  private discardedDurableThrough;
21
+ private replayResetCount;
21
22
  constructor(options?: WebEventHubOptions);
22
23
  emitRuntime(event: AgentRuntimeEvent, context?: {
23
24
  readonly sessionId?: string;
@@ -35,6 +36,7 @@ export declare class WebEventHub {
35
36
  readonly earliest: number;
36
37
  readonly latest: number;
37
38
  readonly retained: number;
39
+ readonly replayResets: number;
38
40
  };
39
41
  private trim;
40
42
  private compactRuntimeEvent;
@@ -31,12 +31,16 @@ class WebEventHub {
31
31
  this.nextCursor = 1;
32
32
  this.retainedBytes = 0;
33
33
  this.discardedDurableThrough = 0;
34
+ this.replayResetCount = 0;
34
35
  this.maxEvents = positiveInteger(options.maxEvents ?? DEFAULT_MAX_EVENTS, 'maxEvents');
35
36
  this.maxBytes = positiveInteger(options.maxBytes ?? DEFAULT_MAX_BYTES, 'maxBytes');
36
37
  this.now = options.now ?? Date.now;
37
38
  }
38
39
  emitRuntime(event, context = {}) {
39
- return this.emit({ type: 'runtime_event', value: this.compactRuntimeEvent(sanitizeRuntimeEvent(event)) }, isDurableRuntimeEvent(event), context);
40
+ return this.emit({
41
+ type: 'runtime_event',
42
+ value: this.compactRuntimeEvent(sanitizeRuntimeEvent(event), context.sessionId),
43
+ }, isDurableRuntimeEvent(event), context);
40
44
  }
41
45
  emitThread(event, sessionId) {
42
46
  return this.emit({ type: 'thread_event', value: sanitizeThreadEvent(event) }, true, {
@@ -73,6 +77,7 @@ class WebEventHub {
73
77
  attach(response, cursor) {
74
78
  const latest = this.nextCursor - 1;
75
79
  if (cursor > latest || cursor < this.discardedDurableThrough) {
80
+ this.replayResetCount += 1;
76
81
  const reset = {
77
82
  apiVersion: protocol_1.WEB_API_VERSION,
78
83
  eventId: (0, crypto_1.randomUUID)(),
@@ -117,6 +122,7 @@ class WebEventHub {
117
122
  earliest: this.retained[0]?.envelope.cursor ?? this.nextCursor,
118
123
  latest: this.nextCursor - 1,
119
124
  retained: this.retained.length,
125
+ replayResets: this.replayResetCount,
120
126
  });
121
127
  }
122
128
  trim() {
@@ -128,11 +134,12 @@ class WebEventHub {
128
134
  this.discardedDurableThrough = Math.max(this.discardedDurableThrough, removed.envelope.cursor);
129
135
  }
130
136
  }
131
- compactRuntimeEvent(event) {
137
+ compactRuntimeEvent(event, sessionId) {
132
138
  if (event.type === 'transcript_update' && typeof event.patch.content === 'string') {
133
139
  const content = event.patch.content;
134
- const previous = this.transcriptContents.get(event.id);
135
- this.rememberTranscriptContent(event.id, content);
140
+ const key = transcriptContentKey(sessionId, event.id);
141
+ const previous = this.transcriptContents.get(key);
142
+ this.rememberTranscriptContent(key, content);
136
143
  if (previous !== undefined && content.startsWith(previous)) {
137
144
  const patch = { ...event.patch };
138
145
  delete patch.content;
@@ -146,10 +153,14 @@ class WebEventHub {
146
153
  return event;
147
154
  }
148
155
  if (event.type === 'transcript_finalize' || event.type === 'transcript_remove') {
149
- this.transcriptContents.delete(event.id);
156
+ this.transcriptContents.delete(transcriptContentKey(sessionId, event.id));
150
157
  }
151
158
  else if (event.type === 'transcript_clear' || event.type === 'transcript_replace') {
152
- this.transcriptContents.clear();
159
+ const prefix = transcriptSessionPrefix(sessionId);
160
+ for (const key of this.transcriptContents.keys()) {
161
+ if (key.startsWith(prefix))
162
+ this.transcriptContents.delete(key);
163
+ }
153
164
  }
154
165
  return event;
155
166
  }
@@ -165,6 +176,12 @@ class WebEventHub {
165
176
  }
166
177
  }
167
178
  exports.WebEventHub = WebEventHub;
179
+ function transcriptSessionPrefix(sessionId) {
180
+ return `${sessionId ?? '<surface>'}\u0000`;
181
+ }
182
+ function transcriptContentKey(sessionId, id) {
183
+ return `${transcriptSessionPrefix(sessionId)}${id}`;
184
+ }
168
185
  function toEnvelope(base, event) {
169
186
  switch (event.type) {
170
187
  case 'runtime_event':
@@ -232,6 +249,26 @@ function toEnvelope(base, event) {
232
249
  type: event.type,
233
250
  payload: { state: event.state },
234
251
  };
252
+ case 'session_runtime_changed':
253
+ if (!base.sessionId)
254
+ throw new Error('Session Runtime events require Session identity');
255
+ return {
256
+ ...base,
257
+ sessionId: base.sessionId,
258
+ durable: true,
259
+ type: event.type,
260
+ payload: { runtime: event.runtime },
261
+ };
262
+ case 'workspace_mutation_changed':
263
+ if (!base.sessionId)
264
+ throw new Error('Workspace mutation events require Session identity');
265
+ return {
266
+ ...base,
267
+ sessionId: base.sessionId,
268
+ durable: false,
269
+ type: event.type,
270
+ payload: { state: event.state },
271
+ };
235
272
  case 'replay_reset':
236
273
  return {
237
274
  ...base,
@@ -5,6 +5,8 @@ export interface WebFileNodeV1 {
5
5
  /** Sanitized Workspace-relative display path. Requests must continue to use the opaque id. */
6
6
  readonly displayPath: string;
7
7
  readonly kind: WebFileKindV1;
8
+ /** Effective target kind for a readable symbolic link. */
9
+ readonly targetKind?: 'file' | 'directory';
8
10
  readonly sizeBytes?: number;
9
11
  readonly modifiedAt: string;
10
12
  readonly sensitive: boolean;
@@ -114,7 +114,7 @@ class FileReadServiceV1 {
114
114
  if (!node.stat.isFile()) {
115
115
  throw new errors_1.WebWorkbenchError(409, 'File node is not a regular file.', 'file_not_regular');
116
116
  }
117
- const sensitive = (0, redaction_1.isSensitiveFilePath)(node.relativePath);
117
+ const sensitive = isSensitiveResolvedPath(this.root, node.relativePath, node.canonicalPath);
118
118
  if (sensitive) {
119
119
  throw new errors_1.WebWorkbenchError(403, 'Sensitive file content is not available in the Web Workbench.', 'sensitive_file_blocked');
120
120
  }
@@ -152,6 +152,19 @@ class FileReadServiceV1 {
152
152
  const remaining = Math.max(0, Number(before.size) - offset);
153
153
  const page = readLineSafePage(descriptor, offset, remaining, limitBytes);
154
154
  this.performance.bytesRead += page.bytesRead;
155
+ if (isBinary(page.content)) {
156
+ return Object.freeze({
157
+ fileId: input.fileId,
158
+ name: (0, path_1.basename)(node.relativePath),
159
+ revision,
160
+ sizeBytes: Number(before.size),
161
+ binary: true,
162
+ sensitive: false,
163
+ mediaType: 'application/octet-stream',
164
+ offsetBytes: offset,
165
+ nextCursor: null,
166
+ });
167
+ }
155
168
  const contentBuffer = validUtf8Prefix(page.content);
156
169
  if (page.consumedBytes > 0 && contentBuffer.length === 0) {
157
170
  throw new errors_1.WebWorkbenchError(415, 'File is not valid UTF-8 text.', 'file_binary');
@@ -192,25 +205,32 @@ class FileReadServiceV1 {
192
205
  const symlink = lexicalStat.isSymbolicLink();
193
206
  let readable = true;
194
207
  let effectiveStat = lexicalStat;
195
- if (symlink) {
196
- try {
197
- const canonicalPath = (0, fs_1.realpathSync)(lexicalPath);
198
- readable = isWithinRoot(canonicalPath, this.root);
199
- if (readable)
200
- effectiveStat = (0, fs_1.statSync)(canonicalPath, { bigint: true });
201
- }
202
- catch {
203
- readable = false;
204
- }
208
+ let canonicalPath;
209
+ try {
210
+ canonicalPath = (0, fs_1.realpathSync)(lexicalPath);
211
+ readable = isWithinRoot(canonicalPath, this.root);
212
+ if (readable)
213
+ effectiveStat = (0, fs_1.statSync)(canonicalPath, { bigint: true });
205
214
  }
215
+ catch {
216
+ readable = false;
217
+ }
218
+ const targetKind = readable
219
+ ? effectiveStat.isDirectory()
220
+ ? 'directory'
221
+ : effectiveStat.isFile()
222
+ ? 'file'
223
+ : undefined
224
+ : undefined;
206
225
  return Object.freeze({
207
226
  id: this.remember(relativePath),
208
227
  name: (0, path_1.basename)(relativePath),
209
228
  displayPath: normalizeRelativePath(relativePath),
210
229
  kind: symlink ? 'symlink' : effectiveStat.isDirectory() ? 'directory' : 'file',
230
+ ...(symlink && targetKind ? { targetKind } : {}),
211
231
  ...(effectiveStat.isFile() ? { sizeBytes: Number(effectiveStat.size) } : {}),
212
232
  modifiedAt: new Date(Number(effectiveStat.mtimeMs)).toISOString(),
213
- sensitive: (0, redaction_1.isSensitiveFilePath)(relativePath),
233
+ sensitive: isSensitiveResolvedPath(this.root, relativePath, canonicalPath),
214
234
  readable,
215
235
  });
216
236
  }
@@ -360,6 +380,13 @@ function isWithinRoot(candidate, root) {
360
380
  const rel = (0, path_1.relative)(root, candidate);
361
381
  return rel === '' || (!rel.startsWith(`..${path_1.sep}`) && rel !== '..' && !(0, path_1.isAbsolute)(rel));
362
382
  }
383
+ function isSensitiveResolvedPath(root, aliasRelativePath, canonicalPath) {
384
+ if ((0, redaction_1.isSensitiveFilePath)(aliasRelativePath))
385
+ return true;
386
+ if (!canonicalPath || !isWithinRoot(canonicalPath, root))
387
+ return false;
388
+ return (0, redaction_1.isSensitiveFilePath)((0, path_1.relative)(root, canonicalPath));
389
+ }
363
390
  function fingerprintStat(stat) {
364
391
  return (0, crypto_1.createHash)('sha256')
365
392
  .update([stat.dev, stat.ino, stat.mode, stat.size, stat.mtimeNs, stat.ctimeNs]
@@ -122,6 +122,9 @@ class GitReadModelServiceV1 {
122
122
  if (!record) {
123
123
  throw new errors_1.WebWorkbenchError(409, 'Git file changed before diff.', 'git_revision_conflict');
124
124
  }
125
+ if (isSensitiveGitRecord(record)) {
126
+ throw new errors_1.WebWorkbenchError(403, 'Sensitive file content is not available in the Web Workbench.', 'sensitive_file_blocked');
127
+ }
125
128
  const lineLimit = boundedInteger(input.lineLimit ?? DEFAULT_DIFF_LINES, 1, MAX_DIFF_LINES, 'lineLimit');
126
129
  const byteLimit = boundedInteger(input.byteLimit ?? DEFAULT_DIFF_BYTES, 1024, MAX_DIFF_BYTES, 'byteLimit');
127
130
  const offset = input.cursor
@@ -440,6 +443,10 @@ function isConflictRecord(record) {
440
443
  `${record.indexStatus}${record.worktreeStatus}` === 'AA' ||
441
444
  `${record.indexStatus}${record.worktreeStatus}` === 'DD');
442
445
  }
446
+ function isSensitiveGitRecord(record) {
447
+ return ((0, redaction_1.isSensitiveFilePath)(record.path) ||
448
+ (record.renamedFrom !== undefined && (0, redaction_1.isSensitiveFilePath)(record.renamedFrom)));
449
+ }
443
450
  async function streamDiffPage(input) {
444
451
  const lines = [];
445
452
  let virtualLine = 0;