@qduc/term2 0.22.0 → 0.23.0

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 (426) hide show
  1. package/dist/agent.d.ts +1 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +18 -10
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +19 -1
  7. package/dist/app.js.map +1 -1
  8. package/dist/cli.js +26 -0
  9. package/dist/cli.js.map +1 -1
  10. package/dist/components/common/MenuContainer.d.ts +10 -0
  11. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  12. package/dist/components/common/MenuContainer.js +53 -29
  13. package/dist/components/common/MenuContainer.js.map +1 -1
  14. package/dist/components/input/ApplicationInputSurface.js +1 -1
  15. package/dist/components/input/ApplicationInputSurface.js.map +1 -1
  16. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  17. package/dist/components/input/ModelMenuSession.js +7 -21
  18. package/dist/components/input/ModelMenuSession.js.map +1 -1
  19. package/dist/components/input/SettingsMenuSession.d.ts.map +1 -1
  20. package/dist/components/input/SettingsMenuSession.js +8 -5
  21. package/dist/components/input/SettingsMenuSession.js.map +1 -1
  22. package/dist/components/input/SubagentPoolMenuSession.d.ts +9 -0
  23. package/dist/components/input/SubagentPoolMenuSession.d.ts.map +1 -0
  24. package/dist/components/input/{MentorPoolMenuSession.js → SubagentPoolMenuSession.js} +21 -17
  25. package/dist/components/input/SubagentPoolMenuSession.js.map +1 -0
  26. package/dist/components/input/menu-controller.d.ts.map +1 -1
  27. package/dist/components/input/menu-controller.js +4 -3
  28. package/dist/components/input/menu-controller.js.map +1 -1
  29. package/dist/components/input/menu-registry.js +2 -2
  30. package/dist/components/input/menu-registry.js.map +1 -1
  31. package/dist/components/input/menu-types.d.ts +5 -1
  32. package/dist/components/input/menu-types.d.ts.map +1 -1
  33. package/dist/components/input/triggers.d.ts.map +1 -1
  34. package/dist/components/input/triggers.js +10 -7
  35. package/dist/components/input/triggers.js.map +1 -1
  36. package/dist/components/layout/Banner.d.ts.map +1 -1
  37. package/dist/components/layout/Banner.js +4 -1
  38. package/dist/components/layout/Banner.js.map +1 -1
  39. package/dist/components/layout/StatusBar.d.ts.map +1 -1
  40. package/dist/components/layout/StatusBar.js +10 -17
  41. package/dist/components/layout/StatusBar.js.map +1 -1
  42. package/dist/components/menu/ModelSelectionMenu.js +2 -2
  43. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  44. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
  45. package/dist/components/menu/ProfileSelectionMenu.js +12 -12
  46. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
  47. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  48. package/dist/components/menu/ResumeSelectionMenu.js +10 -10
  49. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  50. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  51. package/dist/components/menu/SettingsSelectionMenu.js +3 -1
  52. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  53. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  54. package/dist/components/menu/SkillSelectionMenu.js +10 -10
  55. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  56. package/dist/components/menu/StandaloneModelPickerApp.d.ts +3 -3
  57. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -1
  58. package/dist/components/menu/StandaloneModelPickerApp.js +9 -10
  59. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -1
  60. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts +19 -0
  61. package/dist/components/menu/SubagentPoolSelectionMenu.d.ts.map +1 -0
  62. package/dist/components/menu/{MentorPoolSelectionMenu.js → SubagentPoolSelectionMenu.js} +29 -15
  63. package/dist/components/menu/SubagentPoolSelectionMenu.js.map +1 -0
  64. package/dist/components/message/MessageList.d.ts +2 -1
  65. package/dist/components/message/MessageList.d.ts.map +1 -1
  66. package/dist/components/message/MessageList.js +12 -38
  67. package/dist/components/message/MessageList.js.map +1 -1
  68. package/dist/context/InputContext.d.ts +1 -1
  69. package/dist/context/InputContext.d.ts.map +1 -1
  70. package/dist/context/InputContext.js +2 -2
  71. package/dist/context/InputContext.js.map +1 -1
  72. package/dist/contracts/conversation-items.d.ts +4 -0
  73. package/dist/contracts/conversation-items.d.ts.map +1 -1
  74. package/dist/contracts/provider-input.d.ts +2 -0
  75. package/dist/contracts/provider-input.d.ts.map +1 -1
  76. package/dist/contracts/provider-input.js.map +1 -1
  77. package/dist/gateway/assertion.d.ts +1 -1
  78. package/dist/gateway/assertion.d.ts.map +1 -1
  79. package/dist/gateway/contracts.d.ts +13 -3
  80. package/dist/gateway/contracts.d.ts.map +1 -1
  81. package/dist/gateway/contracts.js +56 -0
  82. package/dist/gateway/contracts.js.map +1 -1
  83. package/dist/gateway/gateway.d.ts +40 -1
  84. package/dist/gateway/gateway.d.ts.map +1 -1
  85. package/dist/gateway/gateway.js +1319 -76
  86. package/dist/gateway/gateway.js.map +1 -1
  87. package/dist/gateway/persistence/admission-persistence.d.ts +3 -3
  88. package/dist/gateway/persistence/admission-persistence.d.ts.map +1 -1
  89. package/dist/gateway/persistence/admission-persistence.js +25 -11
  90. package/dist/gateway/persistence/admission-persistence.js.map +1 -1
  91. package/dist/gateway/persistence/contracts.d.ts +5 -3
  92. package/dist/gateway/persistence/contracts.d.ts.map +1 -1
  93. package/dist/gateway/persistence/contracts.js +13 -0
  94. package/dist/gateway/persistence/contracts.js.map +1 -1
  95. package/dist/gateway/persistence/interaction-checkpoint.d.ts +5 -0
  96. package/dist/gateway/persistence/interaction-checkpoint.d.ts.map +1 -1
  97. package/dist/gateway/persistence/interaction-checkpoint.js +22 -0
  98. package/dist/gateway/persistence/interaction-checkpoint.js.map +1 -1
  99. package/dist/gateway/persistence/projection.d.ts.map +1 -1
  100. package/dist/gateway/persistence/projection.js +4 -1
  101. package/dist/gateway/persistence/projection.js.map +1 -1
  102. package/dist/gateway/persistence/session-index.d.ts +1 -1
  103. package/dist/gateway/persistence/session-index.d.ts.map +1 -1
  104. package/dist/gateway/persistence/session-index.js +2 -2
  105. package/dist/gateway/persistence/session-index.js.map +1 -1
  106. package/dist/gateway/persistence/session-snapshot.d.ts +32 -0
  107. package/dist/gateway/persistence/session-snapshot.d.ts.map +1 -0
  108. package/dist/gateway/persistence/session-snapshot.js +50 -0
  109. package/dist/gateway/persistence/session-snapshot.js.map +1 -0
  110. package/dist/gateway/runtime-factory.d.ts +37 -1
  111. package/dist/gateway/runtime-factory.d.ts.map +1 -1
  112. package/dist/gateway/runtime-factory.js +155 -24
  113. package/dist/gateway/runtime-factory.js.map +1 -1
  114. package/dist/gateway/safe-log.d.ts +1 -1
  115. package/dist/gateway/safe-log.d.ts.map +1 -1
  116. package/dist/gateway/safe-log.js +5 -46
  117. package/dist/gateway/safe-log.js.map +1 -1
  118. package/dist/gateway/serve-args.d.ts +53 -0
  119. package/dist/gateway/serve-args.d.ts.map +1 -0
  120. package/dist/gateway/serve-args.js +172 -0
  121. package/dist/gateway/serve-args.js.map +1 -0
  122. package/dist/gateway/serve.d.ts +79 -0
  123. package/dist/gateway/serve.d.ts.map +1 -0
  124. package/dist/gateway/serve.js +375 -0
  125. package/dist/gateway/serve.js.map +1 -0
  126. package/dist/gateway/server-session.d.ts +9 -0
  127. package/dist/gateway/server-session.d.ts.map +1 -1
  128. package/dist/gateway/server-session.js +142 -26
  129. package/dist/gateway/server-session.js.map +1 -1
  130. package/dist/gateway/server.d.ts.map +1 -1
  131. package/dist/gateway/server.js +13 -2
  132. package/dist/gateway/server.js.map +1 -1
  133. package/dist/hooks/use-slash-commands.d.ts.map +1 -1
  134. package/dist/hooks/use-slash-commands.js +19 -13
  135. package/dist/hooks/use-slash-commands.js.map +1 -1
  136. package/dist/hooks/use-subagent-pool-selection.d.ts +115 -0
  137. package/dist/hooks/use-subagent-pool-selection.d.ts.map +1 -0
  138. package/dist/hooks/{use-mentor-pool-selection.js → use-subagent-pool-selection.js} +168 -100
  139. package/dist/hooks/use-subagent-pool-selection.js.map +1 -0
  140. package/dist/lib/agent-client.d.ts +3 -0
  141. package/dist/lib/agent-client.d.ts.map +1 -1
  142. package/dist/lib/agent-client.js +7 -0
  143. package/dist/lib/agent-client.js.map +1 -1
  144. package/dist/lib/agent-configuration.d.ts +1 -0
  145. package/dist/lib/agent-configuration.d.ts.map +1 -1
  146. package/dist/lib/agent-configuration.js +3 -0
  147. package/dist/lib/agent-configuration.js.map +1 -1
  148. package/dist/lib/agent-factory.d.ts +2 -0
  149. package/dist/lib/agent-factory.d.ts.map +1 -1
  150. package/dist/lib/agent-factory.js +5 -0
  151. package/dist/lib/agent-factory.js.map +1 -1
  152. package/dist/lib/subagent-bridge.d.ts +5 -0
  153. package/dist/lib/subagent-bridge.d.ts.map +1 -1
  154. package/dist/lib/subagent-bridge.js +5 -0
  155. package/dist/lib/subagent-bridge.js.map +1 -1
  156. package/dist/lib/tool-selection-policy.d.ts +2 -0
  157. package/dist/lib/tool-selection-policy.d.ts.map +1 -1
  158. package/dist/lib/tool-selection-policy.js +6 -1
  159. package/dist/lib/tool-selection-policy.js.map +1 -1
  160. package/dist/prompts/explorer-delegation-contract.test.ts +1 -1
  161. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  162. package/dist/prompts/prompt-constructor.js +1 -0
  163. package/dist/prompts/prompt-constructor.js.map +1 -1
  164. package/dist/prompts/prompt-constructor.test.ts +3 -0
  165. package/dist/prompts/prompt-constructor.ts +1 -0
  166. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  167. package/dist/prompts/prompt-profiles.js +3 -2
  168. package/dist/prompts/prompt-profiles.js.map +1 -1
  169. package/dist/prompts/prompt-profiles.ts +4 -2
  170. package/dist/prompts/subagent-delegation.d.ts +2 -1
  171. package/dist/prompts/subagent-delegation.d.ts.map +1 -1
  172. package/dist/prompts/subagent-delegation.js +10 -5
  173. package/dist/prompts/subagent-delegation.js.map +1 -1
  174. package/dist/prompts/subagent-delegation.test.ts +10 -3
  175. package/dist/prompts/subagent-delegation.ts +16 -4
  176. package/dist/prompts/subagents/librarian.md +26 -21
  177. package/dist/prompts/subagents/reviewer.md +33 -0
  178. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  179. package/dist/services/agent-runtime/application-run-loop.js +10 -5
  180. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  181. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +9 -0
  182. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  183. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +6 -0
  184. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  185. package/dist/services/agent-runtime/model-resolver.d.ts +6 -0
  186. package/dist/services/agent-runtime/model-resolver.d.ts.map +1 -1
  187. package/dist/services/agent-runtime/model-resolver.js +18 -26
  188. package/dist/services/agent-runtime/model-resolver.js.map +1 -1
  189. package/dist/services/approval/non-interactive-approval-policy.d.ts.map +1 -1
  190. package/dist/services/approval/non-interactive-approval-policy.js +2 -1
  191. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  192. package/dist/services/approval/shell-auto-approval-evaluator.js +2 -2
  193. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  194. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  195. package/dist/services/conversation/conversation-orchestrator.js +42 -22
  196. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  197. package/dist/services/conversation/conversation-service.d.ts +28 -0
  198. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  199. package/dist/services/conversation/conversation-service.js +95 -27
  200. package/dist/services/conversation/conversation-service.js.map +1 -1
  201. package/dist/services/conversation/run-item-normalizer.d.ts.map +1 -1
  202. package/dist/services/conversation/run-item-normalizer.js +3 -0
  203. package/dist/services/conversation/run-item-normalizer.js.map +1 -1
  204. package/dist/services/conversation/session-browser.d.ts +5 -0
  205. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  206. package/dist/services/conversation/session-browser.js +94 -31
  207. package/dist/services/conversation/session-browser.js.map +1 -1
  208. package/dist/services/conversation/session-index/session-index-database.d.ts +1 -0
  209. package/dist/services/conversation/session-index/session-index-database.d.ts.map +1 -1
  210. package/dist/services/conversation/session-index/session-index-database.js +6 -4
  211. package/dist/services/conversation/session-index/session-index-database.js.map +1 -1
  212. package/dist/services/conversation/session-index/session-index-schema.d.ts +1 -1
  213. package/dist/services/conversation/session-index/session-index-schema.d.ts.map +1 -1
  214. package/dist/services/conversation/session-index/session-index-schema.js +2 -1
  215. package/dist/services/conversation/session-index/session-index-schema.js.map +1 -1
  216. package/dist/services/conversation-agent-client.d.ts +3 -0
  217. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  218. package/dist/services/memory/memory-capabilities.d.ts.map +1 -1
  219. package/dist/services/memory/memory-capabilities.js +2 -5
  220. package/dist/services/memory/memory-capabilities.js.map +1 -1
  221. package/dist/services/models/model-picker-host.d.ts +4 -4
  222. package/dist/services/models/model-picker-host.d.ts.map +1 -1
  223. package/dist/services/models/model-picker-host.js +9 -6
  224. package/dist/services/models/model-picker-host.js.map +1 -1
  225. package/dist/services/plan-mode-interceptor.js +2 -2
  226. package/dist/services/plan-mode-interceptor.js.map +1 -1
  227. package/dist/services/sandboxed-code-host/host-types.d.ts +12 -1
  228. package/dist/services/sandboxed-code-host/host-types.d.ts.map +1 -1
  229. package/dist/services/sandboxed-code-host/host-types.js.map +1 -1
  230. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -1
  231. package/dist/services/sandboxed-code-host/host-worker.js +146 -31
  232. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -1
  233. package/dist/services/sandboxed-code-host/sandbox.d.ts +6 -1
  234. package/dist/services/sandboxed-code-host/sandbox.d.ts.map +1 -1
  235. package/dist/services/sandboxed-code-host/sandbox.js +5 -0
  236. package/dist/services/sandboxed-code-host/sandbox.js.map +1 -1
  237. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts +3 -3
  238. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts.map +1 -1
  239. package/dist/services/sandboxed-code-host/sandboxed-code-host.js +173 -22
  240. package/dist/services/sandboxed-code-host/sandboxed-code-host.js.map +1 -1
  241. package/dist/services/session/session-access-state.d.ts +5 -1
  242. package/dist/services/session/session-access-state.d.ts.map +1 -1
  243. package/dist/services/session/session-access-state.js +8 -1
  244. package/dist/services/session/session-access-state.js.map +1 -1
  245. package/dist/services/session/session-client-factory.d.ts +1 -0
  246. package/dist/services/session/session-client-factory.d.ts.map +1 -1
  247. package/dist/services/session/session-client-factory.js +1 -1
  248. package/dist/services/session/session-client-factory.js.map +1 -1
  249. package/dist/services/session/session-composition.d.ts +22 -4
  250. package/dist/services/session/session-composition.d.ts.map +1 -1
  251. package/dist/services/session/session-composition.js +9 -5
  252. package/dist/services/session/session-composition.js.map +1 -1
  253. package/dist/services/settings/ancillary-settings-migration.d.ts.map +1 -1
  254. package/dist/services/settings/ancillary-settings-migration.js +8 -1
  255. package/dist/services/settings/ancillary-settings-migration.js.map +1 -1
  256. package/dist/services/settings/settings-schema.d.ts +12 -40
  257. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  258. package/dist/services/settings/settings-schema.js +27 -53
  259. package/dist/services/settings/settings-schema.js.map +1 -1
  260. package/dist/services/settings/settings-sources.d.ts +0 -3
  261. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  262. package/dist/services/settings/settings-sources.js +0 -3
  263. package/dist/services/settings/settings-sources.js.map +1 -1
  264. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -1
  265. package/dist/services/settings/settings-ui-metadata.js +3 -3
  266. package/dist/services/settings/settings-ui-metadata.js.map +1 -1
  267. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +1 -1
  268. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  269. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +5 -8
  270. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  271. package/dist/services/subagents/nested-runner.d.ts +3 -0
  272. package/dist/services/subagents/nested-runner.d.ts.map +1 -1
  273. package/dist/services/subagents/nested-runner.js +31 -4
  274. package/dist/services/subagents/nested-runner.js.map +1 -1
  275. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  276. package/dist/services/subagents/role-loader.js +7 -12
  277. package/dist/services/subagents/role-loader.js.map +1 -1
  278. package/dist/services/subagents/runtime.d.ts +3 -0
  279. package/dist/services/subagents/runtime.d.ts.map +1 -1
  280. package/dist/services/subagents/runtime.js +35 -3
  281. package/dist/services/subagents/runtime.js.map +1 -1
  282. package/dist/services/subagents/subagent-async-registry.d.ts +10 -1
  283. package/dist/services/subagents/subagent-async-registry.d.ts.map +1 -1
  284. package/dist/services/subagents/subagent-async-registry.js +21 -4
  285. package/dist/services/subagents/subagent-async-registry.js.map +1 -1
  286. package/dist/services/subagents/subagent-manager.d.ts +3 -0
  287. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  288. package/dist/services/subagents/subagent-manager.js.map +1 -1
  289. package/dist/services/subagents/subagent-pool-config.d.ts +39 -0
  290. package/dist/services/subagents/subagent-pool-config.d.ts.map +1 -0
  291. package/dist/services/subagents/subagent-pool-config.js +84 -0
  292. package/dist/services/subagents/subagent-pool-config.js.map +1 -0
  293. package/dist/services/subagents/subagent-role-pool-selector.d.ts +29 -0
  294. package/dist/services/subagents/subagent-role-pool-selector.d.ts.map +1 -0
  295. package/dist/services/subagents/subagent-role-pool-selector.js +56 -0
  296. package/dist/services/subagents/subagent-role-pool-selector.js.map +1 -0
  297. package/dist/services/subagents/tool-policy.d.ts +13 -0
  298. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  299. package/dist/services/subagents/tool-policy.js +36 -4
  300. package/dist/services/subagents/tool-policy.js.map +1 -1
  301. package/dist/services/subagents/types.d.ts +1 -1
  302. package/dist/services/subagents/types.d.ts.map +1 -1
  303. package/dist/services/subagents/types.js +1 -1
  304. package/dist/services/subagents/types.js.map +1 -1
  305. package/dist/test-helpers/outside-sandbox-temp-dir.d.ts +2 -0
  306. package/dist/test-helpers/outside-sandbox-temp-dir.d.ts.map +1 -0
  307. package/dist/test-helpers/outside-sandbox-temp-dir.js +38 -0
  308. package/dist/test-helpers/outside-sandbox-temp-dir.js.map +1 -0
  309. package/dist/tools/agent/configure-task-check-in.d.ts +2 -0
  310. package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -1
  311. package/dist/tools/agent/configure-task-check-in.js +3 -0
  312. package/dist/tools/agent/configure-task-check-in.js.map +1 -1
  313. package/dist/tools/agent/run-explorer.d.ts +6 -0
  314. package/dist/tools/agent/run-explorer.d.ts.map +1 -0
  315. package/dist/tools/agent/run-explorer.js +58 -0
  316. package/dist/tools/agent/run-explorer.js.map +1 -0
  317. package/dist/tools/agent/run-subagent-async.d.ts +2 -0
  318. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  319. package/dist/tools/agent/run-subagent-async.js +3 -3
  320. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  321. package/dist/tools/agent/run-subagent.d.ts +2 -2
  322. package/dist/tools/agent/run-subagent.d.ts.map +1 -1
  323. package/dist/tools/agent/run-subagent.js +8 -6
  324. package/dist/tools/agent/run-subagent.js.map +1 -1
  325. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  326. package/dist/tools/file/apply-patch.js +7 -2
  327. package/dist/tools/file/apply-patch.js.map +1 -1
  328. package/dist/tools/file/create-file.d.ts.map +1 -1
  329. package/dist/tools/file/create-file.js +4 -0
  330. package/dist/tools/file/create-file.js.map +1 -1
  331. package/dist/tools/file/edit-healing.d.ts.map +1 -1
  332. package/dist/tools/file/edit-healing.js +1 -4
  333. package/dist/tools/file/edit-healing.js.map +1 -1
  334. package/dist/tools/file/glob.d.ts.map +1 -1
  335. package/dist/tools/file/glob.js +6 -0
  336. package/dist/tools/file/glob.js.map +1 -1
  337. package/dist/tools/file/patch-healing.d.ts.map +1 -1
  338. package/dist/tools/file/patch-healing.js +1 -4
  339. package/dist/tools/file/patch-healing.js.map +1 -1
  340. package/dist/tools/file/search-replace.d.ts.map +1 -1
  341. package/dist/tools/file/search-replace.js +7 -5
  342. package/dist/tools/file/search-replace.js.map +1 -1
  343. package/dist/tools/format-helpers.d.ts +5 -0
  344. package/dist/tools/format-helpers.d.ts.map +1 -1
  345. package/dist/tools/format-helpers.js.map +1 -1
  346. package/dist/tools/memory/memory-tools.d.ts +0 -1
  347. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  348. package/dist/tools/memory/memory-tools.js +1 -116
  349. package/dist/tools/memory/memory-tools.js.map +1 -1
  350. package/dist/tools/scripted-return-contract.d.ts +24 -0
  351. package/dist/tools/scripted-return-contract.d.ts.map +1 -0
  352. package/dist/tools/scripted-return-contract.js +36 -0
  353. package/dist/tools/scripted-return-contract.js.map +1 -0
  354. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
  355. package/dist/tools/session-browser/session-browser-tools.js +21 -8
  356. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  357. package/dist/tools/system/run-code/index.d.ts +3 -0
  358. package/dist/tools/system/run-code/index.d.ts.map +1 -1
  359. package/dist/tools/system/run-code/index.js +3 -0
  360. package/dist/tools/system/run-code/index.js.map +1 -1
  361. package/dist/tools/system/run-code/run-code-execution.d.ts +56 -0
  362. package/dist/tools/system/run-code/run-code-execution.d.ts.map +1 -0
  363. package/dist/tools/system/run-code/run-code-execution.js +68 -0
  364. package/dist/tools/system/run-code/run-code-execution.js.map +1 -0
  365. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts +20 -0
  366. package/dist/tools/system/run-code/run-code-runtime-contract.d.ts.map +1 -0
  367. package/dist/tools/system/run-code/run-code-runtime-contract.js +2 -0
  368. package/dist/tools/system/run-code/run-code-runtime-contract.js.map +1 -0
  369. package/dist/tools/system/run-code/run-code-runtime.d.ts +99 -0
  370. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -0
  371. package/dist/tools/system/run-code/run-code-runtime.js +719 -0
  372. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -0
  373. package/dist/tools/system/run-code/run-code-telemetry.d.ts +12 -10
  374. package/dist/tools/system/run-code/run-code-telemetry.d.ts.map +1 -1
  375. package/dist/tools/system/run-code/run-code-telemetry.js +48 -72
  376. package/dist/tools/system/run-code/run-code-telemetry.js.map +1 -1
  377. package/dist/tools/system/run-code/run-code.d.ts +22 -59
  378. package/dist/tools/system/run-code/run-code.d.ts.map +1 -1
  379. package/dist/tools/system/run-code/run-code.js +118 -784
  380. package/dist/tools/system/run-code/run-code.js.map +1 -1
  381. package/dist/tools/system/run-code/tools-header.d.ts +16 -4
  382. package/dist/tools/system/run-code/tools-header.d.ts.map +1 -1
  383. package/dist/tools/system/run-code/tools-header.js +32 -16
  384. package/dist/tools/system/run-code/tools-header.js.map +1 -1
  385. package/dist/tools/system/shell.d.ts +3 -0
  386. package/dist/tools/system/shell.d.ts.map +1 -1
  387. package/dist/tools/system/shell.js +13 -3
  388. package/dist/tools/system/shell.js.map +1 -1
  389. package/dist/tools/types.d.ts +12 -4
  390. package/dist/tools/types.d.ts.map +1 -1
  391. package/dist/tools/types.js.map +1 -1
  392. package/dist/utils/ai/model-settings.d.ts +6 -0
  393. package/dist/utils/ai/model-settings.d.ts.map +1 -1
  394. package/dist/utils/ai/model-settings.js +7 -1
  395. package/dist/utils/ai/model-settings.js.map +1 -1
  396. package/dist/utils/ai/token-usage.d.ts +4 -5
  397. package/dist/utils/ai/token-usage.d.ts.map +1 -1
  398. package/dist/utils/ai/token-usage.js +3 -3
  399. package/dist/utils/ai/token-usage.js.map +1 -1
  400. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  401. package/dist/utils/conversation/conversation-utils.js +3 -0
  402. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  403. package/dist/utils/conversation/static-commit-policy.d.ts +38 -0
  404. package/dist/utils/conversation/static-commit-policy.d.ts.map +1 -0
  405. package/dist/utils/conversation/static-commit-policy.js +76 -0
  406. package/dist/utils/conversation/static-commit-policy.js.map +1 -0
  407. package/dist/utils/settings-command.d.ts.map +1 -1
  408. package/dist/utils/settings-command.js +2 -1
  409. package/dist/utils/settings-command.js.map +1 -1
  410. package/dist/utils/shell/sandbox/sandbox-policy.d.ts +2 -0
  411. package/dist/utils/shell/sandbox/sandbox-policy.d.ts.map +1 -1
  412. package/dist/utils/shell/sandbox/sandbox-policy.js +1 -1
  413. package/dist/utils/shell/sandbox/sandbox-policy.js.map +1 -1
  414. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  415. package/dist/utils/streaming/streaming-session-factory.js +22 -22
  416. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  417. package/package.json +1 -1
  418. package/dist/components/input/MentorPoolMenuSession.d.ts +0 -9
  419. package/dist/components/input/MentorPoolMenuSession.d.ts.map +0 -1
  420. package/dist/components/input/MentorPoolMenuSession.js.map +0 -1
  421. package/dist/components/menu/MentorPoolSelectionMenu.d.ts +0 -13
  422. package/dist/components/menu/MentorPoolSelectionMenu.d.ts.map +0 -1
  423. package/dist/components/menu/MentorPoolSelectionMenu.js.map +0 -1
  424. package/dist/hooks/use-mentor-pool-selection.d.ts +0 -103
  425. package/dist/hooks/use-mentor-pool-selection.d.ts.map +0 -1
  426. package/dist/hooks/use-mentor-pool-selection.js.map +0 -1
