@bastani/atomic 0.9.11-alpha.8 → 0.9.11-alpha.9

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 (1674) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/dist/builtin/intercom/package.json +3 -3
  3. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  4. package/dist/builtin/mcp/commands.ts +7 -3
  5. package/dist/builtin/mcp/package.json +6 -6
  6. package/dist/builtin/subagents/CHANGELOG.md +9 -0
  7. package/dist/builtin/subagents/package.json +5 -5
  8. package/dist/builtin/subagents/src/agents/agent-discovery.ts +26 -15
  9. package/dist/builtin/subagents/src/agents/agent-loaders.ts +48 -34
  10. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +80 -31
  11. package/dist/builtin/subagents/src/agents/agent-management.ts +194 -55
  12. package/dist/builtin/subagents/src/agents/agent-overrides.ts +85 -32
  13. package/dist/builtin/subagents/src/agents/agent-paths.ts +4 -1
  14. package/dist/builtin/subagents/src/agents/agent-selection.ts +1 -1
  15. package/dist/builtin/subagents/src/agents/agent-serializer.ts +1 -4
  16. package/dist/builtin/subagents/src/agents/agents.ts +9 -9
  17. package/dist/builtin/subagents/src/agents/chain-serializer.ts +9 -5
  18. package/dist/builtin/subagents/src/agents/identity.ts +12 -3
  19. package/dist/builtin/subagents/src/agents/skills-paths.ts +64 -24
  20. package/dist/builtin/subagents/src/agents/skills.ts +29 -26
  21. package/dist/builtin/subagents/src/extension/doctor.ts +31 -20
  22. package/dist/builtin/subagents/src/extension/fanout-child.ts +27 -12
  23. package/dist/builtin/subagents/src/extension/index.ts +119 -43
  24. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +0 -1
  25. package/dist/builtin/subagents/src/extension/schemas.ts +304 -177
  26. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +137 -73
  27. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +49 -21
  28. package/dist/builtin/subagents/src/intercom/result-intercom.ts +76 -38
  29. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +12 -6
  30. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +164 -57
  31. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +15 -18
  32. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +66 -27
  33. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +4 -14
  34. package/dist/builtin/subagents/src/runs/background/async-execution.ts +1 -1
  35. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +86 -32
  36. package/dist/builtin/subagents/src/runs/background/async-resume.ts +93 -36
  37. package/dist/builtin/subagents/src/runs/background/async-status.ts +82 -27
  38. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +12 -5
  39. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +3 -1
  40. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +3 -1
  41. package/dist/builtin/subagents/src/runs/background/notify.ts +36 -18
  42. package/dist/builtin/subagents/src/runs/background/parallel-groups.ts +28 -14
  43. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +147 -79
  44. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +20 -5
  45. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +7 -2
  46. package/dist/builtin/subagents/src/runs/background/result-status.ts +11 -5
  47. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +18 -5
  48. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +104 -35
  49. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +28 -7
  50. package/dist/builtin/subagents/src/runs/background/run-status.ts +120 -32
  51. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +98 -39
  52. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +185 -37
  53. package/dist/builtin/subagents/src/runs/background/subagent-runner-finalize.ts +23 -9
  54. package/dist/builtin/subagents/src/runs/background/subagent-runner-output.ts +6 -2
  55. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel-helpers.ts +34 -18
  56. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +175 -26
  57. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +68 -23
  58. package/dist/builtin/subagents/src/runs/background/subagent-runner-state.ts +200 -49
  59. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +81 -49
  60. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +33 -11
  61. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +16 -6
  62. package/dist/builtin/subagents/src/runs/background/subagent-runner-utils.ts +2 -3
  63. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +11 -8
  64. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +5 -2
  65. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +113 -31
  66. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +64 -55
  67. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +103 -37
  68. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +97 -62
  69. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +22 -10
  70. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +9 -6
  71. package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +22 -22
  72. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-control.ts +45 -40
  73. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +6 -5
  74. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +118 -43
  75. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +17 -7
  76. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +5 -3
  77. package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +39 -35
  78. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +81 -42
  79. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +27 -21
  80. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +2 -5
  81. package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +9 -4
  82. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +64 -27
  83. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +31 -18
  84. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +95 -62
  85. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +30 -9
  86. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +106 -96
  87. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +68 -37
  88. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +260 -84
  89. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +6 -1
  90. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +63 -40
  91. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +110 -59
  92. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +20 -3
  93. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +8 -6
  94. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +65 -47
  95. package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +37 -12
  96. package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +120 -34
  97. package/dist/builtin/subagents/src/runs/shared/final-drain.ts +12 -7
  98. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +3 -2
  99. package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +8 -3
  100. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +42 -19
  101. package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +8 -4
  102. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +103 -38
  103. package/dist/builtin/subagents/src/runs/shared/nested-events-control.ts +30 -20
  104. package/dist/builtin/subagents/src/runs/shared/nested-events-core.ts +45 -20
  105. package/dist/builtin/subagents/src/runs/shared/nested-events-projection.ts +57 -23
  106. package/dist/builtin/subagents/src/runs/shared/nested-events-registry.ts +77 -29
  107. package/dist/builtin/subagents/src/runs/shared/nested-events-sanitize.ts +99 -42
  108. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +32 -26
  109. package/dist/builtin/subagents/src/runs/shared/nested-path.ts +22 -17
  110. package/dist/builtin/subagents/src/runs/shared/nested-render.ts +31 -10
  111. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +9 -8
  112. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +54 -30
  113. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +17 -13
  114. package/dist/builtin/subagents/src/runs/shared/run-history.ts +13 -6
  115. package/dist/builtin/subagents/src/runs/shared/single-output.ts +11 -6
  116. package/dist/builtin/subagents/src/runs/shared/spawn-env.ts +21 -0
  117. package/dist/builtin/subagents/src/runs/shared/structured-output.ts +33 -19
  118. package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +59 -48
  119. package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +18 -11
  120. package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +41 -11
  121. package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +46 -10
  122. package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +21 -5
  123. package/dist/builtin/subagents/src/runs/shared/worktree.ts +89 -34
  124. package/dist/builtin/subagents/src/shared/artifacts.ts +137 -7
  125. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +49 -13
  126. package/dist/builtin/subagents/src/shared/fast-mode.ts +13 -6
  127. package/dist/builtin/subagents/src/shared/fork-context.ts +7 -4
  128. package/dist/builtin/subagents/src/shared/formatters.ts +14 -9
  129. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +2 -1
  130. package/dist/builtin/subagents/src/shared/model-info.ts +10 -3
  131. package/dist/builtin/subagents/src/shared/post-exit-stdio-guard.ts +7 -6
  132. package/dist/builtin/subagents/src/shared/session-tokens.ts +2 -1
  133. package/dist/builtin/subagents/src/shared/settings.ts +39 -43
  134. package/dist/builtin/subagents/src/shared/status-format.ts +10 -2
  135. package/dist/builtin/subagents/src/shared/types-async.ts +22 -19
  136. package/dist/builtin/subagents/src/shared/types-config.ts +1 -1
  137. package/dist/builtin/subagents/src/shared/types-depth.ts +23 -11
  138. package/dist/builtin/subagents/src/shared/types-results.ts +49 -6
  139. package/dist/builtin/subagents/src/shared/types-runtime.ts +16 -17
  140. package/dist/builtin/subagents/src/shared/types.ts +2 -2
  141. package/dist/builtin/subagents/src/shared/utils.ts +34 -20
  142. package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +44 -47
  143. package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +5 -7
  144. package/dist/builtin/subagents/src/slash/slash-bridge.ts +3 -3
  145. package/dist/builtin/subagents/src/slash/slash-commands.ts +78 -52
  146. package/dist/builtin/subagents/src/slash/slash-live-state.ts +59 -32
  147. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +120 -32
  148. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +85 -22
  149. package/dist/builtin/subagents/src/tui/render-helpers.ts +16 -6
  150. package/dist/builtin/subagents/src/tui/render-layout.ts +8 -3
  151. package/dist/builtin/subagents/src/tui/render-result-compact.ts +125 -43
  152. package/dist/builtin/subagents/src/tui/render-result.ts +128 -85
  153. package/dist/builtin/subagents/src/tui/render-stable-output.ts +17 -13
  154. package/dist/builtin/subagents/src/tui/render-status-progress.ts +52 -20
  155. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +130 -28
  156. package/dist/builtin/subagents/src/tui/render-widget.ts +54 -27
  157. package/dist/builtin/subagents/src/tui/render.ts +10 -3
  158. package/dist/builtin/web-access/package.json +2 -2
  159. package/dist/builtin/workflows/CHANGELOG.md +30 -0
  160. package/dist/builtin/workflows/README.md +6 -0
  161. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +104 -40
  162. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +57 -26
  163. package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +125 -12
  164. package/dist/builtin/workflows/package.json +3 -3
  165. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +4 -1
  166. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +5 -1
  167. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +7 -1
  168. package/dist/builtin/workflows/skills/impeccable/scripts/live-manual-edit-evidence.mjs +5 -2
  169. package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +7 -1
  170. package/dist/builtin/workflows/src/authoring/typebox-defaults.d.ts +5 -5
  171. package/dist/builtin/workflows/src/authoring/typebox-defaults.ts +160 -197
  172. package/dist/builtin/workflows/src/authoring/workflow.ts +137 -133
  173. package/dist/builtin/workflows/src/authoring.d.ts +3 -3
  174. package/dist/builtin/workflows/src/durable/backend.ts +507 -439
  175. package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +142 -118
  176. package/dist/builtin/workflows/src/durable/boundary-topology.ts +410 -355
  177. package/dist/builtin/workflows/src/durable/child-invocation.ts +6 -6
  178. package/dist/builtin/workflows/src/durable/child-primitive.ts +109 -101
  179. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +234 -194
  180. package/dist/builtin/workflows/src/durable/completed-catalog.ts +379 -372
  181. package/dist/builtin/workflows/src/durable/completed-inspection.ts +118 -116
  182. package/dist/builtin/workflows/src/durable/completed-subtree.ts +24 -20
  183. package/dist/builtin/workflows/src/durable/dbos-backend.ts +484 -418
  184. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +86 -87
  185. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +171 -149
  186. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +400 -324
  187. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +117 -121
  188. package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +75 -68
  189. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +138 -119
  190. package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +316 -259
  191. package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +138 -117
  192. package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +48 -43
  193. package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +14 -14
  194. package/dist/builtin/workflows/src/durable/durable-hash.ts +9 -11
  195. package/dist/builtin/workflows/src/durable/factory.ts +45 -46
  196. package/dist/builtin/workflows/src/durable/format-version.ts +1 -1
  197. package/dist/builtin/workflows/src/durable/index.ts +69 -70
  198. package/dist/builtin/workflows/src/durable/local-command.ts +47 -43
  199. package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +156 -149
  200. package/dist/builtin/workflows/src/durable/prompt-reservations.ts +16 -16
  201. package/dist/builtin/workflows/src/durable/resume-catalog.ts +11 -11
  202. package/dist/builtin/workflows/src/durable/resume-eligibility.ts +27 -25
  203. package/dist/builtin/workflows/src/durable/resume-runtime.ts +261 -226
  204. package/dist/builtin/workflows/src/durable/retention-policy.ts +31 -30
  205. package/dist/builtin/workflows/src/durable/run-timing.ts +42 -41
  206. package/dist/builtin/workflows/src/durable/scoped-backend.ts +249 -228
  207. package/dist/builtin/workflows/src/durable/stage-primitive.ts +456 -398
  208. package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +199 -186
  209. package/dist/builtin/workflows/src/durable/stage-topology.ts +40 -40
  210. package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +37 -37
  211. package/dist/builtin/workflows/src/durable/tool-outcome.ts +95 -85
  212. package/dist/builtin/workflows/src/durable/tool-primitive.ts +606 -410
  213. package/dist/builtin/workflows/src/durable/types.ts +219 -216
  214. package/dist/builtin/workflows/src/durable/ui-primitive.ts +241 -208
  215. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +40 -37
  216. package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +16 -15
  217. package/dist/builtin/workflows/src/engine/graph-inference.ts +76 -76
  218. package/dist/builtin/workflows/src/engine/options.ts +35 -36
  219. package/dist/builtin/workflows/src/engine/primitives/chain.ts +27 -22
  220. package/dist/builtin/workflows/src/engine/primitives/exit.ts +1 -1
  221. package/dist/builtin/workflows/src/engine/primitives/parallel.ts +64 -52
  222. package/dist/builtin/workflows/src/engine/primitives/task.ts +110 -95
  223. package/dist/builtin/workflows/src/engine/primitives/ui.ts +46 -50
  224. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +194 -160
  225. package/dist/builtin/workflows/src/engine/replay.ts +6 -6
  226. package/dist/builtin/workflows/src/engine/run-durable-admission.ts +30 -30
  227. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +64 -47
  228. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +29 -23
  229. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +246 -219
  230. package/dist/builtin/workflows/src/engine/run-returned-status.ts +60 -57
  231. package/dist/builtin/workflows/src/engine/run-terminal-event.ts +25 -23
  232. package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +45 -42
  233. package/dist/builtin/workflows/src/engine/run-tool-admission-boundary.ts +99 -0
  234. package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +179 -0
  235. package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +144 -132
  236. package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +134 -69
  237. package/dist/builtin/workflows/src/engine/run.ts +678 -473
  238. package/dist/builtin/workflows/src/engine/runtime.ts +160 -153
  239. package/dist/builtin/workflows/src/engine/workflow-activity.ts +7 -3
  240. package/dist/builtin/workflows/src/engine/workflow-tool-abort.ts +92 -0
  241. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +123 -120
  242. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +108 -112
  243. package/dist/builtin/workflows/src/extension/companions.ts +116 -116
  244. package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +123 -111
  245. package/dist/builtin/workflows/src/extension/config-file-loader.ts +153 -148
  246. package/dist/builtin/workflows/src/extension/config-loader.ts +264 -283
  247. package/dist/builtin/workflows/src/extension/discovery-loaders.ts +81 -84
  248. package/dist/builtin/workflows/src/extension/discovery.ts +267 -272
  249. package/dist/builtin/workflows/src/extension/dispatcher.ts +214 -217
  250. package/dist/builtin/workflows/src/extension/extension-factory.ts +102 -108
  251. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +118 -116
  252. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +413 -396
  253. package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +270 -261
  254. package/dist/builtin/workflows/src/extension/index.bundle.mjs +33724 -32828
  255. package/dist/builtin/workflows/src/extension/index.ts +37 -37
  256. package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +64 -64
  257. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +384 -378
  258. package/dist/builtin/workflows/src/extension/mcp.ts +35 -35
  259. package/dist/builtin/workflows/src/extension/postmortem-deps.ts +31 -35
  260. package/dist/builtin/workflows/src/extension/public-types.ts +160 -182
  261. package/dist/builtin/workflows/src/extension/render-call.ts +85 -88
  262. package/dist/builtin/workflows/src/extension/render-component.ts +9 -11
  263. package/dist/builtin/workflows/src/extension/render-result.ts +447 -386
  264. package/dist/builtin/workflows/src/extension/renderers.ts +35 -35
  265. package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +37 -37
  266. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +145 -143
  267. package/dist/builtin/workflows/src/extension/runtime.ts +346 -264
  268. package/dist/builtin/workflows/src/extension/status-writer.ts +95 -95
  269. package/dist/builtin/workflows/src/extension/ui-surface.ts +224 -222
  270. package/dist/builtin/workflows/src/extension/wiring.ts +307 -283
  271. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +109 -108
  272. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +257 -227
  273. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +84 -84
  274. package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +126 -132
  275. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +213 -205
  276. package/dist/builtin/workflows/src/extension/workflow-model-catalog.ts +19 -21
  277. package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +104 -104
  278. package/dist/builtin/workflows/src/extension/workflow-policy.ts +7 -9
  279. package/dist/builtin/workflows/src/extension/workflow-ports.ts +30 -34
  280. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +13 -13
  281. package/dist/builtin/workflows/src/extension/workflow-reload-coordinator.ts +46 -46
  282. package/dist/builtin/workflows/src/extension/workflow-reload-report.ts +28 -25
  283. package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +48 -45
  284. package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +28 -31
  285. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +539 -453
  286. package/dist/builtin/workflows/src/extension/workflow-schema.ts +149 -92
  287. package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +182 -194
  288. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +150 -155
  289. package/dist/builtin/workflows/src/extension/workflow-targets.ts +151 -121
  290. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +204 -224
  291. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +512 -372
  292. package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +146 -150
  293. package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +43 -46
  294. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +341 -292
  295. package/dist/builtin/workflows/src/extension/workflow-tool.ts +122 -129
  296. package/dist/builtin/workflows/src/intercom/intercom-bridge.ts +17 -20
  297. package/dist/builtin/workflows/src/intercom/intercom-routing.ts +62 -62
  298. package/dist/builtin/workflows/src/intercom/result-intercom.ts +123 -123
  299. package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +72 -59
  300. package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +45 -45
  301. package/dist/builtin/workflows/src/runs/background/job-tracker.ts +69 -34
  302. package/dist/builtin/workflows/src/runs/background/quit-tool-node.ts +71 -0
  303. package/dist/builtin/workflows/src/runs/background/quit.ts +359 -138
  304. package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +70 -69
  305. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +85 -80
  306. package/dist/builtin/workflows/src/runs/background/runner.ts +122 -121
  307. package/dist/builtin/workflows/src/runs/background/startup-admission.ts +56 -60
  308. package/dist/builtin/workflows/src/runs/background/status.ts +324 -294
  309. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +23 -17
  310. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +311 -309
  311. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +228 -201
  312. package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +56 -51
  313. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +168 -152
  314. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +255 -217
  315. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +178 -173
  316. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +273 -269
  317. package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +59 -56
  318. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +368 -361
  319. package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +123 -127
  320. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +355 -339
  321. package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +47 -47
  322. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +125 -104
  323. package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +189 -189
  324. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +294 -250
  325. package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +141 -127
  326. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +218 -213
  327. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +406 -364
  328. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +143 -127
  329. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +49 -49
  330. package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +1 -1
  331. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +148 -153
  332. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +155 -117
  333. package/dist/builtin/workflows/src/runs/foreground/executor.ts +10 -10
  334. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +168 -141
  335. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +356 -379
  336. package/dist/builtin/workflows/src/runs/foreground/stage-delivery-activity.ts +53 -53
  337. package/dist/builtin/workflows/src/runs/foreground/stage-queued-user-messages.ts +95 -0
  338. package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +8 -8
  339. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +232 -232
  340. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +630 -493
  341. package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +182 -181
  342. package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +80 -80
  343. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +78 -78
  344. package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +102 -104
  345. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +178 -173
  346. package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +31 -32
  347. package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +114 -105
  348. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +29 -29
  349. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +44 -52
  350. package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +63 -58
  351. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +157 -148
  352. package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +27 -23
  353. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +10 -10
  354. package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +33 -31
  355. package/dist/builtin/workflows/src/runs/shared/concurrency.ts +53 -53
  356. package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +1 -1
  357. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +257 -245
  358. package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +378 -363
  359. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +55 -55
  360. package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +75 -84
  361. package/dist/builtin/workflows/src/runs/shared/worktree-cache-lifecycle.ts +1 -3
  362. package/dist/builtin/workflows/src/runs/shared/worktree-cwd.ts +96 -83
  363. package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +9 -2
  364. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +21 -6
  365. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +60 -30
  366. package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +12 -5
  367. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +51 -30
  368. package/dist/builtin/workflows/src/runs/shared/worktree.ts +4 -4
  369. package/dist/builtin/workflows/src/sdk-surface.ts +38 -19
  370. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +11 -5
  371. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +299 -275
  372. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +21 -7
  373. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +290 -264
  374. package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +220 -211
  375. package/dist/builtin/workflows/src/shared/intercom-group.ts +22 -22
  376. package/dist/builtin/workflows/src/shared/persistence-compaction-policy.ts +30 -30
  377. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +432 -406
  378. package/dist/builtin/workflows/src/shared/persistence-restore.ts +187 -181
  379. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +211 -212
  380. package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +3 -3
  381. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +84 -91
  382. package/dist/builtin/workflows/src/shared/resume-continuation.ts +1 -1
  383. package/dist/builtin/workflows/src/shared/returned-run-status.ts +91 -77
  384. package/dist/builtin/workflows/src/shared/run-visibility.ts +2 -2
  385. package/dist/builtin/workflows/src/shared/schema-introspection.ts +50 -60
  386. package/dist/builtin/workflows/src/shared/serializable.ts +72 -86
  387. package/dist/builtin/workflows/src/shared/session-transcript.ts +44 -39
  388. package/dist/builtin/workflows/src/shared/stage-prompt.ts +183 -202
  389. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +270 -274
  390. package/dist/builtin/workflows/src/shared/store-factory.ts +8 -8
  391. package/dist/builtin/workflows/src/shared/store-internal.ts +168 -172
  392. package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +196 -200
  393. package/dist/builtin/workflows/src/shared/store-public-types.ts +208 -204
  394. package/dist/builtin/workflows/src/shared/store-run-methods.ts +238 -231
  395. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +284 -285
  396. package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +43 -36
  397. package/dist/builtin/workflows/src/shared/store-types.ts +263 -263
  398. package/dist/builtin/workflows/src/shared/store.ts +7 -7
  399. package/dist/builtin/workflows/src/shared/timing.ts +36 -34
  400. package/dist/builtin/workflows/src/shared/types.ts +256 -213
  401. package/dist/builtin/workflows/src/shared/workflow-authoring-types.d.ts +10 -4
  402. package/dist/builtin/workflows/src/shared/workflow-authoring-types.ts +81 -59
  403. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +247 -227
  404. package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +45 -46
  405. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +330 -351
  406. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +192 -195
  407. package/dist/builtin/workflows/src/shared/workflow-failures.ts +10 -10
  408. package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +32 -36
  409. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +157 -184
  410. package/dist/builtin/workflows/src/tui/chat-surface.ts +332 -355
  411. package/dist/builtin/workflows/src/tui/color-utils.ts +21 -30
  412. package/dist/builtin/workflows/src/tui/connectors.ts +57 -61
  413. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +168 -192
  414. package/dist/builtin/workflows/src/tui/edge.ts +10 -9
  415. package/dist/builtin/workflows/src/tui/graph-canvas.ts +131 -134
  416. package/dist/builtin/workflows/src/tui/graph-theme.ts +139 -148
  417. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +6 -6
  418. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +146 -179
  419. package/dist/builtin/workflows/src/tui/graph-view-input.ts +295 -323
  420. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +291 -327
  421. package/dist/builtin/workflows/src/tui/graph-view-render.ts +171 -191
  422. package/dist/builtin/workflows/src/tui/graph-view-state.ts +317 -303
  423. package/dist/builtin/workflows/src/tui/graph-view-types.ts +65 -59
  424. package/dist/builtin/workflows/src/tui/header.ts +140 -156
  425. package/dist/builtin/workflows/src/tui/host-input-form.ts +47 -45
  426. package/dist/builtin/workflows/src/tui/inline-form-card.ts +277 -266
  427. package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +61 -62
  428. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +407 -412
  429. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +203 -214
  430. package/dist/builtin/workflows/src/tui/inline-form-store.ts +24 -24
  431. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +116 -129
  432. package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +111 -115
  433. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +255 -269
  434. package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +248 -236
  435. package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +111 -140
  436. package/dist/builtin/workflows/src/tui/inputs-picker.ts +12 -12
  437. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +49 -57
  438. package/dist/builtin/workflows/src/tui/layout.ts +124 -133
  439. package/dist/builtin/workflows/src/tui/mouse-input.ts +45 -47
  440. package/dist/builtin/workflows/src/tui/node-card.ts +230 -219
  441. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +381 -394
  442. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +20 -19
  443. package/dist/builtin/workflows/src/tui/prompt-card-input.ts +183 -194
  444. package/dist/builtin/workflows/src/tui/prompt-card-render.ts +243 -302
  445. package/dist/builtin/workflows/src/tui/prompt-card-select.ts +76 -98
  446. package/dist/builtin/workflows/src/tui/prompt-card-state.ts +40 -40
  447. package/dist/builtin/workflows/src/tui/prompt-card-text.ts +76 -83
  448. package/dist/builtin/workflows/src/tui/prompt-card.ts +3 -3
  449. package/dist/builtin/workflows/src/tui/renderers.ts +6 -6
  450. package/dist/builtin/workflows/src/tui/run-detail.ts +287 -279
  451. package/dist/builtin/workflows/src/tui/session-list.ts +19 -22
  452. package/dist/builtin/workflows/src/tui/session-overlays.ts +82 -87
  453. package/dist/builtin/workflows/src/tui/session-picker.ts +258 -275
  454. package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +11 -11
  455. package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +55 -62
  456. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +220 -263
  457. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +91 -102
  458. package/dist/builtin/workflows/src/tui/stage-chat-view-delivery-activity.ts +51 -59
  459. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +154 -208
  460. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +174 -208
  461. package/dist/builtin/workflows/src/tui/stage-chat-view-live-events.ts +32 -44
  462. package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +2 -4
  463. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +82 -97
  464. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +33 -31
  465. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +428 -400
  466. package/dist/builtin/workflows/src/tui/stage-chat-view-status.ts +24 -25
  467. package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +181 -197
  468. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +125 -134
  469. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +210 -211
  470. package/dist/builtin/workflows/src/tui/status-helpers.ts +65 -69
  471. package/dist/builtin/workflows/src/tui/status-list.ts +316 -294
  472. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +213 -214
  473. package/dist/builtin/workflows/src/tui/submit-pane.ts +114 -130
  474. package/dist/builtin/workflows/src/tui/switcher.ts +116 -134
  475. package/dist/builtin/workflows/src/tui/text-helpers.ts +136 -145
  476. package/dist/builtin/workflows/src/tui/toast.ts +68 -67
  477. package/dist/builtin/workflows/src/tui/widget.ts +265 -285
  478. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +12 -17
  479. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +81 -82
  480. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +467 -445
  481. package/dist/builtin/workflows/src/tui/workflow-list.ts +130 -145
  482. package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +127 -144
  483. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +217 -216
  484. package/dist/builtin/workflows/src/workflows/identity.ts +11 -11
  485. package/dist/builtin/workflows/src/workflows/registry.ts +66 -68
  486. package/dist/bun/cli.js.map +1 -1
  487. package/dist/bun/internal-intercom-broker.d.ts.map +1 -1
  488. package/dist/bun/internal-intercom-broker.js +1 -1
  489. package/dist/bun/internal-intercom-broker.js.map +1 -1
  490. package/dist/bun/register-bedrock.js +1 -1
  491. package/dist/bun/register-bedrock.js.map +1 -1
  492. package/dist/cli/args.d.ts.map +1 -1
  493. package/dist/cli/args.js +8 -1
  494. package/dist/cli/args.js.map +1 -1
  495. package/dist/cli/credential-print.d.ts +170 -0
  496. package/dist/cli/credential-print.d.ts.map +1 -0
  497. package/dist/cli/credential-print.js +513 -0
  498. package/dist/cli/credential-print.js.map +1 -0
  499. package/dist/cli/project-trust.d.ts +1 -1
  500. package/dist/cli/project-trust.d.ts.map +1 -1
  501. package/dist/cli/project-trust.js.map +1 -1
  502. package/dist/cli/startup-ui.d.ts.map +1 -1
  503. package/dist/cli/startup-ui.js +13 -6
  504. package/dist/cli/startup-ui.js.map +1 -1
  505. package/dist/config-self-update.d.ts.map +1 -1
  506. package/dist/config-self-update.js +5 -2
  507. package/dist/config-self-update.js.map +1 -1
  508. package/dist/config.d.ts.map +1 -1
  509. package/dist/config.js +1 -3
  510. package/dist/config.js.map +1 -1
  511. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  512. package/dist/core/agent-session-accessors.js +125 -25
  513. package/dist/core/agent-session-accessors.js.map +1 -1
  514. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  515. package/dist/core/agent-session-auto-compaction.js +4 -2
  516. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  517. package/dist/core/agent-session-bash.d.ts +1 -1
  518. package/dist/core/agent-session-bash.d.ts.map +1 -1
  519. package/dist/core/agent-session-bash.js +3 -1
  520. package/dist/core/agent-session-bash.js.map +1 -1
  521. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  522. package/dist/core/agent-session-compaction.js +45 -8
  523. package/dist/core/agent-session-compaction.js.map +1 -1
  524. package/dist/core/agent-session-custom-message-commit.d.ts +1 -1
  525. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
  526. package/dist/core/agent-session-custom-message-commit.js +13 -9
  527. package/dist/core/agent-session-custom-message-commit.js.map +1 -1
  528. package/dist/core/agent-session-delivery-forwarding.d.ts +1 -1
  529. package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -1
  530. package/dist/core/agent-session-delivery-forwarding.js.map +1 -1
  531. package/dist/core/agent-session-events.d.ts.map +1 -1
  532. package/dist/core/agent-session-events.js +15 -8
  533. package/dist/core/agent-session-events.js.map +1 -1
  534. package/dist/core/agent-session-export.d.ts +1 -1
  535. package/dist/core/agent-session-export.d.ts.map +1 -1
  536. package/dist/core/agent-session-export.js.map +1 -1
  537. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  538. package/dist/core/agent-session-extension-bindings.js +12 -5
  539. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  540. package/dist/core/agent-session-message-queue.d.ts +4 -4
  541. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  542. package/dist/core/agent-session-message-queue.js +21 -12
  543. package/dist/core/agent-session-message-queue.js.map +1 -1
  544. package/dist/core/agent-session-methods.d.ts +4 -5
  545. package/dist/core/agent-session-methods.d.ts.map +1 -1
  546. package/dist/core/agent-session-methods.js.map +1 -1
  547. package/dist/core/agent-session-models.d.ts.map +1 -1
  548. package/dist/core/agent-session-models.js +1 -1
  549. package/dist/core/agent-session-models.js.map +1 -1
  550. package/dist/core/agent-session-persistent-custom-messages.d.ts +1 -1
  551. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  552. package/dist/core/agent-session-persistent-custom-messages.js +6 -4
  553. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  554. package/dist/core/agent-session-post-tool-compaction.d.ts +1 -1
  555. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  556. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  557. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  558. package/dist/core/agent-session-prompt.js +5 -5
  559. package/dist/core/agent-session-prompt.js.map +1 -1
  560. package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
  561. package/dist/core/agent-session-queue-pause.js +8 -7
  562. package/dist/core/agent-session-queue-pause.js.map +1 -1
  563. package/dist/core/agent-session-retry.d.ts.map +1 -1
  564. package/dist/core/agent-session-retry.js +30 -7
  565. package/dist/core/agent-session-retry.js.map +1 -1
  566. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -1
  567. package/dist/core/agent-session-runtime-auth.js +3 -1
  568. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  569. package/dist/core/agent-session-runtime.d.ts +14 -3
  570. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  571. package/dist/core/agent-session-runtime.js +17 -1
  572. package/dist/core/agent-session-runtime.js.map +1 -1
  573. package/dist/core/agent-session-services.d.ts.map +1 -1
  574. package/dist/core/agent-session-services.js +4 -2
  575. package/dist/core/agent-session-services.js.map +1 -1
  576. package/dist/core/agent-session-state.d.ts +1 -1
  577. package/dist/core/agent-session-state.d.ts.map +1 -1
  578. package/dist/core/agent-session-state.js.map +1 -1
  579. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  580. package/dist/core/agent-session-tool-hooks.js +2 -6
  581. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  582. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  583. package/dist/core/agent-session-tool-registry.js +4 -3
  584. package/dist/core/agent-session-tool-registry.js.map +1 -1
  585. package/dist/core/agent-session-transfer.d.ts.map +1 -1
  586. package/dist/core/agent-session-transfer.js +6 -10
  587. package/dist/core/agent-session-transfer.js.map +1 -1
  588. package/dist/core/agent-session-tree.d.ts +1 -1
  589. package/dist/core/agent-session-tree.d.ts.map +1 -1
  590. package/dist/core/agent-session-tree.js +5 -0
  591. package/dist/core/agent-session-tree.js.map +1 -1
  592. package/dist/core/agent-session-types.d.ts +1 -1
  593. package/dist/core/agent-session-types.d.ts.map +1 -1
  594. package/dist/core/agent-session-types.js +4 -1
  595. package/dist/core/agent-session-types.js.map +1 -1
  596. package/dist/core/agent-session.d.ts +14 -10
  597. package/dist/core/agent-session.d.ts.map +1 -1
  598. package/dist/core/agent-session.js +8 -9
  599. package/dist/core/agent-session.js.map +1 -1
  600. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  601. package/dist/core/anthropic-thinking-guard.js +4 -2
  602. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  603. package/dist/core/async/format.d.ts +1 -1
  604. package/dist/core/async/format.d.ts.map +1 -1
  605. package/dist/core/async/format.js +3 -1
  606. package/dist/core/async/format.js.map +1 -1
  607. package/dist/core/async/job-manager.d.ts.map +1 -1
  608. package/dist/core/async/job-manager.js +20 -5
  609. package/dist/core/async/job-manager.js.map +1 -1
  610. package/dist/core/async/session-manager.d.ts.map +1 -1
  611. package/dist/core/async/session-manager.js.map +1 -1
  612. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  613. package/dist/core/atomic-guide-command.js +1 -2
  614. package/dist/core/atomic-guide-command.js.map +1 -1
  615. package/dist/core/auth-guidance.d.ts.map +1 -1
  616. package/dist/core/auth-guidance.js.map +1 -1
  617. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  618. package/dist/core/auth-storage-backends.js.map +1 -1
  619. package/dist/core/auth-storage.d.ts +1 -1
  620. package/dist/core/auth-storage.d.ts.map +1 -1
  621. package/dist/core/auth-storage.js +4 -8
  622. package/dist/core/auth-storage.js.map +1 -1
  623. package/dist/core/builtin-packages.d.ts.map +1 -1
  624. package/dist/core/builtin-packages.js +1 -4
  625. package/dist/core/builtin-packages.js.map +1 -1
  626. package/dist/core/cache-stats.d.ts.map +1 -1
  627. package/dist/core/cache-stats.js +8 -6
  628. package/dist/core/cache-stats.js.map +1 -1
  629. package/dist/core/callback-activity.d.ts.map +1 -1
  630. package/dist/core/callback-activity.js.map +1 -1
  631. package/dist/core/codex-errors.d.ts.map +1 -1
  632. package/dist/core/codex-errors.js +1 -1
  633. package/dist/core/codex-errors.js.map +1 -1
  634. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  635. package/dist/core/codex-fast-mode.js.map +1 -1
  636. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  637. package/dist/core/compaction/branch-summarization.js +1 -1
  638. package/dist/core/compaction/branch-summarization.js.map +1 -1
  639. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  640. package/dist/core/compaction/compaction-boundary.js +10 -6
  641. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  642. package/dist/core/compaction/compaction-runner.d.ts +1 -1
  643. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  644. package/dist/core/compaction/compaction-runner.js +2 -4
  645. package/dist/core/compaction/compaction-runner.js.map +1 -1
  646. package/dist/core/compaction/compaction.d.ts.map +1 -1
  647. package/dist/core/compaction/compaction.js +5 -1
  648. package/dist/core/compaction/compaction.js.map +1 -1
  649. package/dist/core/compaction/deleted-ranges.d.ts.map +1 -1
  650. package/dist/core/compaction/deleted-ranges.js.map +1 -1
  651. package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
  652. package/dist/core/compaction/fallback-planner.js.map +1 -1
  653. package/dist/core/compaction/index.d.ts +6 -6
  654. package/dist/core/compaction/index.d.ts.map +1 -1
  655. package/dist/core/compaction/index.js +6 -6
  656. package/dist/core/compaction/index.js.map +1 -1
  657. package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
  658. package/dist/core/compaction/planner-outcome.js.map +1 -1
  659. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  660. package/dist/core/compaction/range-planner-diagnostics.js +4 -2
  661. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  662. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  663. package/dist/core/compaction/range-planner.js +4 -1
  664. package/dist/core/compaction/range-planner.js.map +1 -1
  665. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  666. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  667. package/dist/core/context-tool-pairing.js +3 -3
  668. package/dist/core/context-tool-pairing.js.map +1 -1
  669. package/dist/core/copilot-env-routing.d.ts.map +1 -1
  670. package/dist/core/copilot-env-routing.js.map +1 -1
  671. package/dist/core/exec.d.ts.map +1 -1
  672. package/dist/core/exec.js +5 -0
  673. package/dist/core/exec.js.map +1 -1
  674. package/dist/core/experimental.d.ts.map +1 -1
  675. package/dist/core/experimental.js +2 -1
  676. package/dist/core/experimental.js.map +1 -1
  677. package/dist/core/extensions/api-types.d.ts +2 -2
  678. package/dist/core/extensions/api-types.d.ts.map +1 -1
  679. package/dist/core/extensions/api-types.js.map +1 -1
  680. package/dist/core/extensions/context-types.d.ts +7 -1
  681. package/dist/core/extensions/context-types.d.ts.map +1 -1
  682. package/dist/core/extensions/context-types.js.map +1 -1
  683. package/dist/core/extensions/index.d.ts +7 -7
  684. package/dist/core/extensions/index.d.ts.map +1 -1
  685. package/dist/core/extensions/index.js +2 -2
  686. package/dist/core/extensions/index.js.map +1 -1
  687. package/dist/core/extensions/loader-api.d.ts +1 -1
  688. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  689. package/dist/core/extensions/loader-api.js +4 -2
  690. package/dist/core/extensions/loader-api.js.map +1 -1
  691. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  692. package/dist/core/extensions/loader-core.js +2 -2
  693. package/dist/core/extensions/loader-core.js.map +1 -1
  694. package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
  695. package/dist/core/extensions/loader-discovery.js.map +1 -1
  696. package/dist/core/extensions/loader-resources.d.ts.map +1 -1
  697. package/dist/core/extensions/loader-resources.js.map +1 -1
  698. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  699. package/dist/core/extensions/loader-runtime.js +23 -11
  700. package/dist/core/extensions/loader-runtime.js.map +1 -1
  701. package/dist/core/extensions/loader-virtual-modules.d.ts +17 -0
  702. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  703. package/dist/core/extensions/loader-virtual-modules.js +281 -20
  704. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  705. package/dist/core/extensions/loader.d.ts.map +1 -1
  706. package/dist/core/extensions/loader.js.map +1 -1
  707. package/dist/core/extensions/provider-types.d.ts +2 -2
  708. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  709. package/dist/core/extensions/provider-types.js.map +1 -1
  710. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  711. package/dist/core/extensions/reactive-widget.js.map +1 -1
  712. package/dist/core/extensions/runner-context.d.ts +27 -1
  713. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  714. package/dist/core/extensions/runner-context.js +52 -0
  715. package/dist/core/extensions/runner-context.js.map +1 -1
  716. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  717. package/dist/core/extensions/runner-events.js.map +1 -1
  718. package/dist/core/extensions/runner.d.ts +1 -0
  719. package/dist/core/extensions/runner.d.ts.map +1 -1
  720. package/dist/core/extensions/runner.js +18 -6
  721. package/dist/core/extensions/runner.js.map +1 -1
  722. package/dist/core/extensions/runtime-types.d.ts +3 -1
  723. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  724. package/dist/core/extensions/runtime-types.js.map +1 -1
  725. package/dist/core/extensions/session-events.d.ts.map +1 -1
  726. package/dist/core/extensions/session-events.js.map +1 -1
  727. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  728. package/dist/core/extensions/tool-types.js.map +1 -1
  729. package/dist/core/extensions/types.d.ts +15 -2
  730. package/dist/core/extensions/types.d.ts.map +1 -1
  731. package/dist/core/extensions/types.js +1 -1
  732. package/dist/core/extensions/types.js.map +1 -1
  733. package/dist/core/extensions/ui-types.d.ts +16 -2
  734. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  735. package/dist/core/extensions/ui-types.js.map +1 -1
  736. package/dist/core/fallback-models.d.ts.map +1 -1
  737. package/dist/core/fallback-models.js +11 -2
  738. package/dist/core/fallback-models.js.map +1 -1
  739. package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
  740. package/dist/core/flattened-tool-arguments.js.map +1 -1
  741. package/dist/core/footer-data-provider.d.ts +10 -0
  742. package/dist/core/footer-data-provider.d.ts.map +1 -1
  743. package/dist/core/footer-data-provider.js +5 -3
  744. package/dist/core/footer-data-provider.js.map +1 -1
  745. package/dist/core/http-dispatcher.d.ts.map +1 -1
  746. package/dist/core/http-dispatcher.js.map +1 -1
  747. package/dist/core/keybindings.d.ts +1 -1
  748. package/dist/core/keybindings.d.ts.map +1 -1
  749. package/dist/core/keybindings.js.map +1 -1
  750. package/dist/core/messages.d.ts.map +1 -1
  751. package/dist/core/messages.js.map +1 -1
  752. package/dist/core/model-capabilities.d.ts.map +1 -1
  753. package/dist/core/model-capabilities.js +1 -2
  754. package/dist/core/model-capabilities.js.map +1 -1
  755. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  756. package/dist/core/model-resolver-cli.js.map +1 -1
  757. package/dist/core/model-resolver-defaults.js.map +1 -1
  758. package/dist/core/model-resolver-initial.d.ts +1 -1
  759. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  760. package/dist/core/model-resolver-initial.js +1 -1
  761. package/dist/core/model-resolver-initial.js.map +1 -1
  762. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  763. package/dist/core/model-resolver-patterns.js.map +1 -1
  764. package/dist/core/model-resolver-scope.d.ts +1 -1
  765. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  766. package/dist/core/model-resolver-scope.js +12 -2
  767. package/dist/core/model-resolver-scope.js.map +1 -1
  768. package/dist/core/model-resolver-types.d.ts.map +1 -1
  769. package/dist/core/model-resolver-types.js.map +1 -1
  770. package/dist/core/model-resolver.d.ts +3 -3
  771. package/dist/core/model-resolver.d.ts.map +1 -1
  772. package/dist/core/model-resolver.js +1 -1
  773. package/dist/core/model-resolver.js.map +1 -1
  774. package/dist/core/model-runtime-auth.d.ts.map +1 -1
  775. package/dist/core/model-runtime-auth.js +5 -2
  776. package/dist/core/model-runtime-auth.js.map +1 -1
  777. package/dist/core/model-runtime-restoration.d.ts.map +1 -1
  778. package/dist/core/model-runtime-restoration.js +2 -2
  779. package/dist/core/model-runtime-restoration.js.map +1 -1
  780. package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
  781. package/dist/core/model-runtime-snapshot.js.map +1 -1
  782. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  783. package/dist/core/model-runtime-streaming.js.map +1 -1
  784. package/dist/core/model-runtime.d.ts.map +1 -1
  785. package/dist/core/model-runtime.js +9 -7
  786. package/dist/core/model-runtime.js.map +1 -1
  787. package/dist/core/oauth-login.d.ts.map +1 -1
  788. package/dist/core/oauth-login.js +7 -2
  789. package/dist/core/oauth-login.js.map +1 -1
  790. package/dist/core/oauth-provider-metadata.d.ts.map +1 -1
  791. package/dist/core/oauth-provider-metadata.js +20 -6
  792. package/dist/core/oauth-provider-metadata.js.map +1 -1
  793. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  794. package/dist/core/output-guard.d.ts +44 -0
  795. package/dist/core/output-guard.d.ts.map +1 -1
  796. package/dist/core/output-guard.js +63 -0
  797. package/dist/core/output-guard.js.map +1 -1
  798. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  799. package/dist/core/package-manager-auto-resources.js +6 -1
  800. package/dist/core/package-manager-auto-resources.js.map +1 -1
  801. package/dist/core/package-manager-git.d.ts.map +1 -1
  802. package/dist/core/package-manager-git.js +27 -11
  803. package/dist/core/package-manager-git.js.map +1 -1
  804. package/dist/core/package-manager-npm.d.ts.map +1 -1
  805. package/dist/core/package-manager-npm.js +4 -2
  806. package/dist/core/package-manager-npm.js.map +1 -1
  807. package/dist/core/package-manager-operations.d.ts.map +1 -1
  808. package/dist/core/package-manager-operations.js +2 -2
  809. package/dist/core/package-manager-operations.js.map +1 -1
  810. package/dist/core/package-manager-paths.d.ts.map +1 -1
  811. package/dist/core/package-manager-paths.js.map +1 -1
  812. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  813. package/dist/core/package-manager-resolver.js +19 -16
  814. package/dist/core/package-manager-resolver.js.map +1 -1
  815. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  816. package/dist/core/package-manager-resource-collector.js +6 -6
  817. package/dist/core/package-manager-resource-collector.js.map +1 -1
  818. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  819. package/dist/core/package-manager-resource-files.js +4 -3
  820. package/dist/core/package-manager-resource-files.js.map +1 -1
  821. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -1
  822. package/dist/core/package-manager-resource-patterns.js.map +1 -1
  823. package/dist/core/package-manager-settings.d.ts.map +1 -1
  824. package/dist/core/package-manager-settings.js +3 -2
  825. package/dist/core/package-manager-settings.js.map +1 -1
  826. package/dist/core/package-manager-source.d.ts.map +1 -1
  827. package/dist/core/package-manager-source.js +1 -1
  828. package/dist/core/package-manager-source.js.map +1 -1
  829. package/dist/core/package-manager.d.ts +1 -1
  830. package/dist/core/package-manager.d.ts.map +1 -1
  831. package/dist/core/package-manager.js +2 -3
  832. package/dist/core/package-manager.js.map +1 -1
  833. package/dist/core/prompt-templates-async.d.ts.map +1 -1
  834. package/dist/core/prompt-templates-async.js +15 -7
  835. package/dist/core/prompt-templates-async.js.map +1 -1
  836. package/dist/core/prompt-templates.d.ts.map +1 -1
  837. package/dist/core/prompt-templates.js +1 -3
  838. package/dist/core/prompt-templates.js.map +1 -1
  839. package/dist/core/provider-composer-internal.d.ts +1 -1
  840. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  841. package/dist/core/provider-composer-internal.js.map +1 -1
  842. package/dist/core/provider-composer.d.ts +1 -1
  843. package/dist/core/provider-composer.d.ts.map +1 -1
  844. package/dist/core/provider-composer.js.map +1 -1
  845. package/dist/core/provider-context-usage.d.ts.map +1 -1
  846. package/dist/core/provider-context-usage.js +2 -1
  847. package/dist/core/provider-context-usage.js.map +1 -1
  848. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  849. package/dist/core/resource-loader-assets.js +31 -7
  850. package/dist/core/resource-loader-assets.js.map +1 -1
  851. package/dist/core/resource-loader-context-files.d.ts +6 -0
  852. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  853. package/dist/core/resource-loader-context-files.js +83 -4
  854. package/dist/core/resource-loader-context-files.js.map +1 -1
  855. package/dist/core/resource-loader-core.d.ts +12 -3
  856. package/dist/core/resource-loader-core.d.ts.map +1 -1
  857. package/dist/core/resource-loader-core.js +36 -19
  858. package/dist/core/resource-loader-core.js.map +1 -1
  859. package/dist/core/resource-loader-discovery.d.ts.map +1 -1
  860. package/dist/core/resource-loader-discovery.js.map +1 -1
  861. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  862. package/dist/core/resource-loader-extensions.js +33 -21
  863. package/dist/core/resource-loader-extensions.js.map +1 -1
  864. package/dist/core/resource-loader-internals.d.ts +13 -6
  865. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  866. package/dist/core/resource-loader-internals.js.map +1 -1
  867. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  868. package/dist/core/resource-loader-package-resources.js +1 -1
  869. package/dist/core/resource-loader-package-resources.js.map +1 -1
  870. package/dist/core/resource-loader-paths.js.map +1 -1
  871. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  872. package/dist/core/resource-loader-reload.js +28 -13
  873. package/dist/core/resource-loader-reload.js.map +1 -1
  874. package/dist/core/resource-loader-source-info.d.ts +1 -1
  875. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  876. package/dist/core/resource-loader-source-info.js +1 -1
  877. package/dist/core/resource-loader-source-info.js.map +1 -1
  878. package/dist/core/resource-loader-types.d.ts +9 -3
  879. package/dist/core/resource-loader-types.d.ts.map +1 -1
  880. package/dist/core/resource-loader-types.js.map +1 -1
  881. package/dist/core/resource-loader.d.ts +1 -1
  882. package/dist/core/resource-loader.d.ts.map +1 -1
  883. package/dist/core/resource-loader.js +1 -1
  884. package/dist/core/resource-loader.js.map +1 -1
  885. package/dist/core/sdk-exports.d.ts +1 -1
  886. package/dist/core/sdk-exports.d.ts.map +1 -1
  887. package/dist/core/sdk-exports.js +2 -2
  888. package/dist/core/sdk-exports.js.map +1 -1
  889. package/dist/core/sdk-types.d.ts +3 -3
  890. package/dist/core/sdk-types.d.ts.map +1 -1
  891. package/dist/core/sdk-types.js.map +1 -1
  892. package/dist/core/sdk.d.ts +1 -1
  893. package/dist/core/sdk.d.ts.map +1 -1
  894. package/dist/core/sdk.js +13 -20
  895. package/dist/core/sdk.js.map +1 -1
  896. package/dist/core/session-manager-archive.d.ts.map +1 -1
  897. package/dist/core/session-manager-archive.js +5 -2
  898. package/dist/core/session-manager-archive.js.map +1 -1
  899. package/dist/core/session-manager-classification.js +3 -3
  900. package/dist/core/session-manager-classification.js.map +1 -1
  901. package/dist/core/session-manager-core.d.ts.map +1 -1
  902. package/dist/core/session-manager-core.js +3 -3
  903. package/dist/core/session-manager-core.js.map +1 -1
  904. package/dist/core/session-manager-entries.d.ts +1 -1
  905. package/dist/core/session-manager-entries.d.ts.map +1 -1
  906. package/dist/core/session-manager-entries.js.map +1 -1
  907. package/dist/core/session-manager-history.d.ts.map +1 -1
  908. package/dist/core/session-manager-history.js +13 -5
  909. package/dist/core/session-manager-history.js.map +1 -1
  910. package/dist/core/session-manager-list.d.ts.map +1 -1
  911. package/dist/core/session-manager-list.js +1 -1
  912. package/dist/core/session-manager-list.js.map +1 -1
  913. package/dist/core/session-manager-migrations.js.map +1 -1
  914. package/dist/core/session-manager-storage.d.ts.map +1 -1
  915. package/dist/core/session-manager-storage.js.map +1 -1
  916. package/dist/core/session-manager-types.d.ts.map +1 -1
  917. package/dist/core/session-manager-types.js.map +1 -1
  918. package/dist/core/session-manager.d.ts +4 -4
  919. package/dist/core/session-manager.d.ts.map +1 -1
  920. package/dist/core/session-manager.js +2 -2
  921. package/dist/core/session-manager.js.map +1 -1
  922. package/dist/core/settings-manager-core.d.ts.map +1 -1
  923. package/dist/core/settings-manager-core.js.map +1 -1
  924. package/dist/core/settings-manager-ui-accessors.js +2 -1
  925. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  926. package/dist/core/settings-storage.d.ts.map +1 -1
  927. package/dist/core/settings-storage.js +3 -3
  928. package/dist/core/settings-storage.js.map +1 -1
  929. package/dist/core/settings-types.d.ts.map +1 -1
  930. package/dist/core/settings-types.js.map +1 -1
  931. package/dist/core/skills-async.d.ts.map +1 -1
  932. package/dist/core/skills-async.js +18 -8
  933. package/dist/core/skills-async.js.map +1 -1
  934. package/dist/core/slash-commands.d.ts.map +1 -1
  935. package/dist/core/slash-commands.js +76 -19
  936. package/dist/core/slash-commands.js.map +1 -1
  937. package/dist/core/system-prompt.d.ts.map +1 -1
  938. package/dist/core/system-prompt.js +5 -19
  939. package/dist/core/system-prompt.js.map +1 -1
  940. package/dist/core/thinking-blocks.d.ts.map +1 -1
  941. package/dist/core/thinking-blocks.js +2 -2
  942. package/dist/core/thinking-blocks.js.map +1 -1
  943. package/dist/core/tools/artifact-protocol.d.ts.map +1 -1
  944. package/dist/core/tools/artifact-protocol.js.map +1 -1
  945. package/dist/core/tools/artifacts.d.ts.map +1 -1
  946. package/dist/core/tools/artifacts.js.map +1 -1
  947. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  948. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  949. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -1
  950. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
  951. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -1
  952. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  953. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  954. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +2 -4
  955. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  956. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  957. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  958. package/dist/core/tools/ask-user-question/view/body-residual-spacer.d.ts.map +1 -1
  959. package/dist/core/tools/ask-user-question/view/body-residual-spacer.js.map +1 -1
  960. package/dist/core/tools/ask-user-question/view/components/multi-select-view.d.ts.map +1 -1
  961. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
  962. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts +1 -1
  963. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts.map +1 -1
  964. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
  965. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts +1 -1
  966. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts.map +1 -1
  967. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js +1 -3
  968. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
  969. package/dist/core/tools/ask-user-question/view/components/submit-picker.d.ts.map +1 -1
  970. package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
  971. package/dist/core/tools/ask-user-question/view/components/tab-bar.d.ts.map +1 -1
  972. package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
  973. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts +1 -1
  974. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts.map +1 -1
  975. package/dist/core/tools/ask-user-question/view/dialog-builder.js +1 -1
  976. package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
  977. package/dist/core/tools/ask-user-question/view/props-adapter.d.ts.map +1 -1
  978. package/dist/core/tools/ask-user-question/view/props-adapter.js +2 -4
  979. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  980. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts +1 -1
  981. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts.map +1 -1
  982. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js +2 -9
  983. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
  984. package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
  985. package/dist/core/tools/bash-async-execution.js +11 -4
  986. package/dist/core/tools/bash-async-execution.js.map +1 -1
  987. package/dist/core/tools/bash-async-jobs.d.ts.map +1 -1
  988. package/dist/core/tools/bash-async-jobs.js +14 -2
  989. package/dist/core/tools/bash-async-jobs.js.map +1 -1
  990. package/dist/core/tools/bash-async-output.d.ts.map +1 -1
  991. package/dist/core/tools/bash-async-output.js +6 -2
  992. package/dist/core/tools/bash-async-output.js.map +1 -1
  993. package/dist/core/tools/bash-interceptor.d.ts.map +1 -1
  994. package/dist/core/tools/bash-interceptor.js +20 -4
  995. package/dist/core/tools/bash-interceptor.js.map +1 -1
  996. package/dist/core/tools/bash-leading-cd.d.ts.map +1 -1
  997. package/dist/core/tools/bash-leading-cd.js +9 -3
  998. package/dist/core/tools/bash-leading-cd.js.map +1 -1
  999. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  1000. package/dist/core/tools/bash-pty-native.js.map +1 -1
  1001. package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
  1002. package/dist/core/tools/bash-session-environment.js +24 -12
  1003. package/dist/core/tools/bash-session-environment.js.map +1 -1
  1004. package/dist/core/tools/bash.d.ts.map +1 -1
  1005. package/dist/core/tools/bash.js +123 -27
  1006. package/dist/core/tools/bash.js.map +1 -1
  1007. package/dist/core/tools/block-resolver.d.ts.map +1 -1
  1008. package/dist/core/tools/block-resolver.js.map +1 -1
  1009. package/dist/core/tools/conflict-registry.d.ts.map +1 -1
  1010. package/dist/core/tools/conflict-registry.js.map +1 -1
  1011. package/dist/core/tools/directory-tree.d.ts.map +1 -1
  1012. package/dist/core/tools/directory-tree.js +20 -4
  1013. package/dist/core/tools/directory-tree.js.map +1 -1
  1014. package/dist/core/tools/edit.d.ts.map +1 -1
  1015. package/dist/core/tools/edit.js +37 -13
  1016. package/dist/core/tools/edit.js.map +1 -1
  1017. package/dist/core/tools/fetch-url.d.ts.map +1 -1
  1018. package/dist/core/tools/fetch-url.js +127 -41
  1019. package/dist/core/tools/fetch-url.js.map +1 -1
  1020. package/dist/core/tools/find.d.ts.map +1 -1
  1021. package/dist/core/tools/find.js +176 -46
  1022. package/dist/core/tools/find.js.map +1 -1
  1023. package/dist/core/tools/grep.d.ts.map +1 -1
  1024. package/dist/core/tools/grep.js +43 -10
  1025. package/dist/core/tools/grep.js.map +1 -1
  1026. package/dist/core/tools/hashline-engine/apply.d.ts.map +1 -1
  1027. package/dist/core/tools/hashline-engine/apply.js +6 -6
  1028. package/dist/core/tools/hashline-engine/apply.js.map +1 -1
  1029. package/dist/core/tools/hashline-engine/block.js +1 -1
  1030. package/dist/core/tools/hashline-engine/block.js.map +1 -1
  1031. package/dist/core/tools/hashline-engine/format.d.ts.map +1 -1
  1032. package/dist/core/tools/hashline-engine/format.js +1 -1
  1033. package/dist/core/tools/hashline-engine/format.js.map +1 -1
  1034. package/dist/core/tools/hashline-engine/input.d.ts.map +1 -1
  1035. package/dist/core/tools/hashline-engine/input.js +7 -7
  1036. package/dist/core/tools/hashline-engine/input.js.map +1 -1
  1037. package/dist/core/tools/hashline-engine/parser.js +1 -1
  1038. package/dist/core/tools/hashline-engine/parser.js.map +1 -1
  1039. package/dist/core/tools/hashline-engine/patcher.js +5 -5
  1040. package/dist/core/tools/hashline-engine/patcher.js.map +1 -1
  1041. package/dist/core/tools/hashline-engine/prefixes.js +4 -4
  1042. package/dist/core/tools/hashline-engine/prefixes.js.map +1 -1
  1043. package/dist/core/tools/hashline-engine/recovery.d.ts.map +1 -1
  1044. package/dist/core/tools/hashline-engine/recovery.js +4 -2
  1045. package/dist/core/tools/hashline-engine/recovery.js.map +1 -1
  1046. package/dist/core/tools/hashline-engine/snapshots.js +5 -5
  1047. package/dist/core/tools/hashline-engine/snapshots.js.map +1 -1
  1048. package/dist/core/tools/hashline.d.ts.map +1 -1
  1049. package/dist/core/tools/hashline.js +24 -13
  1050. package/dist/core/tools/hashline.js.map +1 -1
  1051. package/dist/core/tools/index.d.ts +6 -6
  1052. package/dist/core/tools/index.d.ts.map +1 -1
  1053. package/dist/core/tools/index.js +6 -6
  1054. package/dist/core/tools/index.js.map +1 -1
  1055. package/dist/core/tools/ls.d.ts.map +1 -1
  1056. package/dist/core/tools/ls.js +2 -1
  1057. package/dist/core/tools/ls.js.map +1 -1
  1058. package/dist/core/tools/notebook.d.ts.map +1 -1
  1059. package/dist/core/tools/notebook.js +13 -3
  1060. package/dist/core/tools/notebook.js.map +1 -1
  1061. package/dist/core/tools/read-document-extract.d.ts.map +1 -1
  1062. package/dist/core/tools/read-document-extract.js +30 -10
  1063. package/dist/core/tools/read-document-extract.js.map +1 -1
  1064. package/dist/core/tools/read-selectors.d.ts.map +1 -1
  1065. package/dist/core/tools/read-selectors.js +59 -15
  1066. package/dist/core/tools/read-selectors.js.map +1 -1
  1067. package/dist/core/tools/read-url.d.ts.map +1 -1
  1068. package/dist/core/tools/read-url.js +41 -7
  1069. package/dist/core/tools/read-url.js.map +1 -1
  1070. package/dist/core/tools/read.d.ts.map +1 -1
  1071. package/dist/core/tools/read.js +306 -71
  1072. package/dist/core/tools/read.js.map +1 -1
  1073. package/dist/core/tools/resource-selectors.d.ts +4 -0
  1074. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  1075. package/dist/core/tools/resource-selectors.js +324 -84
  1076. package/dist/core/tools/resource-selectors.js.map +1 -1
  1077. package/dist/core/tools/search-details.d.ts.map +1 -1
  1078. package/dist/core/tools/search-details.js +13 -1
  1079. package/dist/core/tools/search-details.js.map +1 -1
  1080. package/dist/core/tools/search-line-ranges.d.ts.map +1 -1
  1081. package/dist/core/tools/search-line-ranges.js +5 -2
  1082. package/dist/core/tools/search-line-ranges.js.map +1 -1
  1083. package/dist/core/tools/search-native.d.ts.map +1 -1
  1084. package/dist/core/tools/search-native.js.map +1 -1
  1085. package/dist/core/tools/search.d.ts.map +1 -1
  1086. package/dist/core/tools/search.js +244 -90
  1087. package/dist/core/tools/search.js.map +1 -1
  1088. package/dist/core/tools/structured-output.d.ts +1 -1
  1089. package/dist/core/tools/structured-output.d.ts.map +1 -1
  1090. package/dist/core/tools/structured-output.js.map +1 -1
  1091. package/dist/core/tools/todos-execute.d.ts.map +1 -1
  1092. package/dist/core/tools/todos-execute.js +4 -4
  1093. package/dist/core/tools/todos-execute.js.map +1 -1
  1094. package/dist/core/tools/todos-locks.d.ts.map +1 -1
  1095. package/dist/core/tools/todos-locks.js.map +1 -1
  1096. package/dist/core/tools/todos-mutations.js +1 -1
  1097. package/dist/core/tools/todos-mutations.js.map +1 -1
  1098. package/dist/core/tools/todos-paths.js +2 -2
  1099. package/dist/core/tools/todos-paths.js.map +1 -1
  1100. package/dist/core/tools/todos-render.d.ts.map +1 -1
  1101. package/dist/core/tools/todos-render.js +2 -2
  1102. package/dist/core/tools/todos-render.js.map +1 -1
  1103. package/dist/core/tools/todos-storage.d.ts.map +1 -1
  1104. package/dist/core/tools/todos-storage.js +1 -2
  1105. package/dist/core/tools/todos-storage.js.map +1 -1
  1106. package/dist/core/tools/todos-types.d.ts.map +1 -1
  1107. package/dist/core/tools/todos-types.js +1 -11
  1108. package/dist/core/tools/todos-types.js.map +1 -1
  1109. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1110. package/dist/core/tools/tool-definition-wrapper.js +2 -6
  1111. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1112. package/dist/core/tools/url-ip-guards.d.ts.map +1 -1
  1113. package/dist/core/tools/url-ip-guards.js +27 -17
  1114. package/dist/core/tools/url-ip-guards.js.map +1 -1
  1115. package/dist/core/tools/write.d.ts.map +1 -1
  1116. package/dist/core/tools/write.js +88 -29
  1117. package/dist/core/tools/write.js.map +1 -1
  1118. package/dist/core/usage-totals.d.ts.map +1 -1
  1119. package/dist/core/usage-totals.js +5 -2
  1120. package/dist/core/usage-totals.js.map +1 -1
  1121. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  1122. package/dist/core/workflow-stage-admission.js +8 -2
  1123. package/dist/core/workflow-stage-admission.js.map +1 -1
  1124. package/dist/extensions/llama/provider.js +1 -1
  1125. package/dist/extensions/llama/provider.js.map +1 -1
  1126. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1127. package/dist/extensions/llama/ui.js.map +1 -1
  1128. package/dist/index-extensions.d.ts +2 -2
  1129. package/dist/index-extensions.d.ts.map +1 -1
  1130. package/dist/index-extensions.js +1 -1
  1131. package/dist/index-extensions.js.map +1 -1
  1132. package/dist/index.d.ts +20 -20
  1133. package/dist/index.d.ts.map +1 -1
  1134. package/dist/index.js +23 -23
  1135. package/dist/index.js.map +1 -1
  1136. package/dist/main-deferred-startup.d.ts +1 -1
  1137. package/dist/main-deferred-startup.d.ts.map +1 -1
  1138. package/dist/main-deferred-startup.js +16 -15
  1139. package/dist/main-deferred-startup.js.map +1 -1
  1140. package/dist/main-early-input.js.map +1 -1
  1141. package/dist/main-first-time-setup.d.ts +1 -1
  1142. package/dist/main-first-time-setup.d.ts.map +1 -1
  1143. package/dist/main-first-time-setup.js.map +1 -1
  1144. package/dist/main-session-options.d.ts +1 -1
  1145. package/dist/main-session-options.d.ts.map +1 -1
  1146. package/dist/main-session-options.js.map +1 -1
  1147. package/dist/main-session.d.ts.map +1 -1
  1148. package/dist/main-session.js +4 -4
  1149. package/dist/main-session.js.map +1 -1
  1150. package/dist/main.d.ts +1 -1
  1151. package/dist/main.d.ts.map +1 -1
  1152. package/dist/main.js +143 -38
  1153. package/dist/main.js.map +1 -1
  1154. package/dist/migrations-config-values.d.ts.map +1 -1
  1155. package/dist/migrations-config-values.js +3 -1
  1156. package/dist/migrations-config-values.js.map +1 -1
  1157. package/dist/migrations.d.ts.map +1 -1
  1158. package/dist/migrations.js.map +1 -1
  1159. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  1160. package/dist/modes/interactive/chat-input-actions.js +3 -6
  1161. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  1162. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  1163. package/dist/modes/interactive/components/atomic-banner.js +7 -5
  1164. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  1165. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
  1166. package/dist/modes/interactive/components/atomic-working-status.js +26 -13
  1167. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  1168. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  1169. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  1170. package/dist/modes/interactive/components/chat-message-renderer.js +6 -5
  1171. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  1172. package/dist/modes/interactive/components/chat-session-host-actions.d.ts +3 -2
  1173. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  1174. package/dist/modes/interactive/components/chat-session-host-actions.js +14 -18
  1175. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  1176. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +4 -4
  1177. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -1
  1178. package/dist/modes/interactive/components/chat-session-host-editor.js +9 -4
  1179. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  1180. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  1181. package/dist/modes/interactive/components/chat-session-host-events.js +9 -8
  1182. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  1183. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +1 -1
  1184. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  1185. package/dist/modes/interactive/components/chat-session-host-rendering.js +22 -7
  1186. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  1187. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +9 -2
  1188. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
  1189. package/dist/modes/interactive/components/chat-session-host-runtime.js +15 -13
  1190. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
  1191. package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -2
  1192. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  1193. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  1194. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.d.ts.map +1 -1
  1195. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.js.map +1 -1
  1196. package/dist/modes/interactive/components/chat-session-host-types.d.ts +9 -2
  1197. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  1198. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  1199. package/dist/modes/interactive/components/chat-session-host-utils.d.ts +1 -1
  1200. package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -1
  1201. package/dist/modes/interactive/components/chat-session-host-utils.js +3 -8
  1202. package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -1
  1203. package/dist/modes/interactive/components/chat-session-host.d.ts +4 -4
  1204. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  1205. package/dist/modes/interactive/components/chat-session-host.js +1 -2
  1206. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  1207. package/dist/modes/interactive/components/chat-transcript.d.ts +1 -1
  1208. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  1209. package/dist/modes/interactive/components/chat-transcript.js +5 -12
  1210. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  1211. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  1212. package/dist/modes/interactive/components/compaction-boundary-message.js +18 -7
  1213. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  1214. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  1215. package/dist/modes/interactive/components/config-selector-list.js +4 -2
  1216. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  1217. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  1218. package/dist/modes/interactive/components/config-selector-project-scope.js +2 -4
  1219. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  1220. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1221. package/dist/modes/interactive/components/config-selector.js +15 -6
  1222. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1223. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1224. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1225. package/dist/modes/interactive/components/custom-editor.d.ts +11 -0
  1226. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1227. package/dist/modes/interactive/components/custom-editor.js +21 -5
  1228. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1229. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1230. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1231. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1232. package/dist/modes/interactive/components/custom-message.js +1 -3
  1233. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1234. package/dist/modes/interactive/components/diff.js +2 -2
  1235. package/dist/modes/interactive/components/diff.js.map +1 -1
  1236. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1237. package/dist/modes/interactive/components/extension-editor.js +1 -1
  1238. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1239. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1240. package/dist/modes/interactive/components/first-time-setup.js +15 -4
  1241. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1242. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1243. package/dist/modes/interactive/components/footer.js +16 -15
  1244. package/dist/modes/interactive/components/footer.js.map +1 -1
  1245. package/dist/modes/interactive/components/host-input-form-mount.d.ts.map +1 -1
  1246. package/dist/modes/interactive/components/host-input-form-mount.js +4 -2
  1247. package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -1
  1248. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
  1249. package/dist/modes/interactive/components/host-input-form.js +55 -21
  1250. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  1251. package/dist/modes/interactive/components/host-session-picker.d.ts.map +1 -1
  1252. package/dist/modes/interactive/components/host-session-picker.js +8 -3
  1253. package/dist/modes/interactive/components/host-session-picker.js.map +1 -1
  1254. package/dist/modes/interactive/components/index.d.ts +7 -7
  1255. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1256. package/dist/modes/interactive/components/index.js +4 -4
  1257. package/dist/modes/interactive/components/index.js.map +1 -1
  1258. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1259. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1260. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1261. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1262. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1263. package/dist/modes/interactive/components/model-selector.js +4 -1
  1264. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1265. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  1266. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1267. package/dist/modes/interactive/components/oauth-selector.js +12 -6
  1268. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1269. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1270. package/dist/modes/interactive/components/scoped-models-selector.js +5 -1
  1271. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1272. package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
  1273. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
  1274. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  1275. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1276. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1277. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  1278. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  1279. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  1280. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  1281. package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -1
  1282. package/dist/modes/interactive/components/startup-identity.js.map +1 -1
  1283. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1284. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1285. package/dist/modes/interactive/components/tree-selector-model.js +1 -9
  1286. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
  1287. package/dist/modes/interactive/components/tree-selector-viewport.d.ts.map +1 -1
  1288. package/dist/modes/interactive/components/tree-selector-viewport.js.map +1 -1
  1289. package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
  1290. package/dist/modes/interactive/components/working-status.js +1 -1
  1291. package/dist/modes/interactive/components/working-status.js.map +1 -1
  1292. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1293. package/dist/modes/interactive/external-editor.js.map +1 -1
  1294. package/dist/modes/interactive/interactive-agent-events.js +20 -13
  1295. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  1296. package/dist/modes/interactive/interactive-auth-login.js +6 -6
  1297. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  1298. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  1299. package/dist/modes/interactive/interactive-auth-routing.js +3 -6
  1300. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  1301. package/dist/modes/interactive/interactive-autocomplete.js +4 -10
  1302. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  1303. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
  1304. package/dist/modes/interactive/interactive-bash-compact.js +18 -8
  1305. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  1306. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  1307. package/dist/modes/interactive/interactive-deferred-startup.js +6 -2
  1308. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  1309. package/dist/modes/interactive/interactive-editor-actions.js +6 -11
  1310. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  1311. package/dist/modes/interactive/interactive-extension-context.js +4 -4
  1312. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  1313. package/dist/modes/interactive/interactive-extension-custom-ui.js +15 -8
  1314. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  1315. package/dist/modes/interactive/interactive-extension-dialogs.js +50 -24
  1316. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  1317. package/dist/modes/interactive/interactive-extension-runtime.js +9 -6
  1318. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  1319. package/dist/modes/interactive/interactive-extension-widgets.js +1 -1
  1320. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
  1321. package/dist/modes/interactive/interactive-global-clear.d.ts +45 -1
  1322. package/dist/modes/interactive/interactive-global-clear.d.ts.map +1 -1
  1323. package/dist/modes/interactive/interactive-global-clear.js +60 -4
  1324. package/dist/modes/interactive/interactive-global-clear.js.map +1 -1
  1325. package/dist/modes/interactive/interactive-hotkeys-debug.js +2 -3
  1326. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  1327. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  1328. package/dist/modes/interactive/interactive-input-handling.js +55 -20
  1329. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  1330. package/dist/modes/interactive/interactive-key-identity.d.ts +22 -0
  1331. package/dist/modes/interactive/interactive-key-identity.d.ts.map +1 -0
  1332. package/dist/modes/interactive/interactive-key-identity.js +29 -0
  1333. package/dist/modes/interactive/interactive-key-identity.js.map +1 -0
  1334. package/dist/modes/interactive/interactive-mode-base.d.ts +7 -6
  1335. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  1336. package/dist/modes/interactive/interactive-mode-base.js +12 -12
  1337. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  1338. package/dist/modes/interactive/interactive-mode-deps.d.ts +20 -20
  1339. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  1340. package/dist/modes/interactive/interactive-mode-deps.js +16 -16
  1341. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  1342. package/dist/modes/interactive/interactive-mode-helpers.d.ts +1 -1
  1343. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  1344. package/dist/modes/interactive/interactive-mode-helpers.js +3 -9
  1345. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  1346. package/dist/modes/interactive/interactive-mode-surface.d.ts +8 -7
  1347. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  1348. package/dist/modes/interactive/interactive-mode-surface.js +1 -0
  1349. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  1350. package/dist/modes/interactive/interactive-mode-types.d.ts +2 -2
  1351. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  1352. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  1353. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
  1354. package/dist/modes/interactive/interactive-model-catalog-startup.js +2 -1
  1355. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
  1356. package/dist/modes/interactive/interactive-model-routing.js +6 -6
  1357. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  1358. package/dist/modes/interactive/interactive-onboarding.js +7 -7
  1359. package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
  1360. package/dist/modes/interactive/interactive-pause.js.map +1 -1
  1361. package/dist/modes/interactive/interactive-process-lifecycle.js +38 -8
  1362. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  1363. package/dist/modes/interactive/interactive-prompt-restore.d.ts +58 -0
  1364. package/dist/modes/interactive/interactive-prompt-restore.d.ts.map +1 -0
  1365. package/dist/modes/interactive/interactive-prompt-restore.js +87 -0
  1366. package/dist/modes/interactive/interactive-prompt-restore.js.map +1 -0
  1367. package/dist/modes/interactive/interactive-prompt-turn.js +18 -3
  1368. package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -1
  1369. package/dist/modes/interactive/interactive-queueing.js +3 -7
  1370. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  1371. package/dist/modes/interactive/interactive-render-chat.js +47 -36
  1372. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  1373. package/dist/modes/interactive/interactive-resource-disclosure.js +1 -3
  1374. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  1375. package/dist/modes/interactive/interactive-resource-paths.js +6 -19
  1376. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
  1377. package/dist/modes/interactive/interactive-resource-rendering.js +15 -16
  1378. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  1379. package/dist/modes/interactive/interactive-selectors.js +3 -5
  1380. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  1381. package/dist/modes/interactive/interactive-session-routing.js +16 -4
  1382. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  1383. package/dist/modes/interactive/interactive-session-runtime.js +11 -0
  1384. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  1385. package/dist/modes/interactive/interactive-slash-commands.js +11 -6
  1386. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  1387. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  1388. package/dist/modes/interactive/interactive-startup.js +9 -11
  1389. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  1390. package/dist/modes/interactive/interactive-submission.d.ts +24 -0
  1391. package/dist/modes/interactive/interactive-submission.d.ts.map +1 -0
  1392. package/dist/modes/interactive/interactive-submission.js +10 -0
  1393. package/dist/modes/interactive/interactive-submission.js.map +1 -0
  1394. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts +1 -1
  1395. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -1
  1396. package/dist/modes/interactive/interactive-summarization-retry-events.js +4 -2
  1397. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
  1398. package/dist/modes/interactive/login-provider-options.d.ts.map +1 -1
  1399. package/dist/modes/interactive/login-provider-options.js +1 -2
  1400. package/dist/modes/interactive/login-provider-options.js.map +1 -1
  1401. package/dist/modes/interactive/theme/global-theme.d.ts +1 -1
  1402. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  1403. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  1404. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  1405. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  1406. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  1407. package/dist/modes/interactive/theme/theme-loading.js +1 -1
  1408. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  1409. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  1410. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  1411. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1412. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1413. package/dist/modes/interactive/theme/theme.js +2 -2
  1414. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1415. package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
  1416. package/dist/modes/interactive/whimsical-messages.js.map +1 -1
  1417. package/dist/modes/interactive-engine/activity-watchdog.d.ts +16 -6
  1418. package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
  1419. package/dist/modes/interactive-engine/activity-watchdog.js +12 -6
  1420. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
  1421. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
  1422. package/dist/modes/interactive-engine/create-isolated-runtime.js +5 -4
  1423. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
  1424. package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -1
  1425. package/dist/modes/interactive-engine/engine-child-liveness.js +6 -4
  1426. package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -1
  1427. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -2
  1428. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  1429. package/dist/modes/interactive-engine/engine-custom-ui.js +32 -11
  1430. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  1431. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +16 -0
  1432. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -0
  1433. package/dist/modes/interactive-engine/engine-diagnostic-view.js +19 -0
  1434. package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -0
  1435. package/dist/modes/interactive-engine/engine-dialog-host.d.ts +33 -0
  1436. package/dist/modes/interactive-engine/engine-dialog-host.d.ts.map +1 -0
  1437. package/dist/modes/interactive-engine/engine-dialog-host.js +129 -0
  1438. package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -0
  1439. package/dist/modes/interactive-engine/engine-generation.d.ts +29 -0
  1440. package/dist/modes/interactive-engine/engine-generation.d.ts.map +1 -0
  1441. package/dist/modes/interactive-engine/engine-generation.js +11 -0
  1442. package/dist/modes/interactive-engine/engine-generation.js.map +1 -0
  1443. package/dist/modes/interactive-engine/engine-health.d.ts +101 -0
  1444. package/dist/modes/interactive-engine/engine-health.d.ts.map +1 -0
  1445. package/dist/modes/interactive-engine/engine-health.js +236 -0
  1446. package/dist/modes/interactive-engine/engine-health.js.map +1 -0
  1447. package/dist/modes/interactive-engine/engine-input-form.d.ts.map +1 -1
  1448. package/dist/modes/interactive-engine/engine-input-form.js +12 -3
  1449. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -1
  1450. package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -1
  1451. package/dist/modes/interactive-engine/engine-monitor.js +7 -2
  1452. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
  1453. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  1454. package/dist/modes/interactive-engine/engine-render-service.js +11 -5
  1455. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  1456. package/dist/modes/interactive-engine/engine-session-picker.d.ts.map +1 -1
  1457. package/dist/modes/interactive-engine/engine-session-picker.js +4 -2
  1458. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -1
  1459. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +14 -3
  1460. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  1461. package/dist/modes/interactive-engine/extension-ui-bridge.js +32 -45
  1462. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  1463. package/dist/modes/interactive-engine/input-form-host.d.ts +1 -0
  1464. package/dist/modes/interactive-engine/input-form-host.d.ts.map +1 -1
  1465. package/dist/modes/interactive-engine/input-form-host.js +12 -2
  1466. package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
  1467. package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -1
  1468. package/dist/modes/interactive-engine/isolated-auth.js +1 -1
  1469. package/dist/modes/interactive-engine/isolated-auth.js.map +1 -1
  1470. package/dist/modes/interactive-engine/isolated-runtime.d.ts +32 -6
  1471. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  1472. package/dist/modes/interactive-engine/isolated-runtime.js +122 -59
  1473. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  1474. package/dist/modes/interactive-engine/protocol.d.ts +20 -1
  1475. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  1476. package/dist/modes/interactive-engine/protocol.js +183 -55
  1477. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  1478. package/dist/modes/interactive-engine/remote-component.d.ts +38 -0
  1479. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  1480. package/dist/modes/interactive-engine/remote-component.js +111 -22
  1481. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  1482. package/dist/modes/interactive-engine/remote-input-ownership.d.ts +48 -0
  1483. package/dist/modes/interactive-engine/remote-input-ownership.d.ts.map +1 -0
  1484. package/dist/modes/interactive-engine/remote-input-ownership.js +42 -0
  1485. package/dist/modes/interactive-engine/remote-input-ownership.js.map +1 -0
  1486. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
  1487. package/dist/modes/interactive-engine/remote-model-catalog.js +10 -4
  1488. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  1489. package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -1
  1490. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -1
  1491. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
  1492. package/dist/modes/interactive-engine/remote-renderer.js +38 -10
  1493. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  1494. package/dist/modes/interactive-engine/session-picker-host.d.ts +1 -0
  1495. package/dist/modes/interactive-engine/session-picker-host.d.ts.map +1 -1
  1496. package/dist/modes/interactive-engine/session-picker-host.js +4 -0
  1497. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
  1498. package/dist/modes/print-mode.d.ts.map +1 -1
  1499. package/dist/modes/print-mode.js.map +1 -1
  1500. package/dist/modes/rpc/jsonl.d.ts +7 -0
  1501. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1502. package/dist/modes/rpc/jsonl.js +17 -1
  1503. package/dist/modes/rpc/jsonl.js.map +1 -1
  1504. package/dist/modes/rpc/queued-writer.d.ts +14 -0
  1505. package/dist/modes/rpc/queued-writer.d.ts.map +1 -1
  1506. package/dist/modes/rpc/queued-writer.js +33 -9
  1507. package/dist/modes/rpc/queued-writer.js.map +1 -1
  1508. package/dist/modes/rpc/rpc-bash-request-owners.js +1 -1
  1509. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -1
  1510. package/dist/modes/rpc/rpc-client-api.d.ts +3 -3
  1511. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  1512. package/dist/modes/rpc/rpc-client-api.js +63 -22
  1513. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  1514. package/dist/modes/rpc/rpc-client-process.d.ts +10 -0
  1515. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  1516. package/dist/modes/rpc/rpc-client-process.js +72 -15
  1517. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  1518. package/dist/modes/rpc/rpc-client-waits.d.ts +17 -1
  1519. package/dist/modes/rpc/rpc-client-waits.d.ts.map +1 -1
  1520. package/dist/modes/rpc/rpc-client-waits.js +25 -0
  1521. package/dist/modes/rpc/rpc-client-waits.js.map +1 -1
  1522. package/dist/modes/rpc/rpc-client.d.ts +61 -6
  1523. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1524. package/dist/modes/rpc/rpc-client.js +200 -145
  1525. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1526. package/dist/modes/rpc/rpc-command-handler.d.ts +2 -2
  1527. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  1528. package/dist/modes/rpc/rpc-command-handler.js +35 -13
  1529. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  1530. package/dist/modes/rpc/rpc-command-timeouts.d.ts +30 -0
  1531. package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -0
  1532. package/dist/modes/rpc/rpc-command-timeouts.js +52 -0
  1533. package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -0
  1534. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
  1535. package/dist/modes/rpc/rpc-event-buffer.js +3 -1
  1536. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  1537. package/dist/modes/rpc/rpc-extension-ui.d.ts +1 -1
  1538. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  1539. package/dist/modes/rpc/rpc-extension-ui.js +44 -16
  1540. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  1541. package/dist/modes/rpc/rpc-generation-buffer.d.ts +21 -0
  1542. package/dist/modes/rpc/rpc-generation-buffer.d.ts.map +1 -0
  1543. package/dist/modes/rpc/rpc-generation-buffer.js +35 -0
  1544. package/dist/modes/rpc/rpc-generation-buffer.js.map +1 -0
  1545. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  1546. package/dist/modes/rpc/rpc-input-scheduler.js +13 -6
  1547. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  1548. package/dist/modes/rpc/rpc-input.d.ts +7 -1
  1549. package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
  1550. package/dist/modes/rpc/rpc-input.js +14 -4
  1551. package/dist/modes/rpc/rpc-input.js.map +1 -1
  1552. package/dist/modes/rpc/rpc-keybindings-reload.d.ts.map +1 -1
  1553. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -1
  1554. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1555. package/dist/modes/rpc/rpc-mode.js +17 -18
  1556. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1557. package/dist/modes/rpc/rpc-oauth-client.d.ts +1 -2
  1558. package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -1
  1559. package/dist/modes/rpc/rpc-oauth-client.js +11 -4
  1560. package/dist/modes/rpc/rpc-oauth-client.js.map +1 -1
  1561. package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -1
  1562. package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -1
  1563. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  1564. package/dist/modes/rpc/rpc-output-buffer.js +3 -1
  1565. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  1566. package/dist/modes/rpc/rpc-pending-requests.d.ts +37 -0
  1567. package/dist/modes/rpc/rpc-pending-requests.d.ts.map +1 -0
  1568. package/dist/modes/rpc/rpc-pending-requests.js +57 -0
  1569. package/dist/modes/rpc/rpc-pending-requests.js.map +1 -0
  1570. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  1571. package/dist/modes/rpc/rpc-provider-auth.js +24 -5
  1572. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  1573. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  1574. package/dist/modes/rpc/rpc-session-binding.d.ts +1 -1
  1575. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  1576. package/dist/modes/rpc/rpc-session-binding.js +7 -2
  1577. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  1578. package/dist/modes/rpc/rpc-terminal-drain.d.ts +52 -0
  1579. package/dist/modes/rpc/rpc-terminal-drain.d.ts.map +1 -0
  1580. package/dist/modes/rpc/rpc-terminal-drain.js +85 -0
  1581. package/dist/modes/rpc/rpc-terminal-drain.js.map +1 -0
  1582. package/dist/modes/rpc/rpc-transport-error.d.ts +49 -0
  1583. package/dist/modes/rpc/rpc-transport-error.d.ts.map +1 -0
  1584. package/dist/modes/rpc/rpc-transport-error.js +78 -0
  1585. package/dist/modes/rpc/rpc-transport-error.js.map +1 -0
  1586. package/dist/modes/rpc/rpc-types.d.ts +10 -8
  1587. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1588. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1589. package/dist/package-manager-cli-parser.js.map +1 -1
  1590. package/dist/package-manager-cli.d.ts.map +1 -1
  1591. package/dist/package-manager-cli.js +22 -11
  1592. package/dist/package-manager-cli.js.map +1 -1
  1593. package/dist/utils/child-process.d.ts.map +1 -1
  1594. package/dist/utils/child-process.js.map +1 -1
  1595. package/dist/utils/clipboard-image.js +1 -1
  1596. package/dist/utils/clipboard-image.js.map +1 -1
  1597. package/dist/utils/clipboard.d.ts.map +1 -1
  1598. package/dist/utils/clipboard.js.map +1 -1
  1599. package/dist/utils/fs-watch.d.ts.map +1 -1
  1600. package/dist/utils/fs-watch.js +1 -3
  1601. package/dist/utils/fs-watch.js.map +1 -1
  1602. package/dist/utils/git.js +1 -1
  1603. package/dist/utils/git.js.map +1 -1
  1604. package/dist/utils/interactive-engine-bootstrap.d.ts +67 -0
  1605. package/dist/utils/interactive-engine-bootstrap.d.ts.map +1 -0
  1606. package/dist/utils/interactive-engine-bootstrap.js +117 -0
  1607. package/dist/utils/interactive-engine-bootstrap.js.map +1 -0
  1608. package/dist/utils/interactive-engine-env.d.ts +41 -0
  1609. package/dist/utils/interactive-engine-env.d.ts.map +1 -0
  1610. package/dist/utils/interactive-engine-env.js +67 -0
  1611. package/dist/utils/interactive-engine-env.js.map +1 -0
  1612. package/dist/utils/markit.d.ts.map +1 -1
  1613. package/dist/utils/markit.js +15 -5
  1614. package/dist/utils/markit.js.map +1 -1
  1615. package/dist/utils/shell.js +2 -2
  1616. package/dist/utils/shell.js.map +1 -1
  1617. package/dist/utils/split-launcher.d.ts.map +1 -1
  1618. package/dist/utils/split-launcher.js +1 -2
  1619. package/dist/utils/split-launcher.js.map +1 -1
  1620. package/dist/utils/tools-manager.d.ts.map +1 -1
  1621. package/dist/utils/tools-manager.js +8 -34
  1622. package/dist/utils/tools-manager.js.map +1 -1
  1623. package/dist/utils/version-check.d.ts.map +1 -1
  1624. package/dist/utils/version-check.js +1 -1
  1625. package/dist/utils/version-check.js.map +1 -1
  1626. package/docs/changelog.mdx +11 -0
  1627. package/docs/custom-provider.md +26 -3
  1628. package/docs/development.md +14 -15
  1629. package/docs/extensions.md +60 -2
  1630. package/docs/keybindings.md +13 -1
  1631. package/docs/providers.md +15 -2
  1632. package/docs/rpc.md +1 -1
  1633. package/docs/security.md +15 -0
  1634. package/docs/session-format.md +2 -0
  1635. package/docs/usage.md +34 -0
  1636. package/docs/workflows.md +86 -9
  1637. package/examples/extensions/border-status-editor.ts +1 -6
  1638. package/examples/extensions/custom-compaction.ts +7 -2
  1639. package/examples/extensions/custom-footer.ts +1 -1
  1640. package/examples/extensions/custom-provider-anthropic/index.ts +14 -2
  1641. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  1642. package/examples/extensions/gondolin/index.ts +1 -1
  1643. package/examples/extensions/handoff.ts +2 -2
  1644. package/examples/extensions/hello.ts +1 -1
  1645. package/examples/extensions/minimal-mode.ts +6 -6
  1646. package/examples/extensions/overlay-qa-focus-components.ts +0 -1
  1647. package/examples/extensions/overlay-qa-streaming-input-components.ts +2 -2
  1648. package/examples/extensions/overlay-qa-tests.ts +16 -14
  1649. package/examples/extensions/overlay-qa-toggle-passive-components.ts +3 -5
  1650. package/examples/extensions/overlay-test.ts +3 -6
  1651. package/examples/extensions/plan-mode/index.ts +1 -1
  1652. package/examples/extensions/preset.ts +1 -1
  1653. package/examples/extensions/qna.ts +1 -1
  1654. package/examples/extensions/structured-output.ts +9 -9
  1655. package/examples/extensions/subagent/display.ts +115 -127
  1656. package/examples/extensions/subagent/index.ts +310 -349
  1657. package/examples/extensions/subagent/render.ts +244 -345
  1658. package/examples/extensions/subagent/runner.ts +223 -230
  1659. package/examples/extensions/subagent/schemas.ts +39 -46
  1660. package/examples/extensions/subagent/types.ts +22 -22
  1661. package/examples/extensions/summarize.ts +2 -2
  1662. package/examples/extensions/tic-tac-toe.ts +4 -4
  1663. package/examples/extensions/todo.ts +1 -1
  1664. package/examples/extensions/tool-override.ts +1 -1
  1665. package/examples/extensions/trigger-compact.ts +4 -1
  1666. package/examples/extensions/working-indicator.ts +2 -1
  1667. package/examples/rpc-extension-ui-components.ts +1 -2
  1668. package/examples/sdk/02-custom-model.ts +1 -1
  1669. package/examples/sdk/03-custom-prompt.ts +1 -6
  1670. package/examples/sdk/06-extensions.ts +1 -6
  1671. package/examples/sdk/07-context-files.ts +1 -6
  1672. package/examples/sdk/12-full-control.ts +1 -1
  1673. package/npm-shrinkwrap.json +300 -303
  1674. package/package.json +11 -11
