@bastani/atomic 0.9.24 → 0.9.25-alpha.2

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 (430) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/dist/builtin/intercom/index.bundle.mjs +5 -0
  3. package/dist/builtin/intercom/package.json +2 -2
  4. package/dist/builtin/mcp/CHANGELOG.md +11 -0
  5. package/dist/builtin/mcp/index.bundle.mjs +219 -71
  6. package/dist/builtin/mcp/package.json +6 -2
  7. package/dist/builtin/subagents/package.json +3 -3
  8. package/dist/builtin/subagents/src/extension/index.bundle.mjs +1 -0
  9. package/dist/builtin/web-access/index.bundle.mjs +7 -6
  10. package/dist/builtin/web-access/package.json +2 -2
  11. package/dist/builtin/workflows/CHANGELOG.md +6 -0
  12. package/dist/builtin/workflows/package.json +2 -2
  13. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +1 -0
  14. package/dist/builtin/workflows/skills/prompt-engineer/references/gpt_6_1_sol.md +66 -0
  15. package/dist/builtin/workflows/src/extension/index.bundle.mjs +1 -0
  16. package/dist/cli/startup-ui.d.ts +3 -4
  17. package/dist/cli/startup-ui.d.ts.map +1 -1
  18. package/dist/cli/startup-ui.js +3 -4
  19. package/dist/cli/startup-ui.js.map +1 -1
  20. package/dist/config.d.ts +3 -0
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +17 -0
  23. package/dist/config.js.map +1 -1
  24. package/dist/core/agent-session-events.d.ts.map +1 -1
  25. package/dist/core/agent-session-events.js +5 -0
  26. package/dist/core/agent-session-events.js.map +1 -1
  27. package/dist/core/agent-session-export.d.ts.map +1 -1
  28. package/dist/core/agent-session-export.js +3 -0
  29. package/dist/core/agent-session-export.js.map +1 -1
  30. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  31. package/dist/core/agent-session-extension-bindings.js +4 -0
  32. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  33. package/dist/core/agent-session-methods.d.ts +2 -1
  34. package/dist/core/agent-session-methods.d.ts.map +1 -1
  35. package/dist/core/agent-session-methods.js.map +1 -1
  36. package/dist/core/agent-session-nested-tools.d.ts +10 -0
  37. package/dist/core/agent-session-nested-tools.d.ts.map +1 -0
  38. package/dist/core/agent-session-nested-tools.js +76 -0
  39. package/dist/core/agent-session-nested-tools.js.map +1 -0
  40. package/dist/core/agent-session-runtime-auth.js +3 -1
  41. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  42. package/dist/core/agent-session-state.d.ts +2 -0
  43. package/dist/core/agent-session-state.d.ts.map +1 -1
  44. package/dist/core/agent-session-state.js +11 -11
  45. package/dist/core/agent-session-state.js.map +1 -1
  46. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  47. package/dist/core/agent-session-tool-hooks.js +18 -3
  48. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  49. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  50. package/dist/core/agent-session-tool-registry.js +15 -3
  51. package/dist/core/agent-session-tool-registry.js.map +1 -1
  52. package/dist/core/agent-session-types.d.ts +6 -2
  53. package/dist/core/agent-session-types.d.ts.map +1 -1
  54. package/dist/core/agent-session-types.js.map +1 -1
  55. package/dist/core/builtin-resource-loader.d.ts.map +1 -1
  56. package/dist/core/builtin-resource-loader.js +13 -1
  57. package/dist/core/builtin-resource-loader.js.map +1 -1
  58. package/dist/core/compaction/utils.d.ts +1 -1
  59. package/dist/core/compaction/utils.d.ts.map +1 -1
  60. package/dist/core/compaction/utils.js +18 -18
  61. package/dist/core/compaction/utils.js.map +1 -1
  62. package/dist/core/execution-model-router.d.ts.map +1 -1
  63. package/dist/core/execution-model-router.js +24 -8
  64. package/dist/core/execution-model-router.js.map +1 -1
  65. package/dist/core/export-html/template.js +12 -0
  66. package/dist/core/extensions/agent-events.d.ts +3 -0
  67. package/dist/core/extensions/agent-events.d.ts.map +1 -1
  68. package/dist/core/extensions/agent-events.js.map +1 -1
  69. package/dist/core/extensions/api-types.d.ts +2 -0
  70. package/dist/core/extensions/api-types.d.ts.map +1 -1
  71. package/dist/core/extensions/api-types.js.map +1 -1
  72. package/dist/core/extensions/context-types.d.ts +9 -0
  73. package/dist/core/extensions/context-types.d.ts.map +1 -1
  74. package/dist/core/extensions/context-types.js.map +1 -1
  75. package/dist/core/extensions/event-results.d.ts +3 -0
  76. package/dist/core/extensions/event-results.d.ts.map +1 -1
  77. package/dist/core/extensions/event-results.js.map +1 -1
  78. package/dist/core/extensions/index.d.ts +2 -0
  79. package/dist/core/extensions/index.d.ts.map +1 -1
  80. package/dist/core/extensions/index.js.map +1 -1
  81. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  82. package/dist/core/extensions/loader-api.js +4 -0
  83. package/dist/core/extensions/loader-api.js.map +1 -1
  84. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  85. package/dist/core/extensions/loader-core.js +3 -5
  86. package/dist/core/extensions/loader-core.js.map +1 -1
  87. package/dist/core/extensions/loader-host-modules.d.ts.map +1 -1
  88. package/dist/core/extensions/loader-host-modules.js +7 -1
  89. package/dist/core/extensions/loader-host-modules.js.map +1 -1
  90. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  91. package/dist/core/extensions/loader-runtime.js +3 -0
  92. package/dist/core/extensions/loader-runtime.js.map +1 -1
  93. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  94. package/dist/core/extensions/loader-virtual-modules.js +4 -0
  95. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  96. package/dist/core/extensions/provider-types.d.ts +2 -0
  97. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  98. package/dist/core/extensions/provider-types.js.map +1 -1
  99. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  100. package/dist/core/extensions/runner-events.js +16 -1
  101. package/dist/core/extensions/runner-events.js.map +1 -1
  102. package/dist/core/extensions/runner.d.ts +5 -0
  103. package/dist/core/extensions/runner.d.ts.map +1 -1
  104. package/dist/core/extensions/runner.js +34 -0
  105. package/dist/core/extensions/runner.js.map +1 -1
  106. package/dist/core/extensions/runtime-types.d.ts +5 -0
  107. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  108. package/dist/core/extensions/runtime-types.js.map +1 -1
  109. package/dist/core/extensions/tool-events.d.ts +4 -0
  110. package/dist/core/extensions/tool-events.d.ts.map +1 -1
  111. package/dist/core/extensions/tool-events.js.map +1 -1
  112. package/dist/core/extensions/tool-types.d.ts +34 -3
  113. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  114. package/dist/core/extensions/tool-types.js.map +1 -1
  115. package/dist/core/extensions/wrapper.d.ts.map +1 -1
  116. package/dist/core/extensions/wrapper.js +14 -2
  117. package/dist/core/extensions/wrapper.js.map +1 -1
  118. package/dist/core/fast-model-routing-transport.d.ts.map +1 -1
  119. package/dist/core/fast-model-routing-transport.js +2 -1
  120. package/dist/core/fast-model-routing-transport.js.map +1 -1
  121. package/dist/core/fast-model-routing.d.ts +1 -2
  122. package/dist/core/fast-model-routing.d.ts.map +1 -1
  123. package/dist/core/fast-model-routing.js +13 -11
  124. package/dist/core/fast-model-routing.js.map +1 -1
  125. package/dist/core/fast-model-variants.d.ts +4 -1
  126. package/dist/core/fast-model-variants.d.ts.map +1 -1
  127. package/dist/core/fast-model-variants.js +42 -17
  128. package/dist/core/fast-model-variants.js.map +1 -1
  129. package/dist/core/mandatory-resource-loader.d.ts.map +1 -1
  130. package/dist/core/mandatory-resource-loader.js +9 -0
  131. package/dist/core/mandatory-resource-loader.js.map +1 -1
  132. package/dist/core/model-registry.d.ts +4 -1
  133. package/dist/core/model-registry.d.ts.map +1 -1
  134. package/dist/core/model-registry.js +9 -0
  135. package/dist/core/model-registry.js.map +1 -1
  136. package/dist/core/model-resolver-defaults.js +1 -1
  137. package/dist/core/model-resolver-defaults.js.map +1 -1
  138. package/dist/core/model-routing-candidates.d.ts +4 -0
  139. package/dist/core/model-routing-candidates.d.ts.map +1 -1
  140. package/dist/core/model-routing-candidates.js +8 -3
  141. package/dist/core/model-routing-candidates.js.map +1 -1
  142. package/dist/core/model-routing-evals.d.ts.map +1 -1
  143. package/dist/core/model-routing-evals.js +4 -5
  144. package/dist/core/model-routing-evals.js.map +1 -1
  145. package/dist/core/model-runtime.d.ts +3 -2
  146. package/dist/core/model-runtime.d.ts.map +1 -1
  147. package/dist/core/model-runtime.js +19 -25
  148. package/dist/core/model-runtime.js.map +1 -1
  149. package/dist/core/nested-tool-calls.d.ts +64 -0
  150. package/dist/core/nested-tool-calls.d.ts.map +1 -0
  151. package/dist/core/nested-tool-calls.js +132 -0
  152. package/dist/core/nested-tool-calls.js.map +1 -0
  153. package/dist/core/oauth-provider-metadata.js +1 -1
  154. package/dist/core/oauth-provider-metadata.js.map +1 -1
  155. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  156. package/dist/core/package-manager-resolver.js +21 -3
  157. package/dist/core/package-manager-resolver.js.map +1 -1
  158. package/dist/core/package-manager-resource-accumulator.d.ts.map +1 -1
  159. package/dist/core/package-manager-resource-accumulator.js +2 -0
  160. package/dist/core/package-manager-resource-accumulator.js.map +1 -1
  161. package/dist/core/package-manager-types.d.ts +2 -0
  162. package/dist/core/package-manager-types.d.ts.map +1 -1
  163. package/dist/core/package-manager-types.js.map +1 -1
  164. package/dist/core/package-manager.d.ts.map +1 -1
  165. package/dist/core/package-manager.js +1 -0
  166. package/dist/core/package-manager.js.map +1 -1
  167. package/dist/core/resource-loader-core.d.ts.map +1 -1
  168. package/dist/core/resource-loader-core.js +12 -6
  169. package/dist/core/resource-loader-core.js.map +1 -1
  170. package/dist/core/resource-loader-extensions.d.ts +1 -0
  171. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  172. package/dist/core/resource-loader-extensions.js +64 -4
  173. package/dist/core/resource-loader-extensions.js.map +1 -1
  174. package/dist/core/resource-loader-paths.d.ts.map +1 -1
  175. package/dist/core/resource-loader-paths.js +2 -1
  176. package/dist/core/resource-loader-paths.js.map +1 -1
  177. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  178. package/dist/core/resource-loader-reload.js +5 -4
  179. package/dist/core/resource-loader-reload.js.map +1 -1
  180. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  181. package/dist/core/resource-loader-source-info.js +7 -5
  182. package/dist/core/resource-loader-source-info.js.map +1 -1
  183. package/dist/core/resource-loader-types.d.ts +4 -0
  184. package/dist/core/resource-loader-types.d.ts.map +1 -1
  185. package/dist/core/resource-loader-types.js.map +1 -1
  186. package/dist/core/sdk-types.d.ts +1 -1
  187. package/dist/core/sdk-types.js.map +1 -1
  188. package/dist/core/session-manager-core.d.ts +2 -0
  189. package/dist/core/session-manager-core.d.ts.map +1 -1
  190. package/dist/core/session-manager-core.js +5 -1
  191. package/dist/core/session-manager-core.js.map +1 -1
  192. package/dist/core/session-manager-entries.d.ts +1 -1
  193. package/dist/core/session-manager-entries.d.ts.map +1 -1
  194. package/dist/core/session-manager-entries.js.map +1 -1
  195. package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
  196. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  197. package/dist/core/settings-manager-basic-accessors.js +27 -1
  198. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  199. package/dist/core/settings-manager-core.d.ts +2 -0
  200. package/dist/core/settings-manager-core.d.ts.map +1 -1
  201. package/dist/core/settings-manager-core.js +4 -0
  202. package/dist/core/settings-manager-core.js.map +1 -1
  203. package/dist/core/settings-manager-ui-accessors.d.ts +3 -1
  204. package/dist/core/settings-manager-ui-accessors.d.ts.map +1 -1
  205. package/dist/core/settings-manager-ui-accessors.js +13 -0
  206. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  207. package/dist/core/settings-manager.d.ts +1 -1
  208. package/dist/core/settings-manager.d.ts.map +1 -1
  209. package/dist/core/settings-manager.js.map +1 -1
  210. package/dist/core/settings-merge.d.ts +1 -0
  211. package/dist/core/settings-merge.d.ts.map +1 -1
  212. package/dist/core/settings-merge.js +30 -1
  213. package/dist/core/settings-merge.js.map +1 -1
  214. package/dist/core/settings-types.d.ts +8 -1
  215. package/dist/core/settings-types.d.ts.map +1 -1
  216. package/dist/core/settings-types.js.map +1 -1
  217. package/dist/core/source-info.d.ts +3 -0
  218. package/dist/core/source-info.d.ts.map +1 -1
  219. package/dist/core/source-info.js +11 -0
  220. package/dist/core/source-info.js.map +1 -1
  221. package/dist/core/structured-output/index.d.ts.map +1 -1
  222. package/dist/core/structured-output/index.js +3 -1
  223. package/dist/core/structured-output/index.js.map +1 -1
  224. package/dist/core/tool-loadout.d.ts +6 -0
  225. package/dist/core/tool-loadout.d.ts.map +1 -0
  226. package/dist/core/tool-loadout.js +63 -0
  227. package/dist/core/tool-loadout.js.map +1 -0
  228. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  229. package/dist/core/tools/ask-user-question/ask-user-question.js +1 -0
  230. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  231. package/dist/core/tools/bash.d.ts.map +1 -1
  232. package/dist/core/tools/bash.js +31 -11
  233. package/dist/core/tools/bash.js.map +1 -1
  234. package/dist/core/tools/output-accumulator.d.ts +4 -0
  235. package/dist/core/tools/output-accumulator.d.ts.map +1 -1
  236. package/dist/core/tools/output-accumulator.js +32 -0
  237. package/dist/core/tools/output-accumulator.js.map +1 -1
  238. package/dist/core/tools/powershell.d.ts +27 -21
  239. package/dist/core/tools/powershell.d.ts.map +1 -1
  240. package/dist/core/tools/render-utils.d.ts +4 -0
  241. package/dist/core/tools/render-utils.d.ts.map +1 -1
  242. package/dist/core/tools/render-utils.js +19 -0
  243. package/dist/core/tools/render-utils.js.map +1 -1
  244. package/dist/core/tools/tool-concurrency.d.ts +1 -1
  245. package/dist/core/tools/tool-concurrency.d.ts.map +1 -1
  246. package/dist/core/tools/tool-concurrency.js +28 -3
  247. package/dist/core/tools/tool-concurrency.js.map +1 -1
  248. package/dist/core/tools/tool-definition-wrapper.d.ts +1 -1
  249. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  250. package/dist/core/tools/tool-definition-wrapper.js +4 -1
  251. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  252. package/dist/core/usage-totals.d.ts +2 -0
  253. package/dist/core/usage-totals.d.ts.map +1 -1
  254. package/dist/core/usage-totals.js +23 -0
  255. package/dist/core/usage-totals.js.map +1 -1
  256. package/dist/extensions/codemode/execute.d.ts +10 -0
  257. package/dist/extensions/codemode/execute.d.ts.map +1 -0
  258. package/dist/extensions/codemode/execute.js +313 -0
  259. package/dist/extensions/codemode/execute.js.map +1 -0
  260. package/dist/extensions/codemode/index.d.ts +11 -0
  261. package/dist/extensions/codemode/index.d.ts.map +1 -0
  262. package/dist/extensions/codemode/index.js +14 -0
  263. package/dist/extensions/codemode/index.js.map +1 -0
  264. package/dist/extensions/codemode/renderer.d.ts +4 -0
  265. package/dist/extensions/codemode/renderer.d.ts.map +1 -0
  266. package/dist/extensions/codemode/renderer.js +78 -0
  267. package/dist/extensions/codemode/renderer.js.map +1 -0
  268. package/dist/extensions/codemode/tool.d.ts +51 -0
  269. package/dist/extensions/codemode/tool.d.ts.map +1 -0
  270. package/dist/extensions/codemode/tool.js +134 -0
  271. package/dist/extensions/codemode/tool.js.map +1 -0
  272. package/dist/extensions/codemode/worker.d.ts +2 -0
  273. package/dist/extensions/codemode/worker.d.ts.map +1 -0
  274. package/dist/extensions/codemode/worker.js +2 -0
  275. package/dist/extensions/codemode/worker.js.map +1 -0
  276. package/dist/extensions/index.d.ts.map +1 -1
  277. package/dist/extensions/index.js +5 -1
  278. package/dist/extensions/index.js.map +1 -1
  279. package/dist/extensions/llama/provider.d.ts.map +1 -1
  280. package/dist/extensions/llama/provider.js +31 -10
  281. package/dist/extensions/llama/provider.js.map +1 -1
  282. package/dist/extensions/tool-search/index.d.ts +5 -0
  283. package/dist/extensions/tool-search/index.d.ts.map +1 -0
  284. package/dist/extensions/tool-search/index.js +6 -0
  285. package/dist/extensions/tool-search/index.js.map +1 -0
  286. package/dist/extensions/tool-search/tool.d.ts +41 -0
  287. package/dist/extensions/tool-search/tool.d.ts.map +1 -0
  288. package/dist/extensions/tool-search/tool.js +161 -0
  289. package/dist/extensions/tool-search/tool.js.map +1 -0
  290. package/dist/index.d.ts +7 -0
  291. package/dist/index.d.ts.map +1 -1
  292. package/dist/index.js +5 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -0
  295. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  296. package/dist/modes/interactive/components/chat-message-renderer.js +2 -0
  297. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  298. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  299. package/dist/modes/interactive/components/config-selector-list.js +9 -1
  300. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  301. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  302. package/dist/modes/interactive/components/config-selector-project-scope.js +4 -1
  303. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  304. package/dist/modes/interactive/components/first-time-setup.d.ts +2 -2
  305. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  306. package/dist/modes/interactive/components/first-time-setup.js +1 -0
  307. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  308. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  309. package/dist/modes/interactive/components/footer.js +42 -7
  310. package/dist/modes/interactive/components/footer.js.map +1 -1
  311. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  312. package/dist/modes/interactive/components/settings-selector-handlers.js +3 -0
  313. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  314. package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
  315. package/dist/modes/interactive/components/settings-selector-items.js +13 -0
  316. package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
  317. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  318. package/dist/modes/interactive/components/settings-selector-submenus.js +3 -1
  319. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  320. package/dist/modes/interactive/components/settings-selector-types.d.ts +3 -1
  321. package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
  322. package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
  323. package/dist/modes/interactive/components/themed-text.d.ts +8 -0
  324. package/dist/modes/interactive/components/themed-text.d.ts.map +1 -0
  325. package/dist/modes/interactive/components/themed-text.js +14 -0
  326. package/dist/modes/interactive/components/themed-text.js.map +1 -0
  327. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  328. package/dist/modes/interactive/components/tool-execution.js +5 -3
  329. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  330. package/dist/modes/interactive/interactive-agent-events.js +2 -0
  331. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  332. package/dist/modes/interactive/interactive-mode-base.d.ts +2 -1
  333. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  334. package/dist/modes/interactive/interactive-mode-base.js +5 -0
  335. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  336. package/dist/modes/interactive/interactive-resource-rendering.js +7 -10
  337. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  338. package/dist/modes/interactive/interactive-selectors.js +5 -0
  339. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  340. package/dist/modes/interactive/interactive-session-runtime.js +1 -0
  341. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  342. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  343. package/dist/modes/interactive/interactive-startup.js +8 -3
  344. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  345. package/dist/modes/interactive/interactive-tui.d.ts +2 -1
  346. package/dist/modes/interactive/interactive-tui.d.ts.map +1 -1
  347. package/dist/modes/interactive/interactive-tui.js +1 -0
  348. package/dist/modes/interactive/interactive-tui.js.map +1 -1
  349. package/dist/modes/interactive/theme/color-utils.d.ts.map +1 -1
  350. package/dist/modes/interactive/theme/color-utils.js +3 -0
  351. package/dist/modes/interactive/theme/color-utils.js.map +1 -1
  352. package/dist/modes/interactive/theme/export-colors.d.ts.map +1 -1
  353. package/dist/modes/interactive/theme/export-colors.js +4 -1
  354. package/dist/modes/interactive/theme/export-colors.js.map +1 -1
  355. package/dist/modes/interactive/theme/system-theme.d.ts +23 -0
  356. package/dist/modes/interactive/theme/system-theme.d.ts.map +1 -0
  357. package/dist/modes/interactive/theme/system-theme.js +462 -0
  358. package/dist/modes/interactive/theme/system-theme.js.map +1 -0
  359. package/dist/modes/interactive/theme/terminal-colors.d.ts +10 -0
  360. package/dist/modes/interactive/theme/terminal-colors.d.ts.map +1 -0
  361. package/dist/modes/interactive/theme/terminal-colors.js +36 -0
  362. package/dist/modes/interactive/theme/terminal-colors.js.map +1 -0
  363. package/dist/modes/interactive/theme/terminal-detection.d.ts +4 -6
  364. package/dist/modes/interactive/theme/terminal-detection.d.ts.map +1 -1
  365. package/dist/modes/interactive/theme/terminal-detection.js +12 -46
  366. package/dist/modes/interactive/theme/terminal-detection.js.map +1 -1
  367. package/dist/modes/interactive/theme/theme-class.d.ts +1 -0
  368. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  369. package/dist/modes/interactive/theme/theme-class.js +2 -2
  370. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  371. package/dist/modes/interactive/theme/theme-controller.d.ts +16 -8
  372. package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
  373. package/dist/modes/interactive/theme/theme-controller.js +106 -64
  374. package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
  375. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  376. package/dist/modes/interactive/theme/theme-loading.js +23 -2
  377. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  378. package/dist/modes/interactive/theme/theme-schema.js +1 -1
  379. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  380. package/dist/modes/interactive/theme/theme-schema.json +2 -2
  381. package/dist/modes/interactive/theme/theme.d.ts +2 -0
  382. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  383. package/dist/modes/interactive/theme/theme.js +2 -0
  384. package/dist/modes/interactive/theme/theme.js.map +1 -1
  385. package/dist/modes/interactive-engine/engine-session-stats.d.ts +26 -0
  386. package/dist/modes/interactive-engine/engine-session-stats.d.ts.map +1 -0
  387. package/dist/modes/interactive-engine/engine-session-stats.js +71 -0
  388. package/dist/modes/interactive-engine/engine-session-stats.js.map +1 -0
  389. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
  390. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  391. package/dist/modes/interactive-engine/extension-ui-bridge.js +4 -0
  392. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  393. package/dist/modes/interactive-engine/isolated-runtime.d.ts +3 -0
  394. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  395. package/dist/modes/interactive-engine/isolated-runtime.js +27 -5
  396. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  397. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  398. package/dist/modes/rpc/rpc-provider-auth.js +3 -1
  399. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  400. package/dist/package-manager-cli.d.ts.map +1 -1
  401. package/dist/package-manager-cli.js +8 -2
  402. package/dist/package-manager-cli.js.map +1 -1
  403. package/dist/utils/paths.d.ts.map +1 -1
  404. package/dist/utils/paths.js +2 -1
  405. package/dist/utils/paths.js.map +1 -1
  406. package/dist/utils/shell.d.ts +1 -3
  407. package/dist/utils/shell.d.ts.map +1 -1
  408. package/dist/utils/shell.js +3 -30
  409. package/dist/utils/shell.js.map +1 -1
  410. package/docs/extensions/api-reference.md +5 -1
  411. package/docs/extensions/authoring.md +31 -1
  412. package/docs/extensions/events.md +3 -1
  413. package/docs/extensions.md +14 -0
  414. package/docs/models/evals.md +45 -2
  415. package/docs/models/reference.md +33 -2
  416. package/docs/models.md +1 -0
  417. package/docs/packages.md +2 -0
  418. package/docs/providers.md +34 -7
  419. package/docs/reference/cli.md +4 -0
  420. package/docs/rpc/protocol.md +10 -0
  421. package/docs/sdk/reference.md +11 -1
  422. package/docs/sdk/structured-decisions.md +4 -2
  423. package/docs/session-format.md +5 -0
  424. package/docs/settings.md +19 -5
  425. package/docs/skills.md +1 -1
  426. package/docs/themes/reference.md +2 -1
  427. package/docs/themes.md +4 -2
  428. package/docs/tools.md +39 -0
  429. package/npm-shrinkwrap.json +115 -113
  430. package/package.json +12 -9