@@ -10,6 +10,8 @@ export type HostErrorCode = 'syntax_error' | 'runtime_error' | 'timeout' | 'dead
10
10
  export interface HostError {
11
11
  code: HostErrorCode;
12
12
  message: string;
13
+ /** Host-owned distinction that cannot safely be recovered from prose. */
14
+ detail?: 'unhandled_nested_failure' | 'unknown_tool' | 'invalid_tool_output';
13
15
  }
14
16
  export type HostResult = {
15
17
  ok: true;
@@ -60,6 +62,7 @@ export type CapabilityOutcome = {
60
62
  kind: 'fail';
61
63
  code: HostErrorCode;
62
64
  message: string;
65
+ detail?: HostError['detail'];
63
66
  };
64
67
  export interface CapabilityLimits {
65
68
  /** Total calls one run may admit for this capability. */
@@ -82,6 +85,8 @@ export interface CapabilityHandler<Prepared = unknown> {
82
85
  invoke(prepared: Prepared, context: CapabilityCallContext): Promise<CapabilityOutcome>;
83
86
  /** Fires when a call is admitted, before it runs. Used for run bookkeeping. */
84
87
  onAdmitted?(prepared: Prepared, context: CapabilityCallContext): void;
88
+ /** Fires when an admitted call cannot settle before an abort or worker failure. */
89
+ onAborted?(prepared: Prepared, context: CapabilityCallContext, reason: string): void;
85
90
  /**
86
91
  * Nested-approval wait started. The host keys its waiting-set by
87
92
  * {@link CapabilityCallContext.requestId}. Missing {@link onResumed} is work.
@@ -117,6 +122,8 @@ export interface HostLimits {
117
122
  }
118
123
  export interface HostRunInput {
119
124
  code: string;
125
+ /** Optional JSON object exposed to code as the realm-local global `inputs`. */
126
+ inputData?: Record<string, JsonValue>;
120
127
  capabilities: Record<string, CapabilityHandler<any>>;
121
128
  limits: HostLimits;
122
129
  signal?: AbortSignal;
@@ -125,7 +132,11 @@ export interface HostRunInput {
125
132
  /** When set, code that returns nothing completes with `null` rather than failing. */
126
133
  allowVoidOutput?: boolean;
127
134
  onConsole?: (values: JsonValue[]) => void;
128
- /** Test seam; defaults to a worker built from `capabilities`. */
135
+ /**
136
+ * Trusted test seam; defaults to the confined worker built from
137
+ * `capabilities`. A custom worker is outside the WORKER_TEMPLATE realm
138
+ * invariant and has no production caller.
139
+ */
129
140
  workerFactory?: (code: string, syncTimeoutMs: number) => import('node:worker_threads').Worker;
130
141
  }
131
142
  export interface SandboxedCodeHost {
@@ -1 +1 @@
1
- {"version":3,"file":"host-types.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host-types.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"host-types.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-types.ts"],"names":[],"mappings":"AAyIA,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAE,KAA2B,CAAC,IAAI,KAAK,QAAQ,IAAK,KAA2B,CAAC,IAAI,KAAK,MAAM,CAAC,CACjG,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"host-types.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-types.ts"],"names":[],"mappings":"AAmJA,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAE,KAA2B,CAAC,IAAI,KAAK,QAAQ,IAAK,KAA2B,CAAC,IAAI,KAAK,MAAM,CAAC,CACjG,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"host-worker.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAwVzD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CAEhF"}
1
+ {"version":3,"file":"host-worker.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-worker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AA2czD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GAAG,MAAM,CAEhF"}
@@ -4,8 +4,8 @@
4
4
  * generated, which is what keeps the sandbox auditable now that the source is
5
5
  * built rather than written.
6
6
  *
7
- * The context exposes only the bound capabilities and `console`; Node's worker
8
- * globals never enter the vm context.
7
+ * The context exposes only the bound capabilities, `console`, and optional
8
+ * realm-created JSON `inputs`; Node's worker globals never enter the vm context.
9
9
  */
10
10
  const WORKER_TEMPLATE = String.raw `
11
11
  const { parentPort, workerData } = require('node:worker_threads');
@@ -137,6 +137,9 @@ const context = vm.createContext(Object.create(null), { codeGeneration: { string
137
137
  const inflight = new Set();
138
138
  let resultsConsumed = 0;
139
139
  let finished = false;
140
+ let closeRequested = false;
141
+ let admissionClosed = false;
142
+ let settlementScheduled = false;
140
143
  let lastWasIdle = false;
141
144
  let idleScheduled = false;
142
145
  function emitBusy() {
@@ -162,6 +165,16 @@ function finishSend(type, payload) {
162
165
  finished = true;
163
166
  send(type, payload);
164
167
  }
168
+ function emitSettledIfReady() {
169
+ if (!closeRequested || inflight.size !== 0 || finished || settlementScheduled) return;
170
+ settlementScheduled = true;
171
+ queueMicrotask(() => {
172
+ settlementScheduled = false;
173
+ if (!closeRequested || inflight.size !== 0 || finished) return;
174
+ const unhandled = getUnhandled();
175
+ finishSend('workflow.settled', { unhandled });
176
+ });
177
+ }
165
178
  // This is the only host-realm callable made available during context setup.
166
179
  // Its prototype is severed, it returns no host value, and it is deleted from
167
180
  // the global object before user code runs. The context-created wrappers retain
@@ -178,6 +191,7 @@ const bridge = (type, payload) => {
178
191
  return;
179
192
  }
180
193
  if (typeof type === 'string' && type.endsWith('.run')) {
194
+ if (admissionClosed) return;
181
195
  emitBusy();
182
196
  if (payload && payload.requestId !== undefined) inflight.add(String(payload.requestId));
183
197
  parentPort.postMessage({ type, ...(payload || {}) });
@@ -189,9 +203,11 @@ const bridge = (type, payload) => {
189
203
  Object.setPrototypeOf(bridge, null);
190
204
  context.__bridge = bridge;
191
205
  context.__capabilities = JSON.stringify(capabilities);
206
+ if (workerData.inputDataJson !== undefined) context.__inputData = workerData.inputDataJson;
192
207
  function installContextBindings() {
193
208
  const bridge = globalThis.__bridge;
194
209
  const capabilityDefinitions = JSON.parse(globalThis.__capabilities);
210
+ const inputData = globalThis.__inputData === undefined ? undefined : JSON.parse(globalThis.__inputData);
195
211
  function json(value, ancestors = new Set()) {
196
212
  if (value === null || typeof value === 'string' || typeof value === 'boolean') return true;
197
213
  if (typeof value === 'number') return Number.isFinite(value);
@@ -204,36 +220,105 @@ function installContextBindings() {
204
220
  }
205
221
  delete globalThis.__bridge;
206
222
  delete globalThis.__capabilities;
223
+ delete globalThis.__inputData;
224
+ if (inputData !== undefined) {
225
+ Object.defineProperty(globalThis, 'inputs', {
226
+ value: inputData,
227
+ configurable: true,
228
+ enumerable: true,
229
+ writable: true,
230
+ });
231
+ }
207
232
  let sequence = 0;
208
233
  const pending = new Map();
234
+ const nestedStates = new Map();
235
+ function trackedPromise(promise, state) {
236
+ // Keep the worker alive for unawaited calls without letting Node report an
237
+ // unhandled rejection. Script-supplied rejection handlers are tracked
238
+ // separately so an unobserved nested failure remains diagnosable.
239
+ promise.catch(() => {});
240
+ const tracked = {
241
+ then(onFulfilled, onRejected) {
242
+ if (typeof onRejected === 'function') state.observed = true;
243
+ return trackedPromise(promise.then(onFulfilled, onRejected), state);
244
+ },
245
+ catch(onRejected) {
246
+ if (typeof onRejected === 'function') state.observed = true;
247
+ return trackedPromise(promise.catch(onRejected), state);
248
+ },
249
+ finally(onFinally) {
250
+ return trackedPromise(promise.finally(onFinally), state);
251
+ },
252
+ };
253
+ return tracked;
254
+ }
255
+ // Structured clone can carry host-realm objects such as Date, Map, and Error.
256
+ // Capability arguments must not use that wider transport: normalize them in
257
+ // this realm first, so the bridge only ever sees JSON-created plain data.
258
+ function serializeTransport(value) {
259
+ let encoded;
260
+ try {
261
+ encoded = JSON.stringify(value);
262
+ } catch (_) {
263
+ throw new TypeError('Capability arguments must be JSON-serializable');
264
+ }
265
+ if (encoded === undefined) return null;
266
+ try {
267
+ return JSON.parse(encoded);
268
+ } catch (_) {
269
+ throw new TypeError('Capability arguments must be JSON-serializable');
270
+ }
271
+ }
209
272
  function call(name, payload) {
210
273
  const requestId = String(++sequence);
211
- return new Promise((resolve) => {
212
- pending.set(requestId, resolve);
213
- bridge(name + '.run', Object.assign({ requestId }, payload));
274
+ const state = { observed: false, rejected: false, message: '' };
275
+ nestedStates.set(requestId, state);
276
+ const promise = new Promise((resolve) => {
277
+ pending.set(requestId, { resolve, state });
278
+ bridge(name + '.run', Object.assign({ requestId }, serializeTransport(payload)));
214
279
  });
280
+ return { promise: trackedPromise(promise, state), state };
215
281
  }
216
282
  function factoryBinding(name) {
217
- return (config) => Object.freeze({ run(input) { return call(name, { config, input }); } });
283
+ return (config) => Object.freeze({ run(input) { return call(name, { config, input }).promise; } });
218
284
  }
219
285
  function namespaceBinding(name, members) {
220
286
  const namespace = Object.create(null);
221
- for (const member of members) namespace[member] = (params) => call(name, { member, params }).then((response) => {
222
- // Namespace members speak an { ok, result | error } envelope so a refused or
223
- // failed call is catchable inside the script instead of a silent value.
224
- if (!response || typeof response !== 'object') return response;
225
- // Naming the tool here is what lets a model tell which call of a fan-out
226
- // failed: the underlying message often does not (e.g. 'rg: regex parse error').
227
- if (response.ok === false) throw new Error('tools.' + member + ' failed: ' + String(response.error));
228
- return response.result;
229
- });
287
+ for (const member of members) {
288
+ const callable = (params) => {
289
+ const callState = call(name, { member, params });
290
+ return callState.promise.then((response) => {
291
+ // Namespace members speak an { ok, result | error } envelope so a refused or
292
+ // failed call is catchable inside the script instead of a silent value.
293
+ if (!response || typeof response !== 'object') return response;
294
+ // Naming the tool here is what lets a model tell which call of a fan-out
295
+ // failed: the underlying message often does not (e.g. 'rg: regex parse error').
296
+ if (response.ok === false) {
297
+ callState.state.rejected = true;
298
+ callState.state.message = 'tools.' + member + ' failed: ' + String(response.error);
299
+ throw new Error(callState.state.message);
300
+ }
301
+ return response.result;
302
+ });
303
+ };
304
+ // Assignment gives the magic __proto__ member setter prototype-mutating
305
+ // semantics. Define an own data property for every member instead.
306
+ Object.defineProperty(namespace, member, {
307
+ value: callable,
308
+ configurable: true,
309
+ enumerable: true,
310
+ writable: true,
311
+ });
312
+ }
230
313
  // Unknown members explain themselves instead of surfacing as
231
314
  // 'tools.x is not a function', which names neither the problem nor the fix.
232
315
  const guarded = new Proxy(namespace, {
233
316
  get(target, prop) {
234
317
  if (prop in target) return target[prop];
235
318
  if (typeof prop === 'string') {
236
- throw new Error('Unknown tool "' + prop + '". Available: ' + members.join(', '));
319
+ const unknown = new Error('Unknown tool "' + prop + '". Available: ' + members.join(', '));
320
+ unknown.code = 'unknown_tool';
321
+ throw unknown;
237
322
  }
238
323
  return undefined;
239
324
  },
@@ -241,25 +326,42 @@ function installContextBindings() {
241
326
  return Object.freeze(guarded);
242
327
  }
243
328
  for (const capability of capabilityDefinitions) {
244
- globalThis[capability.name] = capability.kind === 'namespace'
245
- ? namespaceBinding(capability.name, capability.members)
246
- : factoryBinding(capability.name);
329
+ // Assignment gives the magic global __proto__ name prototype-mutating
330
+ // semantics. Define an own data property for every capability name.
331
+ Object.defineProperty(globalThis, capability.name, {
332
+ value: capability.kind === 'namespace' ? namespaceBinding(capability.name, capability.members) : factoryBinding(capability.name),
333
+ configurable: true,
334
+ enumerable: true,
335
+ writable: true,
336
+ });
247
337
  }
248
338
  // A transport guard only: the host independently validates console data and
249
339
  // applies the cumulative budget before forwarding it to observers.
250
340
  globalThis.console = Object.freeze({ log: (...values) => {
251
341
  if (!values.every(value => json(value))) return;
252
- bridge('console.log', { values });
342
+ try {
343
+ bridge('console.log', { values: serializeTransport(values) });
344
+ } catch (_) {}
253
345
  } });
254
- return (requestId, result) => {
255
- const resolve = pending.get(requestId);
256
- pending.delete(requestId);
257
- if (!resolve) return;
258
- const encoded = JSON.stringify(result);
259
- resolve(encoded === undefined ? null : JSON.parse(encoded));
346
+ return {
347
+ resolve(requestId, result) {
348
+ const entry = pending.get(requestId);
349
+ pending.delete(requestId);
350
+ if (!entry) return;
351
+ const encoded = JSON.stringify(result);
352
+ entry.resolve(encoded === undefined ? null : JSON.parse(encoded));
353
+ },
354
+ getUnhandled() {
355
+ return Array.from(nestedStates).filter(([, state]) => state.rejected && !state.observed).map(([requestId, state]) => ({
356
+ requestId,
357
+ message: state.message || 'nested call failed',
358
+ }));
359
+ },
260
360
  };
261
361
  }
262
- const resolveResponse = vm.runInContext('(' + installContextBindings.toString() + ')()', context);
362
+ const responseHandlers = vm.runInContext('(' + installContextBindings.toString() + ')()', context);
363
+ const resolveResponse = responseHandlers.resolve;
364
+ const getUnhandled = responseHandlers.getUnhandled;
263
365
  function firstScriptFrame(stack) {
264
366
  var stackLines = stack ? String(stack).split('\n') : [];
265
367
  for (var i = 0; i < stackLines.length; i++) {
@@ -289,7 +391,7 @@ function runtimeErrorDetail(code, err) {
289
391
  return located ? '\n\nAt script ' + located : '';
290
392
  }
291
393
 
292
- if (typeof resolveResponse !== 'function') throw new Error('Failed to install sandbox bindings');
394
+ if (typeof resolveResponse !== 'function' || typeof getUnhandled !== 'function') throw new Error('Failed to install sandbox bindings');
293
395
  parentPort.on('message', (message) => {
294
396
  if (typeof message.type === 'string' && message.type.endsWith('.result')) {
295
397
  resultsConsumed++;
@@ -297,6 +399,12 @@ parentPort.on('message', (message) => {
297
399
  resolveResponse(message.requestId, message.result);
298
400
  emitBusy();
299
401
  scheduleIdle();
402
+ emitSettledIfReady();
403
+ return;
404
+ }
405
+ if (message.type === 'workflow.close') {
406
+ closeRequested = true;
407
+ emitSettledIfReady();
300
408
  }
301
409
  });
302
410
  (async () => {
@@ -304,7 +412,8 @@ parentPort.on('message', (message) => {
304
412
  const script = new vm.Script('(async () => { "use strict";\n' + workerData.code + '\n})()', { filename: 'workflow.js' });
305
413
  const output = await script.runInContext(context, { timeout: workerData.syncTimeoutMs });
306
414
  if (output === undefined && workerData.allowVoidOutput) {
307
- finishSend('workflow.complete', { output: null, voidOutput: true });
415
+ admissionClosed = true;
416
+ send('workflow.body-complete', { output: null, voidOutput: true });
308
417
  return;
309
418
  }
310
419
  const serialized = serializeJson(output);
@@ -319,7 +428,8 @@ parentPort.on('message', (message) => {
319
428
  resultsConsumed +
320
429
  ' nested tool calls already completed — inspect state before retrying.',
321
430
  );
322
- finishSend('workflow.complete', { output: serialized.value });
431
+ admissionClosed = true;
432
+ send('workflow.body-complete', { output: serialized.value });
323
433
  } catch (err) {
324
434
  // Compile errors are raised by the host-realm 'new vm.Script(...)' above, so
325
435
  // 'err instanceof SyntaxError' is meaningful only here. A SyntaxError thrown
@@ -335,7 +445,12 @@ parentPort.on('message', (message) => {
335
445
  var at = runtimeErrorDetail(workerData.code, err);
336
446
  if (at) reported.message = reported.message + at;
337
447
  }
338
- finishSend('workflow.error', { error: reported, syntax: err instanceof SyntaxError });
448
+ admissionClosed = true;
449
+ send('workflow.body-error', {
450
+ error: reported,
451
+ syntax: err instanceof SyntaxError,
452
+ ...(err && err.code === 'unknown_tool' ? { detail: 'unknown_tool' } : {}),
453
+ });
339
454
  }
340
455
  })();
341
456
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"host-worker.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-worker.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2UjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAsC;IACtE,OAAO,eAAe,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC"}
1
+ {"version":3,"file":"host-worker.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/host-worker.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8bjC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAsC;IACtE,OAAO,eAAe,CAAC,OAAO,CAAC,kBAAkB,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -1,13 +1,18 @@
1
1
  import { Worker } from 'node:worker_threads';
2
- import type { CapabilityBinding } from './host-types.js';
2
+ import type { CapabilityBinding, JsonValue } from './host-types.js';
3
3
  export interface SandboxOptions {
4
4
  syncTimeoutMs: number;
5
5
  maxConsoleBytes?: number;
6
6
  subject?: string;
7
7
  /** When set, a script that returns nothing completes with `null` instead of failing. */
8
8
  allowVoidOutput?: boolean;
9
+ inputDataJson?: string;
9
10
  capabilities: readonly CapabilityBinding[];
10
11
  }
12
+ export declare function serializeSandboxInputData(inputData: Record<string, JsonValue>): {
13
+ json: string;
14
+ bytes: number;
15
+ };
11
16
  /**
12
17
  * Creates a fresh, disposable worker. The worker's application-facing context is
13
18
  * built inside the worker template and contains no host objects.
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAY3E"}
1
+ {"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAG7C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wFAAwF;IACxF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,SAAS,iBAAiB,EAAE,CAAC;CAC5C;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAG/G;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAa3E"}
@@ -1,6 +1,10 @@
1
1
  import { Worker } from 'node:worker_threads';
2
2
  import { workerBootstrapExecArgv } from '../../utils/worker-bootstrap.js';
3
3
  import { buildWorkerSource } from './host-worker.js';
4
+ export function serializeSandboxInputData(inputData) {
5
+ const json = JSON.stringify(inputData);
6
+ return { json, bytes: Buffer.byteLength(json, 'utf8') };
7
+ }
4
8
  /**
5
9
  * Creates a fresh, disposable worker. The worker's application-facing context is
6
10
  * built inside the worker template and contains no host objects.
@@ -15,6 +19,7 @@ export function createSandbox(code, options) {
15
19
  maxConsoleBytes: options.maxConsoleBytes,
16
20
  subject: options.subject,
17
21
  allowVoidOutput: options.allowVoidOutput,
22
+ inputDataJson: options.inputDataJson,
18
23
  },
19
24
  });
20
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAYrD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAuB;IACjE,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACzD,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,uBAAuB,EAAE;QACnC,UAAU,EAAE;YACV,IAAI;YACJ,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;SACzC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandbox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAarD,MAAM,UAAU,yBAAyB,CAAC,SAAoC;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAuB;IACjE,OAAO,IAAI,MAAM,CAAC,iBAAiB,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QACzD,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,uBAAuB,EAAE;QACnC,UAAU,EAAE;YACV,IAAI;YACJ,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,aAAa,EAAE,OAAO,CAAC,aAAa;SACrC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -6,9 +6,9 @@ import { type HostError, type HostResult, type HostRunInput, type SandboxedCodeH
6
6
  * The host owns everything that is the same for every caller: worker lifecycle,
7
7
  * the wall-clock deadline, parent cancellation, code and output byte budgets,
8
8
  * console capture, per-capability admission control and concurrency permits.
9
- * What the code can *reach* is entirely in the capabilities it is handed —
10
- * `run_agent_workflow` passes `agent`, `run_code` passes `tools` — so the two
11
- * tools differ only in that object.
9
+ * What the code can *reach* is explicit in the input: `run_agent_workflow`
10
+ * passes the `agent` capability, while `run_code` passes `tools` plus a
11
+ * realm-created JSON `inputs` object.
12
12
  */
13
13
  export declare class SandboxedCodeHostImpl implements SandboxedCodeHost {
14
14
  run(input: HostRunInput): Promise<HostResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"sandboxed-code-host.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandboxed-code-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAUzB;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAuQlD;CACF;AA4DD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"sandboxed-code-host.d.ts","sourceRoot":"","sources":["../../../source/services/sandboxed-code-host/sandboxed-code-host.ts"],"names":[],"mappings":"AAGA,OAAO,EAGL,KAAK,SAAS,EAEd,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAC;AAUzB;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,iBAAiB;IACvD,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CA4alD;CACF;AA4DD,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC"}