@@ -1,8 +1,9 @@
1
- import { customMessageExcludesContext } from "./agent-session-types.js";
2
1
  import { resolveWorkflowStageDeliveryTarget } from "./agent-session-delivery-forwarding.js";
2
+ import { customMessageExcludesContext } from "./agent-session-types.js";
3
3
  export const PROTECTED_RECONCILIATION_CUSTOM_TYPE = "atomic:protected-streaming-reconciliation";
4
4
  function protectedMessages(session) {
5
- return session._protectedStreamingCustomMessages ??= [];
5
+ session._protectedStreamingCustomMessages ??= [];
6
+ return session._protectedStreamingCustomMessages;
6
7
  }
7
8
  function appendDurableDisplayCard(session, message, delivery) {
8
9
  const card = { ...message, excludeFromContext: true };
@@ -218,8 +219,9 @@ function removeQueuedProtectedReference(session, message) {
218
219
  }
219
220
  function isPausedHeldProtectedReference(session, message) {
220
221
  const hold = session._activeInterruptQueueHold;
221
- return session._queuedMessagesPaused && hold !== undefined &&
222
- (hold.steering.includes(message) || hold.followUp.includes(message));
222
+ return (session._queuedMessagesPaused &&
223
+ hold !== undefined &&
224
+ (hold.steering.includes(message) || hold.followUp.includes(message)));
223
225
  }
224
226
  /**
225
227
  * Persist only reconciliation input already sealed inside an accepted pause
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-persistent-custom-messages.js","sourceRoot":"","sources":["../../src/core/agent-session-persistent-custom-messages.ts"],"names":[],"mappings":"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","sourcesContent":["import type { DrainedAgentQueues } from \"./agent-session-types.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { customMessageExcludesContext } from \"./agent-session-types.ts\";\nimport type { CustomMessage } from \"./messages.ts\";\nimport { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\n\ntype ProtectedDelivery = \"steer\" | \"followUp\";\ntype ProtectedPhase = \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\nexport const PROTECTED_RECONCILIATION_CUSTOM_TYPE = \"atomic:protected-streaming-reconciliation\";\n\ninterface ProtectedReconciliationDetails {\n\tprotectedReconciliationOf: string;\n}\n\nexport interface ProtectedStreamingCustomMessage {\n\tmessage: CustomMessage;\n\tdelivery: ProtectedDelivery;\n\tphase: ProtectedPhase;\n}\n\nfunction protectedMessages(session: AgentSession): ProtectedStreamingCustomMessage[] {\n\treturn session._protectedStreamingCustomMessages ??= [];\n}\n\nfunction appendDurableDisplayCard(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): { readonly card: CustomMessage & { excludeFromContext: true }; readonly intentEntryId: string } {\n\tconst card = { ...message, excludeFromContext: true } satisfies CustomMessage & { excludeFromContext: true };\n\t// The card and recovery marker share one append, so either both survive a\n\t// process exit or neither does.\n\tconst intentEntryId = session.sessionManager.appendCustomMessageEntry(\n\t\tcard.customType,\n\t\tcard.content,\n\t\tcard.display,\n\t\tcard.details,\n\t\ttrue,\n\t\t{ delivery },\n\t);\n\tsession.agent.state.messages.push(card);\n\treturn { card, intentEntryId };\n}\n\nfunction emitDurableDisplayCard(session: AgentSession, card: CustomMessage): void {\n\t// The card is already live and file-backed, and its protected reconciliation\n\t// is registered. Public listeners remain fallible, but their errors cannot\n\t// revoke admission or make the producer retry this committed occurrence.\n\ttry {\n\t\tsession._emit({ type: \"message_start\", message: card });\n\t} catch {}\n\ttry {\n\t\tsession._emit({ type: \"message_end\", message: card });\n\t} catch {}\n}\n\nfunction createProtectedReconciliation(message: CustomMessage, intentEntryId: string): CustomMessage {\n\treturn {\n\t\trole: \"custom\",\n\t\tcustomType: PROTECTED_RECONCILIATION_CUSTOM_TYPE,\n\t\tcontent: message.content,\n\t\tdisplay: false,\n\t\tdetails: { protectedReconciliationOf: intentEntryId } satisfies ProtectedReconciliationDetails,\n\t\ttimestamp: message.timestamp,\n\t};\n}\n\nfunction completedReconciliationIntent(details: unknown): string | undefined {\n\tif (details === null || typeof details !== \"object\") return undefined;\n\tconst intent = (details as { protectedReconciliationOf?: unknown }).protectedReconciliationOf;\n\treturn typeof intent === \"string\" ? intent : undefined;\n}\n\nfunction protectedDelivery(marker: unknown): ProtectedDelivery | undefined {\n\tif (marker === null || typeof marker !== \"object\") return undefined;\n\tconst delivery = (marker as { delivery?: unknown }).delivery;\n\treturn delivery === \"steer\" || delivery === \"followUp\" ? delivery : undefined;\n}\n\n/** Requeue each durable card intent that has no persisted hidden completion. */\nexport function recoverProtectedStreamingCustomMessages(session: AgentSession): number {\n\tconst branch = session.sessionManager.getBranch();\n\tconst completed = new Set(branch.flatMap((entry) =>\n\t\tentry.type === \"custom_message\" && entry.customType === PROTECTED_RECONCILIATION_CUSTOM_TYPE\n\t\t\t? [completedReconciliationIntent(entry.details)].filter((intent): intent is string => intent !== undefined)\n\t\t\t: []\n\t));\n\tconst scheduled = new Set(protectedMessages(session).flatMap((entry) => {\n\t\tconst intent = completedReconciliationIntent(entry.message.details);\n\t\treturn intent === undefined ? [] : [intent];\n\t}));\n\tlet recovered = 0;\n\tfor (const entry of branch) {\n\t\tif (entry.type !== \"custom_message\") continue;\n\t\tconst delivery = protectedDelivery(entry.protectedReconciliation);\n\t\tif (delivery === undefined || completed.has(entry.id) || scheduled.has(entry.id)) continue;\n\t\tconst parsedTimestamp = Date.parse(entry.timestamp);\n\t\tconst card: CustomMessage = {\n\t\t\trole: \"custom\",\n\t\t\tcustomType: entry.customType,\n\t\t\tcontent: entry.content,\n\t\t\tdisplay: entry.display,\n\t\t\tdetails: entry.details,\n\t\t\ttimestamp: Number.isFinite(parsedTimestamp) ? parsedTimestamp : Date.now(),\n\t\t};\n\t\tconst reconciliation = createProtectedReconciliation(card, entry.id);\n\t\tprotectedMessages(session).push({ message: reconciliation, delivery, phase: \"queued\" });\n\t\tsession._queueAgentMessage(reconciliation, delivery);\n\t\trecovered += 1;\n\t}\n\treturn recovered;\n}\n\ninterface ProtectedAdmission {\n\towner: AgentSession;\n\tcards: CustomMessage[];\n\treconciliations: CustomMessage[];\n}\n\nasync function prepareProtectedAdmission(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<ProtectedAdmission> {\n\t// While the initiating workflow tool is still executing, its assistant call\n\t// may be ahead of SessionManager's async event writer. Wait only in that\n\t// protocol-sensitive phase; at ordinary turn boundaries the hidden steer must\n\t// be queued synchronously so agent-core's next native poll observes it.\n\tif (session.agent.state.pendingToolCalls.size > 0) await session._agentEventQueue;\n\tconst owner = resolveWorkflowStageDeliveryTarget(session);\n\tconst prepared = messages.map((message) => {\n\t\tconst { card, intentEntryId } = appendDurableDisplayCard(owner, message, delivery);\n\t\treturn { card, reconciliation: createProtectedReconciliation(message, intentEntryId) };\n\t});\n\tconst cards = prepared.map((entry) => entry.card);\n\tconst reconciliations = prepared.map((entry) => entry.reconciliation);\n\tprotectedMessages(owner).push(...reconciliations.map((message) => ({ message, delivery, phase: \"queued\" as const })));\n\treturn { owner, cards, reconciliations };\n}\n\nfunction emitProtectedAdmission(admission: ProtectedAdmission): AgentSession {\n\tlet owner = admission.owner;\n\tfor (const card of admission.cards) {\n\t\towner = resolveWorkflowStageDeliveryTarget(owner);\n\t\temitDurableDisplayCard(owner, card);\n\t}\n\treturn resolveWorkflowStageDeliveryTarget(owner);\n}\n\n/** Persist one visible card and register its hidden model-facing turn. */\nexport async function admitProtectedStreamingCustomMessage(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): Promise<CustomMessage> {\n\tconst admission = await prepareProtectedAdmission(session, [message], delivery);\n\temitProtectedAdmission(admission);\n\treturn admission.reconciliations[0]!;\n}\n\n/** Queue one hidden turn before public listeners can transfer its ownership. */\nexport async function queueProtectedStreamingCustomMessage(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, [message], delivery);\n\tadmission.owner._queueAgentMessage(admission.reconciliations[0]!, delivery);\n\temitProtectedAdmission(admission);\n}\n\n/** Queue a whole hidden batch before public listeners can transfer ownership. */\nexport async function queueProtectedStreamingCustomMessages(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, messages, delivery);\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tadmission.owner._queueAgentMessage(reconciliation, delivery);\n\t}\n\temitProtectedAdmission(admission);\n}\n\n/** Start or queue an idle protected batch before exposing its display cards. */\nexport async function triggerProtectedStreamingCustomMessages(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, messages, delivery);\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tadmission.owner._queueAgentMessage(reconciliation, delivery);\n\t}\n\tconst owner = emitProtectedAdmission(admission);\n\tif (owner.isStreaming || owner._queuedMessagesPaused) return;\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tremoveQueuedProtectedReference(owner, reconciliation);\n\t}\n\tconst turn = owner._runAgentPrompt(admission.reconciliations);\n\tvoid turn.catch(() => {});\n}\n\n/** Record that agent-core drained and consumed the hidden reconciliation. */\nexport function markProtectedStreamingCustomMessageConsumed(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n): boolean {\n\tconst entry = protectedMessages(session).find((candidate) => candidate.message === message);\n\tif (!entry) return false;\n\tentry.phase = \"consumed-unpersisted\";\n\treturn true;\n}\n\nexport function markProtectedStreamingCustomMessagePersistenceFailed(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n): void {\n\tconst entry = protectedMessages(session).find((candidate) => candidate.message === message);\n\tif (entry?.phase === \"consumed-unpersisted\") entry.phase = \"persistence-failed\";\n}\n\nexport function isProtectedStreamingCustomMessage(session: AgentSession, message: CustomMessage): boolean {\n\treturn protectedMessages(session).some((entry) => entry.message === message);\n}\n\n/**\n * Persist a consumed hidden reconciliation exactly once. Its visible card was\n * already committed at admission, so a transient failure never re-adds a card\n * or re-injects another provider message.\n */\nexport function persistProtectedStreamingCustomMessage(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n): boolean {\n\tconst pending = protectedMessages(session);\n\tconst index = pending.findIndex((entry) => entry.message === message);\n\tif (index === -1) return false;\n\tconst entry = pending[index];\n\tif (entry.phase !== \"consumed-unpersisted\" && entry.phase !== \"persistence-failed\") return true;\n\tsession.sessionManager.appendCustomMessageEntry(\n\t\tmessage.customType,\n\t\tmessage.content,\n\t\tmessage.display,\n\t\tmessage.details,\n\t\tcustomMessageExcludesContext(message),\n\t);\n\tpending.splice(index, 1);\n\treturn true;\n}\n\n/** Retry only hidden reconciliation persistence; never queue another alias. */\nexport function retryConsumedProtectedStreamingCustomMessages(session: AgentSession): void {\n\tfor (const entry of [...protectedMessages(session)]) {\n\t\tif (entry.phase !== \"persistence-failed\") continue;\n\t\ttry {\n\t\t\tpersistProtectedStreamingCustomMessage(session, entry.message);\n\t\t} catch {\n\t\t\t// The visible lifecycle card is already durable. Keep this consumed phase\n\t\t\t// for a later event rather than duplicating either the card or model turn.\n\t\t}\n\t}\n}\n\n/** Flush consumed reconciliations before session state can be discarded. */\nexport function flushConsumedProtectedStreamingCustomMessages(session: AgentSession): void {\n\tfor (const entry of [...protectedMessages(session)]) {\n\t\tif (entry.phase === \"queued\") continue;\n\t\t// Do not swallow the final write failure: callers must keep this session\n\t\t// alive rather than discard the only remaining recovery state.\n\t\tpersistProtectedStreamingCustomMessage(session, entry.message);\n\t}\n}\n\nfunction removeReference<T>(items: T[], message: T): void {\n\tlet index = items.indexOf(message);\n\twhile (index >= 0) {\n\t\titems.splice(index, 1);\n\t\tindex = items.indexOf(message);\n\t}\n}\n\nfunction removeQueuedProtectedReference(session: AgentSession, message: CustomMessage): void {\n\tconst hold = session._activeInterruptQueueHold;\n\tif (hold !== undefined) {\n\t\tremoveReference(hold.steering, message);\n\t\tremoveReference(hold.followUp, message);\n\t}\n\tconst queues = session._drainQueuedAgentMessages();\n\tsession._restoreQueuedAgentMessages({\n\t\tsteering: queues.steering.filter((candidate) => candidate !== message),\n\t\tfollowUp: queues.followUp.filter((candidate) => candidate !== message),\n\t});\n}\n\nfunction isPausedHeldProtectedReference(session: AgentSession, message: CustomMessage): boolean {\n\tconst hold = session._activeInterruptQueueHold;\n\treturn session._queuedMessagesPaused && hold !== undefined &&\n\t\t(hold.steering.includes(message) || hold.followUp.includes(message));\n}\n\n/**\n * Persist only reconciliation input already sealed inside an accepted pause\n * hold. Other queued input can still race an active protocol turn and must keep\n * the historical fail-closed disposal behavior.\n */\nexport function prepareProtectedStreamingCustomMessagesForDisposal(session: AgentSession): void {\n\tconst pending = protectedMessages(session);\n\tconst queued = pending.filter((entry) => entry.phase === \"queued\");\n\tif (queued.some((entry) => !isPausedHeldProtectedReference(session, entry.message))) {\n\t\tthrow new Error(\"Cannot dispose a session with a queued protected reconciliation\");\n\t}\n\tfor (const entry of queued) {\n\t\tsession.sessionManager.appendCustomMessageEntry(\n\t\t\tentry.message.customType,\n\t\t\tentry.message.content,\n\t\t\tentry.message.display,\n\t\t\tentry.message.details,\n\t\t\tcustomMessageExcludesContext(entry.message),\n\t\t);\n\t\tremoveQueuedProtectedReference(session, entry.message);\n\t\tconst index = pending.indexOf(entry);\n\t\tif (index >= 0) pending.splice(index, 1);\n\t}\n\tflushConsumedProtectedStreamingCustomMessages(session);\n}\n\n/** Restore only protected references actually removed from native queues/hold. */\nexport function restoreProtectedStreamingCustomMessages(\n\tsession: AgentSession,\n\tremoved: DrainedAgentQueues,\n): void {\n\tconst removedReferences = new Set([...removed.steering, ...removed.followUp]);\n\tfor (const entry of protectedMessages(session)) {\n\t\tif (entry.phase === \"queued\" && removedReferences.has(entry.message)) {\n\t\t\tsession._queueAgentMessage(entry.message, entry.delivery);\n\t\t}\n\t}\n}\n\n/** Move protection only for message references that transfer with native queues. */\nexport function transferProtectedStreamingCustomMessages(\n\tsource: AgentSession,\n\ttarget: AgentSession,\n\ttransferred: DrainedAgentQueues,\n): void {\n\tconst transferredReferences = new Set([...transferred.steering, ...transferred.followUp]);\n\tconst retained: ProtectedStreamingCustomMessage[] = [];\n\tconst moved: ProtectedStreamingCustomMessage[] = [];\n\tfor (const entry of protectedMessages(source)) {\n\t\tif (entry.phase === \"queued\" && transferredReferences.has(entry.message)) moved.push(entry);\n\t\telse retained.push(entry);\n\t}\n\tsource._protectedStreamingCustomMessages = retained;\n\tprotectedMessages(target).unshift(...moved);\n}\n"]}
1
+ {"version":3,"file":"agent-session-persistent-custom-messages.js","sourceRoot":"","sources":["../../src/core/agent-session-persistent-custom-messages.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport type { DrainedAgentQueues } from \"./agent-session-types.ts\";\nimport { customMessageExcludesContext } from \"./agent-session-types.ts\";\nimport type { CustomMessage } from \"./messages.ts\";\n\ntype ProtectedDelivery = \"steer\" | \"followUp\";\ntype ProtectedPhase = \"queued\" | \"consumed-unpersisted\" | \"persistence-failed\";\n\nexport const PROTECTED_RECONCILIATION_CUSTOM_TYPE = \"atomic:protected-streaming-reconciliation\";\n\ninterface ProtectedReconciliationDetails {\n\tprotectedReconciliationOf: string;\n}\n\nexport interface ProtectedStreamingCustomMessage {\n\tmessage: CustomMessage;\n\tdelivery: ProtectedDelivery;\n\tphase: ProtectedPhase;\n}\n\nfunction protectedMessages(session: AgentSession): ProtectedStreamingCustomMessage[] {\n\tsession._protectedStreamingCustomMessages ??= [];\n\treturn session._protectedStreamingCustomMessages;\n}\n\nfunction appendDurableDisplayCard(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): { readonly card: CustomMessage & { excludeFromContext: true }; readonly intentEntryId: string } {\n\tconst card = { ...message, excludeFromContext: true } satisfies CustomMessage & { excludeFromContext: true };\n\t// The card and recovery marker share one append, so either both survive a\n\t// process exit or neither does.\n\tconst intentEntryId = session.sessionManager.appendCustomMessageEntry(\n\t\tcard.customType,\n\t\tcard.content,\n\t\tcard.display,\n\t\tcard.details,\n\t\ttrue,\n\t\t{ delivery },\n\t);\n\tsession.agent.state.messages.push(card);\n\treturn { card, intentEntryId };\n}\n\nfunction emitDurableDisplayCard(session: AgentSession, card: CustomMessage): void {\n\t// The card is already live and file-backed, and its protected reconciliation\n\t// is registered. Public listeners remain fallible, but their errors cannot\n\t// revoke admission or make the producer retry this committed occurrence.\n\ttry {\n\t\tsession._emit({ type: \"message_start\", message: card });\n\t} catch {}\n\ttry {\n\t\tsession._emit({ type: \"message_end\", message: card });\n\t} catch {}\n}\n\nfunction createProtectedReconciliation(message: CustomMessage, intentEntryId: string): CustomMessage {\n\treturn {\n\t\trole: \"custom\",\n\t\tcustomType: PROTECTED_RECONCILIATION_CUSTOM_TYPE,\n\t\tcontent: message.content,\n\t\tdisplay: false,\n\t\tdetails: { protectedReconciliationOf: intentEntryId } satisfies ProtectedReconciliationDetails,\n\t\ttimestamp: message.timestamp,\n\t};\n}\n\nfunction completedReconciliationIntent(details: unknown): string | undefined {\n\tif (details === null || typeof details !== \"object\") return undefined;\n\tconst intent = (details as { protectedReconciliationOf?: unknown }).protectedReconciliationOf;\n\treturn typeof intent === \"string\" ? intent : undefined;\n}\n\nfunction protectedDelivery(marker: unknown): ProtectedDelivery | undefined {\n\tif (marker === null || typeof marker !== \"object\") return undefined;\n\tconst delivery = (marker as { delivery?: unknown }).delivery;\n\treturn delivery === \"steer\" || delivery === \"followUp\" ? delivery : undefined;\n}\n\n/** Requeue each durable card intent that has no persisted hidden completion. */\nexport function recoverProtectedStreamingCustomMessages(session: AgentSession): number {\n\tconst branch = session.sessionManager.getBranch();\n\tconst completed = new Set(\n\t\tbranch.flatMap((entry) =>\n\t\t\tentry.type === \"custom_message\" && entry.customType === PROTECTED_RECONCILIATION_CUSTOM_TYPE\n\t\t\t\t? [completedReconciliationIntent(entry.details)].filter((intent): intent is string => intent !== undefined)\n\t\t\t\t: [],\n\t\t),\n\t);\n\tconst scheduled = new Set(\n\t\tprotectedMessages(session).flatMap((entry) => {\n\t\t\tconst intent = completedReconciliationIntent(entry.message.details);\n\t\t\treturn intent === undefined ? [] : [intent];\n\t\t}),\n\t);\n\tlet recovered = 0;\n\tfor (const entry of branch) {\n\t\tif (entry.type !== \"custom_message\") continue;\n\t\tconst delivery = protectedDelivery(entry.protectedReconciliation);\n\t\tif (delivery === undefined || completed.has(entry.id) || scheduled.has(entry.id)) continue;\n\t\tconst parsedTimestamp = Date.parse(entry.timestamp);\n\t\tconst card: CustomMessage = {\n\t\t\trole: \"custom\",\n\t\t\tcustomType: entry.customType,\n\t\t\tcontent: entry.content,\n\t\t\tdisplay: entry.display,\n\t\t\tdetails: entry.details,\n\t\t\ttimestamp: Number.isFinite(parsedTimestamp) ? parsedTimestamp : Date.now(),\n\t\t};\n\t\tconst reconciliation = createProtectedReconciliation(card, entry.id);\n\t\tprotectedMessages(session).push({ message: reconciliation, delivery, phase: \"queued\" });\n\t\tsession._queueAgentMessage(reconciliation, delivery);\n\t\trecovered += 1;\n\t}\n\treturn recovered;\n}\n\ninterface ProtectedAdmission {\n\towner: AgentSession;\n\tcards: CustomMessage[];\n\treconciliations: CustomMessage[];\n}\n\nasync function prepareProtectedAdmission(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<ProtectedAdmission> {\n\t// While the initiating workflow tool is still executing, its assistant call\n\t// may be ahead of SessionManager's async event writer. Wait only in that\n\t// protocol-sensitive phase; at ordinary turn boundaries the hidden steer must\n\t// be queued synchronously so agent-core's next native poll observes it.\n\tif (session.agent.state.pendingToolCalls.size > 0) await session._agentEventQueue;\n\tconst owner = resolveWorkflowStageDeliveryTarget(session);\n\tconst prepared = messages.map((message) => {\n\t\tconst { card, intentEntryId } = appendDurableDisplayCard(owner, message, delivery);\n\t\treturn { card, reconciliation: createProtectedReconciliation(message, intentEntryId) };\n\t});\n\tconst cards = prepared.map((entry) => entry.card);\n\tconst reconciliations = prepared.map((entry) => entry.reconciliation);\n\tprotectedMessages(owner).push(\n\t\t...reconciliations.map((message) => ({ message, delivery, phase: \"queued\" as const })),\n\t);\n\treturn { owner, cards, reconciliations };\n}\n\nfunction emitProtectedAdmission(admission: ProtectedAdmission): AgentSession {\n\tlet owner = admission.owner;\n\tfor (const card of admission.cards) {\n\t\towner = resolveWorkflowStageDeliveryTarget(owner);\n\t\temitDurableDisplayCard(owner, card);\n\t}\n\treturn resolveWorkflowStageDeliveryTarget(owner);\n}\n\n/** Persist one visible card and register its hidden model-facing turn. */\nexport async function admitProtectedStreamingCustomMessage(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): Promise<CustomMessage> {\n\tconst admission = await prepareProtectedAdmission(session, [message], delivery);\n\temitProtectedAdmission(admission);\n\treturn admission.reconciliations[0]!;\n}\n\n/** Queue one hidden turn before public listeners can transfer its ownership. */\nexport async function queueProtectedStreamingCustomMessage(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, [message], delivery);\n\tadmission.owner._queueAgentMessage(admission.reconciliations[0]!, delivery);\n\temitProtectedAdmission(admission);\n}\n\n/** Queue a whole hidden batch before public listeners can transfer ownership. */\nexport async function queueProtectedStreamingCustomMessages(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, messages, delivery);\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tadmission.owner._queueAgentMessage(reconciliation, delivery);\n\t}\n\temitProtectedAdmission(admission);\n}\n\n/** Start or queue an idle protected batch before exposing its display cards. */\nexport async function triggerProtectedStreamingCustomMessages(\n\tsession: AgentSession,\n\tmessages: CustomMessage[],\n\tdelivery: ProtectedDelivery,\n): Promise<void> {\n\tconst admission = await prepareProtectedAdmission(session, messages, delivery);\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tadmission.owner._queueAgentMessage(reconciliation, delivery);\n\t}\n\tconst owner = emitProtectedAdmission(admission);\n\tif (owner.isStreaming || owner._queuedMessagesPaused) return;\n\tfor (const reconciliation of admission.reconciliations) {\n\t\tremoveQueuedProtectedReference(owner, reconciliation);\n\t}\n\tconst turn = owner._runAgentPrompt(admission.reconciliations);\n\tvoid turn.catch(() => {});\n}\n\n/** Record that agent-core drained and consumed the hidden reconciliation. */\nexport function markProtectedStreamingCustomMessageConsumed(session: AgentSession, message: CustomMessage): boolean {\n\tconst entry = protectedMessages(session).find((candidate) => candidate.message === message);\n\tif (!entry) return false;\n\tentry.phase = \"consumed-unpersisted\";\n\treturn true;\n}\n\nexport function markProtectedStreamingCustomMessagePersistenceFailed(\n\tsession: AgentSession,\n\tmessage: CustomMessage,\n): void {\n\tconst entry = protectedMessages(session).find((candidate) => candidate.message === message);\n\tif (entry?.phase === \"consumed-unpersisted\") entry.phase = \"persistence-failed\";\n}\n\nexport function isProtectedStreamingCustomMessage(session: AgentSession, message: CustomMessage): boolean {\n\treturn protectedMessages(session).some((entry) => entry.message === message);\n}\n\n/**\n * Persist a consumed hidden reconciliation exactly once. Its visible card was\n * already committed at admission, so a transient failure never re-adds a card\n * or re-injects another provider message.\n */\nexport function persistProtectedStreamingCustomMessage(session: AgentSession, message: CustomMessage): boolean {\n\tconst pending = protectedMessages(session);\n\tconst index = pending.findIndex((entry) => entry.message === message);\n\tif (index === -1) return false;\n\tconst entry = pending[index];\n\tif (entry.phase !== \"consumed-unpersisted\" && entry.phase !== \"persistence-failed\") return true;\n\tsession.sessionManager.appendCustomMessageEntry(\n\t\tmessage.customType,\n\t\tmessage.content,\n\t\tmessage.display,\n\t\tmessage.details,\n\t\tcustomMessageExcludesContext(message),\n\t);\n\tpending.splice(index, 1);\n\treturn true;\n}\n\n/** Retry only hidden reconciliation persistence; never queue another alias. */\nexport function retryConsumedProtectedStreamingCustomMessages(session: AgentSession): void {\n\tfor (const entry of [...protectedMessages(session)]) {\n\t\tif (entry.phase !== \"persistence-failed\") continue;\n\t\ttry {\n\t\t\tpersistProtectedStreamingCustomMessage(session, entry.message);\n\t\t} catch {\n\t\t\t// The visible lifecycle card is already durable. Keep this consumed phase\n\t\t\t// for a later event rather than duplicating either the card or model turn.\n\t\t}\n\t}\n}\n\n/** Flush consumed reconciliations before session state can be discarded. */\nexport function flushConsumedProtectedStreamingCustomMessages(session: AgentSession): void {\n\tfor (const entry of [...protectedMessages(session)]) {\n\t\tif (entry.phase === \"queued\") continue;\n\t\t// Do not swallow the final write failure: callers must keep this session\n\t\t// alive rather than discard the only remaining recovery state.\n\t\tpersistProtectedStreamingCustomMessage(session, entry.message);\n\t}\n}\n\nfunction removeReference<T>(items: T[], message: T): void {\n\tlet index = items.indexOf(message);\n\twhile (index >= 0) {\n\t\titems.splice(index, 1);\n\t\tindex = items.indexOf(message);\n\t}\n}\n\nfunction removeQueuedProtectedReference(session: AgentSession, message: CustomMessage): void {\n\tconst hold = session._activeInterruptQueueHold;\n\tif (hold !== undefined) {\n\t\tremoveReference(hold.steering, message);\n\t\tremoveReference(hold.followUp, message);\n\t}\n\tconst queues = session._drainQueuedAgentMessages();\n\tsession._restoreQueuedAgentMessages({\n\t\tsteering: queues.steering.filter((candidate) => candidate !== message),\n\t\tfollowUp: queues.followUp.filter((candidate) => candidate !== message),\n\t});\n}\n\nfunction isPausedHeldProtectedReference(session: AgentSession, message: CustomMessage): boolean {\n\tconst hold = session._activeInterruptQueueHold;\n\treturn (\n\t\tsession._queuedMessagesPaused &&\n\t\thold !== undefined &&\n\t\t(hold.steering.includes(message) || hold.followUp.includes(message))\n\t);\n}\n\n/**\n * Persist only reconciliation input already sealed inside an accepted pause\n * hold. Other queued input can still race an active protocol turn and must keep\n * the historical fail-closed disposal behavior.\n */\nexport function prepareProtectedStreamingCustomMessagesForDisposal(session: AgentSession): void {\n\tconst pending = protectedMessages(session);\n\tconst queued = pending.filter((entry) => entry.phase === \"queued\");\n\tif (queued.some((entry) => !isPausedHeldProtectedReference(session, entry.message))) {\n\t\tthrow new Error(\"Cannot dispose a session with a queued protected reconciliation\");\n\t}\n\tfor (const entry of queued) {\n\t\tsession.sessionManager.appendCustomMessageEntry(\n\t\t\tentry.message.customType,\n\t\t\tentry.message.content,\n\t\t\tentry.message.display,\n\t\t\tentry.message.details,\n\t\t\tcustomMessageExcludesContext(entry.message),\n\t\t);\n\t\tremoveQueuedProtectedReference(session, entry.message);\n\t\tconst index = pending.indexOf(entry);\n\t\tif (index >= 0) pending.splice(index, 1);\n\t}\n\tflushConsumedProtectedStreamingCustomMessages(session);\n}\n\n/** Restore only protected references actually removed from native queues/hold. */\nexport function restoreProtectedStreamingCustomMessages(session: AgentSession, removed: DrainedAgentQueues): void {\n\tconst removedReferences = new Set([...removed.steering, ...removed.followUp]);\n\tfor (const entry of protectedMessages(session)) {\n\t\tif (entry.phase === \"queued\" && removedReferences.has(entry.message)) {\n\t\t\tsession._queueAgentMessage(entry.message, entry.delivery);\n\t\t}\n\t}\n}\n\n/** Move protection only for message references that transfer with native queues. */\nexport function transferProtectedStreamingCustomMessages(\n\tsource: AgentSession,\n\ttarget: AgentSession,\n\ttransferred: DrainedAgentQueues,\n): void {\n\tconst transferredReferences = new Set([...transferred.steering, ...transferred.followUp]);\n\tconst retained: ProtectedStreamingCustomMessage[] = [];\n\tconst moved: ProtectedStreamingCustomMessage[] = [];\n\tfor (const entry of protectedMessages(source)) {\n\t\tif (entry.phase === \"queued\" && transferredReferences.has(entry.message)) moved.push(entry);\n\t\telse retained.push(entry);\n\t}\n\tsource._protectedStreamingCustomMessages = retained;\n\tprotectedMessages(target).unshift(...moved);\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import type { AgentMessage } from "@earendil-works/pi-agent-core";
2
- import { type VerbatimCompactionResult } from "./compaction/index.ts";
3
2
  import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts";
3
+ import { type VerbatimCompactionResult } from "./compaction/index.ts";
4
4
  /** Compact tool-expanded context without scheduling a second Agent continuation. */
5
5
  export declare function _preflightPostToolContext(this: AgentSession, messages: AgentMessage[], signal?: AbortSignal): Promise<AgentMessage[]>;
6
6
  /** Gate the transformed message context immediately before provider conversion. */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-post-tool-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-post-tool-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAwC,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5G,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAY9F,oFAAoF;AACpF,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAyFzB;AAED,mFAAmF;AACnF,wBAAgB,kCAAkC,CACjD,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EAAE,GACtB,YAAY,EAAE,CA+BhB;AAED,MAAM,WAAW,8BAA8B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,wBAAwB,CAAC;CACjC;AAED,eAAO,MAAM,qCAAqC;;;CAGjD,CAAC"}
1
+ {"version":3,"file":"agent-session-post-tool-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-post-tool-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,EAAwC,KAAK,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAY5G,oFAAoF;AACpF,wBAAsB,yBAAyB,CAC9C,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,EAAE,EACxB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,EAAE,CAAC,CAyFzB;AAED,mFAAmF;AACnF,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CA+B/G;AAED,MAAM,WAAW,8BAA8B;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,wBAAwB,CAAC;CACjC;AAED,eAAO,MAAM,qCAAqC;;;CAGjD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-post-tool-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-post-tool-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { estimateContextTokens, shouldCompact, type VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { scrubPreCompactionAssistantUsage } from \"./provider-context-usage.ts\";\n\nfunction postToolFailureMessage(error: unknown): string {\n\tconst detail = error instanceof Error ? error.message : String(error);\n\treturn `Post-tool context compaction failed before the next provider request: ${detail}`;\n}\n\nfunction hardLimitMessage(projectedTokens: number, hardInputLimit: number): string {\n\treturn `Post-tool context remains over the provider hard input limit after compaction (${projectedTokens} > ${hardInputLimit} tokens); the next provider request was not sent.`;\n}\n\n/** Compact tool-expanded context without scheduling a second Agent continuation. */\nexport async function _preflightPostToolContext(\n\tthis: AgentSession,\n\tmessages: AgentMessage[],\n\tsignal?: AbortSignal,\n): Promise<AgentMessage[]> {\n\tconst model = this.model;\n\tconst settings = this.settingsManager.getCompactionSettings();\n\tif (!model || !settings.enabled) return messages;\n\n\tconst hardInputLimit = model.contextWindow;\n\tconst projectedTokens = estimateContextTokens(messages).tokens;\n\tif (!shouldCompact(projectedTokens, hardInputLimit, settings)) return messages;\n\t// Only a context that genuinely will not fit may clear a sub-minimum region.\n\t// The threshold sits at `contextWindow - reserveTokens`, well below the hard\n\t// limit, so a crossing alone is no reason to destroy context.\n\tconst overHardLimit = hardInputLimit > 0 && projectedTokens > hardInputLimit;\n\n\t// Tool-result persistence is ordered on AgentSession's event queue, while Pi\n\t// may reach its next-turn hook as soon as its own listener barrier settles.\n\tawait this._agentEventQueue;\n\tif (this._autoCompactionAbortController) {\n\t\tconst message = postToolFailureMessage(\"another automatic compaction is already active\");\n\t\tthis._postToolCompactionPreflightError = message;\n\t\tthrow new Error(message);\n\t}\n\n\tconst abortController = new AbortController();\n\tconst relayAbort = () => abortController.abort();\n\tsignal?.addEventListener(\"abort\", relayAbort, { once: true });\n\tif (signal?.aborted) abortController.abort();\n\tthis._autoCompactionAbortController = abortController;\n\tthis._emit({ type: \"compaction_start\", reason: \"threshold\", midTurn: true });\n\n\ttry {\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\tresolvePlannerAuth: async (candidate) => {\n\t\t\t\tconst auth = await this._getRequiredRequestAuth(candidate);\n\t\t\t\treturn auth.apiKey || auth.headers ? auth : undefined;\n\t\t\t},\n\t\t\tabortController,\n\t\t\tbackupLabel: \"auto-compact\",\n\t\t\treason: \"threshold\",\n\t\t\t// Mid-turn: a compaction failure here kills the active turn.\n\t\t\turgency: \"load_bearing\",\n\t\t\t...(overHardLimit ? { allowSmallRegion: true } : {}),\n\t\t});\n\t\tif (!result) {\n\t\t\t// Nothing was compactable and the projected context still fits, so the\n\t\t\t// follow-up request can be sent unchanged. That is a successful no-op,\n\t\t\t// not a failure: raising here is what killed the active turn.\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"threshold\",\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tmidTurn: true,\n\t\t\t});\n\t\t\treturn messages;\n\t\t}\n\n\t\tthis._pendingPostToolCompactionGuard = { hardInputLimit, result };\n\t\t// `AgentState.messages` has an asymmetric accessor pair: the setter copies, the\n\t\t// getter hands back the live internal array. Returning it directly would make the\n\t\t// agent loop's `currentContext.messages` an alias of `agent.state.messages`, and\n\t\t// from the next turn on both writers (`runLoop` and the `message_end` reducer)\n\t\t// would append every message twice — duplicate `tool_result` blocks for one\n\t\t// `tool_use` id, which the provider rejects with an unrecoverable 400.\n\t\treturn this.agent.state.messages.slice();\n\t} catch (error) {\n\t\tconst detail = error instanceof Error ? error.message : String(error);\n\t\tconst aborted =\n\t\t\tabortController.signal.aborted ||\n\t\t\tdetail === \"Compaction cancelled\" ||\n\t\t\t(error instanceof Error && error.name === \"AbortError\");\n\t\tconst errorMessage = aborted\n\t\t\t? \"Post-tool context compaction was cancelled before the next provider request.\"\n\t\t\t: postToolFailureMessage(error);\n\t\tthis._postToolCompactionPreflightError = errorMessage;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult: undefined,\n\t\t\taborted,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t\t...(aborted ? {} : { errorMessage }),\n\t\t});\n\t\tthrow new Error(errorMessage, { cause: error });\n\t} finally {\n\t\tsignal?.removeEventListener(\"abort\", relayAbort);\n\t\tthis._autoCompactionAbortController = undefined;\n\t}\n}\n\n/** Gate the transformed message context immediately before provider conversion. */\nexport function _finishPostToolCompactionPreflight(\n\tthis: AgentSession,\n\tmessages: AgentMessage[],\n): AgentMessage[] {\n\tconst pending = this._pendingPostToolCompactionGuard;\n\tif (!pending) return messages;\n\tthis._pendingPostToolCompactionGuard = undefined;\n\n\tconst providerBoundMessages = scrubPreCompactionAssistantUsage(messages, this.sessionManager.getBranch());\n\tconst projectedTokens = estimateContextTokens(providerBoundMessages).tokens;\n\tif (projectedTokens > pending.hardInputLimit) {\n\t\tconst errorMessage = hardLimitMessage(projectedTokens, pending.hardInputLimit);\n\t\tthis._postToolCompactionPreflightError = errorMessage;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult: pending.result,\n\t\t\taborted: false,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t\terrorMessage,\n\t\t});\n\t\tthrow new Error(errorMessage);\n\t}\n\n\tthis._emit({\n\t\ttype: \"compaction_end\",\n\t\treason: \"threshold\",\n\t\tresult: pending.result,\n\t\taborted: false,\n\t\twillRetry: false,\n\t\tmidTurn: true,\n\t});\n\treturn providerBoundMessages;\n}\n\nexport interface PendingPostToolCompactionGuard {\n\thardInputLimit: number;\n\tresult: VerbatimCompactionResult;\n}\n\nexport const agentSessionPostToolCompactionMethods = {\n\t_preflightPostToolContext,\n\t_finishPostToolCompactionPreflight,\n};\n"]}
1
+ {"version":3,"file":"agent-session-post-tool-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-post-tool-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { estimateContextTokens, shouldCompact, type VerbatimCompactionResult } from \"./compaction/index.ts\";\nimport { scrubPreCompactionAssistantUsage } from \"./provider-context-usage.ts\";\n\nfunction postToolFailureMessage(error: unknown): string {\n\tconst detail = error instanceof Error ? error.message : String(error);\n\treturn `Post-tool context compaction failed before the next provider request: ${detail}`;\n}\n\nfunction hardLimitMessage(projectedTokens: number, hardInputLimit: number): string {\n\treturn `Post-tool context remains over the provider hard input limit after compaction (${projectedTokens} > ${hardInputLimit} tokens); the next provider request was not sent.`;\n}\n\n/** Compact tool-expanded context without scheduling a second Agent continuation. */\nexport async function _preflightPostToolContext(\n\tthis: AgentSession,\n\tmessages: AgentMessage[],\n\tsignal?: AbortSignal,\n): Promise<AgentMessage[]> {\n\tconst model = this.model;\n\tconst settings = this.settingsManager.getCompactionSettings();\n\tif (!model || !settings.enabled) return messages;\n\n\tconst hardInputLimit = model.contextWindow;\n\tconst projectedTokens = estimateContextTokens(messages).tokens;\n\tif (!shouldCompact(projectedTokens, hardInputLimit, settings)) return messages;\n\t// Only a context that genuinely will not fit may clear a sub-minimum region.\n\t// The threshold sits at `contextWindow - reserveTokens`, well below the hard\n\t// limit, so a crossing alone is no reason to destroy context.\n\tconst overHardLimit = hardInputLimit > 0 && projectedTokens > hardInputLimit;\n\n\t// Tool-result persistence is ordered on AgentSession's event queue, while Pi\n\t// may reach its next-turn hook as soon as its own listener barrier settles.\n\tawait this._agentEventQueue;\n\tif (this._autoCompactionAbortController) {\n\t\tconst message = postToolFailureMessage(\"another automatic compaction is already active\");\n\t\tthis._postToolCompactionPreflightError = message;\n\t\tthrow new Error(message);\n\t}\n\n\tconst abortController = new AbortController();\n\tconst relayAbort = () => abortController.abort();\n\tsignal?.addEventListener(\"abort\", relayAbort, { once: true });\n\tif (signal?.aborted) abortController.abort();\n\tthis._autoCompactionAbortController = abortController;\n\tthis._emit({ type: \"compaction_start\", reason: \"threshold\", midTurn: true });\n\n\ttry {\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\tresolvePlannerAuth: async (candidate) => {\n\t\t\t\tconst auth = await this._getRequiredRequestAuth(candidate);\n\t\t\t\treturn auth.apiKey || auth.headers ? auth : undefined;\n\t\t\t},\n\t\t\tabortController,\n\t\t\tbackupLabel: \"auto-compact\",\n\t\t\treason: \"threshold\",\n\t\t\t// Mid-turn: a compaction failure here kills the active turn.\n\t\t\turgency: \"load_bearing\",\n\t\t\t...(overHardLimit ? { allowSmallRegion: true } : {}),\n\t\t});\n\t\tif (!result) {\n\t\t\t// Nothing was compactable and the projected context still fits, so the\n\t\t\t// follow-up request can be sent unchanged. That is a successful no-op,\n\t\t\t// not a failure: raising here is what killed the active turn.\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"threshold\",\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tmidTurn: true,\n\t\t\t});\n\t\t\treturn messages;\n\t\t}\n\n\t\tthis._pendingPostToolCompactionGuard = { hardInputLimit, result };\n\t\t// `AgentState.messages` has an asymmetric accessor pair: the setter copies, the\n\t\t// getter hands back the live internal array. Returning it directly would make the\n\t\t// agent loop's `currentContext.messages` an alias of `agent.state.messages`, and\n\t\t// from the next turn on both writers (`runLoop` and the `message_end` reducer)\n\t\t// would append every message twice — duplicate `tool_result` blocks for one\n\t\t// `tool_use` id, which the provider rejects with an unrecoverable 400.\n\t\treturn this.agent.state.messages.slice();\n\t} catch (error) {\n\t\tconst detail = error instanceof Error ? error.message : String(error);\n\t\tconst aborted =\n\t\t\tabortController.signal.aborted ||\n\t\t\tdetail === \"Compaction cancelled\" ||\n\t\t\t(error instanceof Error && error.name === \"AbortError\");\n\t\tconst errorMessage = aborted\n\t\t\t? \"Post-tool context compaction was cancelled before the next provider request.\"\n\t\t\t: postToolFailureMessage(error);\n\t\tthis._postToolCompactionPreflightError = errorMessage;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult: undefined,\n\t\t\taborted,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t\t...(aborted ? {} : { errorMessage }),\n\t\t});\n\t\tthrow new Error(errorMessage, { cause: error });\n\t} finally {\n\t\tsignal?.removeEventListener(\"abort\", relayAbort);\n\t\tthis._autoCompactionAbortController = undefined;\n\t}\n}\n\n/** Gate the transformed message context immediately before provider conversion. */\nexport function _finishPostToolCompactionPreflight(this: AgentSession, messages: AgentMessage[]): AgentMessage[] {\n\tconst pending = this._pendingPostToolCompactionGuard;\n\tif (!pending) return messages;\n\tthis._pendingPostToolCompactionGuard = undefined;\n\n\tconst providerBoundMessages = scrubPreCompactionAssistantUsage(messages, this.sessionManager.getBranch());\n\tconst projectedTokens = estimateContextTokens(providerBoundMessages).tokens;\n\tif (projectedTokens > pending.hardInputLimit) {\n\t\tconst errorMessage = hardLimitMessage(projectedTokens, pending.hardInputLimit);\n\t\tthis._postToolCompactionPreflightError = errorMessage;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult: pending.result,\n\t\t\taborted: false,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t\terrorMessage,\n\t\t});\n\t\tthrow new Error(errorMessage);\n\t}\n\n\tthis._emit({\n\t\ttype: \"compaction_end\",\n\t\treason: \"threshold\",\n\t\tresult: pending.result,\n\t\taborted: false,\n\t\twillRetry: false,\n\t\tmidTurn: true,\n\t});\n\treturn providerBoundMessages;\n}\n\nexport interface PendingPostToolCompactionGuard {\n\thardInputLimit: number;\n\tresult: VerbatimCompactionResult;\n}\n\nexport const agentSessionPostToolCompactionMethods = {\n\t_preflightPostToolContext,\n\t_finishPostToolCompactionPreflight,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-prompt.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAM9E,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,KAAK,yBAAyB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7E,KAAK,iCAAiC,GAAG,aAAa,GAAG;IACxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;QACrC,iFAAiF;QACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;QACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;KACjE,CAAC;CACF,CAAC;AAEF,oFAAoF;AACpF,wBAAsB,6BAA6B,CACjD,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,gCAAgC,GAAG,6BAA6B,CAAC,EAC7F,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAiLrG;AAGD,wBAAsB,eAAe,CACpC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,EACvC,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE;AAGD,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED;;GAEG;AAEH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCvG;AAED;;GAEG;AAEH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BpG;AAED;;;;GAIG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB5E;AAED;;;;;;;GAOG;AAEH,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpG;AAED;;;;;;GAMG;AAEH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvG;AAED;;GAEG;AAEH,wBAAsB,eAAe,CAAC,IAAI,EAAE,YAAY,EACvD,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC,oBAAoB,CAAC,CAAC;CAC7E,GACC,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAWrC,CAAC"}
1
+ {"version":3,"file":"agent-session-prompt.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAG9E,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAiB9D,KAAK,yBAAyB,GAAG,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAE7E,KAAK,iCAAiC,GAAG,aAAa,GAAG;IACxD,QAAQ,CAAC,kBAAkB,CAAC,EAAE;QAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;QACrC,iFAAiF;QACjF,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;QACpC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;KACjE,CAAC;CACF,CAAC;AAEF,oFAAoF;AACpF,wBAAsB,6BAA6B,CAClD,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,gCAAgC,GAAG,6BAA6B,CAAC,EAC7F,IAAI,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAIlB;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAgLrG;AAED,wBAAsB,eAAe,CACpC,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,EACvC,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAIzE;AAED,wBAAsB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAQpF;AAED;;GAEG;AAEH,wBAAsB,8BAA8B,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCvG;AAED;;GAEG;AAEH,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA2BpG;AAED;;;;GAIG;AAEH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAwB5E;AAED;;;;;;;GAOG;AAEH,wBAAsB,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWpG;AAED;;;;;;GAMG;AAEH,wBAAsB,QAAQ,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAWvG;AAED;;GAEG;AAEH,wBAAsB,eAAe,CACpC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,EAAE,EAChD,OAAO,CAAC,EAAE;IACT,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,kBAAkB,CAAC,EAAE,iCAAiC,CAAC,oBAAoB,CAAC,CAAC;CAC7E,GACC,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED;;;;GAIG;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;CAWrC,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import { readFileSync } from "node:fs";
2
- import { runCallback } from "./callback-activity.js";
3
- import { ATOMIC_GUIDE_COMMAND_NAME, ATOMIC_GUIDE_HELP_CHOICES, atomicGuideModeForChoice, getAtomicGuideMessage, isAtomicGuideHelpChoice, normalizeAtomicGuideMode } from "./atomic-guide-command.js";
4
- import { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage, formatUnresolvedModelMessage } from "./auth-guidance.js";
5
- import { expandPromptTemplate } from "./prompt-templates.js";
6
2
  import { stripFrontmatter } from "../utils/frontmatter.js";
7
3
  import { resolveWorkflowStageDeliveryTarget } from "./agent-session-delivery-forwarding.js";
4
+ import { ATOMIC_GUIDE_COMMAND_NAME, ATOMIC_GUIDE_HELP_CHOICES, atomicGuideModeForChoice, getAtomicGuideMessage, isAtomicGuideHelpChoice, normalizeAtomicGuideMode, } from "./atomic-guide-command.js";
5
+ import { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage, formatUnresolvedModelMessage, } from "./auth-guidance.js";
6
+ import { runCallback } from "./callback-activity.js";
7
+ import { expandPromptTemplate } from "./prompt-templates.js";
8
8
  /** Dispatch registered slash commands without changing the raw queue pause gate. */
9
9
  export async function tryExecuteSessionSlashCommand(session, text) {
10
10
  if (!text.startsWith("/"))
@@ -27,7 +27,7 @@ export async function prompt(text, options) {
27
27
  workflowDelivery?.beforeDelivery?.();
28
28
  // Registered slash commands execute without releasing ordinary queued work.
29
29
  // Unknown slash input continues through the normal paused admission path.
30
- if (expandPromptTemplates && await tryExecuteSessionSlashCommand(this, text)) {
30
+ if (expandPromptTemplates && (await tryExecuteSessionSlashCommand(this, text))) {
31
31
  workflowDelivery?.delivered?.("handled");
32
32
  preflightResult?.(true);
33
33
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-prompt.js","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { ImageContent, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport { runCallback } from \"./callback-activity.ts\";\nimport { ATOMIC_GUIDE_COMMAND_NAME, ATOMIC_GUIDE_HELP_CHOICES, atomicGuideModeForChoice, getAtomicGuideMessage, isAtomicGuideHelpChoice, normalizeAtomicGuideMode } from \"./atomic-guide-command.ts\";\nimport { formatNoApiKeyFoundMessage, formatNoModelSelectedMessage, formatUnresolvedModelMessage } from \"./auth-guidance.ts\";\nimport { expandPromptTemplate } from \"./prompt-templates.ts\";\nimport { stripFrontmatter } from \"../utils/frontmatter.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\nimport type { PromptOptions } from \"./agent-session-types.ts\";\n\ntype UserMessageDeliveryAction = \"prompt\" | \"steer\" | \"followUp\" | \"handled\";\n\ntype PromptOptionsWithWorkflowDelivery = PromptOptions & {\n\treadonly __workflowDelivery?: {\n\t\treadonly beforeDelivery?: () => void;\n\t\t/** Called only after an idle prompt has synchronously entered the agent turn. */\n\t\treadonly promptStarted?: () => void;\n\t\treadonly delivered?: (action: UserMessageDeliveryAction) => void;\n\t};\n};\n\n/** Dispatch registered slash commands without changing the raw queue pause gate. */\nexport async function tryExecuteSessionSlashCommand(\n session: Pick<AgentSession, \"_tryExecuteBuiltinSlashCommand\" | \"_tryExecuteExtensionCommand\">,\n text: string,\n): Promise<boolean> {\n if (!text.startsWith(\"/\")) return false;\n if (await session._tryExecuteBuiltinSlashCommand(text)) return true;\n return session._tryExecuteExtensionCommand(text);\n}\n\nexport async function prompt(this: AgentSession, text: string, options?: PromptOptions): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.prompt(text, options);\n\tconst expandPromptTemplates = options?.expandPromptTemplates ?? true;\n\tconst preflightResult = options?.preflightResult;\n\tconst workflowDelivery = (options as PromptOptionsWithWorkflowDelivery | undefined)?.__workflowDelivery;\n\tlet messages: AgentMessage[] | undefined;\n\n try {\n // Authorize workflow delivery before commands or input extensions can perform side effects.\n // A later terminal transition cannot retroactively reject input accepted at this boundary.\n workflowDelivery?.beforeDelivery?.();\n // Registered slash commands execute without releasing ordinary queued work.\n // Unknown slash input continues through the normal paused admission path.\n if (expandPromptTemplates && await tryExecuteSessionSlashCommand(this, text)) {\n workflowDelivery?.delivered?.(\"handled\");\n preflightResult?.(true);\n return;\n }\n // A controlled pause is an admission gate, including the idle gap after\n // abort settles. Preserve the raw user payload without running input hooks,\n // compaction, or a provider turn; explicit resume makes it eligible again.\n if (this._queuedMessagesPaused) {\n const delivery = options?.streamingBehavior === \"followUp\" ? \"followUp\" : \"steer\";\n if (delivery === \"followUp\") await this._queueFollowUp(text, options?.images);\n else await this._queueSteer(text, options?.images);\n workflowDelivery?.delivered?.(delivery);\n preflightResult?.(true);\n return;\n }\n\n\n\t\t// Emit input event for extension interception (before skill/template expansion)\n\t\tlet currentText = text;\n\t\tlet currentImages = options?.images;\n\t\tif (this._extensionRunner.hasHandlers(\"input\")) {\n\t\t\tconst inputResult = await this._extensionRunner.emitInput(\n\t\t\t\tcurrentText,\n\t\t\t\tcurrentImages,\n\t\t\t\toptions?.source ?? \"interactive\",\n\t\t\t\tthis.isStreaming ? options?.streamingBehavior : undefined,\n\t\t\t);\n\t\t\tif (inputResult.action === \"handled\") {\n\t\t\t\tworkflowDelivery?.delivered?.(\"handled\");\n\t\t\t\tpreflightResult?.(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (inputResult.action === \"transform\") {\n\t\t\t\tcurrentText = inputResult.text;\n\t\t\t\tcurrentImages = inputResult.images ?? currentImages;\n\t\t\t}\n\t\t}\n\n\t\t// Expand skill commands (/skill:name args) and prompt templates (/template args)\n\t\tlet expandedText = currentText;\n\t\tif (expandPromptTemplates) {\n\t\t\texpandedText = this._expandSkillCommand(expandedText);\n\t\t\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\t\t}\n\n\t\t// If streaming, queue via steer() or followUp() based on option\n\t\tif (this.isStreaming) {\n\t\t\tif (!options?.streamingBehavior) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Agent is already processing. Specify streamingBehavior ('steer' or 'followUp') to queue the message.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (options.streamingBehavior === \"followUp\") {\n\t\t\t\tawait this._queueFollowUp(expandedText, currentImages);\n\t\t\t} else {\n\t\t\t\tawait this._queueSteer(expandedText, currentImages);\n\t\t\t}\n\t\t\tworkflowDelivery?.delivered?.(options.streamingBehavior);\n\t\t\tpreflightResult?.(true);\n\t\t\treturn;\n\t\t}\n\n\t\t// Flush any pending bash messages before the new prompt\n\t\tthis._flushPendingBashMessages();\n\n\t\t// Validate model\n\t\tif (!this.model) {\n\t\t\tthrow new Error(formatNoModelSelectedMessage());\n\t\t}\n\n\t\t// Defensive guard: a model that never resolved to a real provider\n\t\t// (for example an unknown/unresolved model id that reached this path\n\t\t// as a bare string) has no `provider`, which would otherwise fail deep\n\t\t// in auth resolution as the confusing \"No API key found for undefined\".\n\t\t// Surface a clear, accurate \"unknown model\" error instead.\n\t\tconst resolvedProvider = (this.model as { provider?: unknown }).provider;\n\t\tif (typeof resolvedProvider !== \"string\" || resolvedProvider.length === 0) {\n\t\t\tthrow new Error(formatUnresolvedModelMessage(this.model));\n\t\t}\n\n\t\tif (!this._modelRuntime.hasConfiguredAuth(this.model.provider)) {\n\t\t\t// A failed credential-store load (for example auth.json briefly locked\n\t\t\t// by a concurrent process, or invalid JSON) leaves an empty in-memory\n\t\t\t// credential set. That would otherwise be misreported here as\n\t\t\t// \"No API key found\" even though the credentials exist on disk. Surface\n\t\t\t// the real load failure instead so configured providers are not falsely\n\t\t\t// reported as unauthenticated (issue #1431).\n\t\t\tconst isOAuth = this._modelRuntime.isUsingOAuth(this.model.provider);\n\t\t\tif (isOAuth) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Authentication failed for \"${this.model.provider}\". ` +\n\t\t\t\t\t\t`Credentials may have expired or network is unavailable. ` +\n\t\t\t\t\t\t`Run '/login ${this.model.provider}' to re-authenticate.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(formatNoApiKeyFoundMessage(this.model.provider));\n\t\t}\n\n\t\t// Check if we need to compact before sending (catches aborted responses)\n\t\tconst lastAssistant = this._findLastAssistantMessage();\n\t\tif (lastAssistant) {\n\t\t\tawait this._checkCompaction(lastAssistant, false);\n\t\t}\n\n\t\t// Build messages array (custom message if any, then user message)\n\t\tmessages = [];\n\n\t\t// Add user message\n\t\tconst userContent: (TextContent | ImageContent)[] = [{ type: \"text\", text: expandedText }];\n\t\tif (currentImages) {\n\t\t\tuserContent.push(...currentImages);\n\t\t}\n\t\tmessages.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: userContent,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\n\t\t// Inject any pending \"nextTurn\" messages as context alongside the user message\n\t\tfor (const msg of this._pendingNextTurnMessages) {\n\t\t\tmessages.push(msg);\n\t\t}\n\t\tthis._pendingNextTurnMessages = [];\n\n\t\t// Emit before_agent_start extension event\n\t\tconst result = await this._extensionRunner.emitBeforeAgentStart(\n\t\t\texpandedText,\n\t\t\tcurrentImages,\n\t\t\tthis._baseSystemPrompt,\n\t\t\tthis._baseSystemPromptOptions,\n\t\t);\n\t\t// Add all custom messages from extensions\n\t\tif (result?.messages) {\n\t\t\tfor (const msg of result.messages) {\n\t\t\t\tmessages.push({\n\t\t\t\t\trole: \"custom\",\n\t\t\t\t\tcustomType: msg.customType,\n\t\t\t\t\tcontent: msg.content ?? [],\n\t\t\t\t\tdisplay: msg.display,\n\t\t\t\t\tdetails: msg.details,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Apply extension-modified system prompt, or reset to base\n\t\tif (result?.systemPrompt !== undefined) {\n\t\t\tthis._systemPromptOverride = result.systemPrompt;\n\t\t\tthis.agent.state.systemPrompt = result.systemPrompt;\n\t\t} else {\n\t\t\t// Ensure we're using the base prompt (in case previous turn had modifications)\n\t\t\tthis._systemPromptOverride = undefined;\n\t\t\tthis.agent.state.systemPrompt = this._baseSystemPrompt;\n\t\t}\n\t} catch (error) {\n\t\tpreflightResult?.(false);\n\t\tthrow error;\n\t}\n\n\tpreflightResult?.(true);\n\tconst turn = this._runAgentPrompt(messages, workflowDelivery?.promptStarted);\n\tworkflowDelivery?.delivered?.(\"prompt\");\n\tawait turn;\n}\n\n\nexport async function _runAgentPrompt(\n\tthis: AgentSession,\n\tmessages: AgentMessage | AgentMessage[],\n\tpromptStarted?: () => void,\n): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) {\n\t\tif (owner._queuedMessagesPaused) {\n\t\t\tconst items = Array.isArray(messages) ? messages : [messages];\n\t\t\tfor (const message of items) owner._queueAgentMessage(message, \"steer\");\n\t\t\treturn;\n\t\t}\n\t\treturn owner._runAgentPrompt(messages, promptStarted);\n\t}\n\ttry {\n\t\tconst turn = this.agent.prompt(messages);\n\t\tif (this.isStreaming) promptStarted?.();\n\t\tawait turn;\n\t\tawait this.waitForRetry();\n\t\tawait this._continueQueuedAgentMessages();\n\t\tawait this._awaitPendingPostCompactionContinuation();\n\t} finally {\n\t\tthis._systemPromptOverride = undefined;\n\t\tawait this._agentEventQueue;\n\t\tif (typeof this._extensionRunner?.emit === \"function\") {\n\t\t\tawait this._extensionRunner.emit({ type: \"agent_settled\" });\n\t\t}\n\t\tthis._emit?.({ type: \"agent_settled\" });\n\t}\n}\n\nexport async function _runAgentContinue(this: AgentSession): Promise<void> {\n\tawait this.agent.continue();\n\tawait this.waitForRetry();\n\tawait this._continueQueuedAgentMessages();\n}\n\n\nexport async function _continueQueuedAgentMessages(this: AgentSession): Promise<void> {\n\tawait this._agentEventQueue;\n\n\twhile (!this._queuedMessagesPaused && this.agent.hasQueuedMessages()) {\n\t\tawait this.agent.continue();\n\t\tawait this.waitForRetry();\n\t\tawait this._agentEventQueue;\n\t}\n}\n\n/**\n * Try to execute a built-in slash command. Returns true if command was found and executed.\n */\n\nexport async function _tryExecuteBuiltinSlashCommand(this: AgentSession, text: string): Promise<boolean> {\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tif (commandName !== ATOMIC_GUIDE_COMMAND_NAME) return false;\n\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1);\n\tconst mode = normalizeAtomicGuideMode(args);\n\tif (mode === \"help\" && this._extensionUIContext) {\n\t\tconst choice = await this._extensionUIContext.select(\"Atomic. Select where to start:\", [\n\t\t\t...ATOMIC_GUIDE_HELP_CHOICES,\n\t\t]);\n\t\tif (!choice || !isAtomicGuideHelpChoice(choice)) return true;\n\t\tawait this.sendCustomMessage(\n\t\t\t{\n\t\t\t\tcustomType: \"atomic\",\n\t\t\t\tcontent: getAtomicGuideMessage(atomicGuideModeForChoice(choice), this._cwd),\n\t\t\t\tdisplay: true,\n\t\t\t},\n\t\t\t{ triggerTurn: false },\n\t\t);\n\t\treturn true;\n\t}\n\n\tawait this.sendCustomMessage(\n\t\t{\n\t\t\tcustomType: \"atomic\",\n\t\t\tcontent: getAtomicGuideMessage(mode, this._cwd),\n\t\t\tdisplay: true,\n\t\t},\n\t\t{ triggerTurn: false },\n\t);\n\treturn true;\n}\n\n/**\n * Try to execute an extension command. Returns true if command was found and executed.\n */\n\nexport async function _tryExecuteExtensionCommand(this: AgentSession, text: string): Promise<boolean> {\n\t// Parse command name and args\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1);\n\n\tconst command = this._extensionRunner.getCommand(commandName);\n\tif (!command) return false;\n\n\t// Get command context from extension runner (includes session control methods)\n\tconst ctx = this._extensionRunner.createCommandContext();\n\n\ttry {\n\t\tawait runCallback(\n\t\t\t{ kind: \"extension.hook\", name: `command:${commandName}`, sourcePath: command.sourceInfo.path },\n\t\t\t() => command.handler(args, ctx),\n\t\t);\n\t\treturn true;\n\t} catch (err) {\n\t\t// Emit error via extension runner\n\t\tthis._extensionRunner.emitError({\n\t\t\textensionPath: `command:${commandName}`,\n\t\t\tevent: \"command\",\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t});\n\t\treturn true;\n\t}\n}\n\n/**\n * Expand skill commands (/skill:name args) to their full content.\n * Returns the expanded text, or the original text if not a skill command or skill not found.\n * Emits errors via extension runner if file read fails.\n */\n\nexport function _expandSkillCommand(this: AgentSession, text: string): string {\n\tif (!text.startsWith(\"/skill:\")) return text;\n\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst skillName = spaceIndex === -1 ? text.slice(7) : text.slice(7, spaceIndex);\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1).trim();\n\n\tconst skill = this.resourceLoader.getSkills().skills.find((s) => s.name === skillName);\n\tif (!skill) return text; // Unknown skill, pass through\n\n\ttry {\n\t\tconst content = readFileSync(skill.filePath, \"utf-8\");\n\t\tconst body = stripFrontmatter(content).trim();\n\t\tconst skillBlock = `<skill name=\"${skill.name}\" location=\"${skill.filePath}\">\\nReferences are relative to ${skill.baseDir}.\\n\\n${body}\\n</skill>`;\n\t\treturn args ? `${skillBlock}\\n\\n${args}` : skillBlock;\n\t} catch (err) {\n\t\t// Emit error like extension commands do\n\t\tthis._extensionRunner.emitError({\n\t\t\textensionPath: skill.filePath,\n\t\t\tevent: \"skill_expansion\",\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t});\n\t\treturn text; // Return original on error\n\t}\n}\n\n/**\n * Queue a steering message while the agent is running.\n * Delivered after the current assistant turn finishes executing its tool calls,\n * before the next LLM call.\n * Expands skill commands and prompt templates. Errors on extension commands.\n * @param images Optional image attachments to include with the message\n * @throws Error if text is an extension command\n */\n\nexport async function steer(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\t// Check for extension commands (cannot be queued)\n\tif (text.startsWith(\"/\")) {\n\t\tthis._throwIfExtensionCommand(text);\n\t}\n\n\t// Expand skill commands and prompt templates\n\tlet expandedText = this._expandSkillCommand(text);\n\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\tawait this._queueSteer(expandedText, images);\n}\n\n/**\n * Queue a follow-up message to be processed after the agent finishes.\n * Delivered only when agent has no more tool calls or steering messages.\n * Expands skill commands and prompt templates. Errors on extension commands.\n * @param images Optional image attachments to include with the message\n * @throws Error if text is an extension command\n */\n\nexport async function followUp(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\t// Check for extension commands (cannot be queued)\n\tif (text.startsWith(\"/\")) {\n\t\tthis._throwIfExtensionCommand(text);\n\t}\n\n\t// Expand skill commands and prompt templates\n\tlet expandedText = this._expandSkillCommand(text);\n\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\tawait this._queueFollowUp(expandedText, images);\n}\n\n/**\n * Internal: Queue a steering message (already expanded, no extension command check).\n */\n\nexport async function sendUserMessage(this: AgentSession,\n\tcontent: string | (TextContent | ImageContent)[],\n\toptions?: {\n\t\tdeliverAs?: \"steer\" | \"followUp\";\n\t\t__workflowDelivery?: PromptOptionsWithWorkflowDelivery[\"__workflowDelivery\"];\n\t},\n): Promise<void> {\n\t// Normalize content to text string + optional images\n\tlet text: string;\n\tlet images: ImageContent[] | undefined;\n\n\tif (typeof content === \"string\") {\n\t\ttext = content;\n\t} else {\n\t\tconst textParts: string[] = [];\n\t\timages = [];\n\t\tfor (const part of content) {\n\t\t\tif (part.type === \"text\") {\n\t\t\t\ttextParts.push(part.text);\n\t\t\t} else {\n\t\t\t\timages.push(part);\n\t\t\t}\n\t\t}\n\t\ttext = textParts.join(\"\\n\");\n\t\tif (images.length === 0) images = undefined;\n\t}\n\n\t// Use prompt() with expandPromptTemplates: false to skip command handling and template expansion.\n\t// The private delivery hook lets workflow routing report and gate the branch\n\t// selected after asynchronous input/compaction extension preflight.\n\tawait this.prompt(text, {\n\t\texpandPromptTemplates: false,\n\t\tstreamingBehavior: options?.deliverAs,\n\t\timages,\n\t\tsource: \"extension\",\n\t\t__workflowDelivery: options?.__workflowDelivery,\n\t} as PromptOptionsWithWorkflowDelivery);\n}\n\n/**\n * Clear all queued messages and return them.\n * Useful for restoring to editor when user aborts.\n * @returns Object with steering and followUp arrays\n */\n\nexport const agentSessionPromptMethods = {\n\tprompt,\n\t_runAgentPrompt,\n\t_runAgentContinue,\n\t_continueQueuedAgentMessages,\n\t_tryExecuteBuiltinSlashCommand,\n\t_tryExecuteExtensionCommand,\n\t_expandSkillCommand,\n\tsteer,\n\tfollowUp,\n\tsendUserMessage,\n};\n"]}
1
+ {"version":3,"file":"agent-session-prompt.js","sourceRoot":"","sources":["../../src/core/agent-session-prompt.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFileSync } from \"node:fs\";\nimport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { ImageContent, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport { stripFrontmatter } from \"../utils/frontmatter.ts\";\nimport { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport type { PromptOptions } from \"./agent-session-types.ts\";\nimport {\n\tATOMIC_GUIDE_COMMAND_NAME,\n\tATOMIC_GUIDE_HELP_CHOICES,\n\tatomicGuideModeForChoice,\n\tgetAtomicGuideMessage,\n\tisAtomicGuideHelpChoice,\n\tnormalizeAtomicGuideMode,\n} from \"./atomic-guide-command.ts\";\nimport {\n\tformatNoApiKeyFoundMessage,\n\tformatNoModelSelectedMessage,\n\tformatUnresolvedModelMessage,\n} from \"./auth-guidance.ts\";\nimport { runCallback } from \"./callback-activity.ts\";\nimport { expandPromptTemplate } from \"./prompt-templates.ts\";\n\ntype UserMessageDeliveryAction = \"prompt\" | \"steer\" | \"followUp\" | \"handled\";\n\ntype PromptOptionsWithWorkflowDelivery = PromptOptions & {\n\treadonly __workflowDelivery?: {\n\t\treadonly beforeDelivery?: () => void;\n\t\t/** Called only after an idle prompt has synchronously entered the agent turn. */\n\t\treadonly promptStarted?: () => void;\n\t\treadonly delivered?: (action: UserMessageDeliveryAction) => void;\n\t};\n};\n\n/** Dispatch registered slash commands without changing the raw queue pause gate. */\nexport async function tryExecuteSessionSlashCommand(\n\tsession: Pick<AgentSession, \"_tryExecuteBuiltinSlashCommand\" | \"_tryExecuteExtensionCommand\">,\n\ttext: string,\n): Promise<boolean> {\n\tif (!text.startsWith(\"/\")) return false;\n\tif (await session._tryExecuteBuiltinSlashCommand(text)) return true;\n\treturn session._tryExecuteExtensionCommand(text);\n}\n\nexport async function prompt(this: AgentSession, text: string, options?: PromptOptions): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.prompt(text, options);\n\tconst expandPromptTemplates = options?.expandPromptTemplates ?? true;\n\tconst preflightResult = options?.preflightResult;\n\tconst workflowDelivery = (options as PromptOptionsWithWorkflowDelivery | undefined)?.__workflowDelivery;\n\tlet messages: AgentMessage[] | undefined;\n\n\ttry {\n\t\t// Authorize workflow delivery before commands or input extensions can perform side effects.\n\t\t// A later terminal transition cannot retroactively reject input accepted at this boundary.\n\t\tworkflowDelivery?.beforeDelivery?.();\n\t\t// Registered slash commands execute without releasing ordinary queued work.\n\t\t// Unknown slash input continues through the normal paused admission path.\n\t\tif (expandPromptTemplates && (await tryExecuteSessionSlashCommand(this, text))) {\n\t\t\tworkflowDelivery?.delivered?.(\"handled\");\n\t\t\tpreflightResult?.(true);\n\t\t\treturn;\n\t\t}\n\t\t// A controlled pause is an admission gate, including the idle gap after\n\t\t// abort settles. Preserve the raw user payload without running input hooks,\n\t\t// compaction, or a provider turn; explicit resume makes it eligible again.\n\t\tif (this._queuedMessagesPaused) {\n\t\t\tconst delivery = options?.streamingBehavior === \"followUp\" ? \"followUp\" : \"steer\";\n\t\t\tif (delivery === \"followUp\") await this._queueFollowUp(text, options?.images);\n\t\t\telse await this._queueSteer(text, options?.images);\n\t\t\tworkflowDelivery?.delivered?.(delivery);\n\t\t\tpreflightResult?.(true);\n\t\t\treturn;\n\t\t}\n\n\t\t// Emit input event for extension interception (before skill/template expansion)\n\t\tlet currentText = text;\n\t\tlet currentImages = options?.images;\n\t\tif (this._extensionRunner.hasHandlers(\"input\")) {\n\t\t\tconst inputResult = await this._extensionRunner.emitInput(\n\t\t\t\tcurrentText,\n\t\t\t\tcurrentImages,\n\t\t\t\toptions?.source ?? \"interactive\",\n\t\t\t\tthis.isStreaming ? options?.streamingBehavior : undefined,\n\t\t\t);\n\t\t\tif (inputResult.action === \"handled\") {\n\t\t\t\tworkflowDelivery?.delivered?.(\"handled\");\n\t\t\t\tpreflightResult?.(true);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (inputResult.action === \"transform\") {\n\t\t\t\tcurrentText = inputResult.text;\n\t\t\t\tcurrentImages = inputResult.images ?? currentImages;\n\t\t\t}\n\t\t}\n\n\t\t// Expand skill commands (/skill:name args) and prompt templates (/template args)\n\t\tlet expandedText = currentText;\n\t\tif (expandPromptTemplates) {\n\t\t\texpandedText = this._expandSkillCommand(expandedText);\n\t\t\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\t\t}\n\n\t\t// If streaming, queue via steer() or followUp() based on option\n\t\tif (this.isStreaming) {\n\t\t\tif (!options?.streamingBehavior) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t\"Agent is already processing. Specify streamingBehavior ('steer' or 'followUp') to queue the message.\",\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (options.streamingBehavior === \"followUp\") {\n\t\t\t\tawait this._queueFollowUp(expandedText, currentImages);\n\t\t\t} else {\n\t\t\t\tawait this._queueSteer(expandedText, currentImages);\n\t\t\t}\n\t\t\tworkflowDelivery?.delivered?.(options.streamingBehavior);\n\t\t\tpreflightResult?.(true);\n\t\t\treturn;\n\t\t}\n\n\t\t// Flush any pending bash messages before the new prompt\n\t\tthis._flushPendingBashMessages();\n\n\t\t// Validate model\n\t\tif (!this.model) {\n\t\t\tthrow new Error(formatNoModelSelectedMessage());\n\t\t}\n\n\t\t// Defensive guard: a model that never resolved to a real provider\n\t\t// (for example an unknown/unresolved model id that reached this path\n\t\t// as a bare string) has no `provider`, which would otherwise fail deep\n\t\t// in auth resolution as the confusing \"No API key found for undefined\".\n\t\t// Surface a clear, accurate \"unknown model\" error instead.\n\t\tconst resolvedProvider = (this.model as { provider?: unknown }).provider;\n\t\tif (typeof resolvedProvider !== \"string\" || resolvedProvider.length === 0) {\n\t\t\tthrow new Error(formatUnresolvedModelMessage(this.model));\n\t\t}\n\n\t\tif (!this._modelRuntime.hasConfiguredAuth(this.model.provider)) {\n\t\t\t// A failed credential-store load (for example auth.json briefly locked\n\t\t\t// by a concurrent process, or invalid JSON) leaves an empty in-memory\n\t\t\t// credential set. That would otherwise be misreported here as\n\t\t\t// \"No API key found\" even though the credentials exist on disk. Surface\n\t\t\t// the real load failure instead so configured providers are not falsely\n\t\t\t// reported as unauthenticated (issue #1431).\n\t\t\tconst isOAuth = this._modelRuntime.isUsingOAuth(this.model.provider);\n\t\t\tif (isOAuth) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Authentication failed for \"${this.model.provider}\". ` +\n\t\t\t\t\t\t`Credentials may have expired or network is unavailable. ` +\n\t\t\t\t\t\t`Run '/login ${this.model.provider}' to re-authenticate.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthrow new Error(formatNoApiKeyFoundMessage(this.model.provider));\n\t\t}\n\n\t\t// Check if we need to compact before sending (catches aborted responses)\n\t\tconst lastAssistant = this._findLastAssistantMessage();\n\t\tif (lastAssistant) {\n\t\t\tawait this._checkCompaction(lastAssistant, false);\n\t\t}\n\n\t\t// Build messages array (custom message if any, then user message)\n\t\tmessages = [];\n\n\t\t// Add user message\n\t\tconst userContent: (TextContent | ImageContent)[] = [{ type: \"text\", text: expandedText }];\n\t\tif (currentImages) {\n\t\t\tuserContent.push(...currentImages);\n\t\t}\n\t\tmessages.push({\n\t\t\trole: \"user\",\n\t\t\tcontent: userContent,\n\t\t\ttimestamp: Date.now(),\n\t\t});\n\n\t\t// Inject any pending \"nextTurn\" messages as context alongside the user message\n\t\tfor (const msg of this._pendingNextTurnMessages) {\n\t\t\tmessages.push(msg);\n\t\t}\n\t\tthis._pendingNextTurnMessages = [];\n\n\t\t// Emit before_agent_start extension event\n\t\tconst result = await this._extensionRunner.emitBeforeAgentStart(\n\t\t\texpandedText,\n\t\t\tcurrentImages,\n\t\t\tthis._baseSystemPrompt,\n\t\t\tthis._baseSystemPromptOptions,\n\t\t);\n\t\t// Add all custom messages from extensions\n\t\tif (result?.messages) {\n\t\t\tfor (const msg of result.messages) {\n\t\t\t\tmessages.push({\n\t\t\t\t\trole: \"custom\",\n\t\t\t\t\tcustomType: msg.customType,\n\t\t\t\t\tcontent: msg.content ?? [],\n\t\t\t\t\tdisplay: msg.display,\n\t\t\t\t\tdetails: msg.details,\n\t\t\t\t\ttimestamp: Date.now(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Apply extension-modified system prompt, or reset to base\n\t\tif (result?.systemPrompt !== undefined) {\n\t\t\tthis._systemPromptOverride = result.systemPrompt;\n\t\t\tthis.agent.state.systemPrompt = result.systemPrompt;\n\t\t} else {\n\t\t\t// Ensure we're using the base prompt (in case previous turn had modifications)\n\t\t\tthis._systemPromptOverride = undefined;\n\t\t\tthis.agent.state.systemPrompt = this._baseSystemPrompt;\n\t\t}\n\t} catch (error) {\n\t\tpreflightResult?.(false);\n\t\tthrow error;\n\t}\n\n\tpreflightResult?.(true);\n\tconst turn = this._runAgentPrompt(messages, workflowDelivery?.promptStarted);\n\tworkflowDelivery?.delivered?.(\"prompt\");\n\tawait turn;\n}\n\nexport async function _runAgentPrompt(\n\tthis: AgentSession,\n\tmessages: AgentMessage | AgentMessage[],\n\tpromptStarted?: () => void,\n): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) {\n\t\tif (owner._queuedMessagesPaused) {\n\t\t\tconst items = Array.isArray(messages) ? messages : [messages];\n\t\t\tfor (const message of items) owner._queueAgentMessage(message, \"steer\");\n\t\t\treturn;\n\t\t}\n\t\treturn owner._runAgentPrompt(messages, promptStarted);\n\t}\n\ttry {\n\t\tconst turn = this.agent.prompt(messages);\n\t\tif (this.isStreaming) promptStarted?.();\n\t\tawait turn;\n\t\tawait this.waitForRetry();\n\t\tawait this._continueQueuedAgentMessages();\n\t\tawait this._awaitPendingPostCompactionContinuation();\n\t} finally {\n\t\tthis._systemPromptOverride = undefined;\n\t\tawait this._agentEventQueue;\n\t\tif (typeof this._extensionRunner?.emit === \"function\") {\n\t\t\tawait this._extensionRunner.emit({ type: \"agent_settled\" });\n\t\t}\n\t\tthis._emit?.({ type: \"agent_settled\" });\n\t}\n}\n\nexport async function _runAgentContinue(this: AgentSession): Promise<void> {\n\tawait this.agent.continue();\n\tawait this.waitForRetry();\n\tawait this._continueQueuedAgentMessages();\n}\n\nexport async function _continueQueuedAgentMessages(this: AgentSession): Promise<void> {\n\tawait this._agentEventQueue;\n\n\twhile (!this._queuedMessagesPaused && this.agent.hasQueuedMessages()) {\n\t\tawait this.agent.continue();\n\t\tawait this.waitForRetry();\n\t\tawait this._agentEventQueue;\n\t}\n}\n\n/**\n * Try to execute a built-in slash command. Returns true if command was found and executed.\n */\n\nexport async function _tryExecuteBuiltinSlashCommand(this: AgentSession, text: string): Promise<boolean> {\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tif (commandName !== ATOMIC_GUIDE_COMMAND_NAME) return false;\n\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1);\n\tconst mode = normalizeAtomicGuideMode(args);\n\tif (mode === \"help\" && this._extensionUIContext) {\n\t\tconst choice = await this._extensionUIContext.select(\"Atomic. Select where to start:\", [\n\t\t\t...ATOMIC_GUIDE_HELP_CHOICES,\n\t\t]);\n\t\tif (!choice || !isAtomicGuideHelpChoice(choice)) return true;\n\t\tawait this.sendCustomMessage(\n\t\t\t{\n\t\t\t\tcustomType: \"atomic\",\n\t\t\t\tcontent: getAtomicGuideMessage(atomicGuideModeForChoice(choice), this._cwd),\n\t\t\t\tdisplay: true,\n\t\t\t},\n\t\t\t{ triggerTurn: false },\n\t\t);\n\t\treturn true;\n\t}\n\n\tawait this.sendCustomMessage(\n\t\t{\n\t\t\tcustomType: \"atomic\",\n\t\t\tcontent: getAtomicGuideMessage(mode, this._cwd),\n\t\t\tdisplay: true,\n\t\t},\n\t\t{ triggerTurn: false },\n\t);\n\treturn true;\n}\n\n/**\n * Try to execute an extension command. Returns true if command was found and executed.\n */\n\nexport async function _tryExecuteExtensionCommand(this: AgentSession, text: string): Promise<boolean> {\n\t// Parse command name and args\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1);\n\n\tconst command = this._extensionRunner.getCommand(commandName);\n\tif (!command) return false;\n\n\t// Get command context from extension runner (includes session control methods)\n\tconst ctx = this._extensionRunner.createCommandContext();\n\n\ttry {\n\t\tawait runCallback(\n\t\t\t{ kind: \"extension.hook\", name: `command:${commandName}`, sourcePath: command.sourceInfo.path },\n\t\t\t() => command.handler(args, ctx),\n\t\t);\n\t\treturn true;\n\t} catch (err) {\n\t\t// Emit error via extension runner\n\t\tthis._extensionRunner.emitError({\n\t\t\textensionPath: `command:${commandName}`,\n\t\t\tevent: \"command\",\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t});\n\t\treturn true;\n\t}\n}\n\n/**\n * Expand skill commands (/skill:name args) to their full content.\n * Returns the expanded text, or the original text if not a skill command or skill not found.\n * Emits errors via extension runner if file read fails.\n */\n\nexport function _expandSkillCommand(this: AgentSession, text: string): string {\n\tif (!text.startsWith(\"/skill:\")) return text;\n\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst skillName = spaceIndex === -1 ? text.slice(7) : text.slice(7, spaceIndex);\n\tconst args = spaceIndex === -1 ? \"\" : text.slice(spaceIndex + 1).trim();\n\n\tconst skill = this.resourceLoader.getSkills().skills.find((s) => s.name === skillName);\n\tif (!skill) return text; // Unknown skill, pass through\n\n\ttry {\n\t\tconst content = readFileSync(skill.filePath, \"utf-8\");\n\t\tconst body = stripFrontmatter(content).trim();\n\t\tconst skillBlock = `<skill name=\"${skill.name}\" location=\"${skill.filePath}\">\\nReferences are relative to ${skill.baseDir}.\\n\\n${body}\\n</skill>`;\n\t\treturn args ? `${skillBlock}\\n\\n${args}` : skillBlock;\n\t} catch (err) {\n\t\t// Emit error like extension commands do\n\t\tthis._extensionRunner.emitError({\n\t\t\textensionPath: skill.filePath,\n\t\t\tevent: \"skill_expansion\",\n\t\t\terror: err instanceof Error ? err.message : String(err),\n\t\t});\n\t\treturn text; // Return original on error\n\t}\n}\n\n/**\n * Queue a steering message while the agent is running.\n * Delivered after the current assistant turn finishes executing its tool calls,\n * before the next LLM call.\n * Expands skill commands and prompt templates. Errors on extension commands.\n * @param images Optional image attachments to include with the message\n * @throws Error if text is an extension command\n */\n\nexport async function steer(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\t// Check for extension commands (cannot be queued)\n\tif (text.startsWith(\"/\")) {\n\t\tthis._throwIfExtensionCommand(text);\n\t}\n\n\t// Expand skill commands and prompt templates\n\tlet expandedText = this._expandSkillCommand(text);\n\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\tawait this._queueSteer(expandedText, images);\n}\n\n/**\n * Queue a follow-up message to be processed after the agent finishes.\n * Delivered only when agent has no more tool calls or steering messages.\n * Expands skill commands and prompt templates. Errors on extension commands.\n * @param images Optional image attachments to include with the message\n * @throws Error if text is an extension command\n */\n\nexport async function followUp(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\t// Check for extension commands (cannot be queued)\n\tif (text.startsWith(\"/\")) {\n\t\tthis._throwIfExtensionCommand(text);\n\t}\n\n\t// Expand skill commands and prompt templates\n\tlet expandedText = this._expandSkillCommand(text);\n\texpandedText = expandPromptTemplate(expandedText, [...this.promptTemplates]);\n\n\tawait this._queueFollowUp(expandedText, images);\n}\n\n/**\n * Internal: Queue a steering message (already expanded, no extension command check).\n */\n\nexport async function sendUserMessage(\n\tthis: AgentSession,\n\tcontent: string | (TextContent | ImageContent)[],\n\toptions?: {\n\t\tdeliverAs?: \"steer\" | \"followUp\";\n\t\t__workflowDelivery?: PromptOptionsWithWorkflowDelivery[\"__workflowDelivery\"];\n\t},\n): Promise<void> {\n\t// Normalize content to text string + optional images\n\tlet text: string;\n\tlet images: ImageContent[] | undefined;\n\n\tif (typeof content === \"string\") {\n\t\ttext = content;\n\t} else {\n\t\tconst textParts: string[] = [];\n\t\timages = [];\n\t\tfor (const part of content) {\n\t\t\tif (part.type === \"text\") {\n\t\t\t\ttextParts.push(part.text);\n\t\t\t} else {\n\t\t\t\timages.push(part);\n\t\t\t}\n\t\t}\n\t\ttext = textParts.join(\"\\n\");\n\t\tif (images.length === 0) images = undefined;\n\t}\n\n\t// Use prompt() with expandPromptTemplates: false to skip command handling and template expansion.\n\t// The private delivery hook lets workflow routing report and gate the branch\n\t// selected after asynchronous input/compaction extension preflight.\n\tawait this.prompt(text, {\n\t\texpandPromptTemplates: false,\n\t\tstreamingBehavior: options?.deliverAs,\n\t\timages,\n\t\tsource: \"extension\",\n\t\t__workflowDelivery: options?.__workflowDelivery,\n\t} as PromptOptionsWithWorkflowDelivery);\n}\n\n/**\n * Clear all queued messages and return them.\n * Useful for restoring to editor when user aborts.\n * @returns Object with steering and followUp arrays\n */\n\nexport const agentSessionPromptMethods = {\n\tprompt,\n\t_runAgentPrompt,\n\t_runAgentContinue,\n\t_continueQueuedAgentMessages,\n\t_tryExecuteBuiltinSlashCommand,\n\t_tryExecuteExtensionCommand,\n\t_expandSkillCommand,\n\tsteer,\n\tfollowUp,\n\tsendUserMessage,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-queue-pause.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-queue-pause.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAe9F,yFAAyF;AACzF,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAChD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAK3B;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAO5D;AAED,0FAA0F;AAC1F,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,YAAY,EAClB,aAAa,CAAC,EAAE,MAAM,IAAI,GACxB,OAAO,CAAC,OAAO,CAAC,CA0BlB;AAED,iGAAiG;AACjG,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmBvD"}
1
+ {"version":3,"file":"agent-session-queue-pause.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-queue-pause.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAkB9F,yFAAyF;AACzF,wBAAgB,2BAA2B,CAC1C,UAAU,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,EAAE,GAChD,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAG3B;AAED,uFAAuF;AACvF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAU5D;AAED,0FAA0F;AAC1F,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CA0B3G;AAED,iGAAiG;AACjG,wBAAgB,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBvD"}
@@ -6,7 +6,9 @@ async function settlePauseAbortBoundaries(boundaries) {
6
6
  await boundary;
7
7
  }
8
8
  catch (error) {
9
- throwFirstFailure ??= () => { throw error; };
9
+ throwFirstFailure ??= () => {
10
+ throw error;
11
+ };
10
12
  }
11
13
  }));
12
14
  throwFirstFailure?.();
@@ -19,8 +21,10 @@ export function composePauseAbortBoundaries(boundaries) {
19
21
  /** Synchronously hold raw queue entries before pausing and aborting an active turn. */
20
22
  export function pauseQueuedMessages() {
21
23
  const owner = resolveWorkflowStageDeliveryTarget(this);
22
- if (owner !== this)
23
- return owner.pauseQueuedMessages();
24
+ if (owner !== this) {
25
+ owner.pauseQueuedMessages();
26
+ return;
27
+ }
24
28
  if (this._queuedMessagesPaused)
25
29
  return;
26
30
  this._queuedMessagesPaused = true;
@@ -72,10 +76,7 @@ export function abort() {
72
76
  await this._agentEventQueue;
73
77
  })();
74
78
  if (this._queuedMessagesPaused) {
75
- const tracked = composePauseAbortBoundaries([
76
- this._queuedMessagesPauseAbortBoundary,
77
- boundary,
78
- ]);
79
+ const tracked = composePauseAbortBoundaries([this._queuedMessagesPauseAbortBoundary, boundary]);
79
80
  if (tracked === undefined)
80
81
  return boundary;
81
82
  this._queuedMessagesPauseAbortBoundary = tracked;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-queue-pause.js","sourceRoot":"","sources":["../../src/core/agent-session-queue-pause.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\n\nasync function settlePauseAbortBoundaries(boundaries: readonly Promise<void>[]): Promise<void> {\n\tlet throwFirstFailure: (() => never) | undefined;\n\tawait Promise.all(boundaries.map(async (boundary) => {\n\t\ttry {\n\t\t\tawait boundary;\n\t\t} catch (error) {\n\t\t\tthrowFirstFailure ??= () => { throw error; };\n\t\t}\n\t}));\n\tthrowFirstFailure?.();\n}\n\n/** Compose pause settlement without exposing an early rejection from one constituent. */\nexport function composePauseAbortBoundaries(\n\tboundaries: readonly (Promise<void> | undefined)[],\n): Promise<void> | undefined {\n\tconst pending = boundaries.filter(\n\t\t(boundary): boundary is Promise<void> => boundary !== undefined,\n\t);\n\treturn pending.length === 0 ? undefined : settlePauseAbortBoundaries(pending);\n}\n\n/** Synchronously hold raw queue entries before pausing and aborting an active turn. */\nexport function pauseQueuedMessages(this: AgentSession): void {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.pauseQueuedMessages();\n\tif (this._queuedMessagesPaused) return;\n\tthis._queuedMessagesPaused = true;\n\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\tthis._ensureActiveInterruptQueueHold();\n}\n\n/** Release a pause hold without starting a turn; report whether raw work was released. */\nexport async function resumeQueuedMessages(\n\tthis: AgentSession,\n\tbeforeRelease?: () => void,\n): Promise<boolean> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.resumeQueuedMessages(beforeRelease);\n\tif (!this._queuedMessagesPaused) return false;\n\tconst abortBoundary = this._queuedMessagesPauseAbortBoundary;\n\tif (abortBoundary !== undefined) {\n\t\ttry {\n\t\t\tawait abortBoundary;\n\t\t} catch (error) {\n\t\t\t// Keep the hold closed across a failed abort. The rejecting explicit\n\t\t\t// resume observes that boundary and retires it so a later resume can retry.\n\t\t\tif (this._queuedMessagesPauseAbortBoundary === abortBoundary) {\n\t\t\t\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\tif (this._pendingInterruptDeliveries > 0) await this._interruptDeliveryQueue;\n\tif (!this._queuedMessagesPaused) return false;\n\tbeforeRelease?.();\n\tconst hold = this._activeInterruptQueueHold;\n\tconst released = hold !== undefined && (hold.steering.length > 0 || hold.followUp.length > 0);\n\tthis._queuedMessagesPaused = false;\n\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\tthis._restoreAndClearActiveInterruptQueueHold();\n\treturn released;\n}\n\n/** Abort an ordinary turn and synchronously publish its pause-associated settlement boundary. */\nexport function abort(this: AgentSession): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.abort();\n\tthis.abortRetry();\n\tthis.agent.abort();\n\tconst boundary = (async () => {\n\t\tawait this.agent.waitForIdle();\n\t\tawait this._agentEventQueue;\n\t})();\n\tif (this._queuedMessagesPaused) {\n\t\tconst tracked = composePauseAbortBoundaries([\n\t\t\tthis._queuedMessagesPauseAbortBoundary,\n\t\t\tboundary,\n\t\t]);\n\t\tif (tracked === undefined) return boundary;\n\t\tthis._queuedMessagesPauseAbortBoundary = tracked;\n\t\tvoid tracked.catch(() => {});\n\t}\n\treturn boundary;\n}\n"]}
1
+ {"version":3,"file":"agent-session-queue-pause.js","sourceRoot":"","sources":["../../src/core/agent-session-queue-pause.ts"],"names":[],"mappings":"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","sourcesContent":["import { resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\n\nasync function settlePauseAbortBoundaries(boundaries: readonly Promise<void>[]): Promise<void> {\n\tlet throwFirstFailure: (() => never) | undefined;\n\tawait Promise.all(\n\t\tboundaries.map(async (boundary) => {\n\t\t\ttry {\n\t\t\t\tawait boundary;\n\t\t\t} catch (error) {\n\t\t\t\tthrowFirstFailure ??= () => {\n\t\t\t\t\tthrow error;\n\t\t\t\t};\n\t\t\t}\n\t\t}),\n\t);\n\tthrowFirstFailure?.();\n}\n\n/** Compose pause settlement without exposing an early rejection from one constituent. */\nexport function composePauseAbortBoundaries(\n\tboundaries: readonly (Promise<void> | undefined)[],\n): Promise<void> | undefined {\n\tconst pending = boundaries.filter((boundary): boundary is Promise<void> => boundary !== undefined);\n\treturn pending.length === 0 ? undefined : settlePauseAbortBoundaries(pending);\n}\n\n/** Synchronously hold raw queue entries before pausing and aborting an active turn. */\nexport function pauseQueuedMessages(this: AgentSession): void {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) {\n\t\towner.pauseQueuedMessages();\n\t\treturn;\n\t}\n\tif (this._queuedMessagesPaused) return;\n\tthis._queuedMessagesPaused = true;\n\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\tthis._ensureActiveInterruptQueueHold();\n}\n\n/** Release a pause hold without starting a turn; report whether raw work was released. */\nexport async function resumeQueuedMessages(this: AgentSession, beforeRelease?: () => void): Promise<boolean> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.resumeQueuedMessages(beforeRelease);\n\tif (!this._queuedMessagesPaused) return false;\n\tconst abortBoundary = this._queuedMessagesPauseAbortBoundary;\n\tif (abortBoundary !== undefined) {\n\t\ttry {\n\t\t\tawait abortBoundary;\n\t\t} catch (error) {\n\t\t\t// Keep the hold closed across a failed abort. The rejecting explicit\n\t\t\t// resume observes that boundary and retires it so a later resume can retry.\n\t\t\tif (this._queuedMessagesPauseAbortBoundary === abortBoundary) {\n\t\t\t\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\t\t\t}\n\t\t\tthrow error;\n\t\t}\n\t}\n\tif (this._pendingInterruptDeliveries > 0) await this._interruptDeliveryQueue;\n\tif (!this._queuedMessagesPaused) return false;\n\tbeforeRelease?.();\n\tconst hold = this._activeInterruptQueueHold;\n\tconst released = hold !== undefined && (hold.steering.length > 0 || hold.followUp.length > 0);\n\tthis._queuedMessagesPaused = false;\n\tthis._queuedMessagesPauseAbortBoundary = undefined;\n\tthis._restoreAndClearActiveInterruptQueueHold();\n\treturn released;\n}\n\n/** Abort an ordinary turn and synchronously publish its pause-associated settlement boundary. */\nexport function abort(this: AgentSession): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.abort();\n\tthis.abortRetry();\n\tthis.agent.abort();\n\tconst boundary = (async () => {\n\t\tawait this.agent.waitForIdle();\n\t\tawait this._agentEventQueue;\n\t})();\n\tif (this._queuedMessagesPaused) {\n\t\tconst tracked = composePauseAbortBoundaries([this._queuedMessagesPauseAbortBoundary, boundary]);\n\t\tif (tracked === undefined) return boundary;\n\t\tthis._queuedMessagesPauseAbortBoundary = tracked;\n\t\tvoid tracked.catch(() => {});\n\t}\n\treturn boundary;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-retry.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-retry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAO,gBAAgB,EAAS,MAAM,8BAA8B,CAAC;AAMjF,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAoD9F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsCxF;AAED;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsBzF;AAmCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsBvF;AAED;;;GAGG;AAEH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAkE/G;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4E3G;AAED;;GAEG;AAEH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAInD;AAED;;;GAGG;AAEH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,kDAAkD;AAElD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE9E;AAMD;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;CASpC,CAAC"}
1
+ {"version":3,"file":"agent-session-retry.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-retry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAO,gBAAgB,EAAS,MAAM,8BAA8B,CAAC;AAGjF,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AA6E9F,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsCxF;AAED;;;;;;;;;;;;;GAaG;AAEH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsBzF;AAmCD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAsBvF;AAED;;;GAGG;AAEH,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CAgF/G;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4E3G;AAED;;GAEG;AAEH,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAInD;AAED;;;GAGG;AAEH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAOpE;AAED,kDAAkD;AAElD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAE9E;AAMD;;;;;;;GAOG;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;CASpC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { isRetryableAssistantError } from "@earendil-works/pi-ai";
2
2
  import { clampThinkingLevel, isContextOverflow, modelsAreEqual } from "@earendil-works/pi-ai/compat";
3
3
  import { sleep } from "../utils/sleep.js";
4
+ import { isCodexTokenInvalidationError } from "./codex-errors.js";
4
5
  import { DEFAULT_THINKING_LEVEL } from "./defaults.js";
5
6
  import { fallbackKey, resolveFallbackModel as resolveConfiguredFallbackModel } from "./fallback-models.js";
6
- import { isCodexTokenInvalidationError } from "./codex-errors.js";
7
7
  function modelLabel(model) {
8
8
  return model ? `${model.provider}/${model.id}` : "unknown model";
9
9
  }
@@ -27,7 +27,11 @@ function hasProviderTransportDiagnostic(value, seen = new Set(), includeMessageF
27
27
  return true;
28
28
  }
29
29
  }
30
- for (const nested of [record.error, record.cause, ...(Array.isArray(record.diagnostics) ? record.diagnostics : [])]) {
30
+ for (const nested of [
31
+ record.error,
32
+ record.cause,
33
+ ...(Array.isArray(record.diagnostics) ? record.diagnostics : []),
34
+ ]) {
31
35
  if (hasProviderTransportDiagnostic(nested, seen, true))
32
36
  return true;
33
37
  }
@@ -44,10 +48,15 @@ function hasProviderModelUnavailableDiagnostic(value, seen = new Set(), includeM
44
48
  ? [record.type, record.code, record.name, record.message, record.errorMessage]
45
49
  : [record.type, record.code, record.name, record.errorMessage];
46
50
  for (const field of fields) {
47
- if (typeof field === "string" && /model(?:[_\s-].*)?(?:not[_\s-]?found|unavailable|unknown|disabled)|model[_-]?not[_-]?found/i.test(field))
51
+ if (typeof field === "string" &&
52
+ /model(?:[_\s-].*)?(?:not[_\s-]?found|unavailable|unknown|disabled)|model[_-]?not[_-]?found/i.test(field))
48
53
  return true;
49
54
  }
50
- for (const nested of [record.error, record.cause, ...(Array.isArray(record.diagnostics) ? record.diagnostics : [])]) {
55
+ for (const nested of [
56
+ record.error,
57
+ record.cause,
58
+ ...(Array.isArray(record.diagnostics) ? record.diagnostics : []),
59
+ ]) {
51
60
  if (hasProviderModelUnavailableDiagnostic(nested, seen, true))
52
61
  return true;
53
62
  }
@@ -202,7 +211,10 @@ export async function _trySwitchToFallbackModel(message) {
202
211
  if (this._fallbackAttemptedKeys.has(key))
203
212
  continue;
204
213
  const nextModel = candidate.model;
205
- const nextLevel = clampThinkingLevel(nextModel, candidate.thinkingLevel ?? this.settingsManager.getDefaultThinkingLevel() ?? this.thinkingLevel ?? DEFAULT_THINKING_LEVEL);
214
+ const nextLevel = clampThinkingLevel(nextModel, candidate.thinkingLevel ??
215
+ this.settingsManager.getDefaultThinkingLevel() ??
216
+ this.thinkingLevel ??
217
+ DEFAULT_THINKING_LEVEL);
206
218
  if (modelsAreEqual(candidate.model, fromModel) && nextLevel === this.thinkingLevel)
207
219
  continue;
208
220
  if (this._retryAttempt > 0) {
@@ -241,14 +253,25 @@ export async function _trySwitchToFallbackModel(message) {
241
253
  // fallback exhaustion emits the failure end event.
242
254
  }, (error) => {
243
255
  const finalError = error instanceof Error ? error.message : String(error);
244
- this._emit({ type: "model_fallback_end", success: false, from: modelLabel(fromModel), to: modelLabel(nextModel), finalError });
256
+ this._emit({
257
+ type: "model_fallback_end",
258
+ success: false,
259
+ from: modelLabel(fromModel),
260
+ to: modelLabel(nextModel),
261
+ finalError,
262
+ });
245
263
  this._retryAttempt = 0;
246
264
  this._resolveRetry();
247
265
  });
248
266
  }, 0);
249
267
  return true;
250
268
  }
251
- this._emit({ type: "model_fallback_end", success: false, from: modelLabel(fromModel), finalError: message.errorMessage });
269
+ this._emit({
270
+ type: "model_fallback_end",
271
+ success: false,
272
+ from: modelLabel(fromModel),
273
+ finalError: message.errorMessage,
274
+ });
252
275
  return false;
253
276
  }
254
277
  export async function _handleRetryableError(message) {