@bastani/atomic 0.9.11-alpha.4 → 0.9.11-alpha.6

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 (1032) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/README.md +12 -5
  3. package/dist/builtin/intercom/package.json +2 -2
  4. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  5. package/dist/builtin/mcp/README.md +3 -3
  6. package/dist/builtin/mcp/cli.js +0 -1
  7. package/dist/builtin/mcp/config.ts +0 -2
  8. package/dist/builtin/mcp/package.json +3 -3
  9. package/dist/builtin/mcp/types.ts +0 -1
  10. package/dist/builtin/subagents/CHANGELOG.md +19 -0
  11. package/dist/builtin/subagents/README.md +10 -1
  12. package/dist/builtin/subagents/agents/code-simplifier.md +47 -102
  13. package/dist/builtin/subagents/agents/codebase-analyzer.md +27 -130
  14. package/dist/builtin/subagents/agents/codebase-locator.md +24 -83
  15. package/dist/builtin/subagents/agents/codebase-online-researcher.md +60 -259
  16. package/dist/builtin/subagents/agents/codebase-pattern-finder.md +29 -207
  17. package/dist/builtin/subagents/agents/codebase-research-analyzer.md +28 -150
  18. package/dist/builtin/subagents/agents/codebase-research-locator.md +21 -118
  19. package/dist/builtin/subagents/agents/debugger.md +29 -65
  20. package/dist/builtin/subagents/agents/worker.md +23 -30
  21. package/dist/builtin/subagents/package.json +4 -4
  22. package/dist/builtin/subagents/prompts/gather-context-and-clarify.md +18 -11
  23. package/dist/builtin/subagents/prompts/parallel-cleanup.md +34 -33
  24. package/dist/builtin/subagents/prompts/parallel-context-build.md +22 -36
  25. package/dist/builtin/subagents/prompts/parallel-handoff-plan.md +20 -52
  26. package/dist/builtin/subagents/prompts/parallel-research.md +17 -41
  27. package/dist/builtin/subagents/prompts/parallel-review.md +23 -28
  28. package/dist/builtin/subagents/prompts/review-loop.md +18 -27
  29. package/dist/builtin/subagents/skills/subagent/SKILL.md +6 -6
  30. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +4 -1
  31. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +23 -4
  32. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +2 -0
  33. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +10 -0
  34. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +1 -0
  35. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +2 -0
  36. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +8 -0
  37. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +1 -0
  38. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +6 -0
  39. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +2 -0
  40. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +7 -0
  41. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +1 -0
  42. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +3 -0
  43. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +1 -2
  44. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +1 -0
  45. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +5 -3
  46. package/dist/builtin/subagents/src/shared/settings.ts +4 -0
  47. package/dist/builtin/web-access/package.json +2 -2
  48. package/dist/builtin/workflows/CHANGELOG.md +53 -0
  49. package/dist/builtin/workflows/README.md +72 -70
  50. package/dist/builtin/workflows/ambient.d.ts +0 -5
  51. package/dist/builtin/workflows/builtin/adversarial-verification-prompts.ts +7 -4
  52. package/dist/builtin/workflows/builtin/adversarial-verification-runner.ts +1 -1
  53. package/dist/builtin/workflows/builtin/adversarial-verification.ts +2 -1
  54. package/dist/builtin/workflows/builtin/classify-and-act-prompts.ts +5 -2
  55. package/dist/builtin/workflows/builtin/classify-and-act-runner.ts +5 -7
  56. package/dist/builtin/workflows/builtin/classify-and-act.ts +3 -2
  57. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-prompts.ts +6 -3
  58. package/dist/builtin/workflows/builtin/fan-out-and-synthesize-runner.ts +5 -5
  59. package/dist/builtin/workflows/builtin/fan-out-and-synthesize.ts +3 -2
  60. package/dist/builtin/workflows/builtin/generate-and-filter-prompts.ts +7 -4
  61. package/dist/builtin/workflows/builtin/generate-and-filter-runner.ts +6 -3
  62. package/dist/builtin/workflows/builtin/generate-and-filter.ts +3 -2
  63. package/dist/builtin/workflows/builtin/goal-artifacts.ts +1 -1
  64. package/dist/builtin/workflows/builtin/goal-models.ts +39 -39
  65. package/dist/builtin/workflows/builtin/goal-orchestrator-prompts.ts +94 -0
  66. package/dist/builtin/workflows/builtin/goal-prompts.ts +66 -286
  67. package/dist/builtin/workflows/builtin/goal-reducer.ts +1 -1
  68. package/dist/builtin/workflows/builtin/goal-runner.ts +72 -116
  69. package/dist/builtin/workflows/builtin/goal.ts +9 -8
  70. package/dist/builtin/workflows/builtin/index.d.ts +17 -112
  71. package/dist/builtin/workflows/builtin/index.ts +1 -2
  72. package/dist/builtin/workflows/builtin/loop-until-done-prompts.ts +20 -12
  73. package/dist/builtin/workflows/builtin/loop-until-done-runner.ts +3 -0
  74. package/dist/builtin/workflows/builtin/loop-until-done.ts +3 -2
  75. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +52 -55
  76. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +45 -52
  77. package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +41 -46
  78. package/dist/builtin/workflows/builtin/open-claude-design-utils.ts +16 -21
  79. package/dist/builtin/workflows/builtin/open-claude-design.ts +2 -1
  80. package/dist/builtin/workflows/builtin/ralph-core.ts +61 -57
  81. package/dist/builtin/workflows/builtin/ralph-forked-prompts.ts +41 -45
  82. package/dist/builtin/workflows/builtin/ralph-models.ts +33 -43
  83. package/dist/builtin/workflows/builtin/ralph-reviewer-prompt.ts +35 -117
  84. package/dist/builtin/workflows/builtin/ralph-runner.ts +81 -108
  85. package/dist/builtin/workflows/builtin/ralph.ts +2 -1
  86. package/dist/builtin/workflows/builtin/shared-prompts.ts +111 -80
  87. package/dist/builtin/workflows/builtin/steering-context.ts +51 -0
  88. package/dist/builtin/workflows/builtin/tournament-prompts.ts +21 -12
  89. package/dist/builtin/workflows/builtin/tournament-runner.ts +3 -0
  90. package/dist/builtin/workflows/builtin/tournament.ts +3 -2
  91. package/dist/builtin/workflows/package.json +2 -2
  92. package/dist/builtin/workflows/skills/create-spec/SKILL.md +1 -1
  93. package/dist/builtin/workflows/skills/impeccable/reference/hooks.md +6 -8
  94. package/dist/builtin/workflows/skills/impeccable/reference/live.md +3 -4
  95. package/dist/builtin/workflows/skills/impeccable/scripts/hook-admin.mjs +2 -20
  96. package/dist/builtin/workflows/skills/impeccable/scripts/hook-lib.mjs +4 -42
  97. package/dist/builtin/workflows/skills/impeccable/scripts/hook.mjs +3 -3
  98. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser.js +2 -3
  99. package/dist/builtin/workflows/skills/impeccable/scripts/live-inject.mjs +0 -1
  100. package/dist/builtin/workflows/skills/impeccable/scripts/live-poll.mjs +2 -2
  101. package/dist/builtin/workflows/skills/impeccable/scripts/pin.mjs +4 -4
  102. package/dist/builtin/workflows/skills/prompt-engineer/SKILL.md +57 -252
  103. package/dist/builtin/workflows/skills/prompt-engineer/references/advanced_patterns.md +70 -226
  104. package/dist/builtin/workflows/skills/prompt-engineer/references/core_prompting.md +64 -103
  105. package/dist/builtin/workflows/skills/prompt-engineer/references/quality_improvement.md +81 -155
  106. package/dist/builtin/workflows/src/authoring.d.ts +5 -1
  107. package/dist/builtin/workflows/src/durable/backend.ts +68 -9
  108. package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +148 -0
  109. package/dist/builtin/workflows/src/durable/boundary-topology.ts +420 -0
  110. package/dist/builtin/workflows/src/durable/child-invocation.ts +14 -0
  111. package/dist/builtin/workflows/src/durable/child-primitive.ts +74 -44
  112. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +250 -0
  113. package/dist/builtin/workflows/src/durable/completed-catalog.ts +205 -131
  114. package/dist/builtin/workflows/src/durable/completed-inspection.ts +8 -2
  115. package/dist/builtin/workflows/src/durable/completed-subtree.ts +31 -0
  116. package/dist/builtin/workflows/src/durable/dbos-backend.ts +28 -24
  117. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +130 -3
  118. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +18 -0
  119. package/dist/builtin/workflows/src/durable/scoped-backend.ts +64 -17
  120. package/dist/builtin/workflows/src/durable/stage-primitive.ts +60 -60
  121. package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +234 -0
  122. package/dist/builtin/workflows/src/durable/stage-topology.ts +53 -0
  123. package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +49 -0
  124. package/dist/builtin/workflows/src/durable/tool-outcome.ts +120 -0
  125. package/dist/builtin/workflows/src/durable/tool-primitive.ts +367 -58
  126. package/dist/builtin/workflows/src/durable/types.ts +97 -0
  127. package/dist/builtin/workflows/src/durable/ui-primitive.ts +46 -0
  128. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +58 -0
  129. package/dist/builtin/workflows/src/engine/options.ts +1 -0
  130. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +19 -10
  131. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +11 -1
  132. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +190 -18
  133. package/dist/builtin/workflows/src/engine/run-terminal-event.ts +37 -0
  134. package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +50 -0
  135. package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +152 -0
  136. package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +87 -0
  137. package/dist/builtin/workflows/src/engine/run.ts +111 -110
  138. package/dist/builtin/workflows/src/engine/runtime.ts +15 -2
  139. package/dist/builtin/workflows/src/extension/extension-factory.ts +1 -0
  140. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +11 -0
  141. package/dist/builtin/workflows/src/extension/index.bundle.mjs +6599 -4776
  142. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +16 -5
  143. package/dist/builtin/workflows/src/extension/render-result.ts +16 -2
  144. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +3 -0
  145. package/dist/builtin/workflows/src/extension/runtime.ts +4 -0
  146. package/dist/builtin/workflows/src/extension/wiring.ts +3 -1
  147. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +1 -0
  148. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +9 -3
  149. package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +18 -3
  150. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +27 -9
  151. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +43 -0
  152. package/dist/builtin/workflows/src/extension/workflow-targets.ts +34 -30
  153. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +12 -5
  154. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +162 -63
  155. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +7 -1
  156. package/dist/builtin/workflows/src/runs/background/status.ts +18 -8
  157. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +3 -11
  158. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +24 -21
  159. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +1 -1
  160. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +30 -13
  161. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +102 -53
  162. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +13 -5
  163. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +26 -8
  164. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +11 -4
  165. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +4 -1
  166. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +7 -1
  167. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +35 -1
  168. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +136 -17
  169. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +12 -4
  170. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +35 -42
  171. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +5 -1
  172. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +195 -0
  173. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +0 -13
  174. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +14 -2
  175. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +3 -143
  176. package/dist/builtin/workflows/src/sdk-surface.ts +1 -1
  177. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +6 -11
  178. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +6 -11
  179. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +57 -6
  180. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +76 -11
  181. package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +206 -116
  182. package/dist/builtin/workflows/src/shared/intercom-group.ts +17 -10
  183. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +30 -0
  184. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +5 -0
  185. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +3 -3
  186. package/dist/builtin/workflows/src/shared/store-factory.ts +2 -0
  187. package/dist/builtin/workflows/src/shared/store-internal.ts +8 -0
  188. package/dist/builtin/workflows/src/shared/store-public-types.ts +8 -0
  189. package/dist/builtin/workflows/src/shared/store-run-methods.ts +9 -0
  190. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +2 -0
  191. package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +46 -0
  192. package/dist/builtin/workflows/src/shared/store-types.ts +34 -0
  193. package/dist/builtin/workflows/src/shared/types.ts +14 -24
  194. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +11 -5
  195. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +58 -0
  196. package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +53 -0
  197. package/dist/builtin/workflows/src/tui/graph-view-input.ts +2 -8
  198. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +11 -4
  199. package/dist/builtin/workflows/src/tui/graph-view-render.ts +1 -0
  200. package/dist/builtin/workflows/src/tui/graph-view-state.ts +27 -9
  201. package/dist/builtin/workflows/src/tui/graph-view-types.ts +4 -3
  202. package/dist/builtin/workflows/src/tui/node-card.ts +4 -3
  203. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +0 -4
  204. package/dist/builtin/workflows/src/tui/run-detail.ts +53 -17
  205. package/dist/builtin/workflows/src/tui/session-list.ts +8 -4
  206. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +12 -0
  207. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +21 -1
  208. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +3 -19
  209. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +4 -2
  210. package/dist/builtin/workflows/src/tui/switcher.ts +13 -3
  211. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +1 -1
  212. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +0 -9
  213. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +16 -49
  214. package/dist/builtin/workflows/src/tui/workflow-status.ts +7 -0
  215. package/dist/builtin/workflows/src/workflows/identity.ts +1 -1
  216. package/dist/cli/args.d.ts +0 -1
  217. package/dist/cli/args.d.ts.map +1 -1
  218. package/dist/cli/args.js +1 -20
  219. package/dist/cli/args.js.map +1 -1
  220. package/dist/cli/config-selector.js +1 -1
  221. package/dist/cli/config-selector.js.map +1 -1
  222. package/dist/cli/list-models.d.ts.map +1 -1
  223. package/dist/cli/list-models.js +1 -2
  224. package/dist/cli/list-models.js.map +1 -1
  225. package/dist/cli/session-picker.d.ts.map +1 -1
  226. package/dist/cli/session-picker.js +2 -1
  227. package/dist/cli/session-picker.js.map +1 -1
  228. package/dist/cli/startup-ui.js +2 -2
  229. package/dist/cli/startup-ui.js.map +1 -1
  230. package/dist/config-self-update.js +1 -1
  231. package/dist/config-self-update.js.map +1 -1
  232. package/dist/config.d.ts +2 -0
  233. package/dist/config.d.ts.map +1 -1
  234. package/dist/config.js +34 -10
  235. package/dist/config.js.map +1 -1
  236. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  237. package/dist/core/agent-session-accessors.js +2 -1
  238. package/dist/core/agent-session-accessors.js.map +1 -1
  239. package/dist/core/agent-session-auto-compaction.d.ts +4 -3
  240. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  241. package/dist/core/agent-session-auto-compaction.js +55 -59
  242. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  243. package/dist/core/agent-session-bash.d.ts +9 -6
  244. package/dist/core/agent-session-bash.d.ts.map +1 -1
  245. package/dist/core/agent-session-bash.js +32 -13
  246. package/dist/core/agent-session-bash.js.map +1 -1
  247. package/dist/core/agent-session-compaction.d.ts +11 -1
  248. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  249. package/dist/core/agent-session-compaction.js +87 -19
  250. package/dist/core/agent-session-compaction.js.map +1 -1
  251. package/dist/core/agent-session-custom-message-commit.d.ts +14 -0
  252. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -0
  253. package/dist/core/agent-session-custom-message-commit.js +141 -0
  254. package/dist/core/agent-session-custom-message-commit.js.map +1 -0
  255. package/dist/core/agent-session-delivery-forwarding.d.ts +9 -0
  256. package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -0
  257. package/dist/core/agent-session-delivery-forwarding.js +36 -0
  258. package/dist/core/agent-session-delivery-forwarding.js.map +1 -0
  259. package/dist/core/agent-session-events.d.ts +1 -1
  260. package/dist/core/agent-session-events.d.ts.map +1 -1
  261. package/dist/core/agent-session-events.js +45 -14
  262. package/dist/core/agent-session-events.js.map +1 -1
  263. package/dist/core/agent-session-extension-bindings.d.ts +2 -6
  264. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  265. package/dist/core/agent-session-extension-bindings.js +18 -11
  266. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  267. package/dist/core/agent-session-message-queue.d.ts +5 -2
  268. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  269. package/dist/core/agent-session-message-queue.js +91 -97
  270. package/dist/core/agent-session-message-queue.js.map +1 -1
  271. package/dist/core/agent-session-methods.d.ts +47 -39
  272. package/dist/core/agent-session-methods.d.ts.map +1 -1
  273. package/dist/core/agent-session-methods.js.map +1 -1
  274. package/dist/core/agent-session-models.d.ts +2 -38
  275. package/dist/core/agent-session-models.d.ts.map +1 -1
  276. package/dist/core/agent-session-models.js +5 -147
  277. package/dist/core/agent-session-models.js.map +1 -1
  278. package/dist/core/agent-session-persistent-custom-messages.d.ts +47 -0
  279. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -0
  280. package/dist/core/agent-session-persistent-custom-messages.js +267 -0
  281. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -0
  282. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  283. package/dist/core/agent-session-post-tool-compaction.js +34 -9
  284. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  285. package/dist/core/agent-session-prompt.d.ts +2 -0
  286. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  287. package/dist/core/agent-session-prompt.js +42 -16
  288. package/dist/core/agent-session-prompt.js.map +1 -1
  289. package/dist/core/agent-session-queue-pause.d.ts +10 -0
  290. package/dist/core/agent-session-queue-pause.d.ts.map +1 -0
  291. package/dist/core/agent-session-queue-pause.js +86 -0
  292. package/dist/core/agent-session-queue-pause.js.map +1 -0
  293. package/dist/core/agent-session-retry.d.ts +0 -11
  294. package/dist/core/agent-session-retry.d.ts.map +1 -1
  295. package/dist/core/agent-session-retry.js +8 -57
  296. package/dist/core/agent-session-retry.js.map +1 -1
  297. package/dist/core/agent-session-runtime-auth.d.ts +6 -0
  298. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -0
  299. package/dist/core/agent-session-runtime-auth.js +26 -0
  300. package/dist/core/agent-session-runtime-auth.js.map +1 -0
  301. package/dist/core/agent-session-runtime.d.ts +13 -2
  302. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  303. package/dist/core/agent-session-runtime.js +32 -6
  304. package/dist/core/agent-session-runtime.js.map +1 -1
  305. package/dist/core/agent-session-services.d.ts +0 -2
  306. package/dist/core/agent-session-services.d.ts.map +1 -1
  307. package/dist/core/agent-session-services.js +6 -7
  308. package/dist/core/agent-session-services.js.map +1 -1
  309. package/dist/core/agent-session-state.d.ts.map +1 -1
  310. package/dist/core/agent-session-state.js +3 -0
  311. package/dist/core/agent-session-state.js.map +1 -1
  312. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  313. package/dist/core/agent-session-tool-hooks.js +6 -1
  314. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  315. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  316. package/dist/core/agent-session-tool-registry.js +2 -18
  317. package/dist/core/agent-session-tool-registry.js.map +1 -1
  318. package/dist/core/agent-session-transfer.d.ts +4 -0
  319. package/dist/core/agent-session-transfer.d.ts.map +1 -0
  320. package/dist/core/agent-session-transfer.js +71 -0
  321. package/dist/core/agent-session-transfer.js.map +1 -0
  322. package/dist/core/agent-session-tree.js +1 -1
  323. package/dist/core/agent-session-tree.js.map +1 -1
  324. package/dist/core/agent-session-types.d.ts +5 -11
  325. package/dist/core/agent-session-types.d.ts.map +1 -1
  326. package/dist/core/agent-session-types.js +0 -3
  327. package/dist/core/agent-session-types.js.map +1 -1
  328. package/dist/core/agent-session.d.ts +12 -2
  329. package/dist/core/agent-session.d.ts.map +1 -1
  330. package/dist/core/agent-session.js +8 -2
  331. package/dist/core/agent-session.js.map +1 -1
  332. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  333. package/dist/core/atomic-guide-command.js +31 -33
  334. package/dist/core/atomic-guide-command.js.map +1 -1
  335. package/dist/core/auth-storage.js +2 -2
  336. package/dist/core/auth-storage.js.map +1 -1
  337. package/dist/core/bash-executor.d.ts +5 -3
  338. package/dist/core/bash-executor.d.ts.map +1 -1
  339. package/dist/core/bash-executor.js +5 -4
  340. package/dist/core/bash-executor.js.map +1 -1
  341. package/dist/core/builtin-packages.d.ts.map +1 -1
  342. package/dist/core/builtin-packages.js +0 -6
  343. package/dist/core/builtin-packages.js.map +1 -1
  344. package/dist/core/compaction/branch-summarization.d.ts +8 -3
  345. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  346. package/dist/core/compaction/branch-summarization.js +17 -6
  347. package/dist/core/compaction/branch-summarization.js.map +1 -1
  348. package/dist/core/compaction/compaction-boundary.d.ts +18 -1
  349. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  350. package/dist/core/compaction/compaction-boundary.js +2 -2
  351. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  352. package/dist/core/compaction/compaction-runner.d.ts +61 -6
  353. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  354. package/dist/core/compaction/compaction-runner.js +242 -18
  355. package/dist/core/compaction/compaction-runner.js.map +1 -1
  356. package/dist/core/compaction/compaction-types.d.ts +53 -2
  357. package/dist/core/compaction/compaction-types.d.ts.map +1 -1
  358. package/dist/core/compaction/compaction-types.js.map +1 -1
  359. package/dist/core/compaction/fallback-planner.d.ts +64 -0
  360. package/dist/core/compaction/fallback-planner.d.ts.map +1 -0
  361. package/dist/core/compaction/fallback-planner.js +75 -0
  362. package/dist/core/compaction/fallback-planner.js.map +1 -0
  363. package/dist/core/compaction/index.d.ts +3 -0
  364. package/dist/core/compaction/index.d.ts.map +1 -1
  365. package/dist/core/compaction/index.js +3 -0
  366. package/dist/core/compaction/index.js.map +1 -1
  367. package/dist/core/compaction/planner-outcome.d.ts +86 -0
  368. package/dist/core/compaction/planner-outcome.d.ts.map +1 -0
  369. package/dist/core/compaction/planner-outcome.js +122 -0
  370. package/dist/core/compaction/planner-outcome.js.map +1 -0
  371. package/dist/core/compaction/range-planner-diagnostics.d.ts +58 -6
  372. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  373. package/dist/core/compaction/range-planner-diagnostics.js +69 -31
  374. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  375. package/dist/core/compaction/range-planner.d.ts +36 -8
  376. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  377. package/dist/core/compaction/range-planner.js +136 -51
  378. package/dist/core/compaction/range-planner.js.map +1 -1
  379. package/dist/core/compaction/region-trimming.d.ts +34 -0
  380. package/dist/core/compaction/region-trimming.d.ts.map +1 -0
  381. package/dist/core/compaction/region-trimming.js +73 -0
  382. package/dist/core/compaction/region-trimming.js.map +1 -0
  383. package/dist/core/compaction/transcript-serialization.d.ts +8 -1
  384. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  385. package/dist/core/compaction/transcript-serialization.js +78 -27
  386. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  387. package/dist/core/context-tool-pairing.d.ts +19 -0
  388. package/dist/core/context-tool-pairing.d.ts.map +1 -0
  389. package/dist/core/context-tool-pairing.js +50 -0
  390. package/dist/core/context-tool-pairing.js.map +1 -0
  391. package/dist/core/diagnostics.d.ts +8 -0
  392. package/dist/core/diagnostics.d.ts.map +1 -1
  393. package/dist/core/diagnostics.js.map +1 -1
  394. package/dist/core/extensions/context-types.d.ts +3 -0
  395. package/dist/core/extensions/context-types.d.ts.map +1 -1
  396. package/dist/core/extensions/context-types.js.map +1 -1
  397. package/dist/core/extensions/index.d.ts +2 -0
  398. package/dist/core/extensions/index.d.ts.map +1 -1
  399. package/dist/core/extensions/index.js.map +1 -1
  400. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  401. package/dist/core/extensions/loader-api.js +48 -27
  402. package/dist/core/extensions/loader-api.js.map +1 -1
  403. package/dist/core/extensions/loader-runtime.d.ts +2 -4
  404. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  405. package/dist/core/extensions/loader-runtime.js +199 -18
  406. package/dist/core/extensions/loader-runtime.js.map +1 -1
  407. package/dist/core/extensions/message-types.d.ts +7 -4
  408. package/dist/core/extensions/message-types.d.ts.map +1 -1
  409. package/dist/core/extensions/message-types.js.map +1 -1
  410. package/dist/core/extensions/provider-types.d.ts +9 -4
  411. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  412. package/dist/core/extensions/provider-types.js.map +1 -1
  413. package/dist/core/extensions/runner-context.d.ts +2 -0
  414. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  415. package/dist/core/extensions/runner-context.js +4 -0
  416. package/dist/core/extensions/runner-context.js.map +1 -1
  417. package/dist/core/extensions/runner.d.ts +1 -0
  418. package/dist/core/extensions/runner.d.ts.map +1 -1
  419. package/dist/core/extensions/runner.js +28 -20
  420. package/dist/core/extensions/runner.js.map +1 -1
  421. package/dist/core/extensions/runtime-types.d.ts +25 -0
  422. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  423. package/dist/core/extensions/runtime-types.js.map +1 -1
  424. package/dist/core/extensions/tool-types.d.ts +7 -3
  425. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  426. package/dist/core/extensions/tool-types.js.map +1 -1
  427. package/dist/core/extensions/ui-types.d.ts +14 -4
  428. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  429. package/dist/core/extensions/ui-types.js.map +1 -1
  430. package/dist/core/fallback-models.d.ts +37 -0
  431. package/dist/core/fallback-models.d.ts.map +1 -0
  432. package/dist/core/fallback-models.js +48 -0
  433. package/dist/core/fallback-models.js.map +1 -0
  434. package/dist/core/flattened-tool-arguments.d.ts +4 -7
  435. package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
  436. package/dist/core/flattened-tool-arguments.js +4 -7
  437. package/dist/core/flattened-tool-arguments.js.map +1 -1
  438. package/dist/core/http-dispatcher.d.ts.map +1 -1
  439. package/dist/core/http-dispatcher.js +0 -5
  440. package/dist/core/http-dispatcher.js.map +1 -1
  441. package/dist/core/messages.d.ts +14 -2
  442. package/dist/core/messages.d.ts.map +1 -1
  443. package/dist/core/messages.js +28 -4
  444. package/dist/core/messages.js.map +1 -1
  445. package/dist/core/model-capabilities.d.ts +18 -0
  446. package/dist/core/model-capabilities.d.ts.map +1 -0
  447. package/dist/core/model-capabilities.js +23 -0
  448. package/dist/core/model-capabilities.js.map +1 -0
  449. package/dist/core/model-registry-auth.d.ts.map +1 -1
  450. package/dist/core/model-registry-auth.js +0 -2
  451. package/dist/core/model-registry-auth.js.map +1 -1
  452. package/dist/core/model-registry-builtins.d.ts +0 -2
  453. package/dist/core/model-registry-builtins.d.ts.map +1 -1
  454. package/dist/core/model-registry-builtins.js +9 -76
  455. package/dist/core/model-registry-builtins.js.map +1 -1
  456. package/dist/core/model-registry-custom-loader.d.ts.map +1 -1
  457. package/dist/core/model-registry-custom-loader.js +1 -12
  458. package/dist/core/model-registry-custom-loader.js.map +1 -1
  459. package/dist/core/model-registry-dynamic.d.ts.map +1 -1
  460. package/dist/core/model-registry-dynamic.js +3 -15
  461. package/dist/core/model-registry-dynamic.js.map +1 -1
  462. package/dist/core/model-registry-extension-refresh.d.ts +23 -0
  463. package/dist/core/model-registry-extension-refresh.d.ts.map +1 -0
  464. package/dist/core/model-registry-extension-refresh.js +32 -0
  465. package/dist/core/model-registry-extension-refresh.js.map +1 -0
  466. package/dist/core/model-registry-schemas.d.ts +118 -9
  467. package/dist/core/model-registry-schemas.d.ts.map +1 -1
  468. package/dist/core/model-registry-schemas.js +10 -3
  469. package/dist/core/model-registry-schemas.js.map +1 -1
  470. package/dist/core/model-registry-types.d.ts +5 -5
  471. package/dist/core/model-registry-types.d.ts.map +1 -1
  472. package/dist/core/model-registry-types.js.map +1 -1
  473. package/dist/core/model-registry-validation.d.ts +7 -0
  474. package/dist/core/model-registry-validation.d.ts.map +1 -0
  475. package/dist/core/model-registry-validation.js +12 -0
  476. package/dist/core/model-registry-validation.js.map +1 -0
  477. package/dist/core/model-registry.d.ts +5 -3
  478. package/dist/core/model-registry.d.ts.map +1 -1
  479. package/dist/core/model-registry.js +34 -33
  480. package/dist/core/model-registry.js.map +1 -1
  481. package/dist/core/model-resolver-defaults.d.ts.map +1 -1
  482. package/dist/core/model-resolver-defaults.js +0 -1
  483. package/dist/core/model-resolver-defaults.js.map +1 -1
  484. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  485. package/dist/core/model-resolver-initial.js +9 -0
  486. package/dist/core/model-resolver-initial.js.map +1 -1
  487. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  488. package/dist/core/model-resolver-patterns.js +0 -2
  489. package/dist/core/model-resolver-patterns.js.map +1 -1
  490. package/dist/core/model-resolver-scope.d.ts +2 -0
  491. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  492. package/dist/core/model-resolver-scope.js +18 -4
  493. package/dist/core/model-resolver-scope.js.map +1 -1
  494. package/dist/core/model-resolver-types.d.ts +2 -0
  495. package/dist/core/model-resolver-types.d.ts.map +1 -1
  496. package/dist/core/model-resolver-types.js.map +1 -1
  497. package/dist/core/oauth-provider-bridge.d.ts +21 -0
  498. package/dist/core/oauth-provider-bridge.d.ts.map +1 -1
  499. package/dist/core/oauth-provider-bridge.js +68 -7
  500. package/dist/core/oauth-provider-bridge.js.map +1 -1
  501. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  502. package/dist/core/package-manager-auto-resources.js +12 -4
  503. package/dist/core/package-manager-auto-resources.js.map +1 -1
  504. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  505. package/dist/core/package-manager-resolver.js +42 -11
  506. package/dist/core/package-manager-resolver.js.map +1 -1
  507. package/dist/core/package-manager-types.d.ts +2 -0
  508. package/dist/core/package-manager-types.d.ts.map +1 -1
  509. package/dist/core/package-manager-types.js.map +1 -1
  510. package/dist/core/package-manager.d.ts +1 -1
  511. package/dist/core/package-manager.d.ts.map +1 -1
  512. package/dist/core/package-manager.js.map +1 -1
  513. package/dist/core/remote-catalog-provider.d.ts +1 -1
  514. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  515. package/dist/core/remote-catalog-provider.js +17 -11
  516. package/dist/core/remote-catalog-provider.js.map +1 -1
  517. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  518. package/dist/core/resource-loader-assets.js +30 -4
  519. package/dist/core/resource-loader-assets.js.map +1 -1
  520. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  521. package/dist/core/resource-loader-context-files.js +3 -1
  522. package/dist/core/resource-loader-context-files.js.map +1 -1
  523. package/dist/core/resource-loader-core.d.ts +2 -1
  524. package/dist/core/resource-loader-core.d.ts.map +1 -1
  525. package/dist/core/resource-loader-core.js +3 -0
  526. package/dist/core/resource-loader-core.js.map +1 -1
  527. package/dist/core/resource-loader-extensions.d.ts +1 -0
  528. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  529. package/dist/core/resource-loader-extensions.js +120 -7
  530. package/dist/core/resource-loader-extensions.js.map +1 -1
  531. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  532. package/dist/core/resource-loader-package-resources.js +14 -1
  533. package/dist/core/resource-loader-package-resources.js.map +1 -1
  534. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  535. package/dist/core/resource-loader-reload.js +2 -1
  536. package/dist/core/resource-loader-reload.js.map +1 -1
  537. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  538. package/dist/core/resource-loader-source-info.js +6 -3
  539. package/dist/core/resource-loader-source-info.js.map +1 -1
  540. package/dist/core/sdk-types.d.ts +11 -10
  541. package/dist/core/sdk-types.d.ts.map +1 -1
  542. package/dist/core/sdk-types.js.map +1 -1
  543. package/dist/core/sdk.d.ts +1 -0
  544. package/dist/core/sdk.d.ts.map +1 -1
  545. package/dist/core/sdk.js +13 -84
  546. package/dist/core/sdk.js.map +1 -1
  547. package/dist/core/session-manager-core.d.ts +3 -3
  548. package/dist/core/session-manager-core.d.ts.map +1 -1
  549. package/dist/core/session-manager-core.js +18 -25
  550. package/dist/core/session-manager-core.js.map +1 -1
  551. package/dist/core/session-manager-entries.d.ts +2 -5
  552. package/dist/core/session-manager-entries.d.ts.map +1 -1
  553. package/dist/core/session-manager-entries.js +2 -8
  554. package/dist/core/session-manager-entries.js.map +1 -1
  555. package/dist/core/session-manager-history.d.ts +3 -3
  556. package/dist/core/session-manager-history.d.ts.map +1 -1
  557. package/dist/core/session-manager-history.js +49 -27
  558. package/dist/core/session-manager-history.js.map +1 -1
  559. package/dist/core/session-manager-storage.d.ts +6 -0
  560. package/dist/core/session-manager-storage.d.ts.map +1 -1
  561. package/dist/core/session-manager-storage.js +38 -5
  562. package/dist/core/session-manager-storage.js.map +1 -1
  563. package/dist/core/session-manager-types.d.ts +6 -6
  564. package/dist/core/session-manager-types.d.ts.map +1 -1
  565. package/dist/core/session-manager-types.js.map +1 -1
  566. package/dist/core/session-manager.d.ts +1 -1
  567. package/dist/core/session-manager.d.ts.map +1 -1
  568. package/dist/core/session-manager.js.map +1 -1
  569. package/dist/core/settings-manager-basic-accessors.d.ts +0 -4
  570. package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
  571. package/dist/core/settings-manager-basic-accessors.js +0 -50
  572. package/dist/core/settings-manager-basic-accessors.js.map +1 -1
  573. package/dist/core/settings-manager-core.d.ts +2 -4
  574. package/dist/core/settings-manager-core.d.ts.map +1 -1
  575. package/dist/core/settings-manager-core.js +5 -51
  576. package/dist/core/settings-manager-core.js.map +1 -1
  577. package/dist/core/settings-manager.d.ts +1 -1
  578. package/dist/core/settings-manager.d.ts.map +1 -1
  579. package/dist/core/settings-manager.js.map +1 -1
  580. package/dist/core/settings-storage.d.ts +3 -1
  581. package/dist/core/settings-storage.d.ts.map +1 -1
  582. package/dist/core/settings-storage.js +22 -0
  583. package/dist/core/settings-storage.js.map +1 -1
  584. package/dist/core/settings-types.d.ts +2 -4
  585. package/dist/core/settings-types.d.ts.map +1 -1
  586. package/dist/core/settings-types.js.map +1 -1
  587. package/dist/core/slash-commands.d.ts.map +1 -1
  588. package/dist/core/slash-commands.js +69 -23
  589. package/dist/core/slash-commands.js.map +1 -1
  590. package/dist/core/source-info.d.ts +3 -1
  591. package/dist/core/source-info.d.ts.map +1 -1
  592. package/dist/core/source-info.js +2 -0
  593. package/dist/core/source-info.js.map +1 -1
  594. package/dist/core/system-prompt.d.ts.map +1 -1
  595. package/dist/core/system-prompt.js +11 -0
  596. package/dist/core/system-prompt.js.map +1 -1
  597. package/dist/core/tools/ask-user-question/ask-user-question.js +1 -1
  598. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  599. package/dist/core/tools/bash-session-environment.d.ts +13 -0
  600. package/dist/core/tools/bash-session-environment.d.ts.map +1 -0
  601. package/dist/core/tools/bash-session-environment.js +35 -0
  602. package/dist/core/tools/bash-session-environment.js.map +1 -0
  603. package/dist/core/tools/bash.d.ts +4 -1
  604. package/dist/core/tools/bash.d.ts.map +1 -1
  605. package/dist/core/tools/bash.js +16 -8
  606. package/dist/core/tools/bash.js.map +1 -1
  607. package/dist/core/tools/tool-definition-wrapper.d.ts +3 -0
  608. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  609. package/dist/core/tools/tool-definition-wrapper.js +10 -2
  610. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  611. package/dist/extensions/index.js +1 -1
  612. package/dist/extensions/index.js.map +1 -1
  613. package/dist/extensions/llama/provider.d.ts +3 -2
  614. package/dist/extensions/llama/provider.d.ts.map +1 -1
  615. package/dist/extensions/llama/provider.js +9 -3
  616. package/dist/extensions/llama/provider.js.map +1 -1
  617. package/dist/index-extensions.d.ts +1 -1
  618. package/dist/index-extensions.d.ts.map +1 -1
  619. package/dist/index-extensions.js.map +1 -1
  620. package/dist/index.d.ts +2 -3
  621. package/dist/index.d.ts.map +1 -1
  622. package/dist/index.js +1 -2
  623. package/dist/index.js.map +1 -1
  624. package/dist/main-session-options.d.ts.map +1 -1
  625. package/dist/main-session-options.js +0 -4
  626. package/dist/main-session-options.js.map +1 -1
  627. package/dist/main-session.d.ts.map +1 -1
  628. package/dist/main-session.js +2 -1
  629. package/dist/main-session.js.map +1 -1
  630. package/dist/main.d.ts.map +1 -1
  631. package/dist/main.js +1 -17
  632. package/dist/main.js.map +1 -1
  633. package/dist/modes/index.d.ts +1 -1
  634. package/dist/modes/index.d.ts.map +1 -1
  635. package/dist/modes/index.js.map +1 -1
  636. package/dist/modes/interactive/chat-input-actions.d.ts +1 -1
  637. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  638. package/dist/modes/interactive/chat-input-actions.js +14 -96
  639. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  640. package/dist/modes/interactive/components/atomic-banner.d.ts +9 -8
  641. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  642. package/dist/modes/interactive/components/atomic-banner.js +68 -24
  643. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  644. package/dist/modes/interactive/components/atomic-working-status.d.ts +52 -0
  645. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -0
  646. package/dist/modes/interactive/components/atomic-working-status.js +202 -0
  647. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -0
  648. package/dist/modes/interactive/components/chat-message-renderer.js +1 -1
  649. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  650. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  651. package/dist/modes/interactive/components/chat-session-host-actions.js +99 -7
  652. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  653. package/dist/modes/interactive/components/chat-session-host-editor.js +3 -3
  654. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  655. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  656. package/dist/modes/interactive/components/chat-session-host-events.js +52 -9
  657. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  658. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  659. package/dist/modes/interactive/components/chat-session-host-rendering.js +23 -7
  660. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  661. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +2 -0
  662. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
  663. package/dist/modes/interactive/components/chat-session-host-runtime.js +67 -18
  664. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
  665. package/dist/modes/interactive/components/chat-session-host-state.d.ts +9 -0
  666. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  667. package/dist/modes/interactive/components/chat-session-host-state.js +5 -0
  668. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  669. package/dist/modes/interactive/components/chat-session-host-types.d.ts +10 -0
  670. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  671. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  672. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  673. package/dist/modes/interactive/components/compaction-boundary-message.js +2 -1
  674. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  675. package/dist/modes/interactive/components/custom-message.d.ts +3 -1
  676. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  677. package/dist/modes/interactive/components/custom-message.js +9 -2
  678. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  679. package/dist/modes/interactive/components/extension-editor.d.ts +3 -2
  680. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  681. package/dist/modes/interactive/components/extension-editor.js +14 -43
  682. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  683. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  684. package/dist/modes/interactive/components/scoped-models-selector.js +18 -13
  685. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  686. package/dist/modes/interactive/components/startup-identity.d.ts +22 -0
  687. package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -0
  688. package/dist/modes/interactive/components/startup-identity.js +58 -0
  689. package/dist/modes/interactive/components/startup-identity.js.map +1 -0
  690. package/dist/modes/interactive/components/tree-selector-content.d.ts.map +1 -1
  691. package/dist/modes/interactive/components/tree-selector-content.js +0 -6
  692. package/dist/modes/interactive/components/tree-selector-content.js.map +1 -1
  693. package/dist/modes/interactive/components/tree-selector-model.d.ts.map +1 -1
  694. package/dist/modes/interactive/components/tree-selector-model.js +0 -1
  695. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
  696. package/dist/modes/interactive/components/working-status.d.ts +5 -11
  697. package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
  698. package/dist/modes/interactive/components/working-status.js +14 -15
  699. package/dist/modes/interactive/components/working-status.js.map +1 -1
  700. package/dist/modes/interactive/external-editor.d.ts +23 -0
  701. package/dist/modes/interactive/external-editor.d.ts.map +1 -0
  702. package/dist/modes/interactive/external-editor.js +120 -0
  703. package/dist/modes/interactive/external-editor.js.map +1 -0
  704. package/dist/modes/interactive/interactive-agent-events.js +25 -20
  705. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  706. package/dist/modes/interactive/interactive-auth-login.js +16 -6
  707. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  708. package/dist/modes/interactive/interactive-auth-routing.js +3 -0
  709. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  710. package/dist/modes/interactive/interactive-bash-compact.d.ts +2 -1
  711. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
  712. package/dist/modes/interactive/interactive-bash-compact.js +8 -0
  713. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  714. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  715. package/dist/modes/interactive/interactive-deferred-startup.js +49 -19
  716. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  717. package/dist/modes/interactive/interactive-editor-actions.js +4 -3
  718. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  719. package/dist/modes/interactive/interactive-extension-dialogs.js +1 -1
  720. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  721. package/dist/modes/interactive/interactive-extension-runtime.js +3 -2
  722. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  723. package/dist/modes/interactive/interactive-initial-session-binding.d.ts +4 -0
  724. package/dist/modes/interactive/interactive-initial-session-binding.d.ts.map +1 -0
  725. package/dist/modes/interactive/interactive-initial-session-binding.js +23 -0
  726. package/dist/modes/interactive/interactive-initial-session-binding.js.map +1 -0
  727. package/dist/modes/interactive/interactive-input-handling.d.ts +2 -1
  728. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  729. package/dist/modes/interactive/interactive-input-handling.js +27 -51
  730. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  731. package/dist/modes/interactive/interactive-mode-base.d.ts +11 -7
  732. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  733. package/dist/modes/interactive/interactive-mode-base.js +14 -6
  734. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  735. package/dist/modes/interactive/interactive-mode-deps.d.ts +2 -4
  736. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  737. package/dist/modes/interactive/interactive-mode-deps.js +2 -4
  738. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  739. package/dist/modes/interactive/interactive-mode-surface.d.ts +9 -8
  740. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  741. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  742. package/dist/modes/interactive/interactive-mode.d.ts +1 -0
  743. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  744. package/dist/modes/interactive/interactive-mode.js +1 -0
  745. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  746. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts +2 -3
  747. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
  748. package/dist/modes/interactive/interactive-model-catalog-startup.js +3 -6
  749. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
  750. package/dist/modes/interactive/interactive-model-routing.js +26 -97
  751. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  752. package/dist/modes/interactive/interactive-pause.d.ts +4 -0
  753. package/dist/modes/interactive/interactive-pause.d.ts.map +1 -0
  754. package/dist/modes/interactive/interactive-pause.js +8 -0
  755. package/dist/modes/interactive/interactive-pause.js.map +1 -0
  756. package/dist/modes/interactive/interactive-process-lifecycle.js +5 -4
  757. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  758. package/dist/modes/interactive/interactive-prompt-turn.d.ts +2 -0
  759. package/dist/modes/interactive/interactive-prompt-turn.d.ts.map +1 -0
  760. package/dist/modes/interactive/interactive-prompt-turn.js +41 -0
  761. package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -0
  762. package/dist/modes/interactive/interactive-render-chat.js +20 -8
  763. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  764. package/dist/modes/interactive/interactive-resource-paths.js +11 -2
  765. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
  766. package/dist/modes/interactive/interactive-resource-rendering.js +99 -0
  767. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  768. package/dist/modes/interactive/interactive-session-runtime.js +1 -1
  769. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  770. package/dist/modes/interactive/interactive-slash-commands.js +1 -1
  771. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  772. package/dist/modes/interactive/interactive-startup-chat-container.d.ts +20 -0
  773. package/dist/modes/interactive/interactive-startup-chat-container.d.ts.map +1 -0
  774. package/dist/modes/interactive/interactive-startup-chat-container.js +26 -0
  775. package/dist/modes/interactive/interactive-startup-chat-container.js.map +1 -0
  776. package/dist/modes/interactive/interactive-startup.d.ts +1 -1
  777. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  778. package/dist/modes/interactive/interactive-startup.js +30 -25
  779. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  780. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -1
  781. package/dist/modes/interactive/interactive-summarization-retry-events.js +9 -3
  782. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
  783. package/dist/modes/interactive/theme/catppuccin-frappe.json +1 -1
  784. package/dist/modes/interactive/theme/catppuccin-latte.json +1 -1
  785. package/dist/modes/interactive/theme/catppuccin-macchiato.json +1 -1
  786. package/dist/modes/interactive/theme/catppuccin-mocha.json +9 -1
  787. package/dist/modes/interactive/theme/dark.json +1 -1
  788. package/dist/modes/interactive/theme/light.json +1 -1
  789. package/dist/modes/interactive/theme/theme-class.d.ts +4 -0
  790. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  791. package/dist/modes/interactive/theme/theme-class.js +7 -0
  792. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  793. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  794. package/dist/modes/interactive/theme/theme-loading.js +4 -0
  795. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  796. package/dist/modes/interactive/theme/theme-schema.d.ts +32 -0
  797. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  798. package/dist/modes/interactive/theme/theme-schema.js +8 -0
  799. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  800. package/dist/modes/interactive/theme/theme-schema.json +15 -2
  801. package/dist/modes/interactive/whimsical-messages.d.ts +1 -0
  802. package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
  803. package/dist/modes/interactive/whimsical-messages.js +2 -2
  804. package/dist/modes/interactive/whimsical-messages.js.map +1 -1
  805. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
  806. package/dist/modes/interactive-engine/create-isolated-runtime.js +3 -1
  807. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
  808. package/dist/modes/interactive-engine/engine-args.d.ts.map +1 -1
  809. package/dist/modes/interactive-engine/engine-args.js +0 -1
  810. package/dist/modes/interactive-engine/engine-args.js.map +1 -1
  811. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  812. package/dist/modes/interactive-engine/engine-custom-ui.js +5 -17
  813. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  814. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  815. package/dist/modes/interactive-engine/engine-render-service.js +8 -19
  816. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  817. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +2 -0
  818. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  819. package/dist/modes/interactive-engine/extension-ui-bridge.js +3 -0
  820. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  821. package/dist/modes/interactive-engine/isolated-auth.d.ts +10 -0
  822. package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -0
  823. package/dist/modes/interactive-engine/isolated-auth.js +14 -0
  824. package/dist/modes/interactive-engine/isolated-auth.js.map +1 -0
  825. package/dist/modes/interactive-engine/isolated-runtime.d.ts +9 -1
  826. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  827. package/dist/modes/interactive-engine/isolated-runtime.js +46 -34
  828. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  829. package/dist/modes/interactive-engine/protocol.d.ts +1 -1
  830. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  831. package/dist/modes/interactive-engine/protocol.js +3 -10
  832. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  833. package/dist/modes/interactive-engine/remote-model-catalog.d.ts +1 -0
  834. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
  835. package/dist/modes/interactive-engine/remote-model-catalog.js +10 -1
  836. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  837. package/dist/modes/interactive-engine/remote-queue-pause.d.ts +13 -0
  838. package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -0
  839. package/dist/modes/interactive-engine/remote-queue-pause.js +38 -0
  840. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -0
  841. package/dist/modes/interactive-engine/remote-renderer.d.ts +3 -1
  842. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
  843. package/dist/modes/interactive-engine/remote-renderer.js +4 -1
  844. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  845. package/dist/modes/print-mode.d.ts.map +1 -1
  846. package/dist/modes/print-mode.js +5 -0
  847. package/dist/modes/print-mode.js.map +1 -1
  848. package/dist/modes/rpc/jsonl.d.ts +2 -7
  849. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  850. package/dist/modes/rpc/jsonl.js +7 -24
  851. package/dist/modes/rpc/jsonl.js.map +1 -1
  852. package/dist/modes/rpc/queued-writer.d.ts +19 -0
  853. package/dist/modes/rpc/queued-writer.d.ts.map +1 -0
  854. package/dist/modes/rpc/{bounded-writer.js → queued-writer.js} +7 -30
  855. package/dist/modes/rpc/queued-writer.js.map +1 -0
  856. package/dist/modes/rpc/rpc-bash-request-owners.d.ts +24 -0
  857. package/dist/modes/rpc/rpc-bash-request-owners.d.ts.map +1 -0
  858. package/dist/modes/rpc/rpc-bash-request-owners.js +45 -0
  859. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -0
  860. package/dist/modes/rpc/rpc-client-api.d.ts +8 -5
  861. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  862. package/dist/modes/rpc/rpc-client-api.js +10 -11
  863. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  864. package/dist/modes/rpc/rpc-client-process.d.ts +1 -4
  865. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  866. package/dist/modes/rpc/rpc-client-process.js +2 -14
  867. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  868. package/dist/modes/rpc/rpc-client.d.ts +8 -4
  869. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  870. package/dist/modes/rpc/rpc-client.js +21 -30
  871. package/dist/modes/rpc/rpc-client.js.map +1 -1
  872. package/dist/modes/rpc/rpc-command-handler.d.ts +7 -4
  873. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  874. package/dist/modes/rpc/rpc-command-handler.js +76 -93
  875. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  876. package/dist/modes/rpc/rpc-input-scheduler.d.ts +3 -3
  877. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  878. package/dist/modes/rpc/rpc-input-scheduler.js +7 -4
  879. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  880. package/dist/modes/rpc/rpc-mode.d.ts +1 -1
  881. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  882. package/dist/modes/rpc/rpc-mode.js +5 -5
  883. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  884. package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts +4 -0
  885. package/dist/modes/rpc/rpc-model-fallback-prompt.d.ts.map +1 -0
  886. package/dist/modes/rpc/rpc-model-fallback-prompt.js +11 -0
  887. package/dist/modes/rpc/rpc-model-fallback-prompt.js.map +1 -0
  888. package/dist/modes/rpc/rpc-oauth-client.d.ts +22 -0
  889. package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -0
  890. package/dist/modes/rpc/rpc-oauth-client.js +74 -0
  891. package/dist/modes/rpc/rpc-oauth-client.js.map +1 -0
  892. package/dist/modes/rpc/rpc-oauth-interaction.d.ts +9 -0
  893. package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -0
  894. package/dist/modes/rpc/rpc-oauth-interaction.js +49 -0
  895. package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -0
  896. package/dist/modes/rpc/rpc-output-buffer.d.ts +2 -1
  897. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  898. package/dist/modes/rpc/rpc-output-buffer.js +4 -39
  899. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  900. package/dist/modes/rpc/rpc-provider-auth.d.ts +23 -0
  901. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -0
  902. package/dist/modes/rpc/rpc-provider-auth.js +145 -0
  903. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -0
  904. package/dist/modes/rpc/rpc-responses.d.ts +0 -1
  905. package/dist/modes/rpc/rpc-responses.d.ts.map +1 -1
  906. package/dist/modes/rpc/rpc-responses.js +0 -14
  907. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  908. package/dist/modes/rpc/rpc-types.d.ts +83 -27
  909. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  910. package/dist/modes/rpc/rpc-types.js.map +1 -1
  911. package/dist/utils/clipboard.d.ts.map +1 -1
  912. package/dist/utils/clipboard.js +21 -8
  913. package/dist/utils/clipboard.js.map +1 -1
  914. package/dist/utils/version-check.d.ts.map +1 -1
  915. package/dist/utils/version-check.js +3 -1
  916. package/dist/utils/version-check.js.map +1 -1
  917. package/docs/changelog.mdx +12 -1
  918. package/docs/compaction.md +101 -18
  919. package/docs/custom-provider.md +13 -4
  920. package/docs/docs.json +1 -0
  921. package/docs/environment-variables.md +37 -0
  922. package/docs/extensions.md +45 -9
  923. package/docs/index.md +1 -0
  924. package/docs/intercom.md +1 -1
  925. package/docs/json.md +4 -4
  926. package/docs/keybindings.md +4 -2
  927. package/docs/llama-cpp.md +3 -1
  928. package/docs/models.md +29 -43
  929. package/docs/providers.md +18 -24
  930. package/docs/quickstart.md +19 -16
  931. package/docs/rpc.md +38 -85
  932. package/docs/sdk.md +15 -22
  933. package/docs/session-format.md +2 -15
  934. package/docs/sessions.md +1 -1
  935. package/docs/settings.md +10 -15
  936. package/docs/skills.md +8 -0
  937. package/docs/subagents.md +24 -8
  938. package/docs/themes.md +10 -1
  939. package/docs/tui.md +3 -3
  940. package/docs/usage.md +30 -2
  941. package/docs/windows.md +1 -1
  942. package/docs/workflows.md +1128 -522
  943. package/examples/extensions/README.md +1 -1
  944. package/examples/extensions/handoff.ts +8 -1
  945. package/examples/extensions/message-renderer.ts +2 -2
  946. package/examples/extensions/summarize.ts +3 -0
  947. package/examples/extensions/working-indicator.ts +2 -2
  948. package/npm-shrinkwrap.json +40 -46
  949. package/package.json +9 -7
  950. package/dist/builtin/cursor/CHANGELOG.md +0 -281
  951. package/dist/builtin/cursor/LICENSE +0 -26
  952. package/dist/builtin/cursor/README.md +0 -24
  953. package/dist/builtin/cursor/index.ts +0 -9
  954. package/dist/builtin/cursor/package.json +0 -47
  955. package/dist/builtin/cursor/src/auth.ts +0 -352
  956. package/dist/builtin/cursor/src/catalog-cache.ts +0 -155
  957. package/dist/builtin/cursor/src/config.ts +0 -123
  958. package/dist/builtin/cursor/src/conversation-state.ts +0 -135
  959. package/dist/builtin/cursor/src/cursor-models-raw.json +0 -412
  960. package/dist/builtin/cursor/src/model-mapper.ts +0 -369
  961. package/dist/builtin/cursor/src/model-reference.ts +0 -282
  962. package/dist/builtin/cursor/src/models.ts +0 -54
  963. package/dist/builtin/cursor/src/native-loader.ts +0 -71
  964. package/dist/builtin/cursor/src/proto/README.md +0 -34
  965. package/dist/builtin/cursor/src/proto/agent_pb.ts +0 -15294
  966. package/dist/builtin/cursor/src/proto/protobuf-codec-base64.ts +0 -22
  967. package/dist/builtin/cursor/src/proto/protobuf-codec-json.ts +0 -44
  968. package/dist/builtin/cursor/src/proto/protobuf-codec-request.ts +0 -311
  969. package/dist/builtin/cursor/src/proto/protobuf-codec-wire.ts +0 -248
  970. package/dist/builtin/cursor/src/proto/protobuf-codec.ts +0 -200
  971. package/dist/builtin/cursor/src/provider.ts +0 -301
  972. package/dist/builtin/cursor/src/stream.ts +0 -494
  973. package/dist/builtin/cursor/src/transport-errors.ts +0 -74
  974. package/dist/builtin/cursor/src/transport-frame.ts +0 -56
  975. package/dist/builtin/cursor/src/transport-http2.ts +0 -122
  976. package/dist/builtin/cursor/src/transport-native-client.ts +0 -161
  977. package/dist/builtin/cursor/src/transport-run-stream.ts +0 -188
  978. package/dist/builtin/cursor/src/transport-timeouts.ts +0 -87
  979. package/dist/builtin/cursor/src/transport-types.ts +0 -143
  980. package/dist/builtin/cursor/src/transport.ts +0 -26
  981. package/dist/builtin/workflows/builtin/deep-research-codebase-runner.ts +0 -492
  982. package/dist/builtin/workflows/builtin/deep-research-codebase-utils.ts +0 -383
  983. package/dist/builtin/workflows/builtin/deep-research-codebase.d.ts +0 -35
  984. package/dist/builtin/workflows/builtin/deep-research-codebase.ts +0 -47
  985. package/dist/builtin/workflows/skills/impeccable/scripts/hook-before-edit.mjs +0 -516
  986. package/dist/core/context-window.d.ts +0 -54
  987. package/dist/core/context-window.d.ts.map +0 -1
  988. package/dist/core/context-window.js +0 -110
  989. package/dist/core/context-window.js.map +0 -1
  990. package/dist/core/copilot-anthropic-sse-repair.d.ts +0 -23
  991. package/dist/core/copilot-anthropic-sse-repair.d.ts.map +0 -1
  992. package/dist/core/copilot-anthropic-sse-repair.js +0 -340
  993. package/dist/core/copilot-anthropic-sse-repair.js.map +0 -1
  994. package/dist/core/copilot-errors.d.ts +0 -9
  995. package/dist/core/copilot-errors.d.ts.map +0 -1
  996. package/dist/core/copilot-errors.js +0 -32
  997. package/dist/core/copilot-errors.js.map +0 -1
  998. package/dist/core/copilot-gemini-payload-sanitizer.d.ts +0 -72
  999. package/dist/core/copilot-gemini-payload-sanitizer.d.ts.map +0 -1
  1000. package/dist/core/copilot-gemini-payload-sanitizer.js +0 -296
  1001. package/dist/core/copilot-gemini-payload-sanitizer.js.map +0 -1
  1002. package/dist/core/copilot-gemini-reasoning.d.ts +0 -126
  1003. package/dist/core/copilot-gemini-reasoning.d.ts.map +0 -1
  1004. package/dist/core/copilot-gemini-reasoning.js +0 -265
  1005. package/dist/core/copilot-gemini-reasoning.js.map +0 -1
  1006. package/dist/core/copilot-gemini-tool-arguments.d.ts +0 -42
  1007. package/dist/core/copilot-gemini-tool-arguments.d.ts.map +0 -1
  1008. package/dist/core/copilot-gemini-tool-arguments.js +0 -159
  1009. package/dist/core/copilot-gemini-tool-arguments.js.map +0 -1
  1010. package/dist/core/copilot-hosts.d.ts +0 -12
  1011. package/dist/core/copilot-hosts.d.ts.map +0 -1
  1012. package/dist/core/copilot-hosts.js +0 -33
  1013. package/dist/core/copilot-hosts.js.map +0 -1
  1014. package/dist/core/copilot-model-catalog.d.ts +0 -114
  1015. package/dist/core/copilot-model-catalog.d.ts.map +0 -1
  1016. package/dist/core/copilot-model-catalog.js +0 -392
  1017. package/dist/core/copilot-model-catalog.js.map +0 -1
  1018. package/dist/core/copilot-model-static-fallbacks.d.ts +0 -43
  1019. package/dist/core/copilot-model-static-fallbacks.d.ts.map +0 -1
  1020. package/dist/core/copilot-model-static-fallbacks.js +0 -50
  1021. package/dist/core/copilot-model-static-fallbacks.js.map +0 -1
  1022. package/dist/core/copilot-model-synthesis.d.ts +0 -10
  1023. package/dist/core/copilot-model-synthesis.d.ts.map +0 -1
  1024. package/dist/core/copilot-model-synthesis.js +0 -91
  1025. package/dist/core/copilot-model-synthesis.js.map +0 -1
  1026. package/dist/modes/interactive/components/context-window-selector.d.ts +0 -53
  1027. package/dist/modes/interactive/components/context-window-selector.d.ts.map +0 -1
  1028. package/dist/modes/interactive/components/context-window-selector.js +0 -136
  1029. package/dist/modes/interactive/components/context-window-selector.js.map +0 -1
  1030. package/dist/modes/rpc/bounded-writer.d.ts +0 -27
  1031. package/dist/modes/rpc/bounded-writer.d.ts.map +0 -1
  1032. package/dist/modes/rpc/bounded-writer.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-message-queue.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-session-message-queue.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,21 @@