@@ -1 +1 @@
1
- {"version":3,"file":"runner-events.js","sourceRoot":"","sources":["../../../src/core/extensions/runner-events.ts"],"names":[],"mappings":"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","sourcesContent":["import { getCurrentSystemMessage } from \"@bastani/pi-ai\";\nimport type { ImageContent } from \"@bastani/pi-ai/compat\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { runCallback } from \"../callback-activity.ts\";\nimport {\n\ttype BuildSystemPromptOptions,\n\tbuildSystemPrompt,\n\ttype NormalizedBuildSystemPromptOptions,\n\tnormalizeBuildSystemPromptOptions,\n} from \"../system-prompt.ts\";\nimport type {\n\tAgentBeforeSettleEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEvent,\n\tBoundaryContextPreview,\n\tBoundaryResult,\n\tContextEvent,\n\tContextEventResult,\n\tContextWithSystemEvent,\n\tExtension,\n\tExtensionContext,\n\tExtensionError,\n\tExtensionEvent,\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tMessageEndEvent,\n\tMessageEndEventResult,\n\tProjectTrustEvent,\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tSessionBoundaryDraft,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTurnEndEvent,\n\tUserBashEvent,\n\tUserBashEventResult,\n} from \"./types.ts\";\n\n/** Combined result from all before_agent_start handlers. */\nexport interface BeforeAgentStartCombinedResult {\n\tmessages: NonNullable<BeforeAgentStartEventResult[\"message\"]>[];\n\tsystemPromptOptions: NormalizedBuildSystemPromptOptions;\n}\n\nexport interface ResourcesDiscoverCombinedResult {\n\tskillPaths: Array<{ path: string; extensionPath: string }>;\n\tpromptPaths: Array<{ path: string; extensionPath: string }>;\n\tthemePaths: Array<{ path: string; extensionPath: string }>;\n}\n\n/** Events handled by the generic emit() method. */\nexport type RunnerEmitEvent = Exclude<\n\tExtensionEvent,\n\t| ToolCallEvent\n\t| ProjectTrustEvent\n\t| ToolResultEvent\n\t| UserBashEvent\n\t| ContextEvent\n\t| ContextWithSystemEvent\n\t| BeforeProviderRequestEvent\n\t| BeforeAgentStartEvent\n\t| MessageEndEvent\n\t| ResourcesDiscoverEvent\n\t| InputEvent\n\t| TurnEndEvent\n\t| AgentBeforeSettleEvent\n>;\n\nexport type BoundaryBaseEvent =\n\t| Omit<TurnEndEvent, \"entries\" | \"continue\" | \"context\">\n\t| Omit<AgentBeforeSettleEvent, \"entries\" | \"continue\" | \"context\">;\n\nexport interface BoundaryDispatchResult {\n\tentries: SessionBoundaryDraft[];\n\tcontinue: boolean;\n\tcontext: BoundaryContextPreview;\n\tvalid: boolean;\n}\n\ntype SessionBeforeEvent = Extract<\n\tRunnerEmitEvent,\n\t{ type: \"session_before_switch\" | \"session_before_fork\" | \"session_before_compact\" | \"session_before_tree\" }\n>;\n\ntype SessionBeforeEventResult =\n\t| SessionBeforeSwitchResult\n\t| SessionBeforeForkResult\n\t| SessionBeforeCompactResult\n\t| SessionBeforeTreeResult;\n\nexport type RunnerEmitResult<TEvent extends RunnerEmitEvent> = TEvent extends { type: \"session_before_switch\" }\n\t? SessionBeforeSwitchResult | undefined\n\t: TEvent extends { type: \"session_before_fork\" }\n\t\t? SessionBeforeForkResult | undefined\n\t\t: TEvent extends { type: \"session_before_compact\" }\n\t\t\t? SessionBeforeCompactResult | undefined\n\t\t\t: TEvent extends { type: \"session_before_tree\" }\n\t\t\t\t? SessionBeforeTreeResult | undefined\n\t\t\t\t: undefined;\n\ntype EmitExtensionError = (error: ExtensionError) => void;\n\nconst isSessionBeforeEvent = (event: RunnerEmitEvent): event is SessionBeforeEvent =>\n\tevent.type === \"session_before_switch\" ||\n\tevent.type === \"session_before_fork\" ||\n\tevent.type === \"session_before_compact\" ||\n\tevent.type === \"session_before_tree\";\n\nconst emitCaughtError = (emitError: EmitExtensionError, extensionPath: string, event: string, error: unknown): void => {\n\temitError({\n\t\textensionPath,\n\t\tevent,\n\t\terror: error instanceof Error ? error.message : String(error),\n\t\tstack: error instanceof Error ? error.stack : undefined,\n\t});\n};\n\nexport function snapshotEventHandlers(extensions: Extension[], event: ExtensionEvent[\"type\"]) {\n\treturn extensions.map((ext) => ({ ext, handlers: ext.handlers.get(event)?.slice() ?? [] }));\n}\n\nexport async function runGenericHandlers<TEvent extends RunnerEmitEvent>(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: TEvent,\n\temitError: EmitExtensionError,\n\tisCurrent?: () => boolean,\n): Promise<RunnerEmitResult<TEvent>> {\n\tlet result: SessionBeforeEventResult | undefined;\n\tconst promptNotifications: Promise<void>[] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, event.type)) {\n\t\tfor (const handler of handlers) {\n\t\t\t// Workflow publishers can retire while a previous handler awaits.\n\t\t\tif (isCurrent && !isCurrent()) return result as RunnerEmitResult<TEvent>;\n\t\t\ttry {\n\t\t\t\tconst invocation = runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t// Activity reporting may yield again before invoking the callback.\n\t\t\t\t\t() => (!isCurrent || isCurrent() ? handler(event, ctx) : undefined),\n\t\t\t\t);\n\t\t\t\tif (event.type === \"ui_prompt_start\" || event.type === \"ui_prompt_end\") {\n\t\t\t\t\t// These notifications dispatch independently. Awaiting one observer here\n\t\t\t\t\t// lets an end overtake its start at every later observer, leaving a false block.\n\t\t\t\t\tpromptNotifications.push(\n\t\t\t\t\t\tinvocation.then(\n\t\t\t\t\t\t\t() => {},\n\t\t\t\t\t\t\t(error) => emitCaughtError(emitError, ext.path, event.type, error),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst handlerResult = await invocation;\n\t\t\t\tif (isSessionBeforeEvent(event) && handlerResult) {\n\t\t\t\t\tresult = handlerResult as SessionBeforeEventResult;\n\t\t\t\t\tif (result.cancel) return result as RunnerEmitResult<TEvent>;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, event.type, error);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (promptNotifications.length > 0) await Promise.all(promptNotifications);\n\treturn result as RunnerEmitResult<TEvent>;\n}\n\nexport async function runMessageEndHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: MessageEndEvent,\n\temitError: EmitExtensionError,\n): Promise<AgentMessage | undefined> {\n\tlet currentMessage = event.message;\n\tlet modified = false;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"message_end\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst currentEvent: MessageEndEvent = { ...event, message: currentMessage };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: currentEvent.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(currentEvent, ctx),\n\t\t\t\t)) as MessageEndEventResult | undefined;\n\t\t\t\tif (!handlerResult?.message) continue;\n\n\t\t\t\tif (handlerResult.message.role !== currentMessage.role) {\n\t\t\t\t\temitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: \"message_end\",\n\t\t\t\t\t\terror: \"message_end handlers must return a message with the same role\",\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcurrentMessage = handlerResult.message;\n\t\t\t\tmodified = true;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"message_end\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified ? currentMessage : undefined;\n}\n\nexport async function runToolResultHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: ToolResultEvent,\n\temitError: EmitExtensionError,\n): Promise<ToolResultEventResult | undefined> {\n\tconst currentEvent: ToolResultEvent = { ...event };\n\tlet modified = false;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"tool_result\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: currentEvent.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(currentEvent, ctx),\n\t\t\t\t)) as ToolResultEventResult | undefined;\n\t\t\t\tif (!handlerResult) continue;\n\t\t\t\tif (handlerResult.content !== undefined) {\n\t\t\t\t\tcurrentEvent.content = handlerResult.content;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.details !== undefined) {\n\t\t\t\t\tcurrentEvent.details = handlerResult.details;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.isError !== undefined) {\n\t\t\t\t\tcurrentEvent.isError = handlerResult.isError;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"tool_result\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified\n\t\t? { content: currentEvent.content, details: currentEvent.details, isError: currentEvent.isError }\n\t\t: undefined;\n}\n\nexport async function runToolCallHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: ToolCallEvent,\n): Promise<ToolCallEventResult | undefined> {\n\tlet result: ToolCallEventResult | undefined;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"tool_call\")) {\n\t\tfor (const handler of handlers) {\n\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t() => handler(event, ctx),\n\t\t\t);\n\t\t\tif (handlerResult) {\n\t\t\t\tresult = handlerResult as ToolCallEventResult;\n\t\t\t\tif (result.block) return result;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction isUserBashEventResult(value: unknown): value is UserBashEventResult {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value as Record<string, unknown>;\n\tconst hasOperations = candidate.operations !== undefined;\n\tconst hasResult = candidate.result !== undefined;\n\tif (hasOperations === hasResult) return false;\n\tif (hasOperations) {\n\t\tconst operations = candidate.operations;\n\t\treturn (\n\t\t\ttypeof operations === \"object\" &&\n\t\t\toperations !== null &&\n\t\t\ttypeof (operations as Record<string, unknown>).exec === \"function\"\n\t\t);\n\t}\n\tconst result = candidate.result;\n\tif (typeof result !== \"object\" || result === null) return false;\n\tconst record = result as Record<string, unknown>;\n\treturn (\n\t\ttypeof record.output === \"string\" &&\n\t\t\"exitCode\" in record &&\n\t\t(record.exitCode === undefined || typeof record.exitCode === \"number\") &&\n\t\ttypeof record.cancelled === \"boolean\" &&\n\t\ttypeof record.truncated === \"boolean\" &&\n\t\t(record.fullOutputPath === undefined || typeof record.fullOutputPath === \"string\")\n\t);\n}\n\nexport async function runUserBashHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: UserBashEvent,\n\temitError: EmitExtensionError,\n): Promise<UserBashEventResult | undefined> {\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"user_bash\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (handlerResult === undefined) continue;\n\t\t\t\tif (!isUserBashEventResult(handlerResult)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Invalid user_bash handler result: return undefined for local execution or exactly one valid { operations } or { result } object\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn handlerResult;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"user_bash\", error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction sameMessages(left: AgentMessage[], right: AgentMessage[]): boolean {\n\treturn left.length === right.length && left.every((message, index) => message === right[index]);\n}\n\n/**\n * Re-attach the prompt and tool state after a `context` handler. Handlers only see the\n * conversation; the system messages belong to Atomic. An unchanged conversation keeps every\n * system message in place, so models with mid-conversation support keep their cached\n * prefix. A changed one gets the replayed prompt sections and tool declarations as one\n * leading system message, so pruning, windowing, or slicing from a compaction summary\n * cannot drop them.\n */\nfunction restoreSystemMessages(\n\tcurrent: AgentMessage[],\n\tvisible: AgentMessage[],\n\treturned: AgentMessage[],\n): AgentMessage[] {\n\tif (sameMessages(returned, visible)) return current;\n\tconst head = getCurrentSystemMessage(current);\n\treturn head ? [head, ...returned] : returned;\n}\n\n/**\n * Run the request-time transforms in two phases. `context` handlers see the conversation\n * only and Atomic restores the prompt and tool state after each; `context_with_system`\n * handlers then see the full transcript and their output is used as returned.\n */\nexport async function runContextHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tmessages: AgentMessage[],\n\temitError: EmitExtensionError,\n): Promise<AgentMessage[]> {\n\tlet currentMessages = structuredClone(messages);\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"context\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst visibleMessages = currentMessages.filter((message) => message.role !== \"system\");\n\t\t\t\tconst visibleSnapshot = visibleMessages.slice();\n\t\t\t\tconst event: ContextEvent = { type: \"context\", messages: visibleMessages };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as ContextEventResult | undefined;\n\n\t\t\t\t// Handlers may return a new list or edit event.messages in place.\n\t\t\t\tconst returned =\n\t\t\t\t\thandlerResult?.messages ??\n\t\t\t\t\t(sameMessages(visibleMessages, visibleSnapshot) ? undefined : visibleMessages);\n\t\t\t\tif (!returned) continue;\n\t\t\t\tcurrentMessages = restoreSystemMessages(currentMessages, visibleSnapshot, returned);\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"context\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"context_with_system\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst hadLeadingSystemMessage = currentMessages[0]?.role === \"system\";\n\t\t\t\tconst event: ContextWithSystemEvent = { type: \"context_with_system\", messages: currentMessages };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as ContextEventResult | undefined;\n\t\t\t\tcurrentMessages = handlerResult?.messages ?? currentMessages;\n\t\t\t\t// Providers read the prompt and initial tools from the leading system message.\n\t\t\t\t// Losing it is never intended; report it but honor the handler's output.\n\t\t\t\tif (hadLeadingSystemMessage && currentMessages[0]?.role !== \"system\") {\n\t\t\t\t\temitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: \"context_with_system\",\n\t\t\t\t\t\terror: \"Handler removed the leading system message; the request has no prompt or initial tool declarations. Keep it at index 0 or replace a dropped prefix with getCurrentSystemMessage().\",\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"context_with_system\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentMessages;\n}\n\n/** Dispatch an actionable boundary event, revalidating the context preview after every handler. */\nexport async function runBoundaryHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tbaseEvent: BoundaryBaseEvent,\n\tbuildContext: (entries: SessionBoundaryDraft[]) => BoundaryContextPreview | Promise<BoundaryContextPreview>,\n\temitError: EmitExtensionError,\n): Promise<BoundaryDispatchResult> {\n\tlet entries: SessionBoundaryDraft[] = [];\n\tlet shouldContinue = false;\n\tlet context = await buildContext(entries);\n\tlet valid = true;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, baseEvent.type)) {\n\t\tfor (const handler of handlers) {\n\t\t\tconst event = {\n\t\t\t\t...baseEvent,\n\t\t\t\tentries,\n\t\t\t\tcontinue: shouldContinue,\n\t\t\t\tcontext,\n\t\t\t} as TurnEndEvent | AgentBeforeSettleEvent;\n\t\t\ttry {\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as BoundaryResult | undefined;\n\t\t\t\tif (handlerResult?.entries !== undefined) entries = handlerResult.entries;\n\t\t\t\tif (handlerResult?.continue !== undefined) shouldContinue = handlerResult.continue;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, baseEvent.type, error);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcontext = await buildContext(entries);\n\t\t\t\tvalid = true;\n\t\t\t} catch (error) {\n\t\t\t\tvalid = false;\n\t\t\t\temitError({\n\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\tevent: baseEvent.type,\n\t\t\t\t\terror: `Invalid boundary entries: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn valid\n\t\t? { entries, continue: shouldContinue, context, valid: true }\n\t\t: { entries: [], continue: false, context, valid: false };\n}\n\nexport async function runBeforeProviderRequestHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tpayload: unknown,\n\temitError: EmitExtensionError,\n): Promise<unknown> {\n\tlet currentPayload = payload;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"before_provider_request\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: BeforeProviderRequestEvent = { type: \"before_provider_request\", payload: currentPayload };\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (handlerResult !== undefined) currentPayload = handlerResult;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"before_provider_request\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentPayload;\n}\n\nexport async function runBeforeAgentStartHandlers(\n\textensions: Extension[],\n\tbaseCtx: ExtensionContext,\n\tassertActive: () => void,\n\tprompt: string,\n\timages: ImageContent[] | undefined,\n\tbaseOptions: BuildSystemPromptOptions,\n\temitError: EmitExtensionError,\n): Promise<BeforeAgentStartCombinedResult> {\n\tconst systemPromptOptions = normalizeBuildSystemPromptOptions(baseOptions);\n\tconst ctx = Object.defineProperties({}, Object.getOwnPropertyDescriptors(baseCtx)) as ExtensionContext;\n\tctx.getSystemPrompt = () => {\n\t\tassertActive();\n\t\treturn buildSystemPrompt(systemPromptOptions);\n\t};\n\tconst messages: NonNullable<BeforeAgentStartEventResult[\"message\"]>[] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"before_agent_start\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: BeforeAgentStartEvent = {\n\t\t\t\t\ttype: \"before_agent_start\",\n\t\t\t\t\tprompt,\n\t\t\t\t\timages,\n\t\t\t\t\tget systemPrompt() {\n\t\t\t\t\t\treturn buildSystemPrompt(systemPromptOptions);\n\t\t\t\t\t},\n\t\t\t\t\tsystemPromptOptions,\n\t\t\t\t};\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (!handlerResult) continue;\n\n\t\t\t\tconst result = handlerResult as BeforeAgentStartEventResult;\n\t\t\t\tif (result.message) messages.push(result.message);\n\t\t\t\tif (result.systemPrompt !== undefined) {\n\t\t\t\t\tsystemPromptOptions.forceSystemPrompt = result.systemPrompt;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"before_agent_start\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { messages, systemPromptOptions };\n}\n\nexport async function runResourcesDiscoverHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tcwd: string,\n\treason: ResourcesDiscoverEvent[\"reason\"],\n\temitError: EmitExtensionError,\n): Promise<ResourcesDiscoverCombinedResult> {\n\tconst skillPaths: ResourcesDiscoverCombinedResult[\"skillPaths\"] = [];\n\tconst promptPaths: ResourcesDiscoverCombinedResult[\"promptPaths\"] = [];\n\tconst themePaths: ResourcesDiscoverCombinedResult[\"themePaths\"] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"resources_discover\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: ResourcesDiscoverEvent = { type: \"resources_discover\", cwd, reason };\n\t\t\t\tconst result = (await runCallback({ kind: \"extension.hook\", name: event.type, sourcePath: ext.path }, () =>\n\t\t\t\t\thandler(event, ctx),\n\t\t\t\t)) as ResourcesDiscoverResult | undefined;\n\t\t\t\tif (result?.skillPaths?.length) {\n\t\t\t\t\tskillPaths.push(...result.skillPaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t\tif (result?.promptPaths?.length) {\n\t\t\t\t\tpromptPaths.push(...result.promptPaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t\tif (result?.themePaths?.length) {\n\t\t\t\t\tthemePaths.push(...result.themePaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"resources_discover\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { skillPaths, promptPaths, themePaths };\n}\n\nexport async function runInputHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\ttext: string,\n\timages: ImageContent[] | undefined,\n\tsource: InputSource,\n\tstreamingBehavior: \"steer\" | \"followUp\" | undefined,\n\temitError: EmitExtensionError,\n): Promise<InputEventResult> {\n\tlet currentText = text;\n\tlet currentImages = images;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"input\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: InputEvent = {\n\t\t\t\t\ttype: \"input\",\n\t\t\t\t\ttext: currentText,\n\t\t\t\t\timages: currentImages,\n\t\t\t\t\tsource,\n\t\t\t\t\tstreamingBehavior,\n\t\t\t\t};\n\t\t\t\tconst result = (await runCallback({ kind: \"extension.hook\", name: event.type, sourcePath: ext.path }, () =>\n\t\t\t\t\thandler(event, ctx),\n\t\t\t\t)) as InputEventResult | undefined;\n\t\t\t\tif (result?.action === \"handled\") return result;\n\t\t\t\tif (result?.action === \"transform\") {\n\t\t\t\t\tcurrentText = result.text;\n\t\t\t\t\tcurrentImages = result.images ?? currentImages;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"input\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentText !== text || currentImages !== images\n\t\t? { action: \"transform\", text: currentText, images: currentImages }\n\t\t: { action: \"continue\" };\n}\n"]}
1
+ {"version":3,"file":"runner-events.js","sourceRoot":"","sources":["../../../src/core/extensions/runner-events.ts"],"names":[],"mappings":"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","sourcesContent":["import { getCurrentSystemMessage } from \"@bastani/pi-ai\";\nimport type { ImageContent } from \"@bastani/pi-ai/compat\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { runCallback } from \"../callback-activity.ts\";\nimport {\n\ttype BuildSystemPromptOptions,\n\tbuildSystemPrompt,\n\ttype NormalizedBuildSystemPromptOptions,\n\tnormalizeBuildSystemPromptOptions,\n} from \"../system-prompt.ts\";\nimport type {\n\tAgentBeforeSettleEvent,\n\tBeforeAgentStartEvent,\n\tBeforeAgentStartEventResult,\n\tBeforeProviderRequestEvent,\n\tBoundaryContextPreview,\n\tBoundaryResult,\n\tContextEvent,\n\tContextEventResult,\n\tContextWithSystemEvent,\n\tExtension,\n\tExtensionContext,\n\tExtensionError,\n\tExtensionEvent,\n\tInputEvent,\n\tInputEventResult,\n\tInputSource,\n\tMessageEndEvent,\n\tMessageEndEventResult,\n\tProjectTrustEvent,\n\tResourcesDiscoverEvent,\n\tResourcesDiscoverResult,\n\tSessionBeforeCompactResult,\n\tSessionBeforeForkResult,\n\tSessionBeforeSwitchResult,\n\tSessionBeforeTreeResult,\n\tSessionBoundaryDraft,\n\tToolCallEvent,\n\tToolCallEventResult,\n\tToolResultEvent,\n\tToolResultEventResult,\n\tTurnEndEvent,\n\tUserBashEvent,\n\tUserBashEventResult,\n} from \"./types.ts\";\n\n/** Combined result from all before_agent_start handlers. */\nexport interface BeforeAgentStartCombinedResult {\n\tmessages: NonNullable<BeforeAgentStartEventResult[\"message\"]>[];\n\tsystemPromptOptions: NormalizedBuildSystemPromptOptions;\n}\n\nexport interface ResourcesDiscoverCombinedResult {\n\tskillPaths: Array<{ path: string; extensionPath: string }>;\n\tpromptPaths: Array<{ path: string; extensionPath: string }>;\n\tthemePaths: Array<{ path: string; extensionPath: string }>;\n}\n\n/** Events handled by the generic emit() method. */\nexport type RunnerEmitEvent = Exclude<\n\tExtensionEvent,\n\t| ToolCallEvent\n\t| ProjectTrustEvent\n\t| ToolResultEvent\n\t| UserBashEvent\n\t| ContextEvent\n\t| ContextWithSystemEvent\n\t| BeforeProviderRequestEvent\n\t| BeforeAgentStartEvent\n\t| MessageEndEvent\n\t| ResourcesDiscoverEvent\n\t| InputEvent\n\t| TurnEndEvent\n\t| AgentBeforeSettleEvent\n>;\n\nexport type BoundaryBaseEvent =\n\t| Omit<TurnEndEvent, \"entries\" | \"continue\" | \"context\">\n\t| Omit<AgentBeforeSettleEvent, \"entries\" | \"continue\" | \"context\">;\n\nexport interface BoundaryDispatchResult {\n\tentries: SessionBoundaryDraft[];\n\tcontinue: boolean;\n\tcontext: BoundaryContextPreview;\n\tvalid: boolean;\n}\n\ntype SessionBeforeEvent = Extract<\n\tRunnerEmitEvent,\n\t{ type: \"session_before_switch\" | \"session_before_fork\" | \"session_before_compact\" | \"session_before_tree\" }\n>;\n\ntype SessionBeforeEventResult =\n\t| SessionBeforeSwitchResult\n\t| SessionBeforeForkResult\n\t| SessionBeforeCompactResult\n\t| SessionBeforeTreeResult;\n\nexport type RunnerEmitResult<TEvent extends RunnerEmitEvent> = TEvent extends { type: \"session_before_switch\" }\n\t? SessionBeforeSwitchResult | undefined\n\t: TEvent extends { type: \"session_before_fork\" }\n\t\t? SessionBeforeForkResult | undefined\n\t\t: TEvent extends { type: \"session_before_compact\" }\n\t\t\t? SessionBeforeCompactResult | undefined\n\t\t\t: TEvent extends { type: \"session_before_tree\" }\n\t\t\t\t? SessionBeforeTreeResult | undefined\n\t\t\t\t: undefined;\n\ntype EmitExtensionError = (error: ExtensionError) => void;\n\nconst isSessionBeforeEvent = (event: RunnerEmitEvent): event is SessionBeforeEvent =>\n\tevent.type === \"session_before_switch\" ||\n\tevent.type === \"session_before_fork\" ||\n\tevent.type === \"session_before_compact\" ||\n\tevent.type === \"session_before_tree\";\n\nconst emitCaughtError = (emitError: EmitExtensionError, extensionPath: string, event: string, error: unknown): void => {\n\temitError({\n\t\textensionPath,\n\t\tevent,\n\t\terror: error instanceof Error ? error.message : String(error),\n\t\tstack: error instanceof Error ? error.stack : undefined,\n\t});\n};\n\nexport function snapshotEventHandlers(extensions: Extension[], event: ExtensionEvent[\"type\"]) {\n\treturn extensions.map((ext) => ({ ext, handlers: ext.handlers.get(event)?.slice() ?? [] }));\n}\n\nexport async function runGenericHandlers<TEvent extends RunnerEmitEvent>(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: TEvent,\n\temitError: EmitExtensionError,\n\tisCurrent?: () => boolean,\n): Promise<RunnerEmitResult<TEvent>> {\n\tlet result: SessionBeforeEventResult | undefined;\n\tconst promptNotifications: Promise<void>[] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, event.type)) {\n\t\tfor (const handler of handlers) {\n\t\t\t// Workflow publishers can retire while a previous handler awaits.\n\t\t\tif (isCurrent && !isCurrent()) return result as RunnerEmitResult<TEvent>;\n\t\t\ttry {\n\t\t\t\tconst invocation = runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t// Activity reporting may yield again before invoking the callback.\n\t\t\t\t\t() => (!isCurrent || isCurrent() ? handler(event, ctx) : undefined),\n\t\t\t\t);\n\t\t\t\tif (event.type === \"ui_prompt_start\" || event.type === \"ui_prompt_end\") {\n\t\t\t\t\t// These notifications dispatch independently. Awaiting one observer here\n\t\t\t\t\t// lets an end overtake its start at every later observer, leaving a false block.\n\t\t\t\t\tpromptNotifications.push(\n\t\t\t\t\t\tinvocation.then(\n\t\t\t\t\t\t\t() => {},\n\t\t\t\t\t\t\t(error) => emitCaughtError(emitError, ext.path, event.type, error),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tconst handlerResult = await invocation;\n\t\t\t\tif (isSessionBeforeEvent(event) && handlerResult) {\n\t\t\t\t\tresult = handlerResult as SessionBeforeEventResult;\n\t\t\t\t\tif (result.cancel) return result as RunnerEmitResult<TEvent>;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, event.type, error);\n\t\t\t}\n\t\t}\n\t}\n\n\tif (promptNotifications.length > 0) await Promise.all(promptNotifications);\n\treturn result as RunnerEmitResult<TEvent>;\n}\n\nexport async function runMessageEndHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: MessageEndEvent,\n\temitError: EmitExtensionError,\n): Promise<AgentMessage | undefined> {\n\tlet currentMessage = event.message;\n\tlet modified = false;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"message_end\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst currentEvent: MessageEndEvent = { ...event, message: currentMessage };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: currentEvent.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(currentEvent, ctx),\n\t\t\t\t)) as MessageEndEventResult | undefined;\n\t\t\t\tif (!handlerResult?.message) continue;\n\n\t\t\t\tif (handlerResult.message.role !== currentMessage.role) {\n\t\t\t\t\temitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: \"message_end\",\n\t\t\t\t\t\terror: \"message_end handlers must return a message with the same role\",\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcurrentMessage = handlerResult.message;\n\t\t\t\tmodified = true;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"message_end\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified ? currentMessage : undefined;\n}\n\nexport async function runToolResultHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: ToolResultEvent,\n\temitError: EmitExtensionError,\n): Promise<ToolResultEventResult | undefined> {\n\tconst currentEvent: ToolResultEvent = { ...event };\n\tlet modified = false;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"tool_result\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: currentEvent.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(currentEvent, ctx),\n\t\t\t\t)) as ToolResultEventResult | undefined;\n\t\t\t\tif (!handlerResult) continue;\n\t\t\t\tif (handlerResult.content !== undefined) {\n\t\t\t\t\tcurrentEvent.content = handlerResult.content;\n\t\t\t\t\tcurrentEvent.structuredContent = handlerResult.structuredContent;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.details !== undefined) {\n\t\t\t\t\tcurrentEvent.details = handlerResult.details;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.structuredContent !== undefined) {\n\t\t\t\t\tcurrentEvent.structuredContent = handlerResult.structuredContent;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.usage !== undefined) {\n\t\t\t\t\tcurrentEvent.usage = handlerResult.usage;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t\tif (handlerResult.isError !== undefined) {\n\t\t\t\t\tcurrentEvent.isError = handlerResult.isError;\n\t\t\t\t\tmodified = true;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"tool_result\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn modified\n\t\t? {\n\t\t\t\tcontent: currentEvent.content,\n\t\t\t\tdetails: currentEvent.details,\n\t\t\t\tisError: currentEvent.isError,\n\t\t\t\tstructuredContent: currentEvent.structuredContent,\n\t\t\t\tusage: currentEvent.usage,\n\t\t\t}\n\t\t: undefined;\n}\n\nexport async function runToolCallHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: ToolCallEvent,\n): Promise<ToolCallEventResult | undefined> {\n\tlet result: ToolCallEventResult | undefined;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"tool_call\")) {\n\t\tfor (const handler of handlers) {\n\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t() => handler(event, ctx),\n\t\t\t);\n\t\t\tif (handlerResult) {\n\t\t\t\tresult = handlerResult as ToolCallEventResult;\n\t\t\t\tif (result.block) return result;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn result;\n}\n\nfunction isUserBashEventResult(value: unknown): value is UserBashEventResult {\n\tif (typeof value !== \"object\" || value === null) return false;\n\tconst candidate = value as Record<string, unknown>;\n\tconst hasOperations = candidate.operations !== undefined;\n\tconst hasResult = candidate.result !== undefined;\n\tif (hasOperations === hasResult) return false;\n\tif (hasOperations) {\n\t\tconst operations = candidate.operations;\n\t\treturn (\n\t\t\ttypeof operations === \"object\" &&\n\t\t\toperations !== null &&\n\t\t\ttypeof (operations as Record<string, unknown>).exec === \"function\"\n\t\t);\n\t}\n\tconst result = candidate.result;\n\tif (typeof result !== \"object\" || result === null) return false;\n\tconst record = result as Record<string, unknown>;\n\treturn (\n\t\ttypeof record.output === \"string\" &&\n\t\t\"exitCode\" in record &&\n\t\t(record.exitCode === undefined || typeof record.exitCode === \"number\") &&\n\t\ttypeof record.cancelled === \"boolean\" &&\n\t\ttypeof record.truncated === \"boolean\" &&\n\t\t(record.fullOutputPath === undefined || typeof record.fullOutputPath === \"string\")\n\t);\n}\n\nexport async function runUserBashHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: UserBashEvent,\n\temitError: EmitExtensionError,\n): Promise<UserBashEventResult | undefined> {\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"user_bash\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (handlerResult === undefined) continue;\n\t\t\t\tif (!isUserBashEventResult(handlerResult)) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\"Invalid user_bash handler result: return undefined for local execution or exactly one valid { operations } or { result } object\",\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn handlerResult;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"user_bash\", error);\n\t\t\t\tthrow error;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn undefined;\n}\n\nfunction sameMessages(left: AgentMessage[], right: AgentMessage[]): boolean {\n\treturn left.length === right.length && left.every((message, index) => message === right[index]);\n}\n\n/**\n * Re-attach the prompt and tool state after a `context` handler. Handlers only see the\n * conversation; the system messages belong to Atomic. An unchanged conversation keeps every\n * system message in place, so models with mid-conversation support keep their cached\n * prefix. A changed one gets the replayed prompt sections and tool declarations as one\n * leading system message, so pruning, windowing, or slicing from a compaction summary\n * cannot drop them.\n */\nfunction restoreSystemMessages(\n\tcurrent: AgentMessage[],\n\tvisible: AgentMessage[],\n\treturned: AgentMessage[],\n): AgentMessage[] {\n\tif (sameMessages(returned, visible)) return current;\n\tconst head = getCurrentSystemMessage(current);\n\treturn head ? [head, ...returned] : returned;\n}\n\n/**\n * Run the request-time transforms in two phases. `context` handlers see the conversation\n * only and Atomic restores the prompt and tool state after each; `context_with_system`\n * handlers then see the full transcript and their output is used as returned.\n */\nexport async function runContextHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tmessages: AgentMessage[],\n\temitError: EmitExtensionError,\n): Promise<AgentMessage[]> {\n\tlet currentMessages = structuredClone(messages);\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"context\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst visibleMessages = currentMessages.filter((message) => message.role !== \"system\");\n\t\t\t\tconst visibleSnapshot = visibleMessages.slice();\n\t\t\t\tconst event: ContextEvent = { type: \"context\", messages: visibleMessages };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as ContextEventResult | undefined;\n\n\t\t\t\t// Handlers may return a new list or edit event.messages in place.\n\t\t\t\tconst returned =\n\t\t\t\t\thandlerResult?.messages ??\n\t\t\t\t\t(sameMessages(visibleMessages, visibleSnapshot) ? undefined : visibleMessages);\n\t\t\t\tif (!returned) continue;\n\t\t\t\tcurrentMessages = restoreSystemMessages(currentMessages, visibleSnapshot, returned);\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"context\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"context_with_system\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst hadLeadingSystemMessage = currentMessages[0]?.role === \"system\";\n\t\t\t\tconst event: ContextWithSystemEvent = { type: \"context_with_system\", messages: currentMessages };\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as ContextEventResult | undefined;\n\t\t\t\tcurrentMessages = handlerResult?.messages ?? currentMessages;\n\t\t\t\t// Providers read the prompt and initial tools from the leading system message.\n\t\t\t\t// Losing it is never intended; report it but honor the handler's output.\n\t\t\t\tif (hadLeadingSystemMessage && currentMessages[0]?.role !== \"system\") {\n\t\t\t\t\temitError({\n\t\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\t\tevent: \"context_with_system\",\n\t\t\t\t\t\terror: \"Handler removed the leading system message; the request has no prompt or initial tool declarations. Keep it at index 0 or replace a dropped prefix with getCurrentSystemMessage().\",\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"context_with_system\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentMessages;\n}\n\n/** Dispatch an actionable boundary event, revalidating the context preview after every handler. */\nexport async function runBoundaryHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tbaseEvent: BoundaryBaseEvent,\n\tbuildContext: (entries: SessionBoundaryDraft[]) => BoundaryContextPreview | Promise<BoundaryContextPreview>,\n\temitError: EmitExtensionError,\n): Promise<BoundaryDispatchResult> {\n\tlet entries: SessionBoundaryDraft[] = [];\n\tlet shouldContinue = false;\n\tlet context = await buildContext(entries);\n\tlet valid = true;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, baseEvent.type)) {\n\t\tfor (const handler of handlers) {\n\t\t\tconst event = {\n\t\t\t\t...baseEvent,\n\t\t\t\tentries,\n\t\t\t\tcontinue: shouldContinue,\n\t\t\t\tcontext,\n\t\t\t} as TurnEndEvent | AgentBeforeSettleEvent;\n\t\t\ttry {\n\t\t\t\tconst handlerResult = (await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t)) as BoundaryResult | undefined;\n\t\t\t\tif (handlerResult?.entries !== undefined) entries = handlerResult.entries;\n\t\t\t\tif (handlerResult?.continue !== undefined) shouldContinue = handlerResult.continue;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, baseEvent.type, error);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcontext = await buildContext(entries);\n\t\t\t\tvalid = true;\n\t\t\t} catch (error) {\n\t\t\t\tvalid = false;\n\t\t\t\temitError({\n\t\t\t\t\textensionPath: ext.path,\n\t\t\t\t\tevent: baseEvent.type,\n\t\t\t\t\terror: `Invalid boundary entries: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn valid\n\t\t? { entries, continue: shouldContinue, context, valid: true }\n\t\t: { entries: [], continue: false, context, valid: false };\n}\n\nexport async function runBeforeProviderRequestHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tpayload: unknown,\n\temitError: EmitExtensionError,\n): Promise<unknown> {\n\tlet currentPayload = payload;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"before_provider_request\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: BeforeProviderRequestEvent = { type: \"before_provider_request\", payload: currentPayload };\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (handlerResult !== undefined) currentPayload = handlerResult;\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"before_provider_request\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentPayload;\n}\n\nexport async function runBeforeAgentStartHandlers(\n\textensions: Extension[],\n\tbaseCtx: ExtensionContext,\n\tassertActive: () => void,\n\tprompt: string,\n\timages: ImageContent[] | undefined,\n\tbaseOptions: BuildSystemPromptOptions,\n\temitError: EmitExtensionError,\n): Promise<BeforeAgentStartCombinedResult> {\n\tconst systemPromptOptions = normalizeBuildSystemPromptOptions(baseOptions);\n\tconst ctx = Object.defineProperties({}, Object.getOwnPropertyDescriptors(baseCtx)) as ExtensionContext;\n\tctx.getSystemPrompt = () => {\n\t\tassertActive();\n\t\treturn buildSystemPrompt(systemPromptOptions);\n\t};\n\tconst messages: NonNullable<BeforeAgentStartEventResult[\"message\"]>[] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"before_agent_start\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: BeforeAgentStartEvent = {\n\t\t\t\t\ttype: \"before_agent_start\",\n\t\t\t\t\tprompt,\n\t\t\t\t\timages,\n\t\t\t\t\tget systemPrompt() {\n\t\t\t\t\t\treturn buildSystemPrompt(systemPromptOptions);\n\t\t\t\t\t},\n\t\t\t\t\tsystemPromptOptions,\n\t\t\t\t};\n\t\t\t\tconst handlerResult = await runCallback(\n\t\t\t\t\t{ kind: \"extension.hook\", name: event.type, sourcePath: ext.path },\n\t\t\t\t\t() => handler(event, ctx),\n\t\t\t\t);\n\t\t\t\tif (!handlerResult) continue;\n\n\t\t\t\tconst result = handlerResult as BeforeAgentStartEventResult;\n\t\t\t\tif (result.message) messages.push(result.message);\n\t\t\t\tif (result.systemPrompt !== undefined) {\n\t\t\t\t\tsystemPromptOptions.forceSystemPrompt = result.systemPrompt;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"before_agent_start\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { messages, systemPromptOptions };\n}\n\nexport async function runResourcesDiscoverHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tcwd: string,\n\treason: ResourcesDiscoverEvent[\"reason\"],\n\temitError: EmitExtensionError,\n): Promise<ResourcesDiscoverCombinedResult> {\n\tconst skillPaths: ResourcesDiscoverCombinedResult[\"skillPaths\"] = [];\n\tconst promptPaths: ResourcesDiscoverCombinedResult[\"promptPaths\"] = [];\n\tconst themePaths: ResourcesDiscoverCombinedResult[\"themePaths\"] = [];\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"resources_discover\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: ResourcesDiscoverEvent = { type: \"resources_discover\", cwd, reason };\n\t\t\t\tconst result = (await runCallback({ kind: \"extension.hook\", name: event.type, sourcePath: ext.path }, () =>\n\t\t\t\t\thandler(event, ctx),\n\t\t\t\t)) as ResourcesDiscoverResult | undefined;\n\t\t\t\tif (result?.skillPaths?.length) {\n\t\t\t\t\tskillPaths.push(...result.skillPaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t\tif (result?.promptPaths?.length) {\n\t\t\t\t\tpromptPaths.push(...result.promptPaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t\tif (result?.themePaths?.length) {\n\t\t\t\t\tthemePaths.push(...result.themePaths.map((path) => ({ path, extensionPath: ext.path })));\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"resources_discover\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { skillPaths, promptPaths, themePaths };\n}\n\nexport async function runInputHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\ttext: string,\n\timages: ImageContent[] | undefined,\n\tsource: InputSource,\n\tstreamingBehavior: \"steer\" | \"followUp\" | undefined,\n\temitError: EmitExtensionError,\n): Promise<InputEventResult> {\n\tlet currentText = text;\n\tlet currentImages = images;\n\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, \"input\")) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\n\t\t\t\tconst event: InputEvent = {\n\t\t\t\t\ttype: \"input\",\n\t\t\t\t\ttext: currentText,\n\t\t\t\t\timages: currentImages,\n\t\t\t\t\tsource,\n\t\t\t\t\tstreamingBehavior,\n\t\t\t\t};\n\t\t\t\tconst result = (await runCallback({ kind: \"extension.hook\", name: event.type, sourcePath: ext.path }, () =>\n\t\t\t\t\thandler(event, ctx),\n\t\t\t\t)) as InputEventResult | undefined;\n\t\t\t\tif (result?.action === \"handled\") return result;\n\t\t\t\tif (result?.action === \"transform\") {\n\t\t\t\t\tcurrentText = result.text;\n\t\t\t\t\tcurrentImages = result.images ?? currentImages;\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\temitCaughtError(emitError, ext.path, \"input\", error);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn currentText !== text || currentImages !== images\n\t\t? { action: \"transform\", text: currentText, images: currentImages }\n\t\t: { action: \"continue\" };\n}\n"]}
@@ -1,4 +1,5 @@
1
1
  import type { CacheWarmingAction, CacheWarmingDecisionEvent } from "../cache-warmer.ts";
2
+ import type { ExtensionToolContext } from "./context-types.ts";
2
3
  /**
3
4
  * Extension runner - executes extensions and manages their lifecycle.
4
5
  */
@@ -60,6 +61,8 @@ export declare class ExtensionRunner {
60
61
  private getSkillCatalogFn;
61
62
  private getRouterModelFn;
62
63
  private getModelRoutingFn;
64
+ private executeToolFn;
65
+ private getCallableToolsFn;
63
66
  private newSessionHandler;
64
67
  private forkHandler;
65
68
  private navigateTreeHandler;
@@ -136,6 +139,8 @@ export declare class ExtensionRunner {
136
139
  */
137
140
  shutdown(): void;
138
141
  createContext(): ExtensionContext;
142
+ /** Bound to the actual executing parent, not an extension-supplied caller identity. */
143
+ createToolContext(toolCallId: string, signal: AbortSignal | undefined): ExtensionToolContext;
139
144
  createCommandContext(): ExtensionCommandContext;
140
145
  private createContextSource;
141
146
  /** Keep startup reporters bound while adding the now-authorized extension set. */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
1
2
  import { snapshotEventHandlers } from "./runner-events.js";
2
3
  import { lifecycleScopeForOwner, sessionLifecycleScopes } from "../session-lifecycle-scope.js";
3
4
  import { normalizeBuildSystemPromptOptions } from "../system-prompt.js";
@@ -97,6 +98,8 @@ export class ExtensionRunner {
97
98
  getSkillCatalogFn = undefined;
98
99
  getRouterModelFn = undefined;
99
100
  getModelRoutingFn = undefined;
101
+ executeToolFn;
102
+ getCallableToolsFn = () => [];
100
103
  newSessionHandler = async () => ({ cancelled: false });
101
104
  forkHandler = async () => ({ cancelled: false });
102
105
  navigateTreeHandler = async () => ({ cancelled: false });
@@ -157,6 +160,9 @@ export class ExtensionRunner {
157
160
  this.getSkillCatalogFn = contextActions.getSkillCatalog;
158
161
  this.getRouterModelFn = contextActions.getRouterModel;
159
162
  this.getModelRoutingFn = contextActions.getModelRouting;
163
+ this.executeToolFn = contextActions.executeTool;
164
+ this.getCallableToolsFn = contextActions.getCallableTools ?? (() => []);
165
+ this.runtime.getSettings = contextActions.getSettings;
160
166
  // Flush provider registrations queued during extension loading.
161
167
  for (const registration of this.runtime.pendingProviderRegistrations) {
162
168
  try {
@@ -516,6 +522,34 @@ export class ExtensionRunner {
516
522
  createContext() {
517
523
  return createExtensionContext(this.createContextSource(), this.contextOwner);
518
524
  }
525
+ /** Bound to the actual executing parent, not an extension-supplied caller identity. */
526
+ createToolContext(toolCallId, signal) {
527
+ const invoke = AsyncLocalStorage.bind(async (name, args, options = {}) => {
528
+ this.assertActive();
529
+ if (signal?.aborted)
530
+ throw new Error("Calling tool execution has ended");
531
+ if (!this.executeToolFn)
532
+ return {
533
+ toolCall: { type: "toolCall", id: `${toolCallId}/0`, name, arguments: {} },
534
+ result: {
535
+ content: [{ type: "text", text: "Nested tool calls are not available in this context" }],
536
+ details: {},
537
+ },
538
+ isError: true,
539
+ };
540
+ const callSignal = signal && options.signal ? AbortSignal.any([signal, options.signal]) : (options.signal ?? signal);
541
+ return this.executeToolFn(toolCallId, name, args, { ...options, signal: callSignal });
542
+ });
543
+ return Object.defineProperties(this.createContext(), {
544
+ tools: {
545
+ get: () => {
546
+ this.assertActive();
547
+ return this.getCallableToolsFn();
548
+ },
549
+ },
550
+ executeTool: { value: invoke },
551
+ });
552
+ }
519
553
  createCommandContext() {
520
554
  return createExtensionCommandContext(this.createContextSource(), this.contextOwner);
521
555
  }