@bastani/atomic 0.9.39 → 0.9.40-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 (280) hide show
  1. package/CHANGELOG.md +35 -0
  2. package/dist/builtin/intercom/CHANGELOG.md +14 -0
  3. package/dist/builtin/intercom/broker/broker.ts +523 -72
  4. package/dist/builtin/intercom/broker/client.ts +136 -5
  5. package/dist/builtin/intercom/broker/database-wake-up-bus.ts +274 -0
  6. package/dist/builtin/intercom/broker/group-membership.ts +2 -2
  7. package/dist/builtin/intercom/broker/multinode-router.ts +1500 -0
  8. package/dist/builtin/intercom/broker/multinode-state-store.ts +569 -0
  9. package/dist/builtin/intercom/broker/open-broker-state.ts +160 -0
  10. package/dist/builtin/intercom/broker/paths.ts +6 -0
  11. package/dist/builtin/intercom/broker/pending-send-registry.ts +14 -0
  12. package/dist/builtin/intercom/broker/recipient-receipts.ts +93 -0
  13. package/dist/builtin/intercom/broker/restoring-recipients.ts +263 -0
  14. package/dist/builtin/intercom/broker/send-handler.ts +241 -25
  15. package/dist/builtin/intercom/broker/session-id-reclaim.ts +41 -0
  16. package/dist/builtin/intercom/broker/socket-writes.ts +47 -0
  17. package/dist/builtin/intercom/broker/spawn.ts +10 -2
  18. package/dist/builtin/intercom/broker/sql-held-send-store.ts +96 -0
  19. package/dist/builtin/intercom/broker/sql-known-session-store.ts +129 -0
  20. package/dist/builtin/intercom/broker/sql-lease-store.ts +194 -0
  21. package/dist/builtin/intercom/broker/sql-outbox-store.ts +249 -0
  22. package/dist/builtin/intercom/broker/sql-pending-ask-store.ts +105 -0
  23. package/dist/builtin/intercom/broker/sql-restoring-reservation-store.ts +295 -0
  24. package/dist/builtin/intercom/broker/sql-sent-message-authority.ts +126 -0
  25. package/dist/builtin/intercom/broker/supervisor-channel.ts +10 -0
  26. package/dist/builtin/intercom/broker/wake-up-bus.ts +60 -0
  27. package/dist/builtin/intercom/index.bundle.mjs +793 -91
  28. package/dist/builtin/intercom/package.json +1 -1
  29. package/dist/builtin/intercom/retry-policy.ts +4 -0
  30. package/dist/builtin/intercom/session-target.ts +24 -0
  31. package/dist/builtin/intercom/types.ts +57 -3
  32. package/dist/builtin/mcp/package.json +1 -1
  33. package/dist/builtin/subagents/CHANGELOG.md +31 -0
  34. package/dist/builtin/subagents/README.md +18 -12
  35. package/dist/builtin/subagents/package.json +1 -1
  36. package/dist/builtin/subagents/skills/agent-browser/SKILL.md +1 -1
  37. package/dist/builtin/subagents/skills/cua-driver/BROWSER.md +55 -8
  38. package/dist/builtin/subagents/skills/cua-driver/EMBEDDING.md +7 -2
  39. package/dist/builtin/subagents/skills/cua-driver/LINUX.md +7 -1
  40. package/dist/builtin/subagents/skills/cua-driver/MACOS.md +151 -27
  41. package/dist/builtin/subagents/skills/cua-driver/RUNTIME.md +1 -1
  42. package/dist/builtin/subagents/skills/cua-driver/SKILL.md +33 -17
  43. package/dist/builtin/subagents/skills/cua-driver/WINDOWS.md +5 -0
  44. package/dist/builtin/subagents/skills/cua-driver/WORKFLOW.md +46 -8
  45. package/dist/builtin/subagents/skills/subagent/SKILL.md +18 -20
  46. package/dist/builtin/subagents/src/extension/index.bundle.mjs +8032 -6034
  47. package/dist/builtin/web-access/CHANGELOG.md +6 -0
  48. package/dist/builtin/web-access/README.md +1 -1
  49. package/dist/builtin/web-access/index.bundle.mjs +2 -5
  50. package/dist/builtin/web-access/package.json +1 -1
  51. package/dist/builtin/workflows/CHANGELOG.md +24 -0
  52. package/dist/builtin/workflows/README.md +1 -1
  53. package/dist/builtin/workflows/package.json +1 -1
  54. package/dist/builtin/workflows/skills/impeccable/SKILL.md +8 -8
  55. package/dist/builtin/workflows/skills/impeccable/reference/adapt.md +3 -3
  56. package/dist/builtin/workflows/skills/impeccable/reference/adapt.native.md +1 -1
  57. package/dist/builtin/workflows/skills/impeccable/reference/audit.md +4 -2
  58. package/dist/builtin/workflows/skills/impeccable/reference/audit.native.md +2 -2
  59. package/dist/builtin/workflows/skills/impeccable/reference/craft-floor.md +1 -1
  60. package/dist/builtin/workflows/skills/impeccable/reference/critique.md +22 -9
  61. package/dist/builtin/workflows/skills/impeccable/reference/degraded/finish-reviewer.md +2 -2
  62. package/dist/builtin/workflows/skills/impeccable/reference/distill.md +3 -3
  63. package/dist/builtin/workflows/skills/impeccable/reference/extract.md +3 -3
  64. package/dist/builtin/workflows/skills/impeccable/reference/harden.md +2 -4
  65. package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +4 -4
  66. package/dist/builtin/workflows/skills/impeccable/reference/live.md +1 -1
  67. package/dist/builtin/workflows/skills/impeccable/reference/new-work.md +6 -6
  68. package/dist/builtin/workflows/skills/impeccable/reference/onboard.md +3 -3
  69. package/dist/builtin/workflows/skills/impeccable/reference/optimize.md +3 -3
  70. package/dist/builtin/workflows/skills/impeccable/reference/overdrive.md +3 -3
  71. package/dist/builtin/workflows/skills/impeccable/reference/quieter.md +3 -3
  72. package/dist/builtin/workflows/skills/impeccable/reference/typeset.md +10 -0
  73. package/dist/builtin/workflows/skills/impeccable/reference/visualize.md +1 -1
  74. package/dist/builtin/workflows/skills/impeccable/scripts/VERSION +1 -1
  75. package/dist/builtin/workflows/skills/impeccable/scripts/impeccable +6 -0
  76. package/dist/builtin/workflows/skills/impeccable/scripts/impeccable.cmd +47 -22
  77. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +34 -1
  78. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +25 -1
  79. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +33 -8
  80. package/dist/builtin/workflows/src/durable/journal/resolution.d.ts +7 -7
  81. package/dist/builtin/workflows/src/extension/index.bundle.mjs +22715 -22159
  82. package/dist/builtin/workflows/src/index.js +106 -35
  83. package/dist/cli/args.d.ts +2 -0
  84. package/dist/cli/args.d.ts.map +1 -1
  85. package/dist/cli/args.js +17 -1
  86. package/dist/cli/args.js.map +1 -1
  87. package/dist/core/agent-session-extension-bindings.d.ts +2 -0
  88. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  89. package/dist/core/agent-session-extension-bindings.js +6 -6
  90. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  91. package/dist/core/agent-session-methods.d.ts +6 -3
  92. package/dist/core/agent-session-methods.d.ts.map +1 -1
  93. package/dist/core/agent-session-methods.js.map +1 -1
  94. package/dist/core/agent-session-persistent-custom-messages.d.ts +7 -2
  95. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  96. package/dist/core/agent-session-persistent-custom-messages.js +29 -12
  97. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  98. package/dist/core/agent-session-recovery.d.ts +14 -0
  99. package/dist/core/agent-session-recovery.d.ts.map +1 -0
  100. package/dist/core/agent-session-recovery.js +83 -0
  101. package/dist/core/agent-session-recovery.js.map +1 -0
  102. package/dist/core/agent-session-tasks.d.ts.map +1 -1
  103. package/dist/core/agent-session-tasks.js +4 -6
  104. package/dist/core/agent-session-tasks.js.map +1 -1
  105. package/dist/core/agent-session-types.d.ts +13 -0
  106. package/dist/core/agent-session-types.d.ts.map +1 -1
  107. package/dist/core/agent-session-types.js.map +1 -1
  108. package/dist/core/agent-session.d.ts +2 -1
  109. package/dist/core/agent-session.d.ts.map +1 -1
  110. package/dist/core/agent-session.js +4 -1
  111. package/dist/core/agent-session.js.map +1 -1
  112. package/dist/core/export-html/index.d.ts.map +1 -1
  113. package/dist/core/export-html/index.js +3 -2
  114. package/dist/core/export-html/index.js.map +1 -1
  115. package/dist/core/export-html/template.html +1 -0
  116. package/dist/core/export-html/template.js +37 -20
  117. package/dist/core/export-html/vendor/marked-cjk-friendly.min.js +6 -0
  118. package/dist/core/export-html/vendor/marked.min.js +76 -3
  119. package/dist/core/extensions/api-types.d.ts +6 -2
  120. package/dist/core/extensions/api-types.d.ts.map +1 -1
  121. package/dist/core/extensions/api-types.js.map +1 -1
  122. package/dist/core/extensions/event-results.d.ts +21 -0
  123. package/dist/core/extensions/event-results.d.ts.map +1 -1
  124. package/dist/core/extensions/event-results.js.map +1 -1
  125. package/dist/core/extensions/index.d.ts +1 -1
  126. package/dist/core/extensions/index.d.ts.map +1 -1
  127. package/dist/core/extensions/index.js.map +1 -1
  128. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  129. package/dist/core/extensions/loader-api.js +4 -0
  130. package/dist/core/extensions/loader-api.js.map +1 -1
  131. package/dist/core/extensions/runner-events.d.ts +9 -2
  132. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  133. package/dist/core/extensions/runner-events.js +29 -0
  134. package/dist/core/extensions/runner-events.js.map +1 -1
  135. package/dist/core/extensions/runner.d.ts +5 -3
  136. package/dist/core/extensions/runner.d.ts.map +1 -1
  137. package/dist/core/extensions/runner.js +7 -2
  138. package/dist/core/extensions/runner.js.map +1 -1
  139. package/dist/core/extensions/runtime-types.d.ts +1 -0
  140. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  141. package/dist/core/extensions/runtime-types.js.map +1 -1
  142. package/dist/core/extensions/session-events.d.ts +30 -2
  143. package/dist/core/extensions/session-events.d.ts.map +1 -1
  144. package/dist/core/extensions/session-events.js.map +1 -1
  145. package/dist/core/sdk-types.d.ts +3 -2
  146. package/dist/core/sdk-types.d.ts.map +1 -1
  147. package/dist/core/sdk-types.js.map +1 -1
  148. package/dist/core/sdk.d.ts.map +1 -1
  149. package/dist/core/sdk.js +3 -0
  150. package/dist/core/sdk.js.map +1 -1
  151. package/dist/core/session-storage.d.ts.map +1 -1
  152. package/dist/core/session-storage.js +15 -9
  153. package/dist/core/session-storage.js.map +1 -1
  154. package/dist/core/storage/process-selection.d.ts +39 -0
  155. package/dist/core/storage/process-selection.d.ts.map +1 -0
  156. package/dist/core/storage/process-selection.js +154 -0
  157. package/dist/core/storage/process-selection.js.map +1 -0
  158. package/dist/core/storage/provider.d.ts +6 -1
  159. package/dist/core/storage/provider.d.ts.map +1 -1
  160. package/dist/core/storage/provider.js +3 -2
  161. package/dist/core/storage/provider.js.map +1 -1
  162. package/dist/core/storage/selection.d.ts +1 -1
  163. package/dist/core/storage/selection.d.ts.map +1 -1
  164. package/dist/core/storage/selection.js.map +1 -1
  165. package/dist/core/storage/session/jsonl-session-store.d.ts +2 -0
  166. package/dist/core/storage/session/jsonl-session-store.d.ts.map +1 -1
  167. package/dist/core/storage/session/jsonl-session-store.js +38 -2
  168. package/dist/core/storage/session/jsonl-session-store.js.map +1 -1
  169. package/dist/core/tasks/completion.d.ts +11 -2
  170. package/dist/core/tasks/completion.d.ts.map +1 -1
  171. package/dist/core/tasks/completion.js +40 -16
  172. package/dist/core/tasks/completion.js.map +1 -1
  173. package/dist/core/tasks/pause.d.ts +4 -1
  174. package/dist/core/tasks/pause.d.ts.map +1 -1
  175. package/dist/core/tasks/pause.js +8 -5
  176. package/dist/core/tasks/pause.js.map +1 -1
  177. package/dist/index-extensions.d.ts +1 -1
  178. package/dist/index-extensions.d.ts.map +1 -1
  179. package/dist/index-extensions.js.map +1 -1
  180. package/dist/index.d.ts +2 -1
  181. package/dist/index.d.ts.map +1 -1
  182. package/dist/index.js +2 -0
  183. package/dist/index.js.map +1 -1
  184. package/dist/main.d.ts.map +1 -1
  185. package/dist/main.js +7 -1
  186. package/dist/main.js.map +1 -1
  187. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  188. package/dist/modes/interactive/components/chat-session-host-rendering.js +11 -1
  189. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  190. package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -0
  191. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  192. package/dist/modes/interactive/components/chat-session-host-state.js +2 -0
  193. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  194. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  195. package/dist/modes/interactive/interactive-deferred-startup.js +4 -0
  196. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  197. package/dist/modes/interactive/interactive-mode-surface.d.ts +2 -1
  198. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  199. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  200. package/dist/modes/interactive/interactive-render-chat.js +3 -0
  201. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  202. package/dist/modes/interactive/interactive-session-routing.js +2 -0
  203. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  204. package/dist/modes/interactive/interactive-session-runtime.d.ts +2 -1
  205. package/dist/modes/interactive/interactive-session-runtime.d.ts.map +1 -1
  206. package/dist/modes/interactive/interactive-session-runtime.js +29 -0
  207. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  208. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  209. package/dist/modes/interactive/interactive-startup.js +4 -1
  210. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  211. package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
  212. package/dist/modes/interactive-engine/engine-args.js +4 -0
  213. package/dist/modes/interactive-engine/engine-args.js.map +1 -1
  214. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  215. package/dist/modes/interactive-engine/engine-render-service.js +4 -4
  216. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  217. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  218. package/dist/modes/interactive-engine/isolated-runtime.js +4 -0
  219. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  220. package/dist/modes/interactive-engine/remote-renderer.js +1 -1
  221. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  222. package/dist/modes/rpc/rpc-client-api.d.ts +4 -1
  223. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  224. package/dist/modes/rpc/rpc-client-api.js +4 -0
  225. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  226. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  227. package/dist/modes/rpc/rpc-command-handler.js +3 -0
  228. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  229. package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -1
  230. package/dist/modes/rpc/rpc-command-timeouts.js +1 -0
  231. package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -1
  232. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  233. package/dist/modes/rpc/rpc-input-scheduler.js +6 -1
  234. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  235. package/dist/modes/rpc/rpc-types.d.ts +12 -1
  236. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  237. package/dist/modes/rpc/rpc-types.js.map +1 -1
  238. package/dist/utils/shell.d.ts.map +1 -1
  239. package/dist/utils/shell.js +44 -11
  240. package/dist/utils/shell.js.map +1 -1
  241. package/dist/utils/tools-manager.js +1 -1
  242. package/dist/utils/tools-manager.js.map +1 -1
  243. package/docs/background-tasks.md +5 -3
  244. package/docs/computer-use.md +2 -2
  245. package/docs/environment-variables.md +4 -1
  246. package/docs/extensions/events.md +29 -2
  247. package/docs/getting-started/first-session.md +1 -1
  248. package/docs/guides/intercom.md +1 -1
  249. package/docs/intercom/operations.md +103 -1
  250. package/docs/intercom/reference.md +10 -3
  251. package/docs/intercom.md +8 -6
  252. package/docs/keybindings.md +1 -1
  253. package/docs/models.md +1 -1
  254. package/docs/providers.md +5 -3
  255. package/docs/reference/cli.md +5 -0
  256. package/docs/rpc/protocol.md +19 -0
  257. package/docs/rpc.md +3 -0
  258. package/docs/sdk/web-server.md +1 -1
  259. package/docs/sdk.md +5 -2
  260. package/docs/sessions.md +17 -1
  261. package/docs/settings.md +6 -4
  262. package/docs/skills.md +1 -1
  263. package/docs/storage.md +54 -3
  264. package/docs/subagents.md +49 -9
  265. package/docs/usage.md +1 -1
  266. package/docs/windows.md +14 -4
  267. package/docs/workflows/api-reference.md +1 -1
  268. package/docs/workflows/authoring.md +1 -1
  269. package/docs/workflows/operations.md +10 -6
  270. package/npm-shrinkwrap.json +40 -40
  271. package/package.json +6 -6
  272. package/dist/core/export-html/template-js/data-tree.js +0 -287
  273. package/dist/core/export-html/template-js/entries-navigation.js +0 -434
  274. package/dist/core/export-html/template-js/initialization.js +0 -335
  275. package/dist/core/export-html/template-js/message-tools.js +0 -428
  276. package/dist/core/export-html/template-js/tree-filter-render.js +0 -419
  277. package/dist/core/export-html/template-script.d.ts +0 -3
  278. package/dist/core/export-html/template-script.d.ts.map +0 -1
  279. package/dist/core/export-html/template-script.js +0 -13
  280. package/dist/core/export-html/template-script.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"runner-events.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-events.d.ts","sourceRoot":"","sources":["../../../src/core/extensions/runner-events.ts"],"names":[],"mappings":"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"}