1
1
  import { customMessageExcludesContext, drainAgentMessageQueue, normalizeInterruptAbortMessage } from "./agent-session-types.js";
2
- import { createSessionAsyncDeliveryHandler } from "./async/session-manager.js";
2
+ import { forwardedMessageOptions, resolveWorkflowStageDeliveryTarget } from "./agent-session-delivery-forwarding.js";
3
+ import { transferWorkflowStageDeliveriesTo } from "./agent-session-transfer.js";
4
+ import { abort, pauseQueuedMessages, resumeQueuedMessages } from "./agent-session-queue-pause.js";
5
+ import { restoreProtectedStreamingCustomMessages } from "./agent-session-persistent-custom-messages.js";
6
+ import { commitAdmittedCustomMessage, commitAdmittedCustomMessages } from "./agent-session-custom-message-commit.js";
7
+ export { transferWorkflowStageDeliveriesTo };
8
+ const interruptMutationQueues = new WeakMap();
9
+ function serializeInterruptMutation(owner, operation) {
10
+ const previous = interruptMutationQueues.get(owner) ?? Promise.resolve();
11
+ const delivery = previous.then(operation);
12
+ interruptMutationQueues.set(owner, delivery.catch(() => undefined));
13
+ return delivery;
14
+ }
3
15
  export async function _queueSteer(text, images) {
16
+ const owner = resolveWorkflowStageDeliveryTarget(this);
17
+ if (owner !== this)
18
+ return owner._queueSteer(text, images);
4
19
  this._steeringMessages.push(text);
5
20
  this._emitQueueUpdate();
6
21
  const content = [{ type: "text", text }];
@@ -17,6 +32,9 @@ export async function _queueSteer(text, images) {
17
32
  * Internal: Queue a follow-up message (already expanded, no extension command check).
18
33
  */
19
34
  export async function _queueFollowUp(text, images) {
35
+ const owner = resolveWorkflowStageDeliveryTarget(this);
36
+ if (owner !== this)
37
+ return owner._queueFollowUp(text, images);
20
38
  this._followUpMessages.push(text);
21
39
  this._emitQueueUpdate();
22
40
  const content = [{ type: "text", text }];
@@ -55,6 +73,9 @@ export function _throwIfExtensionCommand(text) {
55
73
  * @param options.deliverAs Delivery mode: "steer", "followUp", "nextTurn", or "interrupt"
56
74
  */
57
75
  export async function sendCustomMessage(message, options) {
76
+ const currentOwner = resolveWorkflowStageDeliveryTarget(this);
77
+ if (currentOwner !== this)
78
+ return currentOwner.sendCustomMessage(message, options);
58
79
  const appMessage = {
59
80
  role: "custom",
60
81
  customType: message.customType,
@@ -68,44 +89,7 @@ export async function sendCustomMessage(message, options) {
68
89
  const deliver = async () => {
69
90
  if (boundary && options?.stageAdmissionBarrier)
70
91
  await options.stageAdmissionBarrier();
71
- if (options?.deliverAs === "nextTurn") {
72
- this._pendingNextTurnMessages.push(appMessage);
73
- }
74
- else if (options?.deliverAs === "interrupt" && options.triggerTurn) {
75
- const interrupt = this._enqueueInterruptCustomMessage(appMessage, options);
76
- boundary?.trackAdmittedWork(interrupt);
77
- void interrupt.catch(() => { });
78
- }
79
- else if (this.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {
80
- this._appendCustomMessage(appMessage);
81
- }
82
- else if (this.isStreaming && options?.persistWhenStreaming === true) {
83
- // Persist the notice to the transcript so a streaming parent's cleared
84
- // steer queue or aborted turn cannot silently drop it; it stays visible
85
- // and in-context for the model's next step.
86
- this._appendCustomMessage(appMessage);
87
- }
88
- else if (this.isStreaming) {
89
- this._queueAgentMessage(appMessage, options?.deliverAs === "followUp" ? "followUp" : "steer");
90
- }
91
- else if (options?.triggerTurn) {
92
- // ES2022 build target: use a manually constructed deferred instead of
93
- // Promise.withResolvers (ES2024). Resolve on prompt-start so a later
94
- // model-turn rejection cannot un-admit an already-delivered notice;
95
- // reject only when the turn fails before that start signal fires.
96
- let resolveAdmission;
97
- let rejectAdmission;
98
- const admission = new Promise((resolve, reject) => {
99
- resolveAdmission = resolve;
100
- rejectAdmission = reject;
101
- });
102
- const turn = this._runAgentPrompt(appMessage, resolveAdmission);
103
- void turn.then(resolveAdmission, rejectAdmission);
104
- await admission;
105
- }
106
- else {
107
- this._appendCustomMessage(appMessage);
108
- }
92
+ await commitAdmittedCustomMessage(this, appMessage, options);
109
93
  };
110
94
  if (boundary === undefined)
111
95
  return deliver();
@@ -118,6 +102,9 @@ export async function sendCustomMessage(message, options) {
118
102
  }
119
103
  /** Atomically admits a custom-message batch in array order. */
120
104
  export async function sendCustomMessages(messages, options) {
105
+ const currentOwner = resolveWorkflowStageDeliveryTarget(this);
106
+ if (currentOwner !== this)
107
+ return currentOwner.sendCustomMessages(messages, options);
121
108
  const timestamp = Date.now();
122
109
  const appMessages = messages.map((message) => ({
123
110
  role: "custom",
@@ -134,26 +121,7 @@ export async function sendCustomMessages(messages, options) {
134
121
  const deliver = async () => {
135
122
  if (boundary && options?.stageAdmissionBarrier)
136
123
  await options.stageAdmissionBarrier();
137
- if (options?.deliverAs === "nextTurn") {
138
- this._pendingNextTurnMessages.push(...appMessages);
139
- }
140
- else if (this.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {
141
- for (const item of appMessages)
142
- this._appendCustomMessage(item);
143
- }
144
- else if (this.isStreaming) {
145
- const delivery = options?.deliverAs === "followUp" ? "followUp" : "steer";
146
- for (const item of appMessages)
147
- this._queueAgentMessage(item, delivery);
148
- }
149
- else if (options?.triggerTurn) {
150
- const turn = this._runAgentPrompt(appMessages);
151
- void turn.catch(() => { });
152
- }
153
- else {
154
- for (const item of appMessages)
155
- this._appendCustomMessage(item);
156
- }
124
+ await commitAdmittedCustomMessages(this, appMessages, options);
157
125
  };
158
126
  if (boundary === undefined)
159
127
  return deliver();
@@ -172,25 +140,19 @@ export async function closeWorkflowStageGeneration() {
172
140
  await this.agent?.waitForIdle?.();
173
141
  await this._agentEventQueue;
174
142
  }
175
- export function transferWorkflowStageDeliveriesTo(target) {
176
- const next = target;
177
- const queued = this._drainQueuedAgentMessages();
178
- if (this._activeInterruptQueueHold) {
179
- queued.steering.push(...this._activeInterruptQueueHold.steering);
180
- queued.followUp.push(...this._activeInterruptQueueHold.followUp);
181
- this._activeInterruptQueueHold = undefined;
182
- }
183
- next._pendingNextTurnMessages.unshift(...this._pendingNextTurnMessages.splice(0));
184
- next._restoreQueuedAgentMessages(queued);
185
- this._asyncJobManager.transferSessionDeliveries(this._asyncJobManagerSessionId, next._asyncJobManagerSessionId, createSessionAsyncDeliveryHandler(next, next._asyncJobManager, next._asyncJobManagerSessionId));
186
- }
187
143
  export function _appendCustomMessage(message) {
144
+ const owner = resolveWorkflowStageDeliveryTarget(this);
145
+ if (owner !== this)
146
+ return owner._appendCustomMessage(message);
188
147
  this.agent.state.messages.push(message);
189
148
  this.sessionManager.appendCustomMessageEntry(message.customType, message.content, message.display, message.details, customMessageExcludesContext(message));
190
149
  this._emit({ type: "message_start", message });
191
150
  this._emit({ type: "message_end", message });
192
151
  }
193
152
  export function _enqueueInterruptCustomMessage(message, options) {
153
+ const owner = resolveWorkflowStageDeliveryTarget(this);
154
+ if (owner !== this)
155
+ return owner._enqueueInterruptCustomMessage(message, forwardedMessageOptions(options));
194
156
  this._pendingInterruptDeliveries += 1;
195
157
  // Establish the hold synchronously when the interrupt is enqueued, not when
196
158
  // the serialized delivery callback later starts. Callers commonly fire and
@@ -203,33 +165,52 @@ export function _enqueueInterruptCustomMessage(message, options) {
203
165
  await this._sendInterruptCustomMessageNow(message, options);
204
166
  }
205
167
  finally {
206
- this._pendingInterruptDeliveries -= 1;
207
- if (this._pendingInterruptDeliveries === 0) {
208
- this._restoreAndClearActiveInterruptQueueHold();
168
+ // Retirement moves the pending count and hold synchronously. Settle the
169
+ // same live owner so its queue cannot remain stranded on the replacement.
170
+ const liveOwner = resolveWorkflowStageDeliveryTarget(this);
171
+ liveOwner._pendingInterruptDeliveries -= 1;
172
+ if (liveOwner._pendingInterruptDeliveries === 0) {
173
+ liveOwner._restoreAndClearActiveInterruptQueueHold();
209
174
  }
210
175
  }
211
176
  });
212
177
  this._interruptDeliveryQueue = delivery.catch(() => undefined);
213
178
  return delivery;
214
179
  }
215
- export async function _sendInterruptCustomMessageNow(message, options) {
216
- this.abortRetry();
217
- this._ensureActiveInterruptQueueHold();
218
- if (this.isStreaming) {
219
- const previousAbortMessage = this._activeInterruptAbortMessage;
220
- this._activeInterruptAbortMessage = normalizeInterruptAbortMessage(options?.interruptAbortMessage);
180
+ async function sendInterruptCustomMessageUnlocked(session, message, options) {
181
+ session.abortRetry();
182
+ session._ensureActiveInterruptQueueHold();
183
+ if (session.isStreaming) {
184
+ const previousAbortMessage = session._activeInterruptAbortMessage;
185
+ session._activeInterruptAbortMessage = normalizeInterruptAbortMessage(options?.interruptAbortMessage);
221
186
  try {
222
- this.agent.abort();
223
- await this.agent.waitForIdle();
224
- await this._agentEventQueue;
187
+ session.agent.abort();
188
+ await session.agent.waitForIdle();
189
+ await session._agentEventQueue;
225
190
  }
226
191
  finally {
227
- this._activeInterruptAbortMessage = previousAbortMessage;
192
+ session._activeInterruptAbortMessage = previousAbortMessage;
228
193
  }
229
194
  }
230
- await this.agent.prompt(message);
195
+ const owner = resolveWorkflowStageDeliveryTarget(session);
196
+ if (owner !== session)
197
+ return owner._sendInterruptCustomMessageNow(message, forwardedMessageOptions(options));
198
+ if (session._queuedMessagesPaused) {
199
+ session._queueAgentMessage(message, "steer");
200
+ return;
201
+ }
202
+ await session.agent.prompt(message);
203
+ }
204
+ export function _sendInterruptCustomMessageNow(message, options) {
205
+ const owner = resolveWorkflowStageDeliveryTarget(this);
206
+ if (owner !== this)
207
+ return owner._sendInterruptCustomMessageNow(message, forwardedMessageOptions(options));
208
+ return serializeInterruptMutation(this, () => sendInterruptCustomMessageUnlocked(this, message, options));
231
209
  }
232
210
  export function _ensureActiveInterruptQueueHold() {
211
+ const owner = resolveWorkflowStageDeliveryTarget(this);
212
+ if (owner !== this)
213
+ return owner._ensureActiveInterruptQueueHold();
233
214
  if (this._activeInterruptQueueHold !== undefined) {
234
215
  return this._activeInterruptQueueHold;
235
216
  }
@@ -241,10 +222,14 @@ export function _ensureActiveInterruptQueueHold() {
241
222
  return this._activeInterruptQueueHold;
242
223
  }
243
224
  export function _restoreAndClearActiveInterruptQueueHold() {
225
+ const owner = resolveWorkflowStageDeliveryTarget(this);
226
+ if (owner !== this)
227
+ return owner._restoreAndClearActiveInterruptQueueHold();
228
+ if (this._queuedMessagesPaused)
229
+ return;
244
230
  const hold = this._activeInterruptQueueHold;
245
- if (hold === undefined) {
231
+ if (hold === undefined)
246
232
  return;
247
- }
248
233
  const currentCoreQueues = this._drainQueuedAgentMessages();
249
234
  this._restoreQueuedAgentMessages({
250
235
  steering: [...hold.steering, ...currentCoreQueues.steering],
@@ -253,6 +238,9 @@ export function _restoreAndClearActiveInterruptQueueHold() {
253
238
  this._activeInterruptQueueHold = undefined;
254
239
  }
255
240
  export function _queueAgentMessage(message, delivery) {
241
+ const owner = resolveWorkflowStageDeliveryTarget(this);
242
+ if (owner !== this)
243
+ return owner._queueAgentMessage(message, delivery);
256
244
  const hold = this._activeInterruptQueueHold;
257
245
  if (hold !== undefined) {
258
246
  if (delivery === "followUp") {
@@ -272,8 +260,8 @@ export function _queueAgentMessage(message, delivery) {
272
260
  }
273
261
  export function _drainQueuedAgentMessages() {
274
262
  // pi-agent-core exposes public clear methods but no public drain/restore pair.
275
- // Interrupts need to prevent the aborting run from consuming queued steer/follow-up
276
- // messages while still preserving those queues for a later turn.
263
+ // Interrupt and pause holds prevent an aborting run from consuming queued raw
264
+ // messages while preserving every entry for the existing resume boundary.
277
265
  const agentWithQueues = this.agent;
278
266
  return {
279
267
  steering: drainAgentMessageQueue(agentWithQueues.steeringQueue),
@@ -296,14 +284,23 @@ export function _restoreQueuedAgentMessages(queues) {
296
284
  * @param options.deliverAs Delivery mode when streaming: "steer" or "followUp"
297
285
  */
298
286
  export function clearQueue() {
287
+ const owner = resolveWorkflowStageDeliveryTarget(this);
288
+ if (owner !== this)
289
+ return owner.clearQueue();
299
290
  const steering = [...this._steeringMessages];
300
291
  const followUp = [...this._followUpMessages];
301
292
  this._steeringMessages = [];
302
293
  this._followUpMessages = [];
303
- this.agent.clearAllQueues();
294
+ const removed = this._drainQueuedAgentMessages();
304
295
  if (this._activeInterruptQueueHold !== undefined) {
305
- this._activeInterruptQueueHold.steering.length = 0;
306
- this._activeInterruptQueueHold.followUp.length = 0;
296
+ removed.steering.push(...this._activeInterruptQueueHold.steering.splice(0));
297
+ removed.followUp.push(...this._activeInterruptQueueHold.followUp.splice(0));
298
+ }
299
+ restoreProtectedStreamingCustomMessages(this, removed);
300
+ const hold = this._activeInterruptQueueHold;
301
+ if (!this._queuedMessagesPaused && this._pendingInterruptDeliveries === 0 && hold !== undefined
302
+ && hold.steering.length === 0 && hold.followUp.length === 0) {
303
+ this._activeInterruptQueueHold = undefined;
307
304
  }
308
305
  this._emitQueueUpdate();
309
306
  return { steering, followUp };
@@ -316,11 +313,6 @@ export function getSteeringMessages() {
316
313
  export function getFollowUpMessages() {
317
314
  return this._followUpMessages;
318
315
  }
319
- export async function abort() {
320
- this.abortRetry();
321
- this.agent.abort();
322
- await this.agent.waitForIdle();
323
- }
324
316
  // =========================================================================
325
317
  // Model Management
326
318
  // =========================================================================
@@ -353,6 +345,8 @@ export const agentSessionMessageQueueMethods = {
353
345
  _sendInterruptCustomMessageNow,
354
346
  _ensureActiveInterruptQueueHold,
355
347
  _restoreAndClearActiveInterruptQueueHold,
348
+ pauseQueuedMessages,
349
+ resumeQueuedMessages,
356
350
  _queueAgentMessage,
357
351
  _drainQueuedAgentMessages,
358
352
  _restoreQueuedAgentMessages,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-message-queue.js","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { ImageContent, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport type { CustomMessage } from \"./messages.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./extensions/index.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { customMessageExcludesContext, drainAgentMessageQueue, normalizeInterruptAbortMessage, type AgentQueueAccess, type DrainedAgentQueues, type InterruptQueueHold } from \"./agent-session-types.ts\";\nimport { createSessionAsyncDeliveryHandler } from \"./async/session-manager.js\";\n\nexport async function _queueSteer(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\tthis._steeringMessages.push(text);\n\tthis._emitQueueUpdate();\n\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\tif (images) {\n\t\tcontent.push(...images);\n\t}\n\tthis._queueAgentMessage(\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\t\"steer\",\n\t);\n}\n\n/**\n * Internal: Queue a follow-up message (already expanded, no extension command check).\n */\n\nexport async function _queueFollowUp(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\tthis._followUpMessages.push(text);\n\tthis._emitQueueUpdate();\n\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\tif (images) {\n\t\tcontent.push(...images);\n\t}\n\tthis._queueAgentMessage(\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\t\"followUp\",\n\t);\n}\n\n/**\n * Throw an error if the text is an extension command.\n */\n\nexport function _throwIfExtensionCommand(this: AgentSession, text: string): void {\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tconst command = this._extensionRunner.getCommand(commandName);\n\n\tif (command) {\n\t\tthrow new Error(\n\t\t\t`Extension command \"/${commandName}\" cannot be queued. Use prompt() or execute the command when not streaming.`,\n\t\t);\n\t}\n}\n\n/**\n * Send a custom message to the session. Creates a CustomMessageEntry.\n *\n * Handles five cases:\n * - Streaming + interrupt trigger: aborts the active run and starts an immediate custom-message turn\n * - Streaming + explicit display-only context exclusion: appends to state/session, no turn and no queue\n * - Streaming otherwise: queues message, processed when loop pulls from queue\n * - Not streaming + triggerTurn: appends to state/session, starts new turn\n * - Not streaming + no trigger: appends to state/session, no turn\n *\n * @param message Custom message with customType, content, display, details\n * @param options.triggerTurn If true and not streaming, triggers a new LLM turn\n * @param options.deliverAs Delivery mode: \"steer\", \"followUp\", \"nextTurn\", or \"interrupt\"\n */\n\nexport async function sendCustomMessage<T = unknown>(this: AgentSession,\n\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\toptions?: SendMessageOptions,\n): Promise<void> {\n\tconst appMessage = {\n\t\trole: \"custom\" as const,\n\t\tcustomType: message.customType,\n\t\tcontent: message.content ?? [],\n\t\tdisplay: message.display,\n\t\tdetails: message.details,\n\t\ttimestamp: Date.now(),\n\t\t...(options?.excludeFromContext === true ? { excludeFromContext: true } : {}),\n\t} satisfies CustomMessage<T>;\n\tconst boundary = this._workflowStageAdmission;\n\tconst deliver = async (): Promise<void> => {\n\t\tif (boundary && options?.stageAdmissionBarrier) await options.stageAdmissionBarrier();\n\t\tif (options?.deliverAs === \"nextTurn\") {\n\t\t\tthis._pendingNextTurnMessages.push(appMessage);\n\t\t} else if (options?.deliverAs === \"interrupt\" && options.triggerTurn) {\n\t\t\tconst interrupt = this._enqueueInterruptCustomMessage(appMessage, options);\n\t\t\tboundary?.trackAdmittedWork(interrupt);\n\t\t\tvoid interrupt.catch(() => {});\n\t\t} else if (this.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {\n\t\t\tthis._appendCustomMessage(appMessage);\n\t\t} else if (this.isStreaming && options?.persistWhenStreaming === true) {\n\t\t\t// Persist the notice to the transcript so a streaming parent's cleared\n\t\t\t// steer queue or aborted turn cannot silently drop it; it stays visible\n\t\t\t// and in-context for the model's next step.\n\t\t\tthis._appendCustomMessage(appMessage);\n\t\t} else if (this.isStreaming) {\n\t\t\tthis._queueAgentMessage(appMessage, options?.deliverAs === \"followUp\" ? \"followUp\" : \"steer\");\n\t\t} else if (options?.triggerTurn) {\n\t\t\t// ES2022 build target: use a manually constructed deferred instead of\n\t\t\t// Promise.withResolvers (ES2024). Resolve on prompt-start so a later\n\t\t\t// model-turn rejection cannot un-admit an already-delivered notice;\n\t\t\t// reject only when the turn fails before that start signal fires.\n\t\t\tlet resolveAdmission!: () => void;\n\t\t\tlet rejectAdmission!: (error: unknown) => void;\n\t\t\tconst admission = new Promise<void>((resolve, reject) => {\n\t\t\t\tresolveAdmission = resolve;\n\t\t\t\trejectAdmission = reject;\n\t\t\t});\n\t\t\tconst turn = this._runAgentPrompt(appMessage, resolveAdmission);\n\t\t\tvoid turn.then(resolveAdmission, rejectAdmission);\n\t\t\tawait admission;\n\t\t} else {\n\t\t\tthis._appendCustomMessage(appMessage);\n\t\t}\n\t};\n\tif (boundary === undefined) return deliver();\n\tawait boundary.admit(\n\t\toptions?.stageAdmissionKey,\n\t\tdeliver,\n\t\t() => {\n\t\t\tconst router = this._orchestrationContext?.lateMessageRouter;\n\t\t\tif (router === undefined) throw new Error(\"Workflow stage closed without a late-message router\");\n\t\t\treturn router.routeMessage(message, options);\n\t\t},\n\t).completion;\n}\n\n/** Atomically admits a custom-message batch in array order. */\nexport async function sendCustomMessages<T = unknown>(this: AgentSession,\n\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\toptions?: SendMessagesOptions,\n): Promise<void> {\n\tconst timestamp = Date.now();\n\tconst appMessages = messages.map((message) => ({\n\t\trole: \"custom\" as const,\n\t\tcustomType: message.customType,\n\t\tcontent: message.content ?? [],\n\t\tdisplay: message.display,\n\t\tdetails: message.details,\n\t\ttimestamp,\n\t\t...(options?.excludeFromContext === true ? { excludeFromContext: true } : {}),\n\t} satisfies CustomMessage<T>));\n\tif (appMessages.length === 0) return;\n\tconst boundary = this._workflowStageAdmission;\n\tconst deliver = async (): Promise<void> => {\n\t\tif (boundary && options?.stageAdmissionBarrier) await options.stageAdmissionBarrier();\n\t\tif (options?.deliverAs === \"nextTurn\") {\n\t\t\tthis._pendingNextTurnMessages.push(...appMessages);\n\t\t} else if (this.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {\n\t\t\tfor (const item of appMessages) this._appendCustomMessage(item);\n\t\t} else if (this.isStreaming) {\n\t\t\tconst delivery = options?.deliverAs === \"followUp\" ? \"followUp\" : \"steer\";\n\t\t\tfor (const item of appMessages) this._queueAgentMessage(item, delivery);\n\t\t} else if (options?.triggerTurn) {\n\t\t\tconst turn = this._runAgentPrompt(appMessages);\n\t\t\tvoid turn.catch(() => {});\n\t\t} else {\n\t\t\tfor (const item of appMessages) this._appendCustomMessage(item);\n\t\t}\n\t};\n\tif (boundary === undefined) return deliver();\n\tawait boundary.admit(\n\t\toptions?.stageAdmissionKey,\n\t\tdeliver,\n\t\t() => {\n\t\t\tconst router = this._orchestrationContext?.lateMessageRouter;\n\t\t\tif (router === undefined) throw new Error(\"Workflow stage closed without a late-message router\");\n\t\t\treturn router.routeMessages(messages, options);\n\t\t},\n\t).completion;\n}\n\n\nexport function sealWorkflowStageGeneration(this: AgentSession): void {\n\tthis._workflowStageAdmission?.seal();\n}\n\nexport async function closeWorkflowStageGeneration(this: AgentSession): Promise<void> {\n\tawait this._workflowStageAdmission?.close();\n\tawait this.agent?.waitForIdle?.();\n\tawait this._agentEventQueue;\n}\n\nexport function transferWorkflowStageDeliveriesTo(this: AgentSession, target: object): void {\n\tconst next = target as AgentSession;\n\tconst queued = this._drainQueuedAgentMessages();\n\tif (this._activeInterruptQueueHold) {\n\t\tqueued.steering.push(...this._activeInterruptQueueHold.steering);\n\t\tqueued.followUp.push(...this._activeInterruptQueueHold.followUp);\n\t\tthis._activeInterruptQueueHold = undefined;\n\t}\n\tnext._pendingNextTurnMessages.unshift(...this._pendingNextTurnMessages.splice(0));\n\tnext._restoreQueuedAgentMessages(queued);\n\tthis._asyncJobManager.transferSessionDeliveries(\n\t\tthis._asyncJobManagerSessionId,\n\t\tnext._asyncJobManagerSessionId,\n\t\tcreateSessionAsyncDeliveryHandler(next, next._asyncJobManager, next._asyncJobManagerSessionId),\n\t);\n}\nexport function _appendCustomMessage<T>(this: AgentSession, message: CustomMessage<T>): void {\n\tthis.agent.state.messages.push(message);\n\tthis.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\tthis._emit({ type: \"message_start\", message });\n\tthis._emit({ type: \"message_end\", message });\n}\n\n\nexport function _enqueueInterruptCustomMessage<T>(this: AgentSession, message: CustomMessage<T>, options?: SendMessageOptions): Promise<void> {\n\tthis._pendingInterruptDeliveries += 1;\n\t// Establish the hold synchronously when the interrupt is enqueued, not when\n\t// the serialized delivery callback later starts. Callers commonly fire and\n\t// forget sendCustomMessage(), then queue additional steer/follow-up messages\n\t// before the promise chain gets a microtask; those messages must be captured\n\t// in the active interrupt hold instead of pi-agent-core's live queues.\n\tthis._ensureActiveInterruptQueueHold();\n\tconst delivery = this._interruptDeliveryQueue.then(async () => {\n\t\ttry {\n\t\t\tawait this._sendInterruptCustomMessageNow(message, options);\n\t\t} finally {\n\t\t\tthis._pendingInterruptDeliveries -= 1;\n\t\t\tif (this._pendingInterruptDeliveries === 0) {\n\t\t\t\tthis._restoreAndClearActiveInterruptQueueHold();\n\t\t\t}\n\t\t}\n\t});\n\tthis._interruptDeliveryQueue = delivery.catch(() => undefined);\n\treturn delivery;\n}\n\n\nexport async function _sendInterruptCustomMessageNow<T>(this: AgentSession, \n\tmessage: CustomMessage<T>,\n\toptions?: SendMessageOptions,\n): Promise<void> {\n\tthis.abortRetry();\n\tthis._ensureActiveInterruptQueueHold();\n\tif (this.isStreaming) {\n\t\tconst previousAbortMessage = this._activeInterruptAbortMessage;\n\t\tthis._activeInterruptAbortMessage = normalizeInterruptAbortMessage(options?.interruptAbortMessage);\n\t\ttry {\n\t\t\tthis.agent.abort();\n\t\t\tawait this.agent.waitForIdle();\n\t\t\tawait this._agentEventQueue;\n\t\t} finally {\n\t\t\tthis._activeInterruptAbortMessage = previousAbortMessage;\n\t\t}\n\t}\n\tawait this.agent.prompt(message);\n}\n\n\nexport function _ensureActiveInterruptQueueHold(this: AgentSession): InterruptQueueHold {\n\tif (this._activeInterruptQueueHold !== undefined) {\n\t\treturn this._activeInterruptQueueHold;\n\t}\n\tconst drained = this._drainQueuedAgentMessages();\n\tthis._activeInterruptQueueHold = {\n\t\tsteering: [...drained.steering],\n\t\tfollowUp: [...drained.followUp],\n\t};\n\treturn this._activeInterruptQueueHold;\n}\n\n\nexport function _restoreAndClearActiveInterruptQueueHold(this: AgentSession): void {\n\tconst hold = this._activeInterruptQueueHold;\n\tif (hold === undefined) {\n\t\treturn;\n\t}\n\tconst currentCoreQueues = this._drainQueuedAgentMessages();\n\tthis._restoreQueuedAgentMessages({\n\t\tsteering: [...hold.steering, ...currentCoreQueues.steering],\n\t\tfollowUp: [...hold.followUp, ...currentCoreQueues.followUp],\n\t});\n\tthis._activeInterruptQueueHold = undefined;\n}\n\n\nexport function _queueAgentMessage(this: AgentSession, message: AgentMessage, delivery: \"steer\" | \"followUp\"): void {\n\tconst hold = this._activeInterruptQueueHold;\n\tif (hold !== undefined) {\n\t\tif (delivery === \"followUp\") {\n\t\t\thold.followUp.push(message);\n\t\t} else {\n\t\t\thold.steering.push(message);\n\t\t}\n\t\treturn;\n\t}\n\tif (delivery === \"followUp\") {\n\t\tthis.agent.followUp(message);\n\t} else {\n\t\tthis.agent.steer(message);\n\t}\n}\n\n\nexport function _drainQueuedAgentMessages(this: AgentSession): DrainedAgentQueues {\n\t// pi-agent-core exposes public clear methods but no public drain/restore pair.\n\t// Interrupts need to prevent the aborting run from consuming queued steer/follow-up\n\t// messages while still preserving those queues for a later turn.\n\tconst agentWithQueues = this.agent as unknown as AgentQueueAccess;\n\treturn {\n\t\tsteering: drainAgentMessageQueue(agentWithQueues.steeringQueue),\n\t\tfollowUp: drainAgentMessageQueue(agentWithQueues.followUpQueue),\n\t};\n}\n\n\nexport function _restoreQueuedAgentMessages(this: AgentSession, queues: DrainedAgentQueues): void {\n\tfor (const message of queues.steering) {\n\t\tthis.agent.steer(message);\n\t}\n\tfor (const message of queues.followUp) {\n\t\tthis.agent.followUp(message);\n\t}\n}\n\n/**\n * Send a user message to the agent. Always triggers a turn.\n * When the agent is streaming, use deliverAs to specify how to queue the message.\n *\n * @param content User message content (string or content array)\n * @param options.deliverAs Delivery mode when streaming: \"steer\" or \"followUp\"\n */\n\nexport function clearQueue(this: AgentSession): { steering: string[]; followUp: string[] } {\n\tconst steering = [...this._steeringMessages];\n\tconst followUp = [...this._followUpMessages];\n\tthis._steeringMessages = [];\n\tthis._followUpMessages = [];\n\tthis.agent.clearAllQueues();\n\tif (this._activeInterruptQueueHold !== undefined) {\n\t\tthis._activeInterruptQueueHold.steering.length = 0;\n\t\tthis._activeInterruptQueueHold.followUp.length = 0;\n\t}\n\tthis._emitQueueUpdate();\n\treturn { steering, followUp };\n}\n\n/** Number of pending messages (includes both steering and follow-up) */\n\nexport function getSteeringMessages(this: AgentSession): readonly string[] {\n\treturn this._steeringMessages;\n}\n\n/** Get pending follow-up messages (read-only) */\n\nexport function getFollowUpMessages(this: AgentSession): readonly string[] {\n\treturn this._followUpMessages;\n}\n\n\nexport async function abort(this: AgentSession): Promise<void> {\n\tthis.abortRetry();\n\tthis.agent.abort();\n\tawait this.agent.waitForIdle();\n}\n\n// =========================================================================\n// Model Management\n// =========================================================================\n\n\nexport function setSteeringMode(this: AgentSession, mode: \"all\" | \"one-at-a-time\"): void {\n\tthis.agent.steeringMode = mode;\n\tthis.settingsManager.setSteeringMode(mode);\n}\n\n/**\n * Set follow-up message mode.\n * Saves to settings.\n */\n\nexport function setFollowUpMode(this: AgentSession, mode: \"all\" | \"one-at-a-time\"): void {\n\tthis.agent.followUpMode = mode;\n\tthis.settingsManager.setFollowUpMode(mode);\n}\n\n// =========================================================================\n// Queue and delivery settings\n// =========================================================================\nexport const agentSessionMessageQueueMethods = {\n\t_queueSteer,\n\t_queueFollowUp,\n\t_throwIfExtensionCommand,\n\ttransferWorkflowStageDeliveriesTo,\n\tsealWorkflowStageGeneration,\n\tsendCustomMessage,\n\tsendCustomMessages,\n\tcloseWorkflowStageGeneration,\n\t_appendCustomMessage,\n\t_enqueueInterruptCustomMessage,\n\t_sendInterruptCustomMessageNow,\n\t_ensureActiveInterruptQueueHold,\n\t_restoreAndClearActiveInterruptQueueHold,\n\t_queueAgentMessage,\n\t_drainQueuedAgentMessages,\n\t_restoreQueuedAgentMessages,\n\tclearQueue,\n\tgetSteeringMessages,\n\tgetFollowUpMessages,\n\tabort,\n\tsetSteeringMode,\n\tsetFollowUpMode,\n};\n"]}
1
+ {"version":3,"file":"agent-session-message-queue.js","sourceRoot":"","sources":["../../src/core/agent-session-message-queue.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport type { ImageContent, TextContent } from \"@earendil-works/pi-ai/compat\";\nimport type { CustomMessage } from \"./messages.ts\";\nimport type { SendMessageOptions, SendMessagesOptions } from \"./extensions/index.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { customMessageExcludesContext, drainAgentMessageQueue, normalizeInterruptAbortMessage, type AgentQueueAccess, type DrainedAgentQueues, type InterruptQueueHold } from \"./agent-session-types.ts\";\nimport { forwardedMessageOptions, resolveWorkflowStageDeliveryTarget } from \"./agent-session-delivery-forwarding.ts\";\nimport { transferWorkflowStageDeliveriesTo } from \"./agent-session-transfer.ts\";\nimport { abort, pauseQueuedMessages, resumeQueuedMessages } from \"./agent-session-queue-pause.ts\";\nimport { restoreProtectedStreamingCustomMessages } from \"./agent-session-persistent-custom-messages.ts\";\nimport { commitAdmittedCustomMessage, commitAdmittedCustomMessages } from \"./agent-session-custom-message-commit.ts\";\nexport { transferWorkflowStageDeliveriesTo };\n\nconst interruptMutationQueues = new WeakMap<AgentSession, Promise<void>>();\n\nfunction serializeInterruptMutation(owner: AgentSession, operation: () => Promise<void>): Promise<void> {\n\tconst previous = interruptMutationQueues.get(owner) ?? Promise.resolve();\n\tconst delivery = previous.then(operation);\n\tinterruptMutationQueues.set(owner, delivery.catch(() => undefined));\n\treturn delivery;\n}\n\nexport async function _queueSteer(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._queueSteer(text, images);\n\tthis._steeringMessages.push(text);\n\tthis._emitQueueUpdate();\n\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\tif (images) {\n\t\tcontent.push(...images);\n\t}\n\tthis._queueAgentMessage(\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\t\"steer\",\n\t);\n}\n\n/**\n * Internal: Queue a follow-up message (already expanded, no extension command check).\n */\n\nexport async function _queueFollowUp(this: AgentSession, text: string, images?: ImageContent[]): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._queueFollowUp(text, images);\n\tthis._followUpMessages.push(text);\n\tthis._emitQueueUpdate();\n\tconst content: (TextContent | ImageContent)[] = [{ type: \"text\", text }];\n\tif (images) {\n\t\tcontent.push(...images);\n\t}\n\tthis._queueAgentMessage(\n\t\t{\n\t\t\trole: \"user\",\n\t\t\tcontent,\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t\t\"followUp\",\n\t);\n}\n\n/**\n * Throw an error if the text is an extension command.\n */\n\nexport function _throwIfExtensionCommand(this: AgentSession, text: string): void {\n\tconst spaceIndex = text.indexOf(\" \");\n\tconst commandName = spaceIndex === -1 ? text.slice(1) : text.slice(1, spaceIndex);\n\tconst command = this._extensionRunner.getCommand(commandName);\n\n\tif (command) {\n\t\tthrow new Error(\n\t\t\t`Extension command \"/${commandName}\" cannot be queued. Use prompt() or execute the command when not streaming.`,\n\t\t);\n\t}\n}\n\n/**\n * Send a custom message to the session. Creates a CustomMessageEntry.\n *\n * Handles five cases:\n * - Streaming + interrupt trigger: aborts the active run and starts an immediate custom-message turn\n * - Streaming + explicit display-only context exclusion: appends to state/session, no turn and no queue\n * - Streaming otherwise: queues message, processed when loop pulls from queue\n * - Not streaming + triggerTurn: appends to state/session, starts new turn\n * - Not streaming + no trigger: appends to state/session, no turn\n *\n * @param message Custom message with customType, content, display, details\n * @param options.triggerTurn If true and not streaming, triggers a new LLM turn\n * @param options.deliverAs Delivery mode: \"steer\", \"followUp\", \"nextTurn\", or \"interrupt\"\n */\n\nexport async function sendCustomMessage<T = unknown>(this: AgentSession,\n\tmessage: Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">,\n\toptions?: SendMessageOptions,\n): Promise<void> {\n\tconst currentOwner = resolveWorkflowStageDeliveryTarget(this);\n\tif (currentOwner !== this) return currentOwner.sendCustomMessage(message, options);\n\tconst appMessage = {\n\t\trole: \"custom\" as const,\n\t\tcustomType: message.customType,\n\t\tcontent: message.content ?? [],\n\t\tdisplay: message.display,\n\t\tdetails: message.details,\n\t\ttimestamp: Date.now(),\n\t\t...(options?.excludeFromContext === true ? { excludeFromContext: true } : {}),\n\t} satisfies CustomMessage<T>;\n\tconst boundary = this._workflowStageAdmission;\n\tconst deliver = async (): Promise<void> => {\n\t\tif (boundary && options?.stageAdmissionBarrier) await options.stageAdmissionBarrier();\n\t\tawait commitAdmittedCustomMessage(this, appMessage, options);\n\t};\n\tif (boundary === undefined) return deliver();\n\tawait boundary.admit(\n\t\toptions?.stageAdmissionKey,\n\t\tdeliver,\n\t\t() => {\n\t\t\tconst router = this._orchestrationContext?.lateMessageRouter;\n\t\t\tif (router === undefined) throw new Error(\"Workflow stage closed without a late-message router\");\n\t\t\treturn router.routeMessage(message, options);\n\t\t},\n\t).completion;\n}\n\n/** Atomically admits a custom-message batch in array order. */\nexport async function sendCustomMessages<T = unknown>(this: AgentSession,\n\tmessages: Array<Pick<CustomMessage<T>, \"customType\" | \"content\" | \"display\" | \"details\">>,\n\toptions?: SendMessagesOptions,\n): Promise<void> {\n\tconst currentOwner = resolveWorkflowStageDeliveryTarget(this);\n\tif (currentOwner !== this) return currentOwner.sendCustomMessages(messages, options);\n\tconst timestamp = Date.now();\n\tconst appMessages = messages.map((message) => ({\n\t\trole: \"custom\" as const,\n\t\tcustomType: message.customType,\n\t\tcontent: message.content ?? [],\n\t\tdisplay: message.display,\n\t\tdetails: message.details,\n\t\ttimestamp,\n\t\t...(options?.excludeFromContext === true ? { excludeFromContext: true } : {}),\n\t} satisfies CustomMessage<T>));\n\tif (appMessages.length === 0) return;\n\tconst boundary = this._workflowStageAdmission;\n\tconst deliver = async (): Promise<void> => {\n\t\tif (boundary && options?.stageAdmissionBarrier) await options.stageAdmissionBarrier();\n\t\tawait commitAdmittedCustomMessages(this, appMessages, options);\n\t};\n\tif (boundary === undefined) return deliver();\n\tawait boundary.admit(\n\t\toptions?.stageAdmissionKey,\n\t\tdeliver,\n\t\t() => {\n\t\t\tconst router = this._orchestrationContext?.lateMessageRouter;\n\t\t\tif (router === undefined) throw new Error(\"Workflow stage closed without a late-message router\");\n\t\t\treturn router.routeMessages(messages, options);\n\t\t},\n\t).completion;\n}\n\nexport function sealWorkflowStageGeneration(this: AgentSession): void {\n\tthis._workflowStageAdmission?.seal();\n}\n\nexport async function closeWorkflowStageGeneration(this: AgentSession): Promise<void> {\n\tawait this._workflowStageAdmission?.close();\n\tawait this.agent?.waitForIdle?.();\n\tawait this._agentEventQueue;\n}\n\nexport function _appendCustomMessage<T>(this: AgentSession, message: CustomMessage<T>): void {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._appendCustomMessage(message);\n\tthis.agent.state.messages.push(message);\n\tthis.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\tthis._emit({ type: \"message_start\", message });\n\tthis._emit({ type: \"message_end\", message });\n}\n\nexport function _enqueueInterruptCustomMessage<T>(this: AgentSession, message: CustomMessage<T>, options?: SendMessageOptions): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._enqueueInterruptCustomMessage(message, forwardedMessageOptions(options));\n\tthis._pendingInterruptDeliveries += 1;\n\t// Establish the hold synchronously when the interrupt is enqueued, not when\n\t// the serialized delivery callback later starts. Callers commonly fire and\n\t// forget sendCustomMessage(), then queue additional steer/follow-up messages\n\t// before the promise chain gets a microtask; those messages must be captured\n\t// in the active interrupt hold instead of pi-agent-core's live queues.\n\tthis._ensureActiveInterruptQueueHold();\n\tconst delivery = this._interruptDeliveryQueue.then(async () => {\n\t\ttry {\n\t\t\tawait this._sendInterruptCustomMessageNow(message, options);\n\t\t} finally {\n\t\t\t// Retirement moves the pending count and hold synchronously. Settle the\n\t\t\t// same live owner so its queue cannot remain stranded on the replacement.\n\t\t\tconst liveOwner = resolveWorkflowStageDeliveryTarget(this);\n\t\t\tliveOwner._pendingInterruptDeliveries -= 1;\n\t\t\tif (liveOwner._pendingInterruptDeliveries === 0) {\n\t\t\t\tliveOwner._restoreAndClearActiveInterruptQueueHold();\n\t\t\t}\n\t\t}\n\t});\n\tthis._interruptDeliveryQueue = delivery.catch(() => undefined);\n\treturn delivery;\n}\n\n\nasync function sendInterruptCustomMessageUnlocked<T>(\n\tsession: AgentSession,\n\tmessage: CustomMessage<T>,\n\toptions?: SendMessageOptions,\n): Promise<void> {\n\tsession.abortRetry();\n\tsession._ensureActiveInterruptQueueHold();\n\tif (session.isStreaming) {\n\t\tconst previousAbortMessage = session._activeInterruptAbortMessage;\n\t\tsession._activeInterruptAbortMessage = normalizeInterruptAbortMessage(options?.interruptAbortMessage);\n\t\ttry {\n\t\t\tsession.agent.abort();\n\t\t\tawait session.agent.waitForIdle();\n\t\t\tawait session._agentEventQueue;\n\t\t} finally {\n\t\t\tsession._activeInterruptAbortMessage = previousAbortMessage;\n\t\t}\n\t}\n\tconst owner = resolveWorkflowStageDeliveryTarget(session);\n\tif (owner !== session) return owner._sendInterruptCustomMessageNow(message, forwardedMessageOptions(options));\n\tif (session._queuedMessagesPaused) {\n\t\tsession._queueAgentMessage(message, \"steer\");\n\t\treturn;\n\t}\n\tawait session.agent.prompt(message);\n}\n\nexport function _sendInterruptCustomMessageNow<T>(this: AgentSession,\n\tmessage: CustomMessage<T>,\n\toptions?: SendMessageOptions,\n): Promise<void> {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._sendInterruptCustomMessageNow(message, forwardedMessageOptions(options));\n\treturn serializeInterruptMutation(this, () => sendInterruptCustomMessageUnlocked(this, message, options));\n}\n\n\nexport function _ensureActiveInterruptQueueHold(this: AgentSession): InterruptQueueHold {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._ensureActiveInterruptQueueHold();\n\tif (this._activeInterruptQueueHold !== undefined) {\n\t\treturn this._activeInterruptQueueHold;\n\t}\n\tconst drained = this._drainQueuedAgentMessages();\n\tthis._activeInterruptQueueHold = {\n\t\tsteering: [...drained.steering],\n\t\tfollowUp: [...drained.followUp],\n\t};\n\treturn this._activeInterruptQueueHold;\n}\n\n\nexport function _restoreAndClearActiveInterruptQueueHold(this: AgentSession): void {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._restoreAndClearActiveInterruptQueueHold();\n\tif (this._queuedMessagesPaused) return;\n\tconst hold = this._activeInterruptQueueHold;\n\tif (hold === undefined) return;\n\tconst currentCoreQueues = this._drainQueuedAgentMessages();\n\tthis._restoreQueuedAgentMessages({\n\t\tsteering: [...hold.steering, ...currentCoreQueues.steering],\n\t\tfollowUp: [...hold.followUp, ...currentCoreQueues.followUp],\n\t});\n\tthis._activeInterruptQueueHold = undefined;\n}\n\n\nexport function _queueAgentMessage(this: AgentSession, message: AgentMessage, delivery: \"steer\" | \"followUp\"): void {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner._queueAgentMessage(message, delivery);\n\tconst hold = this._activeInterruptQueueHold;\n\tif (hold !== undefined) {\n\t\tif (delivery === \"followUp\") {\n\t\t\thold.followUp.push(message);\n\t\t} else {\n\t\t\thold.steering.push(message);\n\t\t}\n\t\treturn;\n\t}\n\tif (delivery === \"followUp\") {\n\t\tthis.agent.followUp(message);\n\t} else {\n\t\tthis.agent.steer(message);\n\t}\n}\n\n\nexport function _drainQueuedAgentMessages(this: AgentSession): DrainedAgentQueues {\n\t// pi-agent-core exposes public clear methods but no public drain/restore pair.\n\t// Interrupt and pause holds prevent an aborting run from consuming queued raw\n\t// messages while preserving every entry for the existing resume boundary.\n\tconst agentWithQueues = this.agent as unknown as AgentQueueAccess;\n\treturn {\n\t\tsteering: drainAgentMessageQueue(agentWithQueues.steeringQueue),\n\t\tfollowUp: drainAgentMessageQueue(agentWithQueues.followUpQueue),\n\t};\n}\n\n\nexport function _restoreQueuedAgentMessages(this: AgentSession, queues: DrainedAgentQueues): void {\n\tfor (const message of queues.steering) {\n\t\tthis.agent.steer(message);\n\t}\n\tfor (const message of queues.followUp) {\n\t\tthis.agent.followUp(message);\n\t}\n}\n/**\n * Send a user message to the agent. Always triggers a turn.\n * When the agent is streaming, use deliverAs to specify how to queue the message.\n *\n * @param content User message content (string or content array)\n * @param options.deliverAs Delivery mode when streaming: \"steer\" or \"followUp\"\n */\nexport function clearQueue(this: AgentSession): { steering: string[]; followUp: string[] } {\n\tconst owner = resolveWorkflowStageDeliveryTarget(this);\n\tif (owner !== this) return owner.clearQueue();\n\tconst steering = [...this._steeringMessages];\n\tconst followUp = [...this._followUpMessages];\n\tthis._steeringMessages = [];\n\tthis._followUpMessages = [];\n\tconst removed = this._drainQueuedAgentMessages();\n\tif (this._activeInterruptQueueHold !== undefined) {\n\t\tremoved.steering.push(...this._activeInterruptQueueHold.steering.splice(0));\n\t\tremoved.followUp.push(...this._activeInterruptQueueHold.followUp.splice(0));\n\t}\n\trestoreProtectedStreamingCustomMessages(this, removed);\n\tconst hold = this._activeInterruptQueueHold;\n\tif (!this._queuedMessagesPaused && this._pendingInterruptDeliveries === 0 && hold !== undefined\n\t\t&& hold.steering.length === 0 && hold.followUp.length === 0) {\n\t\tthis._activeInterruptQueueHold = undefined;\n\t}\n\tthis._emitQueueUpdate();\n\treturn { steering, followUp };\n}\n\n/** Number of pending messages (includes both steering and follow-up) */\nexport function getSteeringMessages(this: AgentSession): readonly string[] {\n\treturn this._steeringMessages;\n}\n\n/** Get pending follow-up messages (read-only) */\nexport function getFollowUpMessages(this: AgentSession): readonly string[] {\n\treturn this._followUpMessages;\n}\n\n\n// =========================================================================\n// Model Management\n// =========================================================================\n\n\nexport function setSteeringMode(this: AgentSession, mode: \"all\" | \"one-at-a-time\"): void {\n\tthis.agent.steeringMode = mode;\n\tthis.settingsManager.setSteeringMode(mode);\n}\n\n/**\n * Set follow-up message mode.\n * Saves to settings.\n */\n\nexport function setFollowUpMode(this: AgentSession, mode: \"all\" | \"one-at-a-time\"): void {\n\tthis.agent.followUpMode = mode;\n\tthis.settingsManager.setFollowUpMode(mode);\n}\n\n// =========================================================================\n// Queue and delivery settings\n// =========================================================================\nexport const agentSessionMessageQueueMethods = {\n\t_queueSteer,\n\t_queueFollowUp,\n\t_throwIfExtensionCommand,\n\ttransferWorkflowStageDeliveriesTo,\n\tsealWorkflowStageGeneration,\n\tsendCustomMessage,\n\tsendCustomMessages,\n\tcloseWorkflowStageGeneration,\n\t_appendCustomMessage,\n\t_enqueueInterruptCustomMessage,\n\t_sendInterruptCustomMessageNow,\n\t_ensureActiveInterruptQueueHold,\n\t_restoreAndClearActiveInterruptQueueHold,\n\tpauseQueuedMessages,\n\tresumeQueuedMessages,\n\t_queueAgentMessage,\n\t_drainQueuedAgentMessages,\n\t_restoreQueuedAgentMessages,\n\tclearQueue,\n\tgetSteeringMessages,\n\tgetFollowUpMessages,\n\tabort,\n\tsetSteeringMode,\n\tsetFollowUpMode,\n};\n"]}