@qduc/term2 0.21.0 → 0.22.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 (656) hide show
  1. package/dist/agent.d.ts +2 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +32 -10
  4. package/dist/agent.js.map +1 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +83 -6
  7. package/dist/app.js.map +1 -1
  8. package/dist/cli.js +84 -2
  9. package/dist/cli.js.map +1 -1
  10. package/dist/components/InputBox.js +2 -3
  11. package/dist/components/InputBox.js.map +1 -1
  12. package/dist/components/common/MenuContainer.d.ts +5 -0
  13. package/dist/components/common/MenuContainer.d.ts.map +1 -1
  14. package/dist/components/common/MenuContainer.js +13 -3
  15. package/dist/components/common/MenuContainer.js.map +1 -1
  16. package/dist/components/input/MenuSurface.d.ts.map +1 -1
  17. package/dist/components/input/MenuSurface.js +12 -2
  18. package/dist/components/input/MenuSurface.js.map +1 -1
  19. package/dist/components/input/ModelMenuSession.d.ts.map +1 -1
  20. package/dist/components/input/ModelMenuSession.js +67 -16
  21. package/dist/components/input/ModelMenuSession.js.map +1 -1
  22. package/dist/components/input/SettingsMenuSession.d.ts.map +1 -1
  23. package/dist/components/input/SettingsMenuSession.js +56 -17
  24. package/dist/components/input/SettingsMenuSession.js.map +1 -1
  25. package/dist/components/input/SettingsValueMenuSession.d.ts.map +1 -1
  26. package/dist/components/input/SettingsValueMenuSession.js +33 -3
  27. package/dist/components/input/SettingsValueMenuSession.js.map +1 -1
  28. package/dist/components/input/menu-types.d.ts +1 -1
  29. package/dist/components/input/menu-types.d.ts.map +1 -1
  30. package/dist/components/input/triggers.js +2 -2
  31. package/dist/components/input/triggers.js.map +1 -1
  32. package/dist/components/layout/BackgroundTasksPanel.d.ts +0 -1
  33. package/dist/components/layout/BackgroundTasksPanel.d.ts.map +1 -1
  34. package/dist/components/layout/BackgroundTasksPanel.js +4 -112
  35. package/dist/components/layout/BackgroundTasksPanel.js.map +1 -1
  36. package/dist/components/menu/ModelSelectionMenu.d.ts +10 -0
  37. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  38. package/dist/components/menu/ModelSelectionMenu.js +85 -16
  39. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  40. package/dist/components/menu/ProfileSelectionMenu.d.ts.map +1 -1
  41. package/dist/components/menu/ProfileSelectionMenu.js +5 -4
  42. package/dist/components/menu/ProfileSelectionMenu.js.map +1 -1
  43. package/dist/components/menu/ResumeSelectionMenu.d.ts.map +1 -1
  44. package/dist/components/menu/ResumeSelectionMenu.js +3 -5
  45. package/dist/components/menu/ResumeSelectionMenu.js.map +1 -1
  46. package/dist/components/menu/SettingsSelectionMenu.d.ts.map +1 -1
  47. package/dist/components/menu/SettingsSelectionMenu.js +4 -32
  48. package/dist/components/menu/SettingsSelectionMenu.js.map +1 -1
  49. package/dist/components/menu/SettingsValueSelectionMenu.d.ts.map +1 -1
  50. package/dist/components/menu/SettingsValueSelectionMenu.js +12 -5
  51. package/dist/components/menu/SettingsValueSelectionMenu.js.map +1 -1
  52. package/dist/components/menu/SkillSelectionMenu.d.ts.map +1 -1
  53. package/dist/components/menu/SkillSelectionMenu.js +3 -6
  54. package/dist/components/menu/SkillSelectionMenu.js.map +1 -1
  55. package/dist/components/menu/SlashCommandMenu.d.ts +8 -0
  56. package/dist/components/menu/SlashCommandMenu.d.ts.map +1 -1
  57. package/dist/components/menu/SlashCommandMenu.js +16 -6
  58. package/dist/components/menu/SlashCommandMenu.js.map +1 -1
  59. package/dist/components/menu/StandaloneModelPickerApp.d.ts +40 -0
  60. package/dist/components/menu/StandaloneModelPickerApp.d.ts.map +1 -0
  61. package/dist/components/menu/StandaloneModelPickerApp.js +106 -0
  62. package/dist/components/menu/StandaloneModelPickerApp.js.map +1 -0
  63. package/dist/components/menu/settings-value-formatter.d.ts +11 -0
  64. package/dist/components/menu/settings-value-formatter.d.ts.map +1 -0
  65. package/dist/components/menu/settings-value-formatter.js +214 -0
  66. package/dist/components/menu/settings-value-formatter.js.map +1 -0
  67. package/dist/components/message/CommandMessage.d.ts.map +1 -1
  68. package/dist/components/message/CommandMessage.js +22 -17
  69. package/dist/components/message/CommandMessage.js.map +1 -1
  70. package/dist/components/message/MessageList.d.ts.map +1 -1
  71. package/dist/components/message/MessageList.js +13 -2
  72. package/dist/components/message/MessageList.js.map +1 -1
  73. package/dist/components/message/RunCodeRenderer.d.ts +16 -0
  74. package/dist/components/message/RunCodeRenderer.d.ts.map +1 -0
  75. package/dist/components/message/RunCodeRenderer.js +25 -0
  76. package/dist/components/message/RunCodeRenderer.js.map +1 -0
  77. package/dist/components/message/command-message-helpers.d.ts +30 -0
  78. package/dist/components/message/command-message-helpers.d.ts.map +1 -1
  79. package/dist/components/message/command-message-helpers.js +85 -0
  80. package/dist/components/message/command-message-helpers.js.map +1 -1
  81. package/dist/components/prompt/ApprovalPrompt.d.ts.map +1 -1
  82. package/dist/components/prompt/ApprovalPrompt.js +12 -21
  83. package/dist/components/prompt/ApprovalPrompt.js.map +1 -1
  84. package/dist/components/theme.d.ts +1 -0
  85. package/dist/components/theme.d.ts.map +1 -1
  86. package/dist/components/theme.js +1 -0
  87. package/dist/components/theme.js.map +1 -1
  88. package/dist/contracts/streamed-model-turn.d.ts +6 -0
  89. package/dist/contracts/streamed-model-turn.d.ts.map +1 -1
  90. package/dist/hooks/conversation-ui-reducer.d.ts.map +1 -1
  91. package/dist/hooks/conversation-ui-reducer.js +5 -2
  92. package/dist/hooks/conversation-ui-reducer.js.map +1 -1
  93. package/dist/hooks/settings-completion-config.d.ts +1 -1
  94. package/dist/hooks/settings-completion-config.d.ts.map +1 -1
  95. package/dist/hooks/settings-completion-config.js +4 -122
  96. package/dist/hooks/settings-completion-config.js.map +1 -1
  97. package/dist/hooks/settings-completion-logic.d.ts +1 -1
  98. package/dist/hooks/settings-completion-logic.d.ts.map +1 -1
  99. package/dist/hooks/settings-completion-logic.js.map +1 -1
  100. package/dist/hooks/use-app-keyboard-shortcuts.d.ts.map +1 -1
  101. package/dist/hooks/use-app-keyboard-shortcuts.js +33 -20
  102. package/dist/hooks/use-app-keyboard-shortcuts.js.map +1 -1
  103. package/dist/hooks/use-conversation.d.ts +3 -0
  104. package/dist/hooks/use-conversation.d.ts.map +1 -1
  105. package/dist/hooks/use-conversation.js +107 -16
  106. package/dist/hooks/use-conversation.js.map +1 -1
  107. package/dist/hooks/use-model-selection.d.ts +33 -4
  108. package/dist/hooks/use-model-selection.d.ts.map +1 -1
  109. package/dist/hooks/use-model-selection.js +204 -114
  110. package/dist/hooks/use-model-selection.js.map +1 -1
  111. package/dist/hooks/use-settings-completion.d.ts.map +1 -1
  112. package/dist/hooks/use-settings-completion.js +1 -6
  113. package/dist/hooks/use-settings-completion.js.map +1 -1
  114. package/dist/hooks/use-settings-value-completion.d.ts +1 -8
  115. package/dist/hooks/use-settings-value-completion.d.ts.map +1 -1
  116. package/dist/hooks/use-settings-value-completion.js +10 -100
  117. package/dist/hooks/use-settings-value-completion.js.map +1 -1
  118. package/dist/hooks/use-standalone-model-picker.d.ts +64 -0
  119. package/dist/hooks/use-standalone-model-picker.d.ts.map +1 -0
  120. package/dist/hooks/use-standalone-model-picker.js +310 -0
  121. package/dist/hooks/use-standalone-model-picker.js.map +1 -0
  122. package/dist/lib/agent-client.d.ts +17 -1
  123. package/dist/lib/agent-client.d.ts.map +1 -1
  124. package/dist/lib/agent-client.js +173 -53
  125. package/dist/lib/agent-client.js.map +1 -1
  126. package/dist/lib/agent-configuration.d.ts +12 -3
  127. package/dist/lib/agent-configuration.d.ts.map +1 -1
  128. package/dist/lib/agent-configuration.js +26 -7
  129. package/dist/lib/agent-configuration.js.map +1 -1
  130. package/dist/lib/agent-factory.d.ts +3 -0
  131. package/dist/lib/agent-factory.d.ts.map +1 -1
  132. package/dist/lib/agent-factory.js +49 -7
  133. package/dist/lib/agent-factory.js.map +1 -1
  134. package/dist/lib/ask-user-answer-store.d.ts +1 -0
  135. package/dist/lib/ask-user-answer-store.d.ts.map +1 -1
  136. package/dist/lib/ask-user-answer-store.js +3 -0
  137. package/dist/lib/ask-user-answer-store.js.map +1 -1
  138. package/dist/lib/tool-invoke.d.ts +1 -0
  139. package/dist/lib/tool-invoke.d.ts.map +1 -1
  140. package/dist/lib/tool-invoke.js +1 -0
  141. package/dist/lib/tool-invoke.js.map +1 -1
  142. package/dist/non-interactive.d.ts +23 -0
  143. package/dist/non-interactive.d.ts.map +1 -1
  144. package/dist/non-interactive.js +225 -31
  145. package/dist/non-interactive.js.map +1 -1
  146. package/dist/prompts/background-shell.d.ts.map +1 -1
  147. package/dist/prompts/background-shell.js +4 -2
  148. package/dist/prompts/background-shell.js.map +1 -1
  149. package/dist/prompts/background-shell.ts +4 -2
  150. package/dist/prompts/codex.md +1 -3
  151. package/dist/prompts/fragments/gpt-6-astra.md +13 -0
  152. package/dist/prompts/gpt-5-modern.md +1 -3
  153. package/dist/prompts/gpt-5.4-mini.md +0 -2
  154. package/dist/prompts/gpt-5.5.md +0 -2
  155. package/dist/prompts/gpt-5.6.md +0 -1
  156. package/dist/prompts/lite.md +1 -6
  157. package/dist/prompts/memory.md +2 -2
  158. package/dist/prompts/orchestrator.md +4 -4
  159. package/dist/prompts/prompt-constructor.d.ts +2 -0
  160. package/dist/prompts/prompt-constructor.d.ts.map +1 -1
  161. package/dist/prompts/prompt-constructor.js +4 -2
  162. package/dist/prompts/prompt-constructor.js.map +1 -1
  163. package/dist/prompts/prompt-constructor.test.ts +178 -5
  164. package/dist/prompts/prompt-constructor.ts +7 -1
  165. package/dist/prompts/prompt-profiles.d.ts.map +1 -1
  166. package/dist/prompts/prompt-profiles.js +6 -0
  167. package/dist/prompts/prompt-profiles.js.map +1 -1
  168. package/dist/prompts/prompt-profiles.test.ts +6 -4
  169. package/dist/prompts/prompt-profiles.ts +6 -0
  170. package/dist/prompts/session-browser.md +4 -2
  171. package/dist/prompts/shell-auto-approval.d.ts +1 -1
  172. package/dist/prompts/shell-auto-approval.d.ts.map +1 -1
  173. package/dist/prompts/shell-auto-approval.js +2 -2
  174. package/dist/prompts/shell-auto-approval.ts +2 -2
  175. package/dist/prompts/subagent-delegation.js +3 -3
  176. package/dist/prompts/subagent-delegation.js.map +1 -1
  177. package/dist/prompts/subagent-delegation.test.ts +3 -3
  178. package/dist/prompts/subagent-delegation.ts +3 -3
  179. package/dist/prompts/subagents/librarian.md +4 -4
  180. package/dist/prompts/subagents/worker-prompt.test.ts +7 -0
  181. package/dist/prompts/tool-surface-guidance.d.ts +4 -0
  182. package/dist/prompts/tool-surface-guidance.d.ts.map +1 -0
  183. package/dist/prompts/tool-surface-guidance.js +19 -0
  184. package/dist/prompts/tool-surface-guidance.js.map +1 -0
  185. package/dist/prompts/tool-surface-guidance.ts +20 -0
  186. package/dist/providers/codex-compact.d.ts +2 -0
  187. package/dist/providers/codex-compact.d.ts.map +1 -1
  188. package/dist/providers/codex-compact.js +14 -0
  189. package/dist/providers/codex-compact.js.map +1 -1
  190. package/dist/providers/codex-responses-model.d.ts +23 -3
  191. package/dist/providers/codex-responses-model.d.ts.map +1 -1
  192. package/dist/providers/codex-responses-model.js +121 -33
  193. package/dist/providers/codex-responses-model.js.map +1 -1
  194. package/dist/providers/codex.provider.d.ts +2 -0
  195. package/dist/providers/codex.provider.d.ts.map +1 -1
  196. package/dist/providers/codex.provider.js +3 -2
  197. package/dist/providers/codex.provider.js.map +1 -1
  198. package/dist/providers/grok.provider.d.ts.map +1 -1
  199. package/dist/providers/grok.provider.js +5 -2
  200. package/dist/providers/grok.provider.js.map +1 -1
  201. package/dist/providers/model-catalog/catalog.generated.d.ts +453 -309
  202. package/dist/providers/model-catalog/catalog.generated.d.ts.map +1 -1
  203. package/dist/providers/model-catalog/catalog.generated.js +453 -309
  204. package/dist/providers/model-catalog/catalog.generated.js.map +1 -1
  205. package/dist/providers/opencode-session.d.ts.map +1 -1
  206. package/dist/providers/opencode-session.js +5 -0
  207. package/dist/providers/opencode-session.js.map +1 -1
  208. package/dist/providers/openrouter.provider.js +8 -1
  209. package/dist/providers/openrouter.provider.js.map +1 -1
  210. package/dist/providers/responses-websocket-sessions.d.ts +10 -0
  211. package/dist/providers/responses-websocket-sessions.d.ts.map +1 -1
  212. package/dist/providers/responses-websocket-sessions.js +9 -4
  213. package/dist/providers/responses-websocket-sessions.js.map +1 -1
  214. package/dist/providers/retrying-model.d.ts +2 -1
  215. package/dist/providers/retrying-model.d.ts.map +1 -1
  216. package/dist/providers/retrying-model.js +3 -0
  217. package/dist/providers/retrying-model.js.map +1 -1
  218. package/dist/services/agent-runtime/application-run-loop.d.ts +8 -1
  219. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  220. package/dist/services/agent-runtime/application-run-loop.js +30 -6
  221. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  222. package/dist/services/agent-runtime/context-compaction/index.d.ts +2 -0
  223. package/dist/services/agent-runtime/context-compaction/index.d.ts.map +1 -1
  224. package/dist/services/agent-runtime/context-compaction/index.js +30 -4
  225. package/dist/services/agent-runtime/context-compaction/index.js.map +1 -1
  226. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts +3 -0
  227. package/dist/services/agent-runtime/context-compaction/local-context-compactor.d.ts.map +1 -1
  228. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js +15 -9
  229. package/dist/services/agent-runtime/context-compaction/local-context-compactor.js.map +1 -1
  230. package/dist/services/agent-runtime/tool-invocation-context.d.ts +12 -0
  231. package/dist/services/agent-runtime/tool-invocation-context.d.ts.map +1 -1
  232. package/dist/services/agent-runtime/workflow/workflow-evaluator.d.ts +7 -1
  233. package/dist/services/agent-runtime/workflow/workflow-evaluator.d.ts.map +1 -1
  234. package/dist/services/agent-runtime/workflow/workflow-evaluator.js +78 -183
  235. package/dist/services/agent-runtime/workflow/workflow-evaluator.js.map +1 -1
  236. package/dist/services/agent-runtime/workflow/workflow-sandbox.d.ts +4 -3
  237. package/dist/services/agent-runtime/workflow/workflow-sandbox.d.ts.map +1 -1
  238. package/dist/services/agent-runtime/workflow/workflow-sandbox.js +9 -7
  239. package/dist/services/agent-runtime/workflow/workflow-sandbox.js.map +1 -1
  240. package/dist/services/agent-runtime/workflow/workflow-types.d.ts +1 -1
  241. package/dist/services/agent-runtime/workflow/workflow-types.d.ts.map +1 -1
  242. package/dist/services/agent-runtime/workflow/workflow-types.js.map +1 -1
  243. package/dist/services/approval/approval-decision-executor.d.ts +2 -1
  244. package/dist/services/approval/approval-decision-executor.d.ts.map +1 -1
  245. package/dist/services/approval/approval-decision-executor.js +22 -116
  246. package/dist/services/approval/approval-decision-executor.js.map +1 -1
  247. package/dist/services/approval/approval-descriptor.d.ts +10 -0
  248. package/dist/services/approval/approval-descriptor.d.ts.map +1 -0
  249. package/dist/services/approval/approval-descriptor.js +23 -0
  250. package/dist/services/approval/approval-descriptor.js.map +1 -0
  251. package/dist/services/approval/approval-flow-coordinator.d.ts +2 -1
  252. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  253. package/dist/services/approval/approval-flow-coordinator.js +2 -1
  254. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  255. package/dist/services/approval/approval-grant-executor.d.ts +25 -0
  256. package/dist/services/approval/approval-grant-executor.d.ts.map +1 -0
  257. package/dist/services/approval/approval-grant-executor.js +125 -0
  258. package/dist/services/approval/approval-grant-executor.js.map +1 -0
  259. package/dist/services/approval/background-subagent-approval-controller.d.ts +2 -1
  260. package/dist/services/approval/background-subagent-approval-controller.d.ts.map +1 -1
  261. package/dist/services/approval/background-subagent-approval-controller.js.map +1 -1
  262. package/dist/services/approval/nested-approval-owner.d.ts +52 -0
  263. package/dist/services/approval/nested-approval-owner.d.ts.map +1 -0
  264. package/dist/services/approval/nested-approval-owner.js +194 -0
  265. package/dist/services/approval/nested-approval-owner.js.map +1 -0
  266. package/dist/services/approval/non-interactive-approval-policy.js +1 -1
  267. package/dist/services/approval/non-interactive-approval-policy.js.map +1 -1
  268. package/dist/services/approval/shell-auto-approval-evaluator.d.ts.map +1 -1
  269. package/dist/services/approval/shell-auto-approval-evaluator.js +2 -4
  270. package/dist/services/approval/shell-auto-approval-evaluator.js.map +1 -1
  271. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  272. package/dist/services/approval/shell-auto-approval-resolver.js +4 -0
  273. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  274. package/dist/services/approval/tool-approval-batch-coordinator.d.ts +10 -3
  275. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  276. package/dist/services/approval/tool-approval-batch-coordinator.js +16 -5
  277. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  278. package/dist/services/approval/tool-approval-policy-registry.d.ts +13 -0
  279. package/dist/services/approval/tool-approval-policy-registry.d.ts.map +1 -1
  280. package/dist/services/approval/tool-approval-policy-registry.js +16 -1
  281. package/dist/services/approval/tool-approval-policy-registry.js.map +1 -1
  282. package/dist/services/conversation/conversation-adapter-factory.d.ts +3 -1
  283. package/dist/services/conversation/conversation-adapter-factory.d.ts.map +1 -1
  284. package/dist/services/conversation/conversation-adapter-factory.js +3 -3
  285. package/dist/services/conversation/conversation-adapter-factory.js.map +1 -1
  286. package/dist/services/conversation/conversation-adapter.d.ts +3 -2
  287. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  288. package/dist/services/conversation/conversation-adapter.js +32 -23
  289. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  290. package/dist/services/conversation/conversation-orchestrator.d.ts +11 -0
  291. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  292. package/dist/services/conversation/conversation-orchestrator.js +65 -42
  293. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  294. package/dist/services/conversation/conversation-persistence.d.ts +6 -1
  295. package/dist/services/conversation/conversation-persistence.d.ts.map +1 -1
  296. package/dist/services/conversation/conversation-persistence.js +68 -19
  297. package/dist/services/conversation/conversation-persistence.js.map +1 -1
  298. package/dist/services/conversation/conversation-result-builder.d.ts +3 -0
  299. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  300. package/dist/services/conversation/conversation-result-builder.js +27 -23
  301. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  302. package/dist/services/conversation/conversation-runtime-factory.d.ts +5 -0
  303. package/dist/services/conversation/conversation-runtime-factory.d.ts.map +1 -1
  304. package/dist/services/conversation/conversation-runtime-factory.js +1 -0
  305. package/dist/services/conversation/conversation-runtime-factory.js.map +1 -1
  306. package/dist/services/conversation/conversation-service.d.ts +11 -1
  307. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  308. package/dist/services/conversation/conversation-service.js +68 -17
  309. package/dist/services/conversation/conversation-service.js.map +1 -1
  310. package/dist/services/conversation/session-browser.d.ts +34 -27
  311. package/dist/services/conversation/session-browser.d.ts.map +1 -1
  312. package/dist/services/conversation/session-browser.js +221 -60
  313. package/dist/services/conversation/session-browser.js.map +1 -1
  314. package/dist/services/conversation/session-index/session-index-database.d.ts +138 -0
  315. package/dist/services/conversation/session-index/session-index-database.d.ts.map +1 -0
  316. package/dist/services/conversation/session-index/session-index-database.js +684 -0
  317. package/dist/services/conversation/session-index/session-index-database.js.map +1 -0
  318. package/dist/services/conversation/session-index/session-index-schema.d.ts +35 -0
  319. package/dist/services/conversation/session-index/session-index-schema.d.ts.map +1 -0
  320. package/dist/services/conversation/session-index/session-index-schema.js +156 -0
  321. package/dist/services/conversation/session-index/session-index-schema.js.map +1 -0
  322. package/dist/services/conversation/session-index/session-index-service.d.ts +30 -0
  323. package/dist/services/conversation/session-index/session-index-service.d.ts.map +1 -0
  324. package/dist/services/conversation/session-index/session-index-service.js +234 -0
  325. package/dist/services/conversation/session-index/session-index-service.js.map +1 -0
  326. package/dist/services/conversation/session-index/session-index-worker-client.d.ts +36 -0
  327. package/dist/services/conversation/session-index/session-index-worker-client.d.ts.map +1 -0
  328. package/dist/services/conversation/session-index/session-index-worker-client.js +143 -0
  329. package/dist/services/conversation/session-index/session-index-worker-client.js.map +1 -0
  330. package/dist/services/conversation/session-index/session-index-worker.d.ts +56 -0
  331. package/dist/services/conversation/session-index/session-index-worker.d.ts.map +1 -0
  332. package/dist/services/conversation/session-index/session-index-worker.js +96 -0
  333. package/dist/services/conversation/session-index/session-index-worker.js.map +1 -0
  334. package/dist/services/conversation/session-search-helpers.d.ts +4 -0
  335. package/dist/services/conversation/session-search-helpers.d.ts.map +1 -0
  336. package/dist/services/conversation/session-search-helpers.js +13 -0
  337. package/dist/services/conversation/session-search-helpers.js.map +1 -0
  338. package/dist/services/conversation-agent-client.d.ts +8 -0
  339. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  340. package/dist/services/execution-context.js +2 -2
  341. package/dist/services/execution-context.js.map +1 -1
  342. package/dist/services/hooks/hook-event-factory.d.ts +2 -1
  343. package/dist/services/hooks/hook-event-factory.d.ts.map +1 -1
  344. package/dist/services/hooks/hook-event-factory.js +2 -1
  345. package/dist/services/hooks/hook-event-factory.js.map +1 -1
  346. package/dist/services/logging/conversation-log-writer.d.ts.map +1 -1
  347. package/dist/services/logging/conversation-log-writer.js +50 -26
  348. package/dist/services/logging/conversation-log-writer.js.map +1 -1
  349. package/dist/services/logging/logging-service.d.ts.map +1 -1
  350. package/dist/services/logging/logging-service.js +1 -0
  351. package/dist/services/logging/logging-service.js.map +1 -1
  352. package/dist/services/logging/provider-traffic.d.ts +22 -2
  353. package/dist/services/logging/provider-traffic.d.ts.map +1 -1
  354. package/dist/services/logging/provider-traffic.js +147 -12
  355. package/dist/services/logging/provider-traffic.js.map +1 -1
  356. package/dist/services/model-service.d.ts +42 -0
  357. package/dist/services/model-service.d.ts.map +1 -1
  358. package/dist/services/model-service.js +161 -26
  359. package/dist/services/model-service.js.map +1 -1
  360. package/dist/services/models/model-catalog-session.d.ts.map +1 -1
  361. package/dist/services/models/model-catalog-session.js +11 -7
  362. package/dist/services/models/model-catalog-session.js.map +1 -1
  363. package/dist/services/models/model-favorites.d.ts +56 -0
  364. package/dist/services/models/model-favorites.d.ts.map +1 -0
  365. package/dist/services/models/model-favorites.js +93 -0
  366. package/dist/services/models/model-favorites.js.map +1 -0
  367. package/dist/services/models/model-listing.d.ts +40 -0
  368. package/dist/services/models/model-listing.d.ts.map +1 -1
  369. package/dist/services/models/model-listing.js +35 -2
  370. package/dist/services/models/model-listing.js.map +1 -1
  371. package/dist/services/models/model-nicknames.d.ts +113 -0
  372. package/dist/services/models/model-nicknames.d.ts.map +1 -0
  373. package/dist/services/models/model-nicknames.js +182 -0
  374. package/dist/services/models/model-nicknames.js.map +1 -0
  375. package/dist/services/models/model-picker-host.d.ts +72 -0
  376. package/dist/services/models/model-picker-host.d.ts.map +1 -0
  377. package/dist/services/models/model-picker-host.js +83 -0
  378. package/dist/services/models/model-picker-host.js.map +1 -0
  379. package/dist/services/models/model-resolution.d.ts +35 -3
  380. package/dist/services/models/model-resolution.d.ts.map +1 -1
  381. package/dist/services/models/model-resolution.js +276 -47
  382. package/dist/services/models/model-resolution.js.map +1 -1
  383. package/dist/services/models/reasoning-effort.d.ts +20 -0
  384. package/dist/services/models/reasoning-effort.d.ts.map +1 -0
  385. package/dist/services/models/reasoning-effort.js +28 -0
  386. package/dist/services/models/reasoning-effort.js.map +1 -0
  387. package/dist/services/models/unified-model-catalog.d.ts +4 -0
  388. package/dist/services/models/unified-model-catalog.d.ts.map +1 -0
  389. package/dist/services/models/unified-model-catalog.js +54 -0
  390. package/dist/services/models/unified-model-catalog.js.map +1 -0
  391. package/dist/services/retry/provider-failure-classification.d.ts +16 -0
  392. package/dist/services/retry/provider-failure-classification.d.ts.map +1 -1
  393. package/dist/services/retry/provider-failure-classification.js +45 -0
  394. package/dist/services/retry/provider-failure-classification.js.map +1 -1
  395. package/dist/services/retry/retry-recovery-budget.d.ts +26 -1
  396. package/dist/services/retry/retry-recovery-budget.d.ts.map +1 -1
  397. package/dist/services/retry/retry-recovery-budget.js +33 -1
  398. package/dist/services/retry/retry-recovery-budget.js.map +1 -1
  399. package/dist/services/sandboxed-code-host/host-types.d.ts +135 -0
  400. package/dist/services/sandboxed-code-host/host-types.d.ts.map +1 -0
  401. package/dist/services/sandboxed-code-host/host-types.js +6 -0
  402. package/dist/services/sandboxed-code-host/host-types.js.map +1 -0
  403. package/dist/services/sandboxed-code-host/host-worker.d.ts +9 -0
  404. package/dist/services/sandboxed-code-host/host-worker.d.ts.map +1 -0
  405. package/dist/services/sandboxed-code-host/host-worker.js +351 -0
  406. package/dist/services/sandboxed-code-host/host-worker.js.map +1 -0
  407. package/dist/services/sandboxed-code-host/sandbox.d.ts +16 -0
  408. package/dist/services/sandboxed-code-host/sandbox.d.ts.map +1 -0
  409. package/dist/services/sandboxed-code-host/sandbox.js +21 -0
  410. package/dist/services/sandboxed-code-host/sandbox.js.map +1 -0
  411. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts +17 -0
  412. package/dist/services/sandboxed-code-host/sandboxed-code-host.d.ts.map +1 -0
  413. package/dist/services/sandboxed-code-host/sandboxed-code-host.js +347 -0
  414. package/dist/services/sandboxed-code-host/sandboxed-code-host.js.map +1 -0
  415. package/dist/services/service-interfaces.d.ts +32 -0
  416. package/dist/services/service-interfaces.d.ts.map +1 -1
  417. package/dist/services/session/background-task-control.d.ts +3 -1
  418. package/dist/services/session/background-task-control.d.ts.map +1 -1
  419. package/dist/services/session/background-task-control.js +4 -0
  420. package/dist/services/session/background-task-control.js.map +1 -1
  421. package/dist/services/session/continuation-plan-applier.d.ts +2 -1
  422. package/dist/services/session/continuation-plan-applier.d.ts.map +1 -1
  423. package/dist/services/session/continuation-plan-applier.js.map +1 -1
  424. package/dist/services/session/continuation-recovery-handler.d.ts +2 -1
  425. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  426. package/dist/services/session/continuation-recovery-handler.js +49 -5
  427. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  428. package/dist/services/session/initial-input-preparer.d.ts +2 -1
  429. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  430. package/dist/services/session/initial-input-preparer.js +2 -1
  431. package/dist/services/session/initial-input-preparer.js.map +1 -1
  432. package/dist/services/session/initial-turn-recovery-handler.d.ts +2 -1
  433. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  434. package/dist/services/session/initial-turn-recovery-handler.js +51 -16
  435. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  436. package/dist/services/session/post-execute-pending-registry.d.ts +2 -1
  437. package/dist/services/session/post-execute-pending-registry.d.ts.map +1 -1
  438. package/dist/services/session/post-execute-pending-registry.js +3 -2
  439. package/dist/services/session/post-execute-pending-registry.js.map +1 -1
  440. package/dist/services/session/session-client-factory.d.ts +4 -0
  441. package/dist/services/session/session-client-factory.d.ts.map +1 -1
  442. package/dist/services/session/session-client-factory.js +12 -4
  443. package/dist/services/session/session-client-factory.js.map +1 -1
  444. package/dist/services/session/session-composition.d.ts +26 -2
  445. package/dist/services/session/session-composition.d.ts.map +1 -1
  446. package/dist/services/session/session-composition.js +97 -18
  447. package/dist/services/session/session-composition.js.map +1 -1
  448. package/dist/services/session/session-continuity-reset.d.ts +2 -1
  449. package/dist/services/session/session-continuity-reset.d.ts.map +1 -1
  450. package/dist/services/session/session-continuity-reset.js +5 -2
  451. package/dist/services/session/session-continuity-reset.js.map +1 -1
  452. package/dist/services/session/session-identity.d.ts +20 -0
  453. package/dist/services/session/session-identity.d.ts.map +1 -0
  454. package/dist/services/session/session-identity.js +43 -0
  455. package/dist/services/session/session-identity.js.map +1 -0
  456. package/dist/services/session/session-lifecycle.d.ts +5 -1
  457. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  458. package/dist/services/session/session-lifecycle.js +5 -1
  459. package/dist/services/session/session-lifecycle.js.map +1 -1
  460. package/dist/services/session/session-stream-processor.d.ts +2 -1
  461. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  462. package/dist/services/session/session-stream-processor.js +5 -4
  463. package/dist/services/session/session-stream-processor.js.map +1 -1
  464. package/dist/services/session/test-helpers/conversation-session-fixtures.d.ts.map +1 -1
  465. package/dist/services/session/test-helpers/conversation-session-fixtures.js +14 -9
  466. package/dist/services/session/test-helpers/conversation-session-fixtures.js.map +1 -1
  467. package/dist/services/session/turn-coordinator.d.ts +2 -1
  468. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  469. package/dist/services/session/turn-coordinator.js +3 -0
  470. package/dist/services/session/turn-coordinator.js.map +1 -1
  471. package/dist/services/session/turn-workflow.d.ts +4 -1
  472. package/dist/services/session/turn-workflow.d.ts.map +1 -1
  473. package/dist/services/session/turn-workflow.js +58 -21
  474. package/dist/services/session/turn-workflow.js.map +1 -1
  475. package/dist/services/session-rollover/session-rollover-brief.d.ts +8 -1
  476. package/dist/services/session-rollover/session-rollover-brief.d.ts.map +1 -1
  477. package/dist/services/session-rollover/session-rollover-brief.js +14 -1
  478. package/dist/services/session-rollover/session-rollover-brief.js.map +1 -1
  479. package/dist/services/settings/setting-schema-utils.d.ts +2 -0
  480. package/dist/services/settings/setting-schema-utils.d.ts.map +1 -1
  481. package/dist/services/settings/setting-schema-utils.js +15 -27
  482. package/dist/services/settings/setting-schema-utils.js.map +1 -1
  483. package/dist/services/settings/settings-schema.d.ts +8 -0
  484. package/dist/services/settings/settings-schema.d.ts.map +1 -1
  485. package/dist/services/settings/settings-schema.js +23 -6
  486. package/dist/services/settings/settings-schema.js.map +1 -1
  487. package/dist/services/settings/settings-sources.d.ts +207 -0
  488. package/dist/services/settings/settings-sources.d.ts.map +1 -1
  489. package/dist/services/settings/settings-sources.js +48 -1
  490. package/dist/services/settings/settings-sources.js.map +1 -1
  491. package/dist/services/settings/settings-ui-metadata.d.ts +27 -0
  492. package/dist/services/settings/settings-ui-metadata.d.ts.map +1 -0
  493. package/dist/services/settings/settings-ui-metadata.js +283 -0
  494. package/dist/services/settings/settings-ui-metadata.js.map +1 -0
  495. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts +10 -0
  496. package/dist/services/settings/test-helpers/settings-consumer-inventory.d.ts.map +1 -1
  497. package/dist/services/settings/test-helpers/settings-consumer-inventory.js +46 -0
  498. package/dist/services/settings/test-helpers/settings-consumer-inventory.js.map +1 -1
  499. package/dist/services/subagents/execution-runner.d.ts.map +1 -1
  500. package/dist/services/subagents/execution-runner.js +8 -0
  501. package/dist/services/subagents/execution-runner.js.map +1 -1
  502. package/dist/services/subagents/role-loader.d.ts.map +1 -1
  503. package/dist/services/subagents/role-loader.js +4 -0
  504. package/dist/services/subagents/role-loader.js.map +1 -1
  505. package/dist/services/subagents/subagent-client-types.d.ts +7 -0
  506. package/dist/services/subagents/subagent-client-types.d.ts.map +1 -1
  507. package/dist/services/subagents/subagent-manager.d.ts.map +1 -1
  508. package/dist/services/subagents/subagent-manager.js +4 -1
  509. package/dist/services/subagents/subagent-manager.js.map +1 -1
  510. package/dist/services/subagents/subagent-notification-store.d.ts +2 -0
  511. package/dist/services/subagents/subagent-notification-store.d.ts.map +1 -1
  512. package/dist/services/subagents/subagent-notification-store.js +4 -0
  513. package/dist/services/subagents/subagent-notification-store.js.map +1 -1
  514. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.d.ts.map +1 -1
  515. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js +2 -1
  516. package/dist/services/subagents/test-helpers/subagent-manager-fixtures.js.map +1 -1
  517. package/dist/services/subagents/tool-policy.d.ts +8 -0
  518. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  519. package/dist/services/subagents/tool-policy.js +289 -41
  520. package/dist/services/subagents/tool-policy.js.map +1 -1
  521. package/dist/services/subagents/types.d.ts +2 -1
  522. package/dist/services/subagents/types.d.ts.map +1 -1
  523. package/dist/services/subagents/types.js.map +1 -1
  524. package/dist/test-helpers/conversation-session-with-adapter.d.ts +1 -1
  525. package/dist/test-helpers/conversation-session-with-adapter.d.ts.map +1 -1
  526. package/dist/test-helpers/conversation-session-with-adapter.js +6 -1
  527. package/dist/test-helpers/conversation-session-with-adapter.js.map +1 -1
  528. package/dist/test-helpers/vitest-cache-isolation.d.ts +2 -0
  529. package/dist/test-helpers/vitest-cache-isolation.d.ts.map +1 -0
  530. package/dist/test-helpers/vitest-cache-isolation.js +17 -0
  531. package/dist/test-helpers/vitest-cache-isolation.js.map +1 -0
  532. package/dist/tools/agent/activate-skill.d.ts.map +1 -1
  533. package/dist/tools/agent/activate-skill.js +1 -0
  534. package/dist/tools/agent/activate-skill.js.map +1 -1
  535. package/dist/tools/agent/configure-task-check-in.d.ts.map +1 -1
  536. package/dist/tools/agent/configure-task-check-in.js +1 -0
  537. package/dist/tools/agent/configure-task-check-in.js.map +1 -1
  538. package/dist/tools/agent/run-subagent-async.d.ts.map +1 -1
  539. package/dist/tools/agent/run-subagent-async.js +16 -12
  540. package/dist/tools/agent/run-subagent-async.js.map +1 -1
  541. package/dist/tools/file/apply-patch.d.ts.map +1 -1
  542. package/dist/tools/file/apply-patch.js +9 -11
  543. package/dist/tools/file/apply-patch.js.map +1 -1
  544. package/dist/tools/file/code-context.d.ts.map +1 -1
  545. package/dist/tools/file/code-context.js +40 -5
  546. package/dist/tools/file/code-context.js.map +1 -1
  547. package/dist/tools/file/create-file.d.ts.map +1 -1
  548. package/dist/tools/file/create-file.js +13 -8
  549. package/dist/tools/file/create-file.js.map +1 -1
  550. package/dist/tools/file/glob.d.ts.map +1 -1
  551. package/dist/tools/file/glob.js +49 -11
  552. package/dist/tools/file/glob.js.map +1 -1
  553. package/dist/tools/file/grep.d.ts.map +1 -1
  554. package/dist/tools/file/grep.js +32 -8
  555. package/dist/tools/file/grep.js.map +1 -1
  556. package/dist/tools/file/read-file.d.ts.map +1 -1
  557. package/dist/tools/file/read-file.js +109 -6
  558. package/dist/tools/file/read-file.js.map +1 -1
  559. package/dist/tools/file/search-replace.js +4 -4
  560. package/dist/tools/file/search-replace.js.map +1 -1
  561. package/dist/tools/file/upstream-apply-patch.d.ts.map +1 -1
  562. package/dist/tools/file/upstream-apply-patch.js +4 -1
  563. package/dist/tools/file/upstream-apply-patch.js.map +1 -1
  564. package/dist/tools/memory/memory-tools.d.ts.map +1 -1
  565. package/dist/tools/memory/memory-tools.js +19 -1
  566. package/dist/tools/memory/memory-tools.js.map +1 -1
  567. package/dist/tools/session-browser/session-browser-tools.d.ts.map +1 -1
  568. package/dist/tools/session-browser/session-browser-tools.js +24 -8
  569. package/dist/tools/session-browser/session-browser-tools.js.map +1 -1
  570. package/dist/tools/session-rollover/session-rollover-tool.d.ts.map +1 -1
  571. package/dist/tools/session-rollover/session-rollover-tool.js +8 -2
  572. package/dist/tools/session-rollover/session-rollover-tool.js.map +1 -1
  573. package/dist/tools/system/run-code/index.d.ts +2 -0
  574. package/dist/tools/system/run-code/index.d.ts.map +1 -0
  575. package/dist/tools/system/run-code/index.js +2 -0
  576. package/dist/tools/system/run-code/index.js.map +1 -0
  577. package/dist/tools/system/run-code/run-code-telemetry.d.ts +92 -0
  578. package/dist/tools/system/run-code/run-code-telemetry.d.ts.map +1 -0
  579. package/dist/tools/system/run-code/run-code-telemetry.js +189 -0
  580. package/dist/tools/system/run-code/run-code-telemetry.js.map +1 -0
  581. package/dist/tools/system/run-code/run-code.d.ts +98 -0
  582. package/dist/tools/system/run-code/run-code.d.ts.map +1 -0
  583. package/dist/tools/system/run-code/run-code.js +1078 -0
  584. package/dist/tools/system/run-code/run-code.js.map +1 -0
  585. package/dist/tools/system/run-code/tools-header.d.ts +25 -0
  586. package/dist/tools/system/run-code/tools-header.d.ts.map +1 -0
  587. package/dist/tools/system/run-code/tools-header.js +136 -0
  588. package/dist/tools/system/run-code/tools-header.js.map +1 -0
  589. package/dist/tools/system/shell.d.ts.map +1 -1
  590. package/dist/tools/system/shell.js +58 -9
  591. package/dist/tools/system/shell.js.map +1 -1
  592. package/dist/tools/system/worktree.js +2 -2
  593. package/dist/tools/system/worktree.js.map +1 -1
  594. package/dist/tools/types.d.ts +24 -0
  595. package/dist/tools/types.d.ts.map +1 -1
  596. package/dist/tools/types.js.map +1 -1
  597. package/dist/tools/utils.d.ts +10 -0
  598. package/dist/tools/utils.d.ts.map +1 -1
  599. package/dist/tools/utils.js +13 -0
  600. package/dist/tools/utils.js.map +1 -1
  601. package/dist/tools/web/web-fetch.d.ts.map +1 -1
  602. package/dist/tools/web/web-fetch.js +14 -6
  603. package/dist/tools/web/web-fetch.js.map +1 -1
  604. package/dist/tools/web/web-search.d.ts.map +1 -1
  605. package/dist/tools/web/web-search.js +2 -1
  606. package/dist/tools/web/web-search.js.map +1 -1
  607. package/dist/utils/ai/model-settings.d.ts.map +1 -1
  608. package/dist/utils/ai/model-settings.js +0 -47
  609. package/dist/utils/ai/model-settings.js.map +1 -1
  610. package/dist/utils/conversation/apply-conversation-result.d.ts.map +1 -1
  611. package/dist/utils/conversation/apply-conversation-result.js +13 -0
  612. package/dist/utils/conversation/apply-conversation-result.js.map +1 -1
  613. package/dist/utils/conversation/conversation-utils.d.ts.map +1 -1
  614. package/dist/utils/conversation/conversation-utils.js +14 -0
  615. package/dist/utils/conversation/conversation-utils.js.map +1 -1
  616. package/dist/utils/output/bound-tool-result.d.ts +23 -0
  617. package/dist/utils/output/bound-tool-result.d.ts.map +1 -1
  618. package/dist/utils/output/bound-tool-result.js +27 -0
  619. package/dist/utils/output/bound-tool-result.js.map +1 -1
  620. package/dist/utils/settings-command.d.ts +8 -0
  621. package/dist/utils/settings-command.d.ts.map +1 -1
  622. package/dist/utils/settings-command.js +45 -30
  623. package/dist/utils/settings-command.js.map +1 -1
  624. package/dist/utils/shell/execute-shell.d.ts +18 -0
  625. package/dist/utils/shell/execute-shell.d.ts.map +1 -1
  626. package/dist/utils/shell/execute-shell.js +48 -6
  627. package/dist/utils/shell/execute-shell.js.map +1 -1
  628. package/dist/utils/shell/shell-output.d.ts +7 -1
  629. package/dist/utils/shell/shell-output.d.ts.map +1 -1
  630. package/dist/utils/shell/shell-output.js +37 -7
  631. package/dist/utils/shell/shell-output.js.map +1 -1
  632. package/dist/utils/streaming/streaming-session-factory.d.ts +9 -0
  633. package/dist/utils/streaming/streaming-session-factory.d.ts.map +1 -1
  634. package/dist/utils/streaming/streaming-session-factory.js +1 -1
  635. package/dist/utils/streaming/streaming-session-factory.js.map +1 -1
  636. package/dist/utils/tool-args-display.d.ts +21 -0
  637. package/dist/utils/tool-args-display.d.ts.map +1 -0
  638. package/dist/utils/tool-args-display.js +34 -0
  639. package/dist/utils/tool-args-display.js.map +1 -0
  640. package/dist/utils/value-suggestions.d.ts +4 -10
  641. package/dist/utils/value-suggestions.d.ts.map +1 -1
  642. package/dist/utils/value-suggestions.js +77 -144
  643. package/dist/utils/value-suggestions.js.map +1 -1
  644. package/dist/utils/worker-bootstrap.d.ts +3 -0
  645. package/dist/utils/worker-bootstrap.d.ts.map +1 -0
  646. package/dist/utils/worker-bootstrap.js +7 -0
  647. package/dist/utils/worker-bootstrap.js.map +1 -0
  648. package/dist/utils/worker-cwd-preload.cjs +23 -0
  649. package/dist/utils/worker-cwd-preload.cjs.map +1 -0
  650. package/dist/utils/worker-cwd-preload.d.cts +2 -0
  651. package/dist/utils/worker-cwd-preload.d.cts.map +1 -0
  652. package/package.json +5 -2
  653. package/dist/services/agent-runtime/workflow/workflow-worker.d.ts +0 -4
  654. package/dist/services/agent-runtime/workflow/workflow-worker.d.ts.map +0 -1
  655. package/dist/services/agent-runtime/workflow/workflow-worker.js +0 -55
  656. package/dist/services/agent-runtime/workflow/workflow-worker.js.map +0 -1
@@ -1,15 +1,23 @@
1
1
  import { z } from 'zod';
2
2
  import { boundedJsonFailure, fitsSerializedText } from '../../utils/output/bounded-json.js';
3
- import { resolveToolResultMaxBytes } from '../../utils/output/bound-tool-result.js';
3
+ import { isScriptedToolCall, resolveToolResultMaxBytes } from '../../utils/output/bound-tool-result.js';
4
4
  import { getCallIdFromItem, getOutputText, isSuccessOutput, normalizeToolArguments, createBaseMessage, } from '../format-helpers.js';
5
5
  const maxChars = z.number().int().min(512).max(12_000).optional();
6
6
  const limit = z.number().int().min(1).max(50).optional();
7
7
  const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9_-]*$/);
8
+ const sessionKind = z.enum(['user', 'assistant', 'reasoning', 'system', 'tool', 'subagent']);
8
9
  export function createSessionBrowserToolDefinitions(browser) {
9
10
  return [
10
- definition('session_list', 'List prior locally persisted sessions for the current project. `total` is the number of browsable sessions in scope; `omitted` counts list entries dropped only because the output budget could not fit them (entries beyond `limit` are excluded by `total`).', z.object({ limit, maxChars }).strict(), (params) => browser.list(params)),
11
- definition('session_search', 'Search prior locally persisted session transcripts for the current project. `total` is the number of ranked matches before `limit` is applied; `omitted` counts matches dropped only because the output budget could not fit them. Matches from the currently active session sort last, because searching indexes tool outputs and the query echoes in the live transcript.', z.object({ query: z.string().refine((value) => /\S/.test(value)), limit, maxChars }).strict(), (params) => browser.search(params)),
12
- definition('session_read', 'Read a prior local session transcript progressively by cursor. Use `id: "previous"` for the persisted rollover predecessor, or an exact/unambiguous UUID prefix. Ambiguous prefixes return candidates and are never guessed. Use `from: "end"` on an initial read to start at the final projected record; omit `cursor` with this option, then use the returned cursor for any continuation. `total` is the projected record count for the whole session; `omitted` counts records not begun in this page (a partially emitted chunk still counts as begun), so `total - omitted` records were started here.', z
11
+ definition('session_list', 'List prior locally persisted sessions for the current project. `total` is the number of browsable sessions in scope; `omitted` counts list entries dropped only because the output budget could not fit them (entries beyond `limit` are excluded by `total`).', z.object({ limit, maxChars }).strict(), (params) => browser.list(params), '{ sessions: { id: string, shortRef: string, createdAt: string, updatedAt: string, firstUserMessage?: string, model?: string, provider?: string, messageCount: number }[], scope: string, total: number, omitted: number, unavailable: number, charsUsed: number } | { error: { code: string, message: string, candidates?: { id: string, shortRef: string }[] } }'),
12
+ definition('session_search', 'Search prior locally persisted session transcripts for the current project. Whitespace-separated query terms use OR matching, so prefer distinctive terms over broad words. Use `kinds: ["user", "assistant"]` to exclude noisy tool, reasoning, system, and subagent records when looking for conversation content. Without `kinds`, every projected record kind is searched. `total` is the number of ranked matches after the kind filter and before `limit` is applied; `omitted` counts matches dropped only because the output budget could not fit them. Matches from the currently active session sort last, because searching indexes tool outputs and the query echoes in the live transcript. Each match\'s `updatedAt` is the session\'s last-write timestamp, not per-message time.', z
13
+ .object({
14
+ query: z.string().refine((value) => /\S/.test(value)),
15
+ kinds: z.array(sessionKind).min(1).max(6).optional(),
16
+ limit,
17
+ maxChars,
18
+ })
19
+ .strict(), (params) => browser.search(params), '{ results: { sessionId: string, shortRef: string, kind: string, messageIndex: number, snippet: { text: string, truncated: boolean }, updatedAt: string }[], scope: string, total: number, omitted: number, unavailable: number, skippedMessageCount: number, charsUsed: number } | { error: { code: string, message: string, candidates?: { id: string, shortRef: string }[] } }'),
20
+ definition('session_read', 'Read a prior local session transcript progressively by cursor. Use `id: "previous"` for the persisted rollover predecessor, or an exact/unambiguous ID or shortRef returned by `session_list`/`session_search`; never reconstruct an ID. Ambiguous prefixes return candidates and are never guessed. On an initial read, `from: "end"` starts at the last `limit` projected records in chronological order (`limit` selects the tail region; without `from: "end"` the read starts at the first record); omit `cursor` with this option, then continue with the returned cursor and no `from`. Cursors are process-local opaque handles: use exactly the `nextCursor` returned by the preceding page with the same `id`. Never invent, edit, or reuse a cursor from another read; after an invalid or stale cursor, restart without one. `maxChars` may require continuation pages; `nextCursor` is returned only while forward content remains, so its absence after a tail read says nothing about earlier records. `total` is the projected record count for the whole session; `omitted` counts whole-session records not represented on this page for any reason — before the tail anchor, beyond `limit`, or awaiting continuation — unlike `session_list`/`session_search`, whose `omitted` counts only budget-dropped entries; a partial or resumed chunk still represents its record, so `total - omitted` records are represented here.', z
13
21
  .object({ id, from: z.literal('end').optional(), cursor: z.string().optional(), limit, maxChars })
14
22
  .strict()
15
23
  .superRefine((params, ctx) => {
@@ -19,18 +27,26 @@ export function createSessionBrowserToolDefinitions(browser) {
19
27
  path: ['from'],
20
28
  message: '`from: "end"` requires an initial read without cursor.',
21
29
  });
22
- }), (params) => browser.read(params)),
30
+ }), (params) => browser.read(params), '{ scope: string, session: { id: string, shortRef: string, createdAt: string, updatedAt: string, model?: string, provider?: string }, items: { index: number, kind: string, text: string, textOffset: number, totalTextChars: number, complete: boolean }[], nextCursor?: string, total: number, omitted: number, skippedMessageCount: number, charsUsed: number } | { error: { code: string, message: string, candidates?: { id: string, shortRef: string }[] } }'),
23
31
  ];
24
32
  }
25
- function definition(name, description, parameters, execute) {
33
+ function definition(name, description, parameters, execute, scriptedReturnShape) {
26
34
  return {
27
35
  name,
28
36
  description,
29
37
  parameters,
38
+ scriptedReturnShape,
30
39
  preserveSerializedOutput: true,
31
40
  needsApproval: () => false,
32
- execute: async (params) => {
33
- const result = JSON.stringify(execute(params));
41
+ execute: async (params, context) => {
42
+ const value = await execute(params);
43
+ // A scripted call receives the structured envelope directly; the
44
+ // serialized-JSON-string form exists to bound what enters model
45
+ // context, and a script would otherwise have to JSON.parse every
46
+ // result before reading its fields.
47
+ if (isScriptedToolCall(context))
48
+ return value;
49
+ const result = JSON.stringify(value);
34
50
  const budget = params.maxChars ?? 12_000;
35
51
  return fitsSerializedText(result, { maxChars: budget, maxBytes: resolveToolResultMaxBytes() })
36
52
  ? result
@@ -1 +1 @@
1
- {"version":3,"file":"session-browser-tools.js","sourceRoot":"","sources":["../../../source/tools/session-browser/session-browser-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-browser-tools.js","sourceRoot":"","sources":["../../../source/tools/session-browser/session-browser-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-rollover-tool.d.ts","sourceRoot":"","sources":["../../../source/tools/session-rollover/session-rollover-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,eAAO,MAAM,yBAAyB;;;;;;kBAK3B,CAAC;AAEZ,wBAAgB,mCAAmC,CACjD,eAAe,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,6BAA6B,GAClF,cAAc,CAAC,OAAO,yBAAyB,CAAC,CAoClD"}
1
+ {"version":3,"file":"session-rollover-tool.d.ts","sourceRoot":"","sources":["../../../source/tools/session-rollover/session-rollover-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACjH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AASlD,eAAO,MAAM,yBAAyB;;;;;;kBAW3B,CAAC;AAEZ,wBAAgB,mCAAmC,CACjD,eAAe,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,6BAA6B,GAClF,cAAc,CAAC,OAAO,yBAAyB,CAAC,CAsClD"}
@@ -2,14 +2,20 @@ import { z } from 'zod';
2
2
  import { createBaseMessage, getCallIdFromItem, getOutputText, isSuccessOutput, normalizeToolArguments, } from '../format-helpers.js';
3
3
  export const sessionRolloverParameters = z
4
4
  .object({
5
- brief: z.string().max(8_000),
5
+ brief: z
6
+ .string()
7
+ .max(8_000)
8
+ .describe('Keep well below 8,000 characters. Give the next open step, unfinished decisions, completed effects, and durable paths/commits. ' +
9
+ 'When a canonical artifact already holds the state, write a short delta and pointer instead of copying it.'),
6
10
  reason: z.enum(['context_pressure', 'task_boundary']).optional(),
7
11
  })
8
12
  .strict();
9
13
  export function createSessionRolloverToolDefinition(requestRollover) {
10
14
  return {
11
15
  name: 'session_rollover',
12
- description: 'Request an idle-boundary rotation into a fresh session. Include a concise handoff brief with completed work, open work, and durable-state pointers.',
16
+ description: 'Request an idle-boundary rotation into a fresh session. Live background work survives the rotation; include its current status and next action in the brief, but do not wait for it merely to rotate. ' +
17
+ 'Keep the brief well below the 8,000-character limit using durable-state pointers and the next open step. ' +
18
+ 'The successor retains the session-owned live background registry and can inspect or control those handles; save durable results when they are ready rather than copying transient output into the brief.',
13
19
  parameters: sessionRolloverParameters,
14
20
  terminateAfterExecution: (result) => typeof result === 'string' &&
15
21
  (() => {
@@ -1 +1 @@
1
- {"version":3,"file":"session-rollover-tool.js","sourceRoot":"","sources":["../../../source/tools/session-rollover/session-rollover-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjE,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,mCAAmC,CACjD,eAAmF;IAEnF,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,qJAAqJ;QACvJ,UAAU,EAAE,yBAAyB;QACrC,uBAAuB,EAAE,CAAC,MAAM,EAAE,EAAE,CAClC,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,GAAG,EAAE;gBACJ,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2C,CAAC;oBAC5E,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,oBAAoB,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,EAAE;QACN,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,GACR,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;gBACnE,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,EAAE,CAAC;YACL,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO;gBACL,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;oBACvC,OAAO,EAAE,kBAAkB;oBAC3B,MAAM;oBACN,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;oBAChC,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"session-rollover-tool.js","sourceRoot":"","sources":["../../../source/tools/session-rollover/session-rollover-tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,sBAAsB,GACvB,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC;KACvC,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,KAAK,CAAC;SACV,QAAQ,CACP,iIAAiI;QAC/H,2GAA2G,CAC9G;IACH,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC,QAAQ,EAAE;CACjE,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,MAAM,UAAU,mCAAmC,CACjD,eAAmF;IAEnF,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,WAAW,EACT,wMAAwM;YACxM,2GAA2G;YAC3G,0MAA0M;QAC5M,UAAU,EAAE,yBAAyB;QACrC,uBAAuB,EAAE,CAAC,MAAM,EAAE,EAAE,CAClC,OAAO,MAAM,KAAK,QAAQ;YAC1B,CAAC,GAAG,EAAE;gBACJ,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAA2C,CAAC;oBAC5E,OAAO,MAAM,CAAC,EAAE,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,oBAAoB,CAAC;gBACtE,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC,CAAC,EAAE;QACN,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;QAC1B,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAC5D,oBAAoB,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvC,MAAM,IAAI,GACR,sBAAsB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,IAAI,IAAI,EAAE,SAAS,CAAC;gBACnE,CAAC,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzD,EAAE,CAAC;YACL,MAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACnC,OAAO;gBACL,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE;oBACvC,OAAO,EAAE,kBAAkB;oBAC3B,MAAM;oBACN,OAAO,EAAE,eAAe,CAAC,MAAM,CAAC;oBAChC,QAAQ,EAAE,kBAAkB;oBAC5B,QAAQ,EAAE,IAAI;iBACf,CAAC;aACH,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { bindRunCodeRegistry, createRunCodeToolDefinition, formatRunCodeCommandMessage, runCodeParametersSchema, RUN_CODE_LIMITS, RUN_CODE_PROHIBITED_TOOLS, TOOL_NAME_DESCRIBE, TOOL_NAME_RUN_CODE, isDirectlyCallable, type CreateRunCodeToolOptions, type RunCodeActionOutcome, type RunCodeActionReceipt, type RunCodeCallRecord, type RunCodeParams, } from './run-code.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../source/tools/system/run-code/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,wBAAwB,EAC7B,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,aAAa,GACnB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { bindRunCodeRegistry, createRunCodeToolDefinition, formatRunCodeCommandMessage, runCodeParametersSchema, RUN_CODE_LIMITS, RUN_CODE_PROHIBITED_TOOLS, TOOL_NAME_DESCRIBE, TOOL_NAME_RUN_CODE, isDirectlyCallable, } from './run-code.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../source/tools/system/run-code/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,2BAA2B,EAC3B,uBAAuB,EACvB,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,GAMnB,MAAM,eAAe,CAAC"}
@@ -0,0 +1,92 @@
1
+ import type { ILoggingService, LogMetadataContract } from '../../../services/service-interfaces.js';
2
+ import type { HostResult } from '../../../services/sandboxed-code-host/host-types.js';
3
+ import type { RunCodeActionReceipt, RunCodeCallRecord } from './run-code.js';
4
+ /**
5
+ * Structured completion telemetry for one `run_code` invocation.
6
+ *
7
+ * One event per invocation, written through the application logger so it lands
8
+ * in the same durable JSONL app log as every other structured event. It exists
9
+ * to answer the question that gates the type-checked TypeScript slice
10
+ * (docs/plans/run-code-typescript.md): do statically preventable nested-call
11
+ * failures actually cause retries, false completion, or replay? The answer is
12
+ * derived by querying these events, not by re-reading conversations, so the
13
+ * event carries the join keys (sessionId, sourceDigest, outcome, timestamp) as
14
+ * well as the counts.
15
+ *
16
+ * Emitted at `info`: the default log level is `info`, so the older
17
+ * `run_code execution finished` line, which is `debug`, is absent from default
18
+ * app logs and cannot be counted.
19
+ *
20
+ * Privacy: every emitted value is a number, an enum drawn from a closed set, or
21
+ * a source digest. The script source, its arguments, the failure messages, tool
22
+ * names, workspace paths, and the model-authored `description` are deliberately
23
+ * never emitted — nested failure text routinely carries paths and arguments, and
24
+ * an unknown member name is arbitrary model-authored text. Failure attribution
25
+ * reads those messages in-process and emits only a class.
26
+ */
27
+ export declare const RUN_CODE_COMPLETION_EVENT = "tool.run_code.completion";
28
+ export declare const RUN_CODE_COMPLETION_MESSAGE = "run_code completed";
29
+ /**
30
+ * How the invocation ended.
31
+ *
32
+ * The first six are the categories the plan requires. The remaining four are
33
+ * host outcomes that had no honest home among them: folding a cancellation into
34
+ * `timeout` would contradict the termination-reason distinction established for
35
+ * shell timeouts, and a rejected source or unavailable sandbox is not a script
36
+ * failure at all. `host-error` is unreachable while every `HostErrorCode` is
37
+ * mapped below.
38
+ */
39
+ export type RunCodeCompletionOutcome = 'success' | 'parse' | 'nested-validation' | 'runtime' | 'return-serialization' | 'timeout' | 'cancelled' | 'input-rejected' | 'host-unavailable' | 'host-error';
40
+ /**
41
+ * Which nested-call failure ended the invocation.
42
+ *
43
+ * `nested-validation` covers every uncaught `tools.*` rejection, including an
44
+ * approval denial, so this class is what says whether the failure was the
45
+ * statically preventable kind the TypeScript slice targets.
46
+ *
47
+ * `typescript-syntax` and `known-return-shape` are reserved: they are the
48
+ * classes the plan names for a checked script path, and nothing produces them
49
+ * while scripts are plain JavaScript and `scriptedReturnShape` stays prose.
50
+ */
51
+ export type RunCodeFailureClass = 'unknown-tool' | 'parameter-shape' | 'nested-call' | 'approval-denied' | 'budget' | 'typescript-syntax' | 'known-return-shape';
52
+ /** Nested `tools.*` calls this run observed, by outcome. */
53
+ export interface RunCodeNestedCallCounts {
54
+ /** Execution calls; schema lookups are counted separately. */
55
+ calls: number;
56
+ schemaLookups: number;
57
+ ok: number;
58
+ unknownTool: number;
59
+ invalidParams: number;
60
+ approvalDenied: number;
61
+ prohibited: number;
62
+ otherFailures: number;
63
+ }
64
+ /** Host-observed action-effect evidence at the end of the run. */
65
+ export interface RunCodeEffectReceiptCounts {
66
+ applied: number;
67
+ notApplied: number;
68
+ failed: number;
69
+ unknown: number;
70
+ }
71
+ export interface RunCodeCompletionInput {
72
+ code: string;
73
+ result: HostResult;
74
+ durationMs: number;
75
+ timeoutMs: number;
76
+ calls: readonly RunCodeCallRecord[];
77
+ receipts: readonly RunCodeActionReceipt[];
78
+ sessionId?: string;
79
+ /** Process-local bridge run id, for correlating this event with one run's result. */
80
+ runId?: string;
81
+ }
82
+ /**
83
+ * The event's fields. Exported for tests; the emit path below is the only
84
+ * caller in production.
85
+ */
86
+ export declare const buildRunCodeCompletionMeta: (input: RunCodeCompletionInput) => LogMetadataContract;
87
+ /**
88
+ * Record one completion. Telemetry is diagnostic: a failure to build or write
89
+ * the event must never change what the script did or what the caller receives.
90
+ */
91
+ export declare function emitRunCodeCompletionTelemetry(loggingService: ILoggingService, input: RunCodeCompletionInput): void;
92
+ //# sourceMappingURL=run-code-telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-code-telemetry.d.ts","sourceRoot":"","sources":["../../../../source/tools/system/run-code/run-code-telemetry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AACpG,OAAO,KAAK,EAAiB,UAAU,EAAE,MAAM,qDAAqD,CAAC;AACrG,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE7E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,yBAAyB,6BAA6B,CAAC;AACpE,eAAO,MAAM,2BAA2B,uBAAuB,CAAC;AAEhE;;;;;;;;;GASG;AACH,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,OAAO,GACP,mBAAmB,GACnB,SAAS,GACT,sBAAsB,GACtB,SAAS,GACT,WAAW,GACX,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,CAAC;AAEjB;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAC3B,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,QAAQ,GACR,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,4DAA4D;AAC5D,MAAM,WAAW,uBAAuB;IACtC,8DAA8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,kEAAkE;AAClE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACpC,QAAQ,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qFAAqF;IACrF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA0ID;;;GAGG;AACH,eAAO,MAAM,0BAA0B,UAAW,sBAAsB,KAAG,mBAmB1E,CAAC;AAEF;;;GAGG;AACH,wBAAgB,8BAA8B,CAAC,cAAc,EAAE,eAAe,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAMnH"}
@@ -0,0 +1,189 @@
1
+ import { createHash } from 'node:crypto';
2
+ /**
3
+ * Structured completion telemetry for one `run_code` invocation.
4
+ *
5
+ * One event per invocation, written through the application logger so it lands
6
+ * in the same durable JSONL app log as every other structured event. It exists
7
+ * to answer the question that gates the type-checked TypeScript slice
8
+ * (docs/plans/run-code-typescript.md): do statically preventable nested-call
9
+ * failures actually cause retries, false completion, or replay? The answer is
10
+ * derived by querying these events, not by re-reading conversations, so the
11
+ * event carries the join keys (sessionId, sourceDigest, outcome, timestamp) as
12
+ * well as the counts.
13
+ *
14
+ * Emitted at `info`: the default log level is `info`, so the older
15
+ * `run_code execution finished` line, which is `debug`, is absent from default
16
+ * app logs and cannot be counted.
17
+ *
18
+ * Privacy: every emitted value is a number, an enum drawn from a closed set, or
19
+ * a source digest. The script source, its arguments, the failure messages, tool
20
+ * names, workspace paths, and the model-authored `description` are deliberately
21
+ * never emitted — nested failure text routinely carries paths and arguments, and
22
+ * an unknown member name is arbitrary model-authored text. Failure attribution
23
+ * reads those messages in-process and emits only a class.
24
+ */
25
+ export const RUN_CODE_COMPLETION_EVENT = 'tool.run_code.completion';
26
+ export const RUN_CODE_COMPLETION_MESSAGE = 'run_code completed';
27
+ const SOURCE_DIGEST_CHARS = 16;
28
+ /**
29
+ * Stable identity for a script's source, so repetition and replay are visible
30
+ * by joining events instead of storing the source itself.
31
+ */
32
+ const digestSource = (code) => createHash('sha256').update(code, 'utf8').digest('hex').slice(0, SOURCE_DIGEST_CHARS);
33
+ const NESTED_BUCKET_BY_OUTCOME = {
34
+ ok: 'ok',
35
+ error: 'otherFailures',
36
+ approval_required: 'approvalDenied',
37
+ unknown_policy: 'otherFailures',
38
+ policy_error: 'otherFailures',
39
+ interceptor_denied: 'otherFailures',
40
+ unknown_tool: 'unknownTool',
41
+ invalid_params: 'invalidParams',
42
+ prohibited: 'prohibited',
43
+ describe: 'schemaLookups',
44
+ };
45
+ const summarizeNestedCalls = (calls) => {
46
+ const counts = {
47
+ calls: 0,
48
+ schemaLookups: 0,
49
+ ok: 0,
50
+ unknownTool: 0,
51
+ invalidParams: 0,
52
+ approvalDenied: 0,
53
+ prohibited: 0,
54
+ otherFailures: 0,
55
+ };
56
+ for (const call of calls) {
57
+ const bucket = NESTED_BUCKET_BY_OUTCOME[call.outcome];
58
+ if (bucket === 'schemaLookups') {
59
+ counts.schemaLookups += 1;
60
+ continue;
61
+ }
62
+ counts.calls += 1;
63
+ counts[bucket] += 1;
64
+ }
65
+ return counts;
66
+ };
67
+ const summarizeEffectReceipts = (receipts) => {
68
+ const counts = { applied: 0, notApplied: 0, failed: 0, unknown: 0 };
69
+ for (const receipt of receipts) {
70
+ if (receipt.outcome === 'applied')
71
+ counts.applied += 1;
72
+ else if (receipt.outcome === 'not_applied')
73
+ counts.notApplied += 1;
74
+ else if (receipt.outcome === 'failed')
75
+ counts.failed += 1;
76
+ else
77
+ counts.unknown += 1;
78
+ }
79
+ return counts;
80
+ };
81
+ /**
82
+ * The namespace binding prefixes a refused nested call with `tools.<member>
83
+ * failed: ` and the capability's own message after it (host-worker.ts, pinned by
84
+ * sandboxed-code-host.test.ts). That prefix is the only host-side signal that
85
+ * separates a failure the script caused from one a nested call rejected, until
86
+ * Stage 3A gives the refusal a typed envelope.
87
+ */
88
+ const FAILED_CALL_MARKER = ' failed: ';
89
+ const NAMESPACE_PREFIX = 'tools.';
90
+ const UNKNOWN_TOOL_PREFIX = 'Unknown tool "';
91
+ const INVALID_PARAMS_PREFIX = 'Invalid parameters for "';
92
+ const nestedRejectionDetail = (message) => {
93
+ if (!message.startsWith(NAMESPACE_PREFIX))
94
+ return null;
95
+ const marker = message.indexOf(FAILED_CALL_MARKER);
96
+ if (marker <= NAMESPACE_PREFIX.length)
97
+ return null;
98
+ return message.slice(marker + FAILED_CALL_MARKER.length);
99
+ };
100
+ /**
101
+ * Attribution is message-based, so a script that throws the same text itself is
102
+ * misattributed as a nested rejection. That approximation is bounded to the
103
+ * failure class: the host code, the ledgers, and the counts stay exact.
104
+ */
105
+ const classifyNestedFailure = (message) => {
106
+ if (message.startsWith(UNKNOWN_TOOL_PREFIX))
107
+ return 'unknown-tool';
108
+ const detail = nestedRejectionDetail(message);
109
+ if (detail === null)
110
+ return 'nested-call';
111
+ if (detail.startsWith(UNKNOWN_TOOL_PREFIX))
112
+ return 'unknown-tool';
113
+ if (detail.startsWith(INVALID_PARAMS_PREFIX))
114
+ return 'parameter-shape';
115
+ return 'nested-call';
116
+ };
117
+ const isNestedRejection = (message) => message.startsWith(UNKNOWN_TOOL_PREFIX) || nestedRejectionDetail(message) !== null;
118
+ const assertNeverHostCode = (code) => {
119
+ throw new Error('Unhandled host error code: ' + String(code));
120
+ };
121
+ const classifyRunCodeCompletion = (result) => {
122
+ if (result.ok)
123
+ return { outcome: 'success' };
124
+ const { code, message } = result.error;
125
+ switch (code) {
126
+ case 'syntax_error':
127
+ return { outcome: 'parse', hostErrorCode: code };
128
+ case 'runtime_error':
129
+ return isNestedRejection(message)
130
+ ? { outcome: 'nested-validation', hostErrorCode: code, failureClass: classifyNestedFailure(message) }
131
+ : { outcome: 'runtime', hostErrorCode: code };
132
+ case 'invalid_output':
133
+ return { outcome: 'return-serialization', hostErrorCode: code };
134
+ case 'timeout':
135
+ case 'deadline':
136
+ return { outcome: 'timeout', hostErrorCode: code };
137
+ case 'cancelled':
138
+ return { outcome: 'cancelled', hostErrorCode: code };
139
+ case 'code_too_large':
140
+ return { outcome: 'input-rejected', hostErrorCode: code };
141
+ case 'sandbox_unavailable':
142
+ return { outcome: 'host-unavailable', hostErrorCode: code };
143
+ case 'limit_exceeded':
144
+ return { outcome: 'nested-validation', hostErrorCode: code, failureClass: 'budget' };
145
+ case 'approval_required':
146
+ return { outcome: 'nested-validation', hostErrorCode: code, failureClass: 'approval-denied' };
147
+ default:
148
+ // Exhaustive over HostErrorCode: a new code fails to compile here rather
149
+ // than reaching a silent fallback.
150
+ return assertNeverHostCode(code);
151
+ }
152
+ };
153
+ /**
154
+ * The event's fields. Exported for tests; the emit path below is the only
155
+ * caller in production.
156
+ */
157
+ export const buildRunCodeCompletionMeta = (input) => {
158
+ const classification = classifyRunCodeCompletion(input.result);
159
+ return {
160
+ eventType: RUN_CODE_COMPLETION_EVENT,
161
+ // Not imported from run-code.ts: that module imports this one.
162
+ toolName: 'run_code',
163
+ ...(input.sessionId ? { sessionId: input.sessionId } : {}),
164
+ ...(input.runId ? { runId: input.runId } : {}),
165
+ outcome: classification.outcome,
166
+ ...(classification.hostErrorCode ? { hostErrorCode: classification.hostErrorCode } : {}),
167
+ ...(classification.failureClass ? { failureClass: classification.failureClass } : {}),
168
+ durationMs: Math.max(0, Math.round(input.durationMs)),
169
+ timeoutMs: input.timeoutMs,
170
+ sourceBytes: Buffer.byteLength(input.code, 'utf8'),
171
+ sourceLines: input.code.length === 0 ? 0 : input.code.split('\n').length,
172
+ sourceDigest: digestSource(input.code),
173
+ nested: summarizeNestedCalls(input.calls),
174
+ effectReceipts: summarizeEffectReceipts(input.receipts),
175
+ };
176
+ };
177
+ /**
178
+ * Record one completion. Telemetry is diagnostic: a failure to build or write
179
+ * the event must never change what the script did or what the caller receives.
180
+ */
181
+ export function emitRunCodeCompletionTelemetry(loggingService, input) {
182
+ try {
183
+ loggingService.info(RUN_CODE_COMPLETION_MESSAGE, buildRunCodeCompletionMeta(input));
184
+ }
185
+ catch {
186
+ // Intentionally ignored. See above.
187
+ }
188
+ }
189
+ //# sourceMappingURL=run-code-telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-code-telemetry.js","sourceRoot":"","sources":["../../../../source/tools/system/run-code/run-code-telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,0BAA0B,CAAC;AACpE,MAAM,CAAC,MAAM,2BAA2B,GAAG,oBAAoB,CAAC;AA6EhE,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;GAGG;AACH,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAC5C,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;AAExF,MAAM,wBAAwB,GAAyE;IACrG,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,eAAe;IACtB,iBAAiB,EAAE,gBAAgB;IACnC,cAAc,EAAE,eAAe;IAC/B,YAAY,EAAE,eAAe;IAC7B,kBAAkB,EAAE,eAAe;IACnC,YAAY,EAAE,aAAa;IAC3B,cAAc,EAAE,eAAe;IAC/B,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,eAAe;CAC1B,CAAC;AAIF,MAAM,oBAAoB,GAAG,CAAC,KAAmC,EAA2B,EAAE;IAC5F,MAAM,MAAM,GAA4B;QACtC,KAAK,EAAE,CAAC;QACR,aAAa,EAAE,CAAC;QAChB,EAAE,EAAE,CAAC;QACL,WAAW,EAAE,CAAC;QACd,aAAa,EAAE,CAAC;QAChB,cAAc,EAAE,CAAC;QACjB,UAAU,EAAE,CAAC;QACb,aAAa,EAAE,CAAC;KACjB,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,wBAAwB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;YAC/B,MAAM,CAAC,aAAa,IAAI,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,MAAM,uBAAuB,GAAG,CAAC,QAAyC,EAA8B,EAAE;IACxG,MAAM,MAAM,GAA+B,EAAE,OAAO,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IAChG,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;aAClD,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa;YAAE,MAAM,CAAC,UAAU,IAAI,CAAC,CAAC;aAC9D,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC;;YACrD,MAAM,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG,WAAW,CAAC;AACvC,MAAM,gBAAgB,GAAG,QAAQ,CAAC;AAClC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAC7C,MAAM,qBAAqB,GAAG,0BAA0B,CAAC;AAEzD,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAiB,EAAE;IAC/D,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,IAAI,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,gBAAgB,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACnD,OAAO,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC3D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,qBAAqB,GAAG,CAAC,OAAe,EAAuB,EAAE;IACrE,IAAI,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,cAAc,CAAC;IACnE,MAAM,MAAM,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAC9C,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,aAAa,CAAC;IAC1C,IAAI,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAAE,OAAO,cAAc,CAAC;IAClE,IAAI,MAAM,CAAC,UAAU,CAAC,qBAAqB,CAAC;QAAE,OAAO,iBAAiB,CAAC;IACvE,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,OAAe,EAAW,EAAE,CACrD,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,qBAAqB,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;AAErF,MAAM,mBAAmB,GAAG,CAAC,IAAW,EAAS,EAAE;IACjD,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AAChE,CAAC,CAAC;AAQF,MAAM,yBAAyB,GAAG,CAAC,MAAkB,EAAmC,EAAE;IACxF,IAAI,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACvC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACnD,KAAK,eAAe;YAClB,OAAO,iBAAiB,CAAC,OAAO,CAAC;gBAC/B,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE;gBACrG,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAClD,KAAK,gBAAgB;YACnB,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAClE,KAAK,SAAS,CAAC;QACf,KAAK,UAAU;YACb,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACrD,KAAK,WAAW;YACd,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QACvD,KAAK,gBAAgB;YACnB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC5D,KAAK,qBAAqB;YACxB,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAC9D,KAAK,gBAAgB;YACnB,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC;QACvF,KAAK,mBAAmB;YACtB,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC;QAChG;YACE,yEAAyE;YACzE,mCAAmC;YACnC,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;AACH,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,KAA6B,EAAuB,EAAE;IAC/F,MAAM,cAAc,GAAG,yBAAyB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/D,OAAO;QACL,SAAS,EAAE,yBAAyB;QACpC,+DAA+D;QAC/D,QAAQ,EAAE,UAAU;QACpB,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1D,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,EAAE,cAAc,CAAC,OAAO;QAC/B,GAAG,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxF,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrF,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QACrD,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC;QAClD,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM;QACxE,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC;QACtC,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC;QACzC,cAAc,EAAE,uBAAuB,CAAC,KAAK,CAAC,QAAQ,CAAC;KACxD,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,8BAA8B,CAAC,cAA+B,EAAE,KAA6B;IAC3G,IAAI,CAAC;QACH,cAAc,CAAC,IAAI,CAAC,2BAA2B,EAAE,0BAA0B,CAAC,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,oCAAoC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1,98 @@
1
+ import type { ExecutionContext } from '../../../services/execution-context.js';
2
+ import { z } from 'zod';
3
+ import type { ILoggingService } from '../../../services/service-interfaces.js';
4
+ import type { ToolApprovalPolicyRegistry } from '../../../services/approval/tool-approval-policy-registry.js';
5
+ import type { NestedApprovalOwner } from '../../../services/approval/nested-approval-owner.js';
6
+ import { type AnyToolDefinition, type FormatCommandMessage, type SchemaToolDefinition, type ToolRegistry } from '../../types.js';
7
+ export declare const TOOL_NAME_RUN_CODE = "run_code";
8
+ export declare const TOOL_NAME_DESCRIBE = "describe";
9
+ /**
10
+ * Script-shaped limits. They are deliberately not the workflow's: a workflow
11
+ * spawns a handful of agents, while a script's whole point is looping over many
12
+ * cheap tool calls.
13
+ */
14
+ export declare const RUN_CODE_LIMITS: {
15
+ /** Total `tools.*` calls one script may make. */
16
+ readonly maxCalls: 200;
17
+ /** Parallel-safe calls that may overlap; others take a serial lane of one. */
18
+ readonly maxConcurrency: 8;
19
+ /** Per-result cap. A larger result is truncated with an explicit marker. */
20
+ readonly maxResultChars: 100000;
21
+ /** Maximum raw bytes in one media attachment retained outside the script. */
22
+ readonly maxMediaBytes: number;
23
+ /** Maximum raw bytes and attachment count retained for one script run. */
24
+ readonly maxMediaTotalBytes: number;
25
+ readonly maxMediaAttachments: 32;
26
+ readonly maxCodeBytes: 65536;
27
+ readonly maxOutputBytes: 262144;
28
+ readonly maxConsoleBytes: 262144;
29
+ };
30
+ /**
31
+ * Tools a script may never call.
32
+ *
33
+ * `run_code` excludes itself because each run owns its own call budget, and
34
+ * nesting would let one run spend many. The rest are the workflow's prohibited
35
+ * set: `run_subagent` in particular spawns agents outside any run budget, so a
36
+ * script could loop on it indefinitely. Shell tools are excluded because their
37
+ * complete approval state also lives in the interactive batch coordinator.
38
+ */
39
+ export declare const RUN_CODE_PROHIBITED_TOOLS: ReadonlySet<string>;
40
+ export declare const runCodeParametersSchema: z.ZodObject<{
41
+ code: z.ZodString;
42
+ include_console: z.ZodOptional<z.ZodBoolean>;
43
+ timeout_ms: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
44
+ description: z.ZodString;
45
+ }, z.core.$strip>;
46
+ export type RunCodeParams = z.infer<typeof runCodeParametersSchema>;
47
+ /**
48
+ * Terminal semantic outcome of one observed nested action call, derived
49
+ * host-side from the raw executor result. Promise fulfillment alone is never
50
+ * success: only the per-tool adapter maps a resolved value to `applied`.
51
+ */
52
+ export type RunCodeActionOutcome = 'applied' | 'not_applied' | 'failed' | 'unknown';
53
+ /**
54
+ * One host-observed nested action receipt. The ledger is host-private: script
55
+ * code has no write path to it, so a script cannot catch, relabel, or
56
+ * contradict its way out of an observed outcome.
57
+ */
58
+ export interface RunCodeActionReceipt {
59
+ /** Stable call identity (`<bridgeRunId>:<callId>`, or `:rejected-<seq>` pre-admission). */
60
+ callId: string;
61
+ tool: string;
62
+ outcome: RunCodeActionOutcome;
63
+ reason?: string;
64
+ }
65
+ /** One `tools.*` call observed during a run, for the user-facing summary. */
66
+ export interface RunCodeCallRecord {
67
+ tool: string;
68
+ outcome: 'ok' | 'error' | 'approval_required' | 'unknown_policy' | 'policy_error' | 'interceptor_denied' | 'unknown_tool' | 'invalid_params' | 'prohibited' | 'describe';
69
+ durationMs: number;
70
+ directlyCallable?: boolean;
71
+ }
72
+ export interface CreateRunCodeToolOptions {
73
+ loggingService: ILoggingService;
74
+ /**
75
+ * Resolves the tools exposed to the script. Supplying it directly is a test
76
+ * seam; in production {@link bindRunCodeRegistry} installs the wrapped
77
+ * registry, so scripts go through the same policy layer as a direct call.
78
+ */
79
+ getToolRegistry?: () => ToolRegistry;
80
+ /** Policy authority used for out-of-band script calls. */
81
+ approvalPolicyRegistry: ToolApprovalPolicyRegistry;
82
+ getCwd?: () => string;
83
+ executionContext?: ExecutionContext;
84
+ nestedApprovalOwner?: NestedApprovalOwner;
85
+ sessionAccess?: import('../../../services/session/session-access-state.js').SessionAccessState;
86
+ nestedCompatibility?: import('../../../services/session/nested-tool-compatibility-state.js').NestedToolCompatibilityState;
87
+ }
88
+ /** Installs the wrapped registry into any `run_code` definition in `tools`. */
89
+ export declare function bindRunCodeRegistry(tools: ToolRegistry): void;
90
+ export declare function bindRunCodeNestedApprovalOwner(tools: ToolRegistry, owner: NestedApprovalOwner): void;
91
+ /**
92
+ * Direct calls are the tools a script structurally cannot reach, including
93
+ * `run_code` itself. Visibility does not depend on `canRequireApproval`.
94
+ */
95
+ export declare function isDirectlyCallable(tool: Pick<AnyToolDefinition, 'name'>): boolean;
96
+ export declare const formatRunCodeCommandMessage: FormatCommandMessage;
97
+ export declare function createRunCodeToolDefinition(options: CreateRunCodeToolOptions): SchemaToolDefinition<typeof runCodeParametersSchema>;
98
+ //# sourceMappingURL=run-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-code.d.ts","sourceRoot":"","sources":["../../../../source/tools/system/run-code/run-code.ts"],"names":[],"mappings":"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"}