@@ -383,6 +383,35 @@ export async function runResourcesDiscoverHandlers(extensions, ctx, cwd, reason,
383
383
  }
384
384
  return { skillPaths, promptPaths, themePaths };
385
385
  }
386
+ export async function runSessionRecoveryHandlers(extensions, ctx, event, emitError) {
387
+ const notices = [];
388
+ const dropped = new Set();
389
+ const deferred = new Set();
390
+ for (const { ext, handlers } of snapshotEventHandlers(extensions, event.type)) {
391
+ for (const handler of handlers) {
392
+ try {
393
+ const result = (await runCallback({ kind: "extension.hook", name: event.type, sourcePath: ext.path }, () => handler(event, ctx)));
394
+ for (const notice of result?.notices ?? [])
395
+ if (notice.trim())
396
+ notices.push(notice);
397
+ if (event.type !== "session_recovery_replay")
398
+ continue;
399
+ for (const decision of result?.decisions ?? []) {
400
+ if (decision.action === "drop")
401
+ dropped.add(decision.entryId);
402
+ else if (decision.action === "defer")
403
+ deferred.add(decision.entryId);
404
+ }
405
+ }
406
+ catch (error) {
407
+ emitCaughtError(emitError, ext.path, event.type, error);
408
+ }
409
+ }
410
+ }
411
+ for (const entryId of dropped)
412
+ deferred.delete(entryId);
413
+ return { notices, dropped, deferred };
414
+ }
386
415
  export async function runInputHandlers(extensions, ctx, text, images, source, streamingBehavior, emitError) {
387
416
  let currentText = text;
388
417
  let currentImages = images;
@@ -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\nfunction shutdownErrorMessage(error: unknown): string {\n\tif (error instanceof AggregateError && error.errors.length > 0)\n\t\treturn error.errors.map(shutdownErrorMessage).join(\"; \");\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nconst emitCaughtError = (emitError: EmitExtensionError, extensionPath: string, event: string, error: unknown): void => {\n\temitError({\n\t\textensionPath,\n\t\tevent,\n\t\terror:\n\t\t\tevent === \"session_shutdown\"\n\t\t\t\t? shutdownErrorMessage(error)\n\t\t\t\t: error instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: 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\tcustomMessage?: import(\"../messages.ts\").CustomMessage,\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\t...(customMessage\n\t\t\t\t\t\t? { messageType: \"custom\" as const, message: customMessage }\n\t\t\t\t\t\t: { messageType: \"user\" as const, prompt, images }),\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":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAEN,iBAAiB,EAEjB,iCAAiC,GACjC,MAAM,qBAAqB,CAAC;AAkH7B,MAAM,oBAAoB,GAAG,CAAC,KAAsB,EAA+B,EAAE,CACpF,KAAK,CAAC,IAAI,KAAK,uBAAuB;IACtC,KAAK,CAAC,IAAI,KAAK,qBAAqB;IACpC,KAAK,CAAC,IAAI,KAAK,wBAAwB;IACvC,KAAK,CAAC,IAAI,KAAK,qBAAqB,CAAC;AAEtC,SAAS,oBAAoB,CAAC,KAAc;IAC3C,IAAI,KAAK,YAAY,cAAc,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;QAC7D,OAAO,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1D,OAAO,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,SAA6B,EAAE,aAAqB,EAAE,KAAa,EAAE,KAAc,EAAQ,EAAE;IACrH,SAAS,CAAC;QACT,aAAa;QACb,KAAK;QACL,KAAK,EACJ,KAAK,KAAK,kBAAkB;YAC3B,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC;YAC7B,CAAC,CAAC,KAAK,YAAY,KAAK;gBACvB,CAAC,CAAC,KAAK,CAAC,OAAO;gBACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAClB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KACvD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,qBAAqB,CAAC,UAAuB,EAAE,KAA6B;IAC3F,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAuB,EACvB,GAAqB,EACrB,KAAa,EACb,SAA6B,EAC7B,SAAyB;IAEzB,IAAI,MAA4C,CAAC;IACjD,MAAM,mBAAmB,GAAoB,EAAE,CAAC;IAEhD,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,kEAAkE;YAClE,IAAI,SAAS,IAAI,CAAC,SAAS,EAAE;gBAAE,OAAO,MAAkC,CAAC;YACzE,IAAI,CAAC;gBACJ,MAAM,UAAU,GAAG,WAAW,CAC7B,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE;gBAClE,mEAAmE;gBACnE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CACnE,CAAC;gBACF,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;oBACxE,yEAAyE;oBACzE,iFAAiF;oBACjF,mBAAmB,CAAC,IAAI,CACvB,UAAU,CAAC,IAAI,CACd,GAAG,EAAE,GAAE,CAAC,EACR,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAClE,CACD,CAAC;oBACF,SAAS;gBACV,CAAC;gBACD,MAAM,aAAa,GAAG,MAAM,UAAU,CAAC;gBACvC,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,aAAa,EAAE,CAAC;oBAClD,MAAM,GAAG,aAAyC,CAAC;oBACnD,IAAI,MAAM,CAAC,MAAM;wBAAE,OAAO,MAAkC,CAAC;gBAC9D,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;IACF,CAAC;IAED,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IAC3E,OAAO,MAAkC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,UAAuB,EACvB,GAAqB,EACrB,KAAsB,EACtB,SAA6B;IAE7B,IAAI,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC;IACnC,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QAClF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,YAAY,GAAoB,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBAC5E,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EACzE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAChC,CAAsC,CAAC;gBACxC,IAAI,CAAC,aAAa,EAAE,OAAO;oBAAE,SAAS;gBAEtC,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;oBACxD,SAAS,CAAC;wBACT,aAAa,EAAE,GAAG,CAAC,IAAI;wBACvB,KAAK,EAAE,aAAa;wBACpB,KAAK,EAAE,+DAA+D;qBACtE,CAAC,CAAC;oBACH,SAAS;gBACV,CAAC;gBAED,cAAc,GAAG,aAAa,CAAC,OAAO,CAAC;gBACvC,QAAQ,GAAG,IAAI,CAAC;YACjB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,QAAQ,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,UAAuB,EACvB,GAAqB,EACrB,KAAsB,EACtB,SAA6B;IAE7B,MAAM,YAAY,GAAoB,EAAE,GAAG,KAAK,EAAE,CAAC;IACnD,IAAI,QAAQ,GAAG,KAAK,CAAC;IAErB,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,aAAa,CAAC,EAAE,CAAC;QAClF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EACzE,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAChC,CAAsC,CAAC;gBACxC,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAC7B,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,YAAY,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;oBAC7C,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,YAAY,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;oBAC7C,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,aAAa,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;oBACnD,YAAY,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC;oBACjE,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBACvC,YAAY,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;oBACzC,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;gBACD,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACzC,YAAY,CAAC,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;oBAC7C,QAAQ,GAAG,IAAI,CAAC;gBACjB,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;YAC5D,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,QAAQ;QACd,CAAC,CAAC;YACA,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,iBAAiB,EAAE,YAAY,CAAC,iBAAiB;YACjD,KAAK,EAAE,YAAY,CAAC,KAAK;SACzB;QACF,CAAC,CAAC,SAAS,CAAC;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,UAAuB,EACvB,GAAqB,EACrB,KAAoB;IAEpB,IAAI,MAAuC,CAAC;IAE5C,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QAChF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,aAAa,GAAG,MAAM,WAAW,CACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAC;YACF,IAAI,aAAa,EAAE,CAAC;gBACnB,MAAM,GAAG,aAAoC,CAAC;gBAC9C,IAAI,MAAM,CAAC,KAAK;oBAAE,OAAO,MAAM,CAAC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAc;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,MAAM,aAAa,GAAG,SAAS,CAAC,UAAU,KAAK,SAAS,CAAC;IACzD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,KAAK,SAAS,CAAC;IACjD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC9C,IAAI,aAAa,EAAE,CAAC;QACnB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;QACxC,OAAO,CACN,OAAO,UAAU,KAAK,QAAQ;YAC9B,UAAU,KAAK,IAAI;YACnB,OAAQ,UAAsC,CAAC,IAAI,KAAK,UAAU,CAClE,CAAC;IACH,CAAC;IACD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAChE,MAAM,MAAM,GAAG,MAAiC,CAAC;IACjD,OAAO,CACN,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ;QACjC,UAAU,IAAI,MAAM;QACpB,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACtE,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS;QACrC,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS;QACrC,CAAC,MAAM,CAAC,cAAc,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,CAAC,CAClF,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,UAAuB,EACvB,GAAqB,EACrB,KAAoB,EACpB,SAA6B;IAE7B,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,CAAC;QAChF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,MAAM,WAAW,CACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAC;gBACF,IAAI,aAAa,KAAK,SAAS;oBAAE,SAAS;gBAC1C,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC;oBAC3C,MAAM,IAAI,KAAK,CACd,iIAAiI,CACjI,CAAC;gBACH,CAAC;gBACD,OAAO,aAAa,CAAC;YACtB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;gBACzD,MAAM,KAAK,CAAC;YACb,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,IAAoB,EAAE,KAAqB;IAChE,OAAO,IAAI,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AACjG,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC7B,OAAuB,EACvB,OAAuB,EACvB,QAAwB;IAExB,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC;QAAE,OAAO,OAAO,CAAC;IACpD,MAAM,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC9C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,UAAuB,EACvB,GAAqB,EACrB,QAAwB,EACxB,SAA6B;IAE7B,IAAI,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAEhD,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,CAAC;QAC9E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;gBACvF,MAAM,eAAe,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC;gBAChD,MAAM,KAAK,GAAiB,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;gBAC3E,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAmC,CAAC;gBAErC,kEAAkE;gBAClE,MAAM,QAAQ,GACb,aAAa,EAAE,QAAQ;oBACvB,CAAC,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC;gBAChF,IAAI,CAAC,QAAQ;oBAAE,SAAS;gBACxB,eAAe,GAAG,qBAAqB,CAAC,eAAe,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;YACrF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACF,CAAC;IACF,CAAC;IAED,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,qBAAqB,CAAC,EAAE,CAAC;QAC1F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,uBAAuB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,CAAC;gBACtE,MAAM,KAAK,GAA2B,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC;gBACjG,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAmC,CAAC;gBACrC,eAAe,GAAG,aAAa,EAAE,QAAQ,IAAI,eAAe,CAAC;gBAC7D,+EAA+E;gBAC/E,yEAAyE;gBACzE,IAAI,uBAAuB,IAAI,eAAe,CAAC,CAAC,CAAC,EAAE,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtE,SAAS,CAAC;wBACT,aAAa,EAAE,GAAG,CAAC,IAAI;wBACvB,KAAK,EAAE,qBAAqB;wBAC5B,KAAK,EAAE,oLAAoL;qBAC3L,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,qBAAqB,EAAE,KAAK,CAAC,CAAC;YACpE,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,eAAe,CAAC;AACxB,CAAC;AAED,mGAAmG;AACnG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,UAAuB,EACvB,GAAqB,EACrB,SAA4B,EAC5B,YAA2G,EAC3G,SAA6B;IAE7B,IAAI,OAAO,GAA2B,EAAE,CAAC;IACzC,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,KAAK,GAAG,IAAI,CAAC;IAEjB,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,KAAK,GAAG;gBACb,GAAG,SAAS;gBACZ,OAAO;gBACP,QAAQ,EAAE,cAAc;gBACxB,OAAO;aACkC,CAAC;YAC3C,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,CAAC,MAAM,WAAW,CACvC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAA+B,CAAC;gBACjC,IAAI,aAAa,EAAE,OAAO,KAAK,SAAS;oBAAE,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;gBAC1E,IAAI,aAAa,EAAE,QAAQ,KAAK,SAAS;oBAAE,cAAc,GAAG,aAAa,CAAC,QAAQ,CAAC;YACpF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7D,CAAC;YAED,IAAI,CAAC;gBACJ,OAAO,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;gBACtC,KAAK,GAAG,IAAI,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,KAAK,GAAG,KAAK,CAAC;gBACd,SAAS,CAAC;oBACT,aAAa,EAAE,GAAG,CAAC,IAAI;oBACvB,KAAK,EAAE,SAAS,CAAC,IAAI;oBACrB,KAAK,EAAE,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;oBAC5F,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;iBACvD,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,KAAK;QACX,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;QAC7D,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AAC5D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACrD,UAAuB,EACvB,GAAqB,EACrB,OAAgB,EAChB,SAA6B;IAE7B,IAAI,cAAc,GAAG,OAAO,CAAC;IAE7B,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,yBAAyB,CAAC,EAAE,CAAC;QAC9F,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAA+B,EAAE,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;gBACvG,MAAM,aAAa,GAAG,MAAM,WAAW,CACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAC;gBACF,IAAI,aAAa,KAAK,SAAS;oBAAE,cAAc,GAAG,aAAa,CAAC;YACjE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,yBAAyB,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,cAAc,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAChD,UAAuB,EACvB,OAAyB,EACzB,YAAwB,EACxB,MAAc,EACd,MAAkC,EAClC,WAAqC,EACrC,SAA6B,EAC7B,aAAsD;IAEtD,MAAM,mBAAmB,GAAG,iCAAiC,CAAC,WAAW,CAAC,CAAC;IAC3E,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAqB,CAAC;IACvG,GAAG,CAAC,eAAe,GAAG,GAAG,EAAE;QAC1B,YAAY,EAAE,CAAC;QACf,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC/C,CAAC,CAAC;IACF,MAAM,QAAQ,GAA0D,EAAE,CAAC;IAE3E,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACzF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAA0B;oBACpC,IAAI,EAAE,oBAAoB;oBAC1B,GAAG,CAAC,aAAa;wBAChB,CAAC,CAAC,EAAE,WAAW,EAAE,QAAiB,EAAE,OAAO,EAAE,aAAa,EAAE;wBAC5D,CAAC,CAAC,EAAE,WAAW,EAAE,MAAe,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;oBACpD,IAAI,YAAY;wBACf,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;oBAC/C,CAAC;oBACD,mBAAmB;iBACnB,CAAC;gBACF,MAAM,aAAa,GAAG,MAAM,WAAW,CACtC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAClE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACzB,CAAC;gBACF,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAE7B,MAAM,MAAM,GAAG,aAA4C,CAAC;gBAC5D,IAAI,MAAM,CAAC,OAAO;oBAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAClD,IAAI,MAAM,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;oBACvC,mBAAmB,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC;gBAC7D,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,4BAA4B,CACjD,UAAuB,EACvB,GAAqB,EACrB,GAAW,EACX,MAAwC,EACxC,SAA6B;IAE7B,MAAM,UAAU,GAAkD,EAAE,CAAC;IACrE,MAAM,WAAW,GAAmD,EAAE,CAAC;IACvE,MAAM,UAAU,GAAkD,EAAE,CAAC;IAErE,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACzF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAA2B,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;gBAClF,MAAM,MAAM,GAAG,CAAC,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAC1G,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnB,CAAwC,CAAC;gBAC1C,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;oBAChC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1F,CAAC;gBACD,IAAI,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;oBACjC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5F,CAAC;gBACD,IAAI,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;oBAChC,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC1F,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,oBAAoB,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,UAAuB,EACvB,GAAqB,EACrB,KAA+D,EAC/D,SAA6B;IAE7B,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,CAAC,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAC1G,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnB,CAA6E,CAAC;gBAC/E,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,OAAO,IAAI,EAAE;oBAAE,IAAI,MAAM,CAAC,IAAI,EAAE;wBAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpF,IAAI,KAAK,CAAC,IAAI,KAAK,yBAAyB;oBAAE,SAAS;gBACvD,KAAK,MAAM,QAAQ,IAAI,MAAM,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;oBAChD,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM;wBAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;yBACzD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO;wBAAE,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtE,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;IACF,CAAC;IACD,KAAK,MAAM,OAAO,IAAI,OAAO;QAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACxD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACrC,UAAuB,EACvB,GAAqB,EACrB,IAAY,EACZ,MAAkC,EAClC,MAAmB,EACnB,iBAAmD,EACnD,SAA6B;IAE7B,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,aAAa,GAAG,MAAM,CAAC;IAE3B,KAAK,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,qBAAqB,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5E,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC;gBACJ,MAAM,KAAK,GAAe;oBACzB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,aAAa;oBACrB,MAAM;oBACN,iBAAiB;iBACjB,CAAC;gBACF,MAAM,MAAM,GAAG,CAAC,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,CAC1G,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CACnB,CAAiC,CAAC;gBACnC,IAAI,MAAM,EAAE,MAAM,KAAK,SAAS;oBAAE,OAAO,MAAM,CAAC;gBAChD,IAAI,MAAM,EAAE,MAAM,KAAK,WAAW,EAAE,CAAC;oBACpC,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC;oBAC1B,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC;gBAChD,CAAC;YACF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,eAAe,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,WAAW,KAAK,IAAI,IAAI,aAAa,KAAK,MAAM;QACtD,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE;QACnE,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAC3B,CAAC","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\tSessionRecoveryReplayEvent,\n\tSessionRecoveryReplayResult,\n\tSessionRecoveryRestoreEvent,\n\tSessionRecoveryRestoreResult,\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| SessionRecoveryRestoreEvent\n\t| SessionRecoveryReplayEvent\n\t| InputEvent\n\t| TurnEndEvent\n\t| AgentBeforeSettleEvent\n>;\n\nexport interface SessionRecoveryCombinedResult {\n\tnotices: string[];\n\tdropped: Set<string>;\n\t/** Cards left pending without a turn; a later recovery is offered them again. */\n\tdeferred: Set<string>;\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\nfunction shutdownErrorMessage(error: unknown): string {\n\tif (error instanceof AggregateError && error.errors.length > 0)\n\t\treturn error.errors.map(shutdownErrorMessage).join(\"; \");\n\treturn error instanceof Error ? error.message : String(error);\n}\n\nconst emitCaughtError = (emitError: EmitExtensionError, extensionPath: string, event: string, error: unknown): void => {\n\temitError({\n\t\textensionPath,\n\t\tevent,\n\t\terror:\n\t\t\tevent === \"session_shutdown\"\n\t\t\t\t? shutdownErrorMessage(error)\n\t\t\t\t: error instanceof Error\n\t\t\t\t\t? error.message\n\t\t\t\t\t: 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\tcustomMessage?: import(\"../messages.ts\").CustomMessage,\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\t...(customMessage\n\t\t\t\t\t\t? { messageType: \"custom\" as const, message: customMessage }\n\t\t\t\t\t\t: { messageType: \"user\" as const, prompt, images }),\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 runSessionRecoveryHandlers(\n\textensions: Extension[],\n\tctx: ExtensionContext,\n\tevent: SessionRecoveryRestoreEvent | SessionRecoveryReplayEvent,\n\temitError: EmitExtensionError,\n): Promise<SessionRecoveryCombinedResult> {\n\tconst notices: string[] = [];\n\tconst dropped = new Set<string>();\n\tconst deferred = new Set<string>();\n\tfor (const { ext, handlers } of snapshotEventHandlers(extensions, event.type)) {\n\t\tfor (const handler of handlers) {\n\t\t\ttry {\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 (SessionRecoveryRestoreResult & SessionRecoveryReplayResult) | undefined;\n\t\t\t\tfor (const notice of result?.notices ?? []) if (notice.trim()) notices.push(notice);\n\t\t\t\tif (event.type !== \"session_recovery_replay\") continue;\n\t\t\t\tfor (const decision of result?.decisions ?? []) {\n\t\t\t\t\tif (decision.action === \"drop\") dropped.add(decision.entryId);\n\t\t\t\t\telse if (decision.action === \"defer\") deferred.add(decision.entryId);\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\tfor (const entryId of dropped) deferred.delete(entryId);\n\treturn { notices, dropped, deferred };\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"]}
@@ -13,9 +13,9 @@ import type { ModelRegistry } from "../model-registry.ts";
13
13
  import type { SessionManager } from "../session-manager.ts";
14
14
  import type { BuildSystemPromptOptions } from "../system-prompt.ts";
15
15
  import { type HostDiagnostic, type HostInput } from "./host-input.js";
16
- import { type BeforeAgentStartCombinedResult, type BoundaryBaseEvent, type BoundaryDispatchResult, type ResourcesDiscoverCombinedResult, type RunnerEmitEvent, type RunnerEmitResult } from "./runner-events.ts";
16
+ import { type BeforeAgentStartCombinedResult, type BoundaryBaseEvent, type BoundaryDispatchResult, type ResourcesDiscoverCombinedResult, type RunnerEmitEvent, type RunnerEmitResult, type SessionRecoveryCombinedResult } from "./runner-events.ts";
17
17
  import type { ExtensionErrorListener } from "./runner-handlers.ts";
18
- import type { BoundaryContextPreview, EntryRenderer, Extension, ExtensionActions, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionFlag, ExtensionMode, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, InputEventResult, InputSource, MarkdownTransformer, MessageEndEvent, MessageRenderer, OrchestrationContext, ProviderConfig, RegisteredTool, ResolvedCommand, ResourcesDiscoverEvent, SessionBoundaryDraft, SessionShutdownEvent, SubagentChildPolicy, ToolCallEvent, ToolCallEventResult, ToolRenderers, ToolResultEvent, ToolResultEventResult, UIPromptKind, UserBashEvent, UserBashEventResult } from "./types.ts";
18
+ import type { BoundaryContextPreview, EntryRenderer, Extension, ExtensionActions, ExtensionCommandContext, ExtensionCommandContextActions, ExtensionContext, ExtensionContextActions, ExtensionError, ExtensionFlag, ExtensionMode, ExtensionRuntime, ExtensionShortcut, ExtensionUIContext, InputEventResult, InputSource, MarkdownTransformer, MessageEndEvent, MessageRenderer, OrchestrationContext, ProviderConfig, RegisteredTool, ResolvedCommand, ResourcesDiscoverEvent, SessionBoundaryDraft, SessionRecoveryReplayEvent, SessionRecoveryRestoreEvent, SessionShutdownEvent, SubagentChildPolicy, ToolCallEvent, ToolCallEventResult, ToolRenderers, ToolResultEvent, ToolResultEventResult, UIPromptKind, UserBashEvent, UserBashEventResult } from "./types.ts";
19
19
  import type { WorkflowActivityObserver, WorkflowActivitySnapshotFrame, WorkflowActivitySubscription } from "./workflow-events.js";
20
20
  import type { WorkflowRunControl } from "./workflow-run-control.js";
21
21
  export type { ExtensionErrorListener, ForkHandler, NavigateTreeHandler, NewSessionHandler, ReloadHandler, ShutdownHandler, SwitchSessionHandler, } from "./runner-handlers.ts";
@@ -49,7 +49,7 @@ export declare class ExtensionRunner {
49
49
  bindWorkOwner(owner: object): void;
50
50
  bindTaskHost(binding: () => import("../tasks/agent-adapter.js").AgentTaskHost): void;
51
51
  bindChildSessionOptions(resolver: import("../child-session-options.ts").ChildSessionOptionsResolver | undefined): void;
52
- bindWorkflowJournal(journal: import("../storage/provider.js").RunJournalOption | undefined): void;
52
+ bindWorkflowJournal(journal: import("../storage/provider.js").RunJournalOption | undefined, storageAgentDir: string | undefined): void;
53
53
  /** The run-control implementation registered by the current extension generation, if any. */
54
54
  getWorkflowRunControl(): WorkflowRunControl | undefined;
55
55
  /** Observe this generation's workflow activity: snapshot first, then FIFO changes. */
@@ -180,6 +180,8 @@ export declare class ExtensionRunner {
180
180
  emitBeforeProviderHeaders(headers: ProviderHeaders): Promise<ProviderHeaders>;
181
181
  emitBeforeAgentStart(prompt: string, images: ImageContent[] | undefined, systemPromptOptions: BuildSystemPromptOptions, customMessage?: import("../messages.ts").CustomMessage): Promise<BeforeAgentStartCombinedResult>;
182
182
  emitResourcesDiscover(cwd: string, reason: ResourcesDiscoverEvent["reason"]): Promise<ResourcesDiscoverCombinedResult>;
183
+ /** Collect recovery notices and replay decisions from every handler, in registration order. */
184
+ emitSessionRecovery(event: SessionRecoveryRestoreEvent | SessionRecoveryReplayEvent): Promise<SessionRecoveryCombinedResult>;
183
185
  /** Emit input event. Transforms chain, "handled" short-circuits. */
184
186
  emitInput(text: string, images: ImageContent[] | undefined, source: InputSource, streamingBehavior?: "steer" | "followUp"): Promise<InputEventResult>;
185
187
  }
@@ -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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"}
@@ -9,7 +9,7 @@ import { copyHostQuestionnaire, HostInputBridge, hostInputError, } from "./host-
9
9
  import { originalRegistrationCallback } from "./loader-bindings.js";
10
10
  import { boundExtensionRuntimes, runResourceRegistrationBatch } from "./loader-runtime.js";
11
11
  import { createExtensionCommandContext, createExtensionContext, retireExtensionContextEffects, } from "./runner-context.js";
12
- import { runBeforeAgentStartHandlers, runBeforeProviderRequestHandlers, runBoundaryHandlers, runContextHandlers, runGenericHandlers, runInputHandlers, runMessageEndHandlers, runResourcesDiscoverHandlers, runToolCallHandlers, runToolResultHandlers, runUserBashHandlers, } from "./runner-events.js";
12
+ import { runBeforeAgentStartHandlers, runBeforeProviderRequestHandlers, runBoundaryHandlers, runContextHandlers, runGenericHandlers, runInputHandlers, runMessageEndHandlers, runResourcesDiscoverHandlers, runSessionRecoveryHandlers, runToolCallHandlers, runToolResultHandlers, runUserBashHandlers, } from "./runner-events.js";
13
13
  import { collectFlags, collectMarkdownTransformers, collectRegisteredTools, findEntryRenderer, findMessageRenderer, findToolDefinition, hasExtensionHandlers, resolveRegisteredCommands, } from "./runner-registries.js";
14
14
  import { resolveExtensionShortcuts } from "./runner-shortcuts.js";
15
15
  import { noOpUIContext } from "./runner-ui.js";
@@ -80,8 +80,9 @@ export class ExtensionRunner {
80
80
  bindChildSessionOptions(resolver) {
81
81
  this.runtime.getChildSessionOptions = resolver;
82
82
  }
83
- bindWorkflowJournal(journal) {
83
+ bindWorkflowJournal(journal, storageAgentDir) {
84
84
  this.runtime.workflowJournal = journal;
85
+ this.runtime.storageAgentDir = storageAgentDir;
85
86
  }
86
87
  /** The run-control implementation registered by the current extension generation, if any. */
87
88
  getWorkflowRunControl() {
@@ -778,6 +779,10 @@ export class ExtensionRunner {
778
779
  emitResourcesDiscover(cwd, reason) {
779
780
  return runResourceRegistrationBatch(this.runtime, () => runResourcesDiscoverHandlers(this.extensions, this.createContext(), cwd, reason, (error) => this.emitError(error)));
780
781
  }
782
+ /** Collect recovery notices and replay decisions from every handler, in registration order. */
783
+ emitSessionRecovery(event) {
784
+ return runResourceRegistrationBatch(this.runtime, () => runSessionRecoveryHandlers(this.extensions, this.createContext(), event, (error) => this.emitError(error)));
785
+ }
781
786
  /** Emit input event. Transforms chain, "handled" short-circuits. */
782
787
  emitInput(text, images, source, streamingBehavior) {
783
788
  return runResourceRegistrationBatch(this.runtime, () => runInputHandlers(this.extensions, this.createContext(), text, images, source, streamingBehavior, (error) => this.emitError(error)));