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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1674) hide show
  1. package/CHANGELOG.md +75 -1
  2. package/dist/builtin/intercom/package.json +3 -3
  3. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  4. package/dist/builtin/mcp/commands.ts +7 -3
  5. package/dist/builtin/mcp/package.json +6 -6
  6. package/dist/builtin/subagents/CHANGELOG.md +9 -0
  7. package/dist/builtin/subagents/package.json +5 -5
  8. package/dist/builtin/subagents/src/agents/agent-discovery.ts +26 -15
  9. package/dist/builtin/subagents/src/agents/agent-loaders.ts +48 -34
  10. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +80 -31
  11. package/dist/builtin/subagents/src/agents/agent-management.ts +194 -55
  12. package/dist/builtin/subagents/src/agents/agent-overrides.ts +85 -32
  13. package/dist/builtin/subagents/src/agents/agent-paths.ts +4 -1
  14. package/dist/builtin/subagents/src/agents/agent-selection.ts +1 -1
  15. package/dist/builtin/subagents/src/agents/agent-serializer.ts +1 -4
  16. package/dist/builtin/subagents/src/agents/agents.ts +9 -9
  17. package/dist/builtin/subagents/src/agents/chain-serializer.ts +9 -5
  18. package/dist/builtin/subagents/src/agents/identity.ts +12 -3
  19. package/dist/builtin/subagents/src/agents/skills-paths.ts +64 -24
  20. package/dist/builtin/subagents/src/agents/skills.ts +29 -26
  21. package/dist/builtin/subagents/src/extension/doctor.ts +31 -20
  22. package/dist/builtin/subagents/src/extension/fanout-child.ts +27 -12
  23. package/dist/builtin/subagents/src/extension/index.ts +119 -43
  24. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +0 -1
  25. package/dist/builtin/subagents/src/extension/schemas.ts +304 -177
  26. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +137 -73
  27. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +49 -21
  28. package/dist/builtin/subagents/src/intercom/result-intercom.ts +76 -38
  29. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +12 -6
  30. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +164 -57
  31. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +15 -18
  32. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +66 -27
  33. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +4 -14
  34. package/dist/builtin/subagents/src/runs/background/async-execution.ts +1 -1
  35. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +86 -32
  36. package/dist/builtin/subagents/src/runs/background/async-resume.ts +93 -36
  37. package/dist/builtin/subagents/src/runs/background/async-status.ts +82 -27
  38. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +12 -5
  39. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +3 -1
  40. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +3 -1
  41. package/dist/builtin/subagents/src/runs/background/notify.ts +36 -18
  42. package/dist/builtin/subagents/src/runs/background/parallel-groups.ts +28 -14
  43. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +147 -79
  44. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +20 -5
  45. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +7 -2
  46. package/dist/builtin/subagents/src/runs/background/result-status.ts +11 -5
  47. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +18 -5
  48. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +104 -35
  49. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +28 -7
  50. package/dist/builtin/subagents/src/runs/background/run-status.ts +120 -32
  51. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +98 -39
  52. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +185 -37
  53. package/dist/builtin/subagents/src/runs/background/subagent-runner-finalize.ts +23 -9
  54. package/dist/builtin/subagents/src/runs/background/subagent-runner-output.ts +6 -2
  55. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel-helpers.ts +34 -18
  56. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +175 -26
  57. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +68 -23
  58. package/dist/builtin/subagents/src/runs/background/subagent-runner-state.ts +200 -49
  59. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +81 -49
  60. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +33 -11
  61. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +16 -6
  62. package/dist/builtin/subagents/src/runs/background/subagent-runner-utils.ts +2 -3
  63. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +11 -8
  64. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +5 -2
  65. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +113 -31
  66. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +64 -55
  67. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +103 -37
  68. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +97 -62
  69. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +22 -10
  70. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +9 -6
  71. package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +22 -22
  72. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-control.ts +45 -40
  73. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +6 -5
  74. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +118 -43
  75. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +17 -7
  76. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +5 -3
  77. package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +39 -35
  78. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +81 -42
  79. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +27 -21
  80. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +2 -5
  81. package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +9 -4
  82. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +64 -27
  83. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +31 -18
  84. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +95 -62
  85. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +30 -9
  86. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +106 -96
  87. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +68 -37
  88. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +260 -84
  89. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +6 -1
  90. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +63 -40
  91. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +110 -59
  92. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +20 -3
  93. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +8 -6
  94. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +65 -47
  95. package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +37 -12
  96. package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +120 -34
  97. package/dist/builtin/subagents/src/runs/shared/final-drain.ts +12 -7
  98. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +3 -2
  99. package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +8 -3
  100. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +42 -19
  101. package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +8 -4
  102. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +103 -38
  103. package/dist/builtin/subagents/src/runs/shared/nested-events-control.ts +30 -20
  104. package/dist/builtin/subagents/src/runs/shared/nested-events-core.ts +45 -20
  105. package/dist/builtin/subagents/src/runs/shared/nested-events-projection.ts +57 -23
  106. package/dist/builtin/subagents/src/runs/shared/nested-events-registry.ts +77 -29
  107. package/dist/builtin/subagents/src/runs/shared/nested-events-sanitize.ts +99 -42
  108. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +32 -26
  109. package/dist/builtin/subagents/src/runs/shared/nested-path.ts +22 -17
  110. package/dist/builtin/subagents/src/runs/shared/nested-render.ts +31 -10
  111. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +9 -8
  112. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +54 -30
  113. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +17 -13
  114. package/dist/builtin/subagents/src/runs/shared/run-history.ts +13 -6
  115. package/dist/builtin/subagents/src/runs/shared/single-output.ts +11 -6
  116. package/dist/builtin/subagents/src/runs/shared/spawn-env.ts +21 -0
  117. package/dist/builtin/subagents/src/runs/shared/structured-output.ts +33 -19
  118. package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +59 -48
  119. package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +18 -11
  120. package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +41 -11
  121. package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +46 -10
  122. package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +21 -5
  123. package/dist/builtin/subagents/src/runs/shared/worktree.ts +89 -34
  124. package/dist/builtin/subagents/src/shared/artifacts.ts +137 -7
  125. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +49 -13
  126. package/dist/builtin/subagents/src/shared/fast-mode.ts +13 -6
  127. package/dist/builtin/subagents/src/shared/fork-context.ts +7 -4
  128. package/dist/builtin/subagents/src/shared/formatters.ts +14 -9
  129. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +2 -1
  130. package/dist/builtin/subagents/src/shared/model-info.ts +10 -3
  131. package/dist/builtin/subagents/src/shared/post-exit-stdio-guard.ts +7 -6
  132. package/dist/builtin/subagents/src/shared/session-tokens.ts +2 -1
  133. package/dist/builtin/subagents/src/shared/settings.ts +39 -43
  134. package/dist/builtin/subagents/src/shared/status-format.ts +10 -2
  135. package/dist/builtin/subagents/src/shared/types-async.ts +22 -19
  136. package/dist/builtin/subagents/src/shared/types-config.ts +1 -1
  137. package/dist/builtin/subagents/src/shared/types-depth.ts +23 -11
  138. package/dist/builtin/subagents/src/shared/types-results.ts +49 -6
  139. package/dist/builtin/subagents/src/shared/types-runtime.ts +16 -17
  140. package/dist/builtin/subagents/src/shared/types.ts +2 -2
  141. package/dist/builtin/subagents/src/shared/utils.ts +34 -20
  142. package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +44 -47
  143. package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +5 -7
  144. package/dist/builtin/subagents/src/slash/slash-bridge.ts +3 -3
  145. package/dist/builtin/subagents/src/slash/slash-commands.ts +78 -52
  146. package/dist/builtin/subagents/src/slash/slash-live-state.ts +59 -32
  147. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +120 -32
  148. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +85 -22
  149. package/dist/builtin/subagents/src/tui/render-helpers.ts +16 -6
  150. package/dist/builtin/subagents/src/tui/render-layout.ts +8 -3
  151. package/dist/builtin/subagents/src/tui/render-result-compact.ts +125 -43
  152. package/dist/builtin/subagents/src/tui/render-result.ts +128 -85
  153. package/dist/builtin/subagents/src/tui/render-stable-output.ts +17 -13
  154. package/dist/builtin/subagents/src/tui/render-status-progress.ts +52 -20
  155. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +130 -28
  156. package/dist/builtin/subagents/src/tui/render-widget.ts +54 -27
  157. package/dist/builtin/subagents/src/tui/render.ts +10 -3
  158. package/dist/builtin/web-access/package.json +2 -2
  159. package/dist/builtin/workflows/CHANGELOG.md +30 -0
  160. package/dist/builtin/workflows/README.md +6 -0
  161. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +104 -40
  162. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +57 -26
  163. package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +125 -12
  164. package/dist/builtin/workflows/package.json +3 -3
  165. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +4 -1
  166. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +5 -1
  167. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +7 -1
  168. package/dist/builtin/workflows/skills/impeccable/scripts/live-manual-edit-evidence.mjs +5 -2
  169. package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +7 -1
  170. package/dist/builtin/workflows/src/authoring/typebox-defaults.d.ts +5 -5
  171. package/dist/builtin/workflows/src/authoring/typebox-defaults.ts +160 -197
  172. package/dist/builtin/workflows/src/authoring/workflow.ts +137 -133
  173. package/dist/builtin/workflows/src/authoring.d.ts +3 -3
  174. package/dist/builtin/workflows/src/durable/backend.ts +507 -439
  175. package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +142 -118
  176. package/dist/builtin/workflows/src/durable/boundary-topology.ts +410 -355
  177. package/dist/builtin/workflows/src/durable/child-invocation.ts +6 -6
  178. package/dist/builtin/workflows/src/durable/child-primitive.ts +109 -101
  179. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +234 -194
  180. package/dist/builtin/workflows/src/durable/completed-catalog.ts +379 -372
  181. package/dist/builtin/workflows/src/durable/completed-inspection.ts +118 -116
  182. package/dist/builtin/workflows/src/durable/completed-subtree.ts +24 -20
  183. package/dist/builtin/workflows/src/durable/dbos-backend.ts +484 -418
  184. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +86 -87
  185. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +171 -149
  186. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +400 -324
  187. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +117 -121
  188. package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +75 -68
  189. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +138 -119
  190. package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +316 -259
  191. package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +138 -117
  192. package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +48 -43
  193. package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +14 -14
  194. package/dist/builtin/workflows/src/durable/durable-hash.ts +9 -11
  195. package/dist/builtin/workflows/src/durable/factory.ts +45 -46
  196. package/dist/builtin/workflows/src/durable/format-version.ts +1 -1
  197. package/dist/builtin/workflows/src/durable/index.ts +69 -70
  198. package/dist/builtin/workflows/src/durable/local-command.ts +47 -43
  199. package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +156 -149
  200. package/dist/builtin/workflows/src/durable/prompt-reservations.ts +16 -16
  201. package/dist/builtin/workflows/src/durable/resume-catalog.ts +11 -11
  202. package/dist/builtin/workflows/src/durable/resume-eligibility.ts +27 -25
  203. package/dist/builtin/workflows/src/durable/resume-runtime.ts +261 -226
  204. package/dist/builtin/workflows/src/durable/retention-policy.ts +31 -30
  205. package/dist/builtin/workflows/src/durable/run-timing.ts +42 -41
  206. package/dist/builtin/workflows/src/durable/scoped-backend.ts +249 -228
  207. package/dist/builtin/workflows/src/durable/stage-primitive.ts +456 -398
  208. package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +199 -186
  209. package/dist/builtin/workflows/src/durable/stage-topology.ts +40 -40
  210. package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +37 -37
  211. package/dist/builtin/workflows/src/durable/tool-outcome.ts +95 -85
  212. package/dist/builtin/workflows/src/durable/tool-primitive.ts +606 -410
  213. package/dist/builtin/workflows/src/durable/types.ts +219 -216
  214. package/dist/builtin/workflows/src/durable/ui-primitive.ts +241 -208
  215. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +40 -37
  216. package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +16 -15
  217. package/dist/builtin/workflows/src/engine/graph-inference.ts +76 -76
  218. package/dist/builtin/workflows/src/engine/options.ts +35 -36
  219. package/dist/builtin/workflows/src/engine/primitives/chain.ts +27 -22
  220. package/dist/builtin/workflows/src/engine/primitives/exit.ts +1 -1
  221. package/dist/builtin/workflows/src/engine/primitives/parallel.ts +64 -52
  222. package/dist/builtin/workflows/src/engine/primitives/task.ts +110 -95
  223. package/dist/builtin/workflows/src/engine/primitives/ui.ts +46 -50
  224. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +194 -160
  225. package/dist/builtin/workflows/src/engine/replay.ts +6 -6
  226. package/dist/builtin/workflows/src/engine/run-durable-admission.ts +30 -30
  227. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +64 -47
  228. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +29 -23
  229. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +246 -219
  230. package/dist/builtin/workflows/src/engine/run-returned-status.ts +60 -57
  231. package/dist/builtin/workflows/src/engine/run-terminal-event.ts +25 -23
  232. package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +45 -42
  233. package/dist/builtin/workflows/src/engine/run-tool-admission-boundary.ts +99 -0
  234. package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +179 -0
  235. package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +144 -132
  236. package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +134 -69
  237. package/dist/builtin/workflows/src/engine/run.ts +678 -473
  238. package/dist/builtin/workflows/src/engine/runtime.ts +160 -153
  239. package/dist/builtin/workflows/src/engine/workflow-activity.ts +7 -3
  240. package/dist/builtin/workflows/src/engine/workflow-tool-abort.ts +92 -0
  241. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +123 -120
  242. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +108 -112
  243. package/dist/builtin/workflows/src/extension/companions.ts +116 -116
  244. package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +123 -111
  245. package/dist/builtin/workflows/src/extension/config-file-loader.ts +153 -148
  246. package/dist/builtin/workflows/src/extension/config-loader.ts +264 -283
  247. package/dist/builtin/workflows/src/extension/discovery-loaders.ts +81 -84
  248. package/dist/builtin/workflows/src/extension/discovery.ts +267 -272
  249. package/dist/builtin/workflows/src/extension/dispatcher.ts +214 -217
  250. package/dist/builtin/workflows/src/extension/extension-factory.ts +102 -108
  251. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +118 -116
  252. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +413 -396
  253. package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +270 -261
  254. package/dist/builtin/workflows/src/extension/index.bundle.mjs +33724 -32828
  255. package/dist/builtin/workflows/src/extension/index.ts +37 -37
  256. package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +64 -64
  257. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +384 -378
  258. package/dist/builtin/workflows/src/extension/mcp.ts +35 -35
  259. package/dist/builtin/workflows/src/extension/postmortem-deps.ts +31 -35
  260. package/dist/builtin/workflows/src/extension/public-types.ts +160 -182
  261. package/dist/builtin/workflows/src/extension/render-call.ts +85 -88
  262. package/dist/builtin/workflows/src/extension/render-component.ts +9 -11
  263. package/dist/builtin/workflows/src/extension/render-result.ts +447 -386
  264. package/dist/builtin/workflows/src/extension/renderers.ts +35 -35
  265. package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +37 -37
  266. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +145 -143
  267. package/dist/builtin/workflows/src/extension/runtime.ts +346 -264
  268. package/dist/builtin/workflows/src/extension/status-writer.ts +95 -95
  269. package/dist/builtin/workflows/src/extension/ui-surface.ts +224 -222
  270. package/dist/builtin/workflows/src/extension/wiring.ts +307 -283
  271. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +109 -108
  272. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +257 -227
  273. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +84 -84
  274. package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +126 -132
  275. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +213 -205
  276. package/dist/builtin/workflows/src/extension/workflow-model-catalog.ts +19 -21
  277. package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +104 -104
  278. package/dist/builtin/workflows/src/extension/workflow-policy.ts +7 -9
  279. package/dist/builtin/workflows/src/extension/workflow-ports.ts +30 -34
  280. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +13 -13
  281. package/dist/builtin/workflows/src/extension/workflow-reload-coordinator.ts +46 -46
  282. package/dist/builtin/workflows/src/extension/workflow-reload-report.ts +28 -25
  283. package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +48 -45
  284. package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +28 -31
  285. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +539 -453
  286. package/dist/builtin/workflows/src/extension/workflow-schema.ts +149 -92
  287. package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +182 -194
  288. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +150 -155
  289. package/dist/builtin/workflows/src/extension/workflow-targets.ts +151 -121
  290. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +204 -224
  291. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +512 -372
  292. package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +146 -150
  293. package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +43 -46
  294. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +341 -292
  295. package/dist/builtin/workflows/src/extension/workflow-tool.ts +122 -129
  296. package/dist/builtin/workflows/src/intercom/intercom-bridge.ts +17 -20
  297. package/dist/builtin/workflows/src/intercom/intercom-routing.ts +62 -62
  298. package/dist/builtin/workflows/src/intercom/result-intercom.ts +123 -123
  299. package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +72 -59
  300. package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +45 -45
  301. package/dist/builtin/workflows/src/runs/background/job-tracker.ts +69 -34
  302. package/dist/builtin/workflows/src/runs/background/quit-tool-node.ts +71 -0
  303. package/dist/builtin/workflows/src/runs/background/quit.ts +359 -138
  304. package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +70 -69
  305. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +85 -80
  306. package/dist/builtin/workflows/src/runs/background/runner.ts +122 -121
  307. package/dist/builtin/workflows/src/runs/background/startup-admission.ts +56 -60
  308. package/dist/builtin/workflows/src/runs/background/status.ts +324 -294
  309. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +23 -17
  310. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +311 -309
  311. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +228 -201
  312. package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +56 -51
  313. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +168 -152
  314. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +255 -217
  315. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +178 -173
  316. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +273 -269
  317. package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +59 -56
  318. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +368 -361
  319. package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +123 -127
  320. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +355 -339
  321. package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +47 -47
  322. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +125 -104
  323. package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +189 -189
  324. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +294 -250
  325. package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +141 -127
  326. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +218 -213
  327. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +406 -364
  328. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +143 -127
  329. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +49 -49
  330. package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +1 -1
  331. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +148 -153
  332. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +155 -117
  333. package/dist/builtin/workflows/src/runs/foreground/executor.ts +10 -10
  334. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +168 -141
  335. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +356 -379
  336. package/dist/builtin/workflows/src/runs/foreground/stage-delivery-activity.ts +53 -53
  337. package/dist/builtin/workflows/src/runs/foreground/stage-queued-user-messages.ts +95 -0
  338. package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +8 -8
  339. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +232 -232
  340. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +630 -493
  341. package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +182 -181
  342. package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +80 -80
  343. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +78 -78
  344. package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +102 -104
  345. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +178 -173
  346. package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +31 -32
  347. package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +114 -105
  348. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +29 -29
  349. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +44 -52
  350. package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +63 -58
  351. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +157 -148
  352. package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +27 -23
  353. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +10 -10
  354. package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +33 -31
  355. package/dist/builtin/workflows/src/runs/shared/concurrency.ts +53 -53
  356. package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +1 -1
  357. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +257 -245
  358. package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +378 -363
  359. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +55 -55
  360. package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +75 -84
  361. package/dist/builtin/workflows/src/runs/shared/worktree-cache-lifecycle.ts +1 -3
  362. package/dist/builtin/workflows/src/runs/shared/worktree-cwd.ts +96 -83
  363. package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +9 -2
  364. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +21 -6
  365. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +60 -30
  366. package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +12 -5
  367. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +51 -30
  368. package/dist/builtin/workflows/src/runs/shared/worktree.ts +4 -4
  369. package/dist/builtin/workflows/src/sdk-surface.ts +38 -19
  370. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +11 -5
  371. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +299 -275
  372. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +21 -7
  373. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +290 -264
  374. package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +220 -211
  375. package/dist/builtin/workflows/src/shared/intercom-group.ts +22 -22
  376. package/dist/builtin/workflows/src/shared/persistence-compaction-policy.ts +30 -30
  377. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +432 -406
  378. package/dist/builtin/workflows/src/shared/persistence-restore.ts +187 -181
  379. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +211 -212
  380. package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +3 -3
  381. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +84 -91
  382. package/dist/builtin/workflows/src/shared/resume-continuation.ts +1 -1
  383. package/dist/builtin/workflows/src/shared/returned-run-status.ts +91 -77
  384. package/dist/builtin/workflows/src/shared/run-visibility.ts +2 -2
  385. package/dist/builtin/workflows/src/shared/schema-introspection.ts +50 -60
  386. package/dist/builtin/workflows/src/shared/serializable.ts +72 -86
  387. package/dist/builtin/workflows/src/shared/session-transcript.ts +44 -39
  388. package/dist/builtin/workflows/src/shared/stage-prompt.ts +183 -202
  389. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +270 -274
  390. package/dist/builtin/workflows/src/shared/store-factory.ts +8 -8
  391. package/dist/builtin/workflows/src/shared/store-internal.ts +168 -172
  392. package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +196 -200
  393. package/dist/builtin/workflows/src/shared/store-public-types.ts +208 -204
  394. package/dist/builtin/workflows/src/shared/store-run-methods.ts +238 -231
  395. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +284 -285
  396. package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +43 -36
  397. package/dist/builtin/workflows/src/shared/store-types.ts +263 -263
  398. package/dist/builtin/workflows/src/shared/store.ts +7 -7
  399. package/dist/builtin/workflows/src/shared/timing.ts +36 -34
  400. package/dist/builtin/workflows/src/shared/types.ts +256 -213
  401. package/dist/builtin/workflows/src/shared/workflow-authoring-types.d.ts +10 -4
  402. package/dist/builtin/workflows/src/shared/workflow-authoring-types.ts +81 -59
  403. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +247 -227
  404. package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +45 -46
  405. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +330 -351
  406. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +192 -195
  407. package/dist/builtin/workflows/src/shared/workflow-failures.ts +10 -10
  408. package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +32 -36
  409. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +157 -184
  410. package/dist/builtin/workflows/src/tui/chat-surface.ts +332 -355
  411. package/dist/builtin/workflows/src/tui/color-utils.ts +21 -30
  412. package/dist/builtin/workflows/src/tui/connectors.ts +57 -61
  413. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +168 -192
  414. package/dist/builtin/workflows/src/tui/edge.ts +10 -9
  415. package/dist/builtin/workflows/src/tui/graph-canvas.ts +131 -134
  416. package/dist/builtin/workflows/src/tui/graph-theme.ts +139 -148
  417. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +6 -6
  418. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +146 -179
  419. package/dist/builtin/workflows/src/tui/graph-view-input.ts +295 -323
  420. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +291 -327
  421. package/dist/builtin/workflows/src/tui/graph-view-render.ts +171 -191
  422. package/dist/builtin/workflows/src/tui/graph-view-state.ts +317 -303
  423. package/dist/builtin/workflows/src/tui/graph-view-types.ts +65 -59
  424. package/dist/builtin/workflows/src/tui/header.ts +140 -156
  425. package/dist/builtin/workflows/src/tui/host-input-form.ts +47 -45
  426. package/dist/builtin/workflows/src/tui/inline-form-card.ts +277 -266
  427. package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +61 -62
  428. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +407 -412
  429. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +203 -214
  430. package/dist/builtin/workflows/src/tui/inline-form-store.ts +24 -24
  431. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +116 -129
  432. package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +111 -115
  433. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +255 -269
  434. package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +248 -236
  435. package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +111 -140
  436. package/dist/builtin/workflows/src/tui/inputs-picker.ts +12 -12
  437. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +49 -57
  438. package/dist/builtin/workflows/src/tui/layout.ts +124 -133
  439. package/dist/builtin/workflows/src/tui/mouse-input.ts +45 -47
  440. package/dist/builtin/workflows/src/tui/node-card.ts +230 -219
  441. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +381 -394
  442. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +20 -19
  443. package/dist/builtin/workflows/src/tui/prompt-card-input.ts +183 -194
  444. package/dist/builtin/workflows/src/tui/prompt-card-render.ts +243 -302
  445. package/dist/builtin/workflows/src/tui/prompt-card-select.ts +76 -98
  446. package/dist/builtin/workflows/src/tui/prompt-card-state.ts +40 -40
  447. package/dist/builtin/workflows/src/tui/prompt-card-text.ts +76 -83
  448. package/dist/builtin/workflows/src/tui/prompt-card.ts +3 -3
  449. package/dist/builtin/workflows/src/tui/renderers.ts +6 -6
  450. package/dist/builtin/workflows/src/tui/run-detail.ts +287 -279
  451. package/dist/builtin/workflows/src/tui/session-list.ts +19 -22
  452. package/dist/builtin/workflows/src/tui/session-overlays.ts +82 -87
  453. package/dist/builtin/workflows/src/tui/session-picker.ts +258 -275
  454. package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +11 -11
  455. package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +55 -62
  456. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +220 -263
  457. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +91 -102
  458. package/dist/builtin/workflows/src/tui/stage-chat-view-delivery-activity.ts +51 -59
  459. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +154 -208
  460. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +174 -208
  461. package/dist/builtin/workflows/src/tui/stage-chat-view-live-events.ts +32 -44
  462. package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +2 -4
  463. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +82 -97
  464. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +33 -31
  465. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +428 -400
  466. package/dist/builtin/workflows/src/tui/stage-chat-view-status.ts +24 -25
  467. package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +181 -197
  468. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +125 -134
  469. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +210 -211
  470. package/dist/builtin/workflows/src/tui/status-helpers.ts +65 -69
  471. package/dist/builtin/workflows/src/tui/status-list.ts +316 -294
  472. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +213 -214
  473. package/dist/builtin/workflows/src/tui/submit-pane.ts +114 -130
  474. package/dist/builtin/workflows/src/tui/switcher.ts +116 -134
  475. package/dist/builtin/workflows/src/tui/text-helpers.ts +136 -145
  476. package/dist/builtin/workflows/src/tui/toast.ts +68 -67
  477. package/dist/builtin/workflows/src/tui/widget.ts +265 -285
  478. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +12 -17
  479. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +81 -82
  480. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +467 -445
  481. package/dist/builtin/workflows/src/tui/workflow-list.ts +130 -145
  482. package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +127 -144
  483. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +217 -216
  484. package/dist/builtin/workflows/src/workflows/identity.ts +11 -11
  485. package/dist/builtin/workflows/src/workflows/registry.ts +66 -68
  486. package/dist/bun/cli.js.map +1 -1
  487. package/dist/bun/internal-intercom-broker.d.ts.map +1 -1
  488. package/dist/bun/internal-intercom-broker.js +1 -1
  489. package/dist/bun/internal-intercom-broker.js.map +1 -1
  490. package/dist/bun/register-bedrock.js +1 -1
  491. package/dist/bun/register-bedrock.js.map +1 -1
  492. package/dist/cli/args.d.ts.map +1 -1
  493. package/dist/cli/args.js +8 -1
  494. package/dist/cli/args.js.map +1 -1
  495. package/dist/cli/credential-print.d.ts +170 -0
  496. package/dist/cli/credential-print.d.ts.map +1 -0
  497. package/dist/cli/credential-print.js +513 -0
  498. package/dist/cli/credential-print.js.map +1 -0
  499. package/dist/cli/project-trust.d.ts +1 -1
  500. package/dist/cli/project-trust.d.ts.map +1 -1
  501. package/dist/cli/project-trust.js.map +1 -1
  502. package/dist/cli/startup-ui.d.ts.map +1 -1
  503. package/dist/cli/startup-ui.js +13 -6
  504. package/dist/cli/startup-ui.js.map +1 -1
  505. package/dist/config-self-update.d.ts.map +1 -1
  506. package/dist/config-self-update.js +5 -2
  507. package/dist/config-self-update.js.map +1 -1
  508. package/dist/config.d.ts.map +1 -1
  509. package/dist/config.js +1 -3
  510. package/dist/config.js.map +1 -1
  511. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  512. package/dist/core/agent-session-accessors.js +125 -25
  513. package/dist/core/agent-session-accessors.js.map +1 -1
  514. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  515. package/dist/core/agent-session-auto-compaction.js +4 -2
  516. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  517. package/dist/core/agent-session-bash.d.ts +1 -1
  518. package/dist/core/agent-session-bash.d.ts.map +1 -1
  519. package/dist/core/agent-session-bash.js +3 -1
  520. package/dist/core/agent-session-bash.js.map +1 -1
  521. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  522. package/dist/core/agent-session-compaction.js +45 -8
  523. package/dist/core/agent-session-compaction.js.map +1 -1
  524. package/dist/core/agent-session-custom-message-commit.d.ts +1 -1
  525. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
  526. package/dist/core/agent-session-custom-message-commit.js +13 -9
  527. package/dist/core/agent-session-custom-message-commit.js.map +1 -1
  528. package/dist/core/agent-session-delivery-forwarding.d.ts +1 -1
  529. package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -1
  530. package/dist/core/agent-session-delivery-forwarding.js.map +1 -1
  531. package/dist/core/agent-session-events.d.ts.map +1 -1
  532. package/dist/core/agent-session-events.js +15 -8
  533. package/dist/core/agent-session-events.js.map +1 -1
  534. package/dist/core/agent-session-export.d.ts +1 -1
  535. package/dist/core/agent-session-export.d.ts.map +1 -1
  536. package/dist/core/agent-session-export.js.map +1 -1
  537. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  538. package/dist/core/agent-session-extension-bindings.js +12 -5
  539. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  540. package/dist/core/agent-session-message-queue.d.ts +4 -4
  541. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  542. package/dist/core/agent-session-message-queue.js +21 -12
  543. package/dist/core/agent-session-message-queue.js.map +1 -1
  544. package/dist/core/agent-session-methods.d.ts +4 -5
  545. package/dist/core/agent-session-methods.d.ts.map +1 -1
  546. package/dist/core/agent-session-methods.js.map +1 -1
  547. package/dist/core/agent-session-models.d.ts.map +1 -1
  548. package/dist/core/agent-session-models.js +1 -1
  549. package/dist/core/agent-session-models.js.map +1 -1
  550. package/dist/core/agent-session-persistent-custom-messages.d.ts +1 -1
  551. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  552. package/dist/core/agent-session-persistent-custom-messages.js +6 -4
  553. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  554. package/dist/core/agent-session-post-tool-compaction.d.ts +1 -1
  555. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  556. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  557. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  558. package/dist/core/agent-session-prompt.js +5 -5
  559. package/dist/core/agent-session-prompt.js.map +1 -1
  560. package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
  561. package/dist/core/agent-session-queue-pause.js +8 -7
  562. package/dist/core/agent-session-queue-pause.js.map +1 -1
  563. package/dist/core/agent-session-retry.d.ts.map +1 -1
  564. package/dist/core/agent-session-retry.js +30 -7
  565. package/dist/core/agent-session-retry.js.map +1 -1
  566. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -1
  567. package/dist/core/agent-session-runtime-auth.js +3 -1
  568. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  569. package/dist/core/agent-session-runtime.d.ts +14 -3
  570. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  571. package/dist/core/agent-session-runtime.js +17 -1
  572. package/dist/core/agent-session-runtime.js.map +1 -1
  573. package/dist/core/agent-session-services.d.ts.map +1 -1
  574. package/dist/core/agent-session-services.js +4 -2
  575. package/dist/core/agent-session-services.js.map +1 -1
  576. package/dist/core/agent-session-state.d.ts +1 -1
  577. package/dist/core/agent-session-state.d.ts.map +1 -1
  578. package/dist/core/agent-session-state.js.map +1 -1
  579. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  580. package/dist/core/agent-session-tool-hooks.js +2 -6
  581. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  582. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  583. package/dist/core/agent-session-tool-registry.js +4 -3
  584. package/dist/core/agent-session-tool-registry.js.map +1 -1
  585. package/dist/core/agent-session-transfer.d.ts.map +1 -1
  586. package/dist/core/agent-session-transfer.js +6 -10
  587. package/dist/core/agent-session-transfer.js.map +1 -1
  588. package/dist/core/agent-session-tree.d.ts +1 -1
  589. package/dist/core/agent-session-tree.d.ts.map +1 -1
  590. package/dist/core/agent-session-tree.js +5 -0
  591. package/dist/core/agent-session-tree.js.map +1 -1
  592. package/dist/core/agent-session-types.d.ts +1 -1
  593. package/dist/core/agent-session-types.d.ts.map +1 -1
  594. package/dist/core/agent-session-types.js +4 -1
  595. package/dist/core/agent-session-types.js.map +1 -1
  596. package/dist/core/agent-session.d.ts +14 -10
  597. package/dist/core/agent-session.d.ts.map +1 -1
  598. package/dist/core/agent-session.js +8 -9
  599. package/dist/core/agent-session.js.map +1 -1
  600. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  601. package/dist/core/anthropic-thinking-guard.js +4 -2
  602. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  603. package/dist/core/async/format.d.ts +1 -1
  604. package/dist/core/async/format.d.ts.map +1 -1
  605. package/dist/core/async/format.js +3 -1
  606. package/dist/core/async/format.js.map +1 -1
  607. package/dist/core/async/job-manager.d.ts.map +1 -1
  608. package/dist/core/async/job-manager.js +20 -5
  609. package/dist/core/async/job-manager.js.map +1 -1
  610. package/dist/core/async/session-manager.d.ts.map +1 -1
  611. package/dist/core/async/session-manager.js.map +1 -1
  612. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  613. package/dist/core/atomic-guide-command.js +1 -2
  614. package/dist/core/atomic-guide-command.js.map +1 -1
  615. package/dist/core/auth-guidance.d.ts.map +1 -1
  616. package/dist/core/auth-guidance.js.map +1 -1
  617. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  618. package/dist/core/auth-storage-backends.js.map +1 -1
  619. package/dist/core/auth-storage.d.ts +1 -1
  620. package/dist/core/auth-storage.d.ts.map +1 -1
  621. package/dist/core/auth-storage.js +4 -8
  622. package/dist/core/auth-storage.js.map +1 -1
  623. package/dist/core/builtin-packages.d.ts.map +1 -1
  624. package/dist/core/builtin-packages.js +1 -4
  625. package/dist/core/builtin-packages.js.map +1 -1
  626. package/dist/core/cache-stats.d.ts.map +1 -1
  627. package/dist/core/cache-stats.js +8 -6
  628. package/dist/core/cache-stats.js.map +1 -1
  629. package/dist/core/callback-activity.d.ts.map +1 -1
  630. package/dist/core/callback-activity.js.map +1 -1
  631. package/dist/core/codex-errors.d.ts.map +1 -1
  632. package/dist/core/codex-errors.js +1 -1
  633. package/dist/core/codex-errors.js.map +1 -1
  634. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  635. package/dist/core/codex-fast-mode.js.map +1 -1
  636. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  637. package/dist/core/compaction/branch-summarization.js +1 -1
  638. package/dist/core/compaction/branch-summarization.js.map +1 -1
  639. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  640. package/dist/core/compaction/compaction-boundary.js +10 -6
  641. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  642. package/dist/core/compaction/compaction-runner.d.ts +1 -1
  643. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  644. package/dist/core/compaction/compaction-runner.js +2 -4
  645. package/dist/core/compaction/compaction-runner.js.map +1 -1
  646. package/dist/core/compaction/compaction.d.ts.map +1 -1
  647. package/dist/core/compaction/compaction.js +5 -1
  648. package/dist/core/compaction/compaction.js.map +1 -1
  649. package/dist/core/compaction/deleted-ranges.d.ts.map +1 -1
  650. package/dist/core/compaction/deleted-ranges.js.map +1 -1
  651. package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
  652. package/dist/core/compaction/fallback-planner.js.map +1 -1
  653. package/dist/core/compaction/index.d.ts +6 -6
  654. package/dist/core/compaction/index.d.ts.map +1 -1
  655. package/dist/core/compaction/index.js +6 -6
  656. package/dist/core/compaction/index.js.map +1 -1
  657. package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
  658. package/dist/core/compaction/planner-outcome.js.map +1 -1
  659. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  660. package/dist/core/compaction/range-planner-diagnostics.js +4 -2
  661. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  662. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  663. package/dist/core/compaction/range-planner.js +4 -1
  664. package/dist/core/compaction/range-planner.js.map +1 -1
  665. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  666. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  667. package/dist/core/context-tool-pairing.js +3 -3
  668. package/dist/core/context-tool-pairing.js.map +1 -1
  669. package/dist/core/copilot-env-routing.d.ts.map +1 -1
  670. package/dist/core/copilot-env-routing.js.map +1 -1
  671. package/dist/core/exec.d.ts.map +1 -1
  672. package/dist/core/exec.js +5 -0
  673. package/dist/core/exec.js.map +1 -1
  674. package/dist/core/experimental.d.ts.map +1 -1
  675. package/dist/core/experimental.js +2 -1
  676. package/dist/core/experimental.js.map +1 -1
  677. package/dist/core/extensions/api-types.d.ts +2 -2
  678. package/dist/core/extensions/api-types.d.ts.map +1 -1
  679. package/dist/core/extensions/api-types.js.map +1 -1
  680. package/dist/core/extensions/context-types.d.ts +7 -1
  681. package/dist/core/extensions/context-types.d.ts.map +1 -1
  682. package/dist/core/extensions/context-types.js.map +1 -1
  683. package/dist/core/extensions/index.d.ts +7 -7
  684. package/dist/core/extensions/index.d.ts.map +1 -1
  685. package/dist/core/extensions/index.js +2 -2
  686. package/dist/core/extensions/index.js.map +1 -1
  687. package/dist/core/extensions/loader-api.d.ts +1 -1
  688. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  689. package/dist/core/extensions/loader-api.js +4 -2
  690. package/dist/core/extensions/loader-api.js.map +1 -1
  691. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  692. package/dist/core/extensions/loader-core.js +2 -2
  693. package/dist/core/extensions/loader-core.js.map +1 -1
  694. package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
  695. package/dist/core/extensions/loader-discovery.js.map +1 -1
  696. package/dist/core/extensions/loader-resources.d.ts.map +1 -1
  697. package/dist/core/extensions/loader-resources.js.map +1 -1
  698. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  699. package/dist/core/extensions/loader-runtime.js +23 -11
  700. package/dist/core/extensions/loader-runtime.js.map +1 -1
  701. package/dist/core/extensions/loader-virtual-modules.d.ts +17 -0
  702. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  703. package/dist/core/extensions/loader-virtual-modules.js +281 -20
  704. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  705. package/dist/core/extensions/loader.d.ts.map +1 -1
  706. package/dist/core/extensions/loader.js.map +1 -1
  707. package/dist/core/extensions/provider-types.d.ts +2 -2
  708. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  709. package/dist/core/extensions/provider-types.js.map +1 -1
  710. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  711. package/dist/core/extensions/reactive-widget.js.map +1 -1
  712. package/dist/core/extensions/runner-context.d.ts +27 -1
  713. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  714. package/dist/core/extensions/runner-context.js +52 -0
  715. package/dist/core/extensions/runner-context.js.map +1 -1
  716. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  717. package/dist/core/extensions/runner-events.js.map +1 -1
  718. package/dist/core/extensions/runner.d.ts +1 -0
  719. package/dist/core/extensions/runner.d.ts.map +1 -1
  720. package/dist/core/extensions/runner.js +18 -6
  721. package/dist/core/extensions/runner.js.map +1 -1
  722. package/dist/core/extensions/runtime-types.d.ts +3 -1
  723. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  724. package/dist/core/extensions/runtime-types.js.map +1 -1
  725. package/dist/core/extensions/session-events.d.ts.map +1 -1
  726. package/dist/core/extensions/session-events.js.map +1 -1
  727. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  728. package/dist/core/extensions/tool-types.js.map +1 -1
  729. package/dist/core/extensions/types.d.ts +15 -2
  730. package/dist/core/extensions/types.d.ts.map +1 -1
  731. package/dist/core/extensions/types.js +1 -1
  732. package/dist/core/extensions/types.js.map +1 -1
  733. package/dist/core/extensions/ui-types.d.ts +16 -2
  734. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  735. package/dist/core/extensions/ui-types.js.map +1 -1
  736. package/dist/core/fallback-models.d.ts.map +1 -1
  737. package/dist/core/fallback-models.js +11 -2
  738. package/dist/core/fallback-models.js.map +1 -1
  739. package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
  740. package/dist/core/flattened-tool-arguments.js.map +1 -1
  741. package/dist/core/footer-data-provider.d.ts +10 -0
  742. package/dist/core/footer-data-provider.d.ts.map +1 -1
  743. package/dist/core/footer-data-provider.js +5 -3
  744. package/dist/core/footer-data-provider.js.map +1 -1
  745. package/dist/core/http-dispatcher.d.ts.map +1 -1
  746. package/dist/core/http-dispatcher.js.map +1 -1
  747. package/dist/core/keybindings.d.ts +1 -1
  748. package/dist/core/keybindings.d.ts.map +1 -1
  749. package/dist/core/keybindings.js.map +1 -1
  750. package/dist/core/messages.d.ts.map +1 -1
  751. package/dist/core/messages.js.map +1 -1
  752. package/dist/core/model-capabilities.d.ts.map +1 -1
  753. package/dist/core/model-capabilities.js +1 -2
  754. package/dist/core/model-capabilities.js.map +1 -1
  755. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  756. package/dist/core/model-resolver-cli.js.map +1 -1
  757. package/dist/core/model-resolver-defaults.js.map +1 -1
  758. package/dist/core/model-resolver-initial.d.ts +1 -1
  759. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  760. package/dist/core/model-resolver-initial.js +1 -1
  761. package/dist/core/model-resolver-initial.js.map +1 -1
  762. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  763. package/dist/core/model-resolver-patterns.js.map +1 -1
  764. package/dist/core/model-resolver-scope.d.ts +1 -1
  765. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  766. package/dist/core/model-resolver-scope.js +12 -2
  767. package/dist/core/model-resolver-scope.js.map +1 -1
  768. package/dist/core/model-resolver-types.d.ts.map +1 -1
  769. package/dist/core/model-resolver-types.js.map +1 -1
  770. package/dist/core/model-resolver.d.ts +3 -3
  771. package/dist/core/model-resolver.d.ts.map +1 -1
  772. package/dist/core/model-resolver.js +1 -1
  773. package/dist/core/model-resolver.js.map +1 -1
  774. package/dist/core/model-runtime-auth.d.ts.map +1 -1
  775. package/dist/core/model-runtime-auth.js +5 -2
  776. package/dist/core/model-runtime-auth.js.map +1 -1
  777. package/dist/core/model-runtime-restoration.d.ts.map +1 -1
  778. package/dist/core/model-runtime-restoration.js +2 -2
  779. package/dist/core/model-runtime-restoration.js.map +1 -1
  780. package/dist/core/model-runtime-snapshot.d.ts.map +1 -1
  781. package/dist/core/model-runtime-snapshot.js.map +1 -1
  782. package/dist/core/model-runtime-streaming.d.ts.map +1 -1
  783. package/dist/core/model-runtime-streaming.js.map +1 -1
  784. package/dist/core/model-runtime.d.ts.map +1 -1
  785. package/dist/core/model-runtime.js +9 -7
  786. package/dist/core/model-runtime.js.map +1 -1
  787. package/dist/core/oauth-login.d.ts.map +1 -1
  788. package/dist/core/oauth-login.js +7 -2
  789. package/dist/core/oauth-login.js.map +1 -1
  790. package/dist/core/oauth-provider-metadata.d.ts.map +1 -1
  791. package/dist/core/oauth-provider-metadata.js +20 -6
  792. package/dist/core/oauth-provider-metadata.js.map +1 -1
  793. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  794. package/dist/core/output-guard.d.ts +44 -0
  795. package/dist/core/output-guard.d.ts.map +1 -1
  796. package/dist/core/output-guard.js +63 -0
  797. package/dist/core/output-guard.js.map +1 -1
  798. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  799. package/dist/core/package-manager-auto-resources.js +6 -1
  800. package/dist/core/package-manager-auto-resources.js.map +1 -1
  801. package/dist/core/package-manager-git.d.ts.map +1 -1
  802. package/dist/core/package-manager-git.js +27 -11
  803. package/dist/core/package-manager-git.js.map +1 -1
  804. package/dist/core/package-manager-npm.d.ts.map +1 -1
  805. package/dist/core/package-manager-npm.js +4 -2
  806. package/dist/core/package-manager-npm.js.map +1 -1
  807. package/dist/core/package-manager-operations.d.ts.map +1 -1
  808. package/dist/core/package-manager-operations.js +2 -2
  809. package/dist/core/package-manager-operations.js.map +1 -1
  810. package/dist/core/package-manager-paths.d.ts.map +1 -1
  811. package/dist/core/package-manager-paths.js.map +1 -1
  812. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  813. package/dist/core/package-manager-resolver.js +19 -16
  814. package/dist/core/package-manager-resolver.js.map +1 -1
  815. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  816. package/dist/core/package-manager-resource-collector.js +6 -6
  817. package/dist/core/package-manager-resource-collector.js.map +1 -1
  818. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  819. package/dist/core/package-manager-resource-files.js +4 -3
  820. package/dist/core/package-manager-resource-files.js.map +1 -1
  821. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -1
  822. package/dist/core/package-manager-resource-patterns.js.map +1 -1
  823. package/dist/core/package-manager-settings.d.ts.map +1 -1
  824. package/dist/core/package-manager-settings.js +3 -2
  825. package/dist/core/package-manager-settings.js.map +1 -1
  826. package/dist/core/package-manager-source.d.ts.map +1 -1
  827. package/dist/core/package-manager-source.js +1 -1
  828. package/dist/core/package-manager-source.js.map +1 -1
  829. package/dist/core/package-manager.d.ts +1 -1
  830. package/dist/core/package-manager.d.ts.map +1 -1
  831. package/dist/core/package-manager.js +2 -3
  832. package/dist/core/package-manager.js.map +1 -1
  833. package/dist/core/prompt-templates-async.d.ts.map +1 -1
  834. package/dist/core/prompt-templates-async.js +15 -7
  835. package/dist/core/prompt-templates-async.js.map +1 -1
  836. package/dist/core/prompt-templates.d.ts.map +1 -1
  837. package/dist/core/prompt-templates.js +1 -3
  838. package/dist/core/prompt-templates.js.map +1 -1
  839. package/dist/core/provider-composer-internal.d.ts +1 -1
  840. package/dist/core/provider-composer-internal.d.ts.map +1 -1
  841. package/dist/core/provider-composer-internal.js.map +1 -1
  842. package/dist/core/provider-composer.d.ts +1 -1
  843. package/dist/core/provider-composer.d.ts.map +1 -1
  844. package/dist/core/provider-composer.js.map +1 -1
  845. package/dist/core/provider-context-usage.d.ts.map +1 -1
  846. package/dist/core/provider-context-usage.js +2 -1
  847. package/dist/core/provider-context-usage.js.map +1 -1
  848. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  849. package/dist/core/resource-loader-assets.js +31 -7
  850. package/dist/core/resource-loader-assets.js.map +1 -1
  851. package/dist/core/resource-loader-context-files.d.ts +6 -0
  852. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  853. package/dist/core/resource-loader-context-files.js +83 -4
  854. package/dist/core/resource-loader-context-files.js.map +1 -1
  855. package/dist/core/resource-loader-core.d.ts +12 -3
  856. package/dist/core/resource-loader-core.d.ts.map +1 -1
  857. package/dist/core/resource-loader-core.js +36 -19
  858. package/dist/core/resource-loader-core.js.map +1 -1
  859. package/dist/core/resource-loader-discovery.d.ts.map +1 -1
  860. package/dist/core/resource-loader-discovery.js.map +1 -1
  861. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  862. package/dist/core/resource-loader-extensions.js +33 -21
  863. package/dist/core/resource-loader-extensions.js.map +1 -1
  864. package/dist/core/resource-loader-internals.d.ts +13 -6
  865. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  866. package/dist/core/resource-loader-internals.js.map +1 -1
  867. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  868. package/dist/core/resource-loader-package-resources.js +1 -1
  869. package/dist/core/resource-loader-package-resources.js.map +1 -1
  870. package/dist/core/resource-loader-paths.js.map +1 -1
  871. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  872. package/dist/core/resource-loader-reload.js +28 -13
  873. package/dist/core/resource-loader-reload.js.map +1 -1
  874. package/dist/core/resource-loader-source-info.d.ts +1 -1
  875. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  876. package/dist/core/resource-loader-source-info.js +1 -1
  877. package/dist/core/resource-loader-source-info.js.map +1 -1
  878. package/dist/core/resource-loader-types.d.ts +9 -3
  879. package/dist/core/resource-loader-types.d.ts.map +1 -1
  880. package/dist/core/resource-loader-types.js.map +1 -1
  881. package/dist/core/resource-loader.d.ts +1 -1
  882. package/dist/core/resource-loader.d.ts.map +1 -1
  883. package/dist/core/resource-loader.js +1 -1
  884. package/dist/core/resource-loader.js.map +1 -1
  885. package/dist/core/sdk-exports.d.ts +1 -1
  886. package/dist/core/sdk-exports.d.ts.map +1 -1
  887. package/dist/core/sdk-exports.js +2 -2
  888. package/dist/core/sdk-exports.js.map +1 -1
  889. package/dist/core/sdk-types.d.ts +3 -3
  890. package/dist/core/sdk-types.d.ts.map +1 -1
  891. package/dist/core/sdk-types.js.map +1 -1
  892. package/dist/core/sdk.d.ts +1 -1
  893. package/dist/core/sdk.d.ts.map +1 -1
  894. package/dist/core/sdk.js +13 -20
  895. package/dist/core/sdk.js.map +1 -1
  896. package/dist/core/session-manager-archive.d.ts.map +1 -1
  897. package/dist/core/session-manager-archive.js +5 -2
  898. package/dist/core/session-manager-archive.js.map +1 -1
  899. package/dist/core/session-manager-classification.js +3 -3
  900. package/dist/core/session-manager-classification.js.map +1 -1
  901. package/dist/core/session-manager-core.d.ts.map +1 -1
  902. package/dist/core/session-manager-core.js +3 -3
  903. package/dist/core/session-manager-core.js.map +1 -1
  904. package/dist/core/session-manager-entries.d.ts +1 -1
  905. package/dist/core/session-manager-entries.d.ts.map +1 -1
  906. package/dist/core/session-manager-entries.js.map +1 -1
  907. package/dist/core/session-manager-history.d.ts.map +1 -1
  908. package/dist/core/session-manager-history.js +13 -5
  909. package/dist/core/session-manager-history.js.map +1 -1
  910. package/dist/core/session-manager-list.d.ts.map +1 -1
  911. package/dist/core/session-manager-list.js +1 -1
  912. package/dist/core/session-manager-list.js.map +1 -1
  913. package/dist/core/session-manager-migrations.js.map +1 -1
  914. package/dist/core/session-manager-storage.d.ts.map +1 -1
  915. package/dist/core/session-manager-storage.js.map +1 -1
  916. package/dist/core/session-manager-types.d.ts.map +1 -1
  917. package/dist/core/session-manager-types.js.map +1 -1
  918. package/dist/core/session-manager.d.ts +4 -4
  919. package/dist/core/session-manager.d.ts.map +1 -1
  920. package/dist/core/session-manager.js +2 -2
  921. package/dist/core/session-manager.js.map +1 -1
  922. package/dist/core/settings-manager-core.d.ts.map +1 -1
  923. package/dist/core/settings-manager-core.js.map +1 -1
  924. package/dist/core/settings-manager-ui-accessors.js +2 -1
  925. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  926. package/dist/core/settings-storage.d.ts.map +1 -1
  927. package/dist/core/settings-storage.js +3 -3
  928. package/dist/core/settings-storage.js.map +1 -1
  929. package/dist/core/settings-types.d.ts.map +1 -1
  930. package/dist/core/settings-types.js.map +1 -1
  931. package/dist/core/skills-async.d.ts.map +1 -1
  932. package/dist/core/skills-async.js +18 -8
  933. package/dist/core/skills-async.js.map +1 -1
  934. package/dist/core/slash-commands.d.ts.map +1 -1
  935. package/dist/core/slash-commands.js +76 -19
  936. package/dist/core/slash-commands.js.map +1 -1
  937. package/dist/core/system-prompt.d.ts.map +1 -1
  938. package/dist/core/system-prompt.js +5 -19
  939. package/dist/core/system-prompt.js.map +1 -1
  940. package/dist/core/thinking-blocks.d.ts.map +1 -1
  941. package/dist/core/thinking-blocks.js +2 -2
  942. package/dist/core/thinking-blocks.js.map +1 -1
  943. package/dist/core/tools/artifact-protocol.d.ts.map +1 -1
  944. package/dist/core/tools/artifact-protocol.js.map +1 -1
  945. package/dist/core/tools/artifacts.d.ts.map +1 -1
  946. package/dist/core/tools/artifacts.js.map +1 -1
  947. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  948. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  949. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -1
  950. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
  951. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -1
  952. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  953. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  954. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +2 -4
  955. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  956. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  957. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  958. package/dist/core/tools/ask-user-question/view/body-residual-spacer.d.ts.map +1 -1
  959. package/dist/core/tools/ask-user-question/view/body-residual-spacer.js.map +1 -1
  960. package/dist/core/tools/ask-user-question/view/components/multi-select-view.d.ts.map +1 -1
  961. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
  962. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts +1 -1
  963. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts.map +1 -1
  964. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
  965. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts +1 -1
  966. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts.map +1 -1
  967. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js +1 -3
  968. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
  969. package/dist/core/tools/ask-user-question/view/components/submit-picker.d.ts.map +1 -1
  970. package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
  971. package/dist/core/tools/ask-user-question/view/components/tab-bar.d.ts.map +1 -1
  972. package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
  973. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts +1 -1
  974. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts.map +1 -1
  975. package/dist/core/tools/ask-user-question/view/dialog-builder.js +1 -1
  976. package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
  977. package/dist/core/tools/ask-user-question/view/props-adapter.d.ts.map +1 -1
  978. package/dist/core/tools/ask-user-question/view/props-adapter.js +2 -4
  979. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  980. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts +1 -1
  981. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts.map +1 -1
  982. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js +2 -9
  983. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
  984. package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
  985. package/dist/core/tools/bash-async-execution.js +11 -4
  986. package/dist/core/tools/bash-async-execution.js.map +1 -1
  987. package/dist/core/tools/bash-async-jobs.d.ts.map +1 -1
  988. package/dist/core/tools/bash-async-jobs.js +14 -2
  989. package/dist/core/tools/bash-async-jobs.js.map +1 -1
  990. package/dist/core/tools/bash-async-output.d.ts.map +1 -1
  991. package/dist/core/tools/bash-async-output.js +6 -2
  992. package/dist/core/tools/bash-async-output.js.map +1 -1
  993. package/dist/core/tools/bash-interceptor.d.ts.map +1 -1
  994. package/dist/core/tools/bash-interceptor.js +20 -4
  995. package/dist/core/tools/bash-interceptor.js.map +1 -1
  996. package/dist/core/tools/bash-leading-cd.d.ts.map +1 -1
  997. package/dist/core/tools/bash-leading-cd.js +9 -3
  998. package/dist/core/tools/bash-leading-cd.js.map +1 -1
  999. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  1000. package/dist/core/tools/bash-pty-native.js.map +1 -1
  1001. package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
  1002. package/dist/core/tools/bash-session-environment.js +24 -12
  1003. package/dist/core/tools/bash-session-environment.js.map +1 -1
  1004. package/dist/core/tools/bash.d.ts.map +1 -1
  1005. package/dist/core/tools/bash.js +123 -27
  1006. package/dist/core/tools/bash.js.map +1 -1
  1007. package/dist/core/tools/block-resolver.d.ts.map +1 -1
  1008. package/dist/core/tools/block-resolver.js.map +1 -1
  1009. package/dist/core/tools/conflict-registry.d.ts.map +1 -1
  1010. package/dist/core/tools/conflict-registry.js.map +1 -1
  1011. package/dist/core/tools/directory-tree.d.ts.map +1 -1
  1012. package/dist/core/tools/directory-tree.js +20 -4
  1013. package/dist/core/tools/directory-tree.js.map +1 -1
  1014. package/dist/core/tools/edit.d.ts.map +1 -1
  1015. package/dist/core/tools/edit.js +37 -13
  1016. package/dist/core/tools/edit.js.map +1 -1
  1017. package/dist/core/tools/fetch-url.d.ts.map +1 -1
  1018. package/dist/core/tools/fetch-url.js +127 -41
  1019. package/dist/core/tools/fetch-url.js.map +1 -1
  1020. package/dist/core/tools/find.d.ts.map +1 -1
  1021. package/dist/core/tools/find.js +176 -46
  1022. package/dist/core/tools/find.js.map +1 -1
  1023. package/dist/core/tools/grep.d.ts.map +1 -1
  1024. package/dist/core/tools/grep.js +43 -10
  1025. package/dist/core/tools/grep.js.map +1 -1
  1026. package/dist/core/tools/hashline-engine/apply.d.ts.map +1 -1
  1027. package/dist/core/tools/hashline-engine/apply.js +6 -6
  1028. package/dist/core/tools/hashline-engine/apply.js.map +1 -1
  1029. package/dist/core/tools/hashline-engine/block.js +1 -1
  1030. package/dist/core/tools/hashline-engine/block.js.map +1 -1
  1031. package/dist/core/tools/hashline-engine/format.d.ts.map +1 -1
  1032. package/dist/core/tools/hashline-engine/format.js +1 -1
  1033. package/dist/core/tools/hashline-engine/format.js.map +1 -1
  1034. package/dist/core/tools/hashline-engine/input.d.ts.map +1 -1
  1035. package/dist/core/tools/hashline-engine/input.js +7 -7
  1036. package/dist/core/tools/hashline-engine/input.js.map +1 -1
  1037. package/dist/core/tools/hashline-engine/parser.js +1 -1
  1038. package/dist/core/tools/hashline-engine/parser.js.map +1 -1
  1039. package/dist/core/tools/hashline-engine/patcher.js +5 -5
  1040. package/dist/core/tools/hashline-engine/patcher.js.map +1 -1
  1041. package/dist/core/tools/hashline-engine/prefixes.js +4 -4
  1042. package/dist/core/tools/hashline-engine/prefixes.js.map +1 -1
  1043. package/dist/core/tools/hashline-engine/recovery.d.ts.map +1 -1
  1044. package/dist/core/tools/hashline-engine/recovery.js +4 -2
  1045. package/dist/core/tools/hashline-engine/recovery.js.map +1 -1
  1046. package/dist/core/tools/hashline-engine/snapshots.js +5 -5
  1047. package/dist/core/tools/hashline-engine/snapshots.js.map +1 -1
  1048. package/dist/core/tools/hashline.d.ts.map +1 -1
  1049. package/dist/core/tools/hashline.js +24 -13
  1050. package/dist/core/tools/hashline.js.map +1 -1
  1051. package/dist/core/tools/index.d.ts +6 -6
  1052. package/dist/core/tools/index.d.ts.map +1 -1
  1053. package/dist/core/tools/index.js +6 -6
  1054. package/dist/core/tools/index.js.map +1 -1
  1055. package/dist/core/tools/ls.d.ts.map +1 -1
  1056. package/dist/core/tools/ls.js +2 -1
  1057. package/dist/core/tools/ls.js.map +1 -1
  1058. package/dist/core/tools/notebook.d.ts.map +1 -1
  1059. package/dist/core/tools/notebook.js +13 -3
  1060. package/dist/core/tools/notebook.js.map +1 -1
  1061. package/dist/core/tools/read-document-extract.d.ts.map +1 -1
  1062. package/dist/core/tools/read-document-extract.js +30 -10
  1063. package/dist/core/tools/read-document-extract.js.map +1 -1
  1064. package/dist/core/tools/read-selectors.d.ts.map +1 -1
  1065. package/dist/core/tools/read-selectors.js +59 -15
  1066. package/dist/core/tools/read-selectors.js.map +1 -1
  1067. package/dist/core/tools/read-url.d.ts.map +1 -1
  1068. package/dist/core/tools/read-url.js +41 -7
  1069. package/dist/core/tools/read-url.js.map +1 -1
  1070. package/dist/core/tools/read.d.ts.map +1 -1
  1071. package/dist/core/tools/read.js +306 -71
  1072. package/dist/core/tools/read.js.map +1 -1
  1073. package/dist/core/tools/resource-selectors.d.ts +4 -0
  1074. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  1075. package/dist/core/tools/resource-selectors.js +324 -84
  1076. package/dist/core/tools/resource-selectors.js.map +1 -1
  1077. package/dist/core/tools/search-details.d.ts.map +1 -1
  1078. package/dist/core/tools/search-details.js +13 -1
  1079. package/dist/core/tools/search-details.js.map +1 -1
  1080. package/dist/core/tools/search-line-ranges.d.ts.map +1 -1
  1081. package/dist/core/tools/search-line-ranges.js +5 -2
  1082. package/dist/core/tools/search-line-ranges.js.map +1 -1
  1083. package/dist/core/tools/search-native.d.ts.map +1 -1
  1084. package/dist/core/tools/search-native.js.map +1 -1
  1085. package/dist/core/tools/search.d.ts.map +1 -1
  1086. package/dist/core/tools/search.js +244 -90
  1087. package/dist/core/tools/search.js.map +1 -1
  1088. package/dist/core/tools/structured-output.d.ts +1 -1
  1089. package/dist/core/tools/structured-output.d.ts.map +1 -1
  1090. package/dist/core/tools/structured-output.js.map +1 -1
  1091. package/dist/core/tools/todos-execute.d.ts.map +1 -1
  1092. package/dist/core/tools/todos-execute.js +4 -4
  1093. package/dist/core/tools/todos-execute.js.map +1 -1
  1094. package/dist/core/tools/todos-locks.d.ts.map +1 -1
  1095. package/dist/core/tools/todos-locks.js.map +1 -1
  1096. package/dist/core/tools/todos-mutations.js +1 -1
  1097. package/dist/core/tools/todos-mutations.js.map +1 -1
  1098. package/dist/core/tools/todos-paths.js +2 -2
  1099. package/dist/core/tools/todos-paths.js.map +1 -1
  1100. package/dist/core/tools/todos-render.d.ts.map +1 -1
  1101. package/dist/core/tools/todos-render.js +2 -2
  1102. package/dist/core/tools/todos-render.js.map +1 -1
  1103. package/dist/core/tools/todos-storage.d.ts.map +1 -1
  1104. package/dist/core/tools/todos-storage.js +1 -2
  1105. package/dist/core/tools/todos-storage.js.map +1 -1
  1106. package/dist/core/tools/todos-types.d.ts.map +1 -1
  1107. package/dist/core/tools/todos-types.js +1 -11
  1108. package/dist/core/tools/todos-types.js.map +1 -1
  1109. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1110. package/dist/core/tools/tool-definition-wrapper.js +2 -6
  1111. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1112. package/dist/core/tools/url-ip-guards.d.ts.map +1 -1
  1113. package/dist/core/tools/url-ip-guards.js +27 -17
  1114. package/dist/core/tools/url-ip-guards.js.map +1 -1
  1115. package/dist/core/tools/write.d.ts.map +1 -1
  1116. package/dist/core/tools/write.js +88 -29
  1117. package/dist/core/tools/write.js.map +1 -1
  1118. package/dist/core/usage-totals.d.ts.map +1 -1
  1119. package/dist/core/usage-totals.js +5 -2
  1120. package/dist/core/usage-totals.js.map +1 -1
  1121. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  1122. package/dist/core/workflow-stage-admission.js +8 -2
  1123. package/dist/core/workflow-stage-admission.js.map +1 -1
  1124. package/dist/extensions/llama/provider.js +1 -1
  1125. package/dist/extensions/llama/provider.js.map +1 -1
  1126. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1127. package/dist/extensions/llama/ui.js.map +1 -1
  1128. package/dist/index-extensions.d.ts +2 -2
  1129. package/dist/index-extensions.d.ts.map +1 -1
  1130. package/dist/index-extensions.js +1 -1
  1131. package/dist/index-extensions.js.map +1 -1
  1132. package/dist/index.d.ts +20 -20
  1133. package/dist/index.d.ts.map +1 -1
  1134. package/dist/index.js +23 -23
  1135. package/dist/index.js.map +1 -1
  1136. package/dist/main-deferred-startup.d.ts +1 -1
  1137. package/dist/main-deferred-startup.d.ts.map +1 -1
  1138. package/dist/main-deferred-startup.js +16 -15
  1139. package/dist/main-deferred-startup.js.map +1 -1
  1140. package/dist/main-early-input.js.map +1 -1
  1141. package/dist/main-first-time-setup.d.ts +1 -1
  1142. package/dist/main-first-time-setup.d.ts.map +1 -1
  1143. package/dist/main-first-time-setup.js.map +1 -1
  1144. package/dist/main-session-options.d.ts +1 -1
  1145. package/dist/main-session-options.d.ts.map +1 -1
  1146. package/dist/main-session-options.js.map +1 -1
  1147. package/dist/main-session.d.ts.map +1 -1
  1148. package/dist/main-session.js +4 -4
  1149. package/dist/main-session.js.map +1 -1
  1150. package/dist/main.d.ts +1 -1
  1151. package/dist/main.d.ts.map +1 -1
  1152. package/dist/main.js +143 -38
  1153. package/dist/main.js.map +1 -1
  1154. package/dist/migrations-config-values.d.ts.map +1 -1
  1155. package/dist/migrations-config-values.js +3 -1
  1156. package/dist/migrations-config-values.js.map +1 -1
  1157. package/dist/migrations.d.ts.map +1 -1
  1158. package/dist/migrations.js.map +1 -1
  1159. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  1160. package/dist/modes/interactive/chat-input-actions.js +3 -6
  1161. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  1162. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  1163. package/dist/modes/interactive/components/atomic-banner.js +7 -5
  1164. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  1165. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
  1166. package/dist/modes/interactive/components/atomic-working-status.js +26 -13
  1167. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  1168. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  1169. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  1170. package/dist/modes/interactive/components/chat-message-renderer.js +6 -5
  1171. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  1172. package/dist/modes/interactive/components/chat-session-host-actions.d.ts +3 -2
  1173. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  1174. package/dist/modes/interactive/components/chat-session-host-actions.js +14 -18
  1175. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  1176. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +4 -4
  1177. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -1
  1178. package/dist/modes/interactive/components/chat-session-host-editor.js +9 -4
  1179. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  1180. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  1181. package/dist/modes/interactive/components/chat-session-host-events.js +9 -8
  1182. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  1183. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +1 -1
  1184. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  1185. package/dist/modes/interactive/components/chat-session-host-rendering.js +22 -7
  1186. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  1187. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +9 -2
  1188. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
  1189. package/dist/modes/interactive/components/chat-session-host-runtime.js +15 -13
  1190. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
  1191. package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -2
  1192. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  1193. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  1194. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.d.ts.map +1 -1
  1195. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.js.map +1 -1
  1196. package/dist/modes/interactive/components/chat-session-host-types.d.ts +9 -2
  1197. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  1198. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  1199. package/dist/modes/interactive/components/chat-session-host-utils.d.ts +1 -1
  1200. package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -1
  1201. package/dist/modes/interactive/components/chat-session-host-utils.js +3 -8
  1202. package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -1
  1203. package/dist/modes/interactive/components/chat-session-host.d.ts +4 -4
  1204. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  1205. package/dist/modes/interactive/components/chat-session-host.js +1 -2
  1206. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  1207. package/dist/modes/interactive/components/chat-transcript.d.ts +1 -1
  1208. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  1209. package/dist/modes/interactive/components/chat-transcript.js +5 -12
  1210. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  1211. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  1212. package/dist/modes/interactive/components/compaction-boundary-message.js +18 -7
  1213. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  1214. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  1215. package/dist/modes/interactive/components/config-selector-list.js +4 -2
  1216. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  1217. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  1218. package/dist/modes/interactive/components/config-selector-project-scope.js +2 -4
  1219. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  1220. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1221. package/dist/modes/interactive/components/config-selector.js +15 -6
  1222. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1223. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1224. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1225. package/dist/modes/interactive/components/custom-editor.d.ts +11 -0
  1226. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1227. package/dist/modes/interactive/components/custom-editor.js +21 -5
  1228. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1229. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1230. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1231. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1232. package/dist/modes/interactive/components/custom-message.js +1 -3
  1233. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1234. package/dist/modes/interactive/components/diff.js +2 -2
  1235. package/dist/modes/interactive/components/diff.js.map +1 -1
  1236. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1237. package/dist/modes/interactive/components/extension-editor.js +1 -1
  1238. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1239. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1240. package/dist/modes/interactive/components/first-time-setup.js +15 -4
  1241. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1242. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1243. package/dist/modes/interactive/components/footer.js +16 -15
  1244. package/dist/modes/interactive/components/footer.js.map +1 -1
  1245. package/dist/modes/interactive/components/host-input-form-mount.d.ts.map +1 -1
  1246. package/dist/modes/interactive/components/host-input-form-mount.js +4 -2
  1247. package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -1
  1248. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
  1249. package/dist/modes/interactive/components/host-input-form.js +55 -21
  1250. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  1251. package/dist/modes/interactive/components/host-session-picker.d.ts.map +1 -1
  1252. package/dist/modes/interactive/components/host-session-picker.js +8 -3
  1253. package/dist/modes/interactive/components/host-session-picker.js.map +1 -1
  1254. package/dist/modes/interactive/components/index.d.ts +7 -7
  1255. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1256. package/dist/modes/interactive/components/index.js +4 -4
  1257. package/dist/modes/interactive/components/index.js.map +1 -1
  1258. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1259. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1260. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1261. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1262. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1263. package/dist/modes/interactive/components/model-selector.js +4 -1
  1264. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1265. package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
  1266. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1267. package/dist/modes/interactive/components/oauth-selector.js +12 -6
  1268. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1269. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1270. package/dist/modes/interactive/components/scoped-models-selector.js +5 -1
  1271. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1272. package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
  1273. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
  1274. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  1275. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1276. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1277. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  1278. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  1279. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  1280. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  1281. package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -1
  1282. package/dist/modes/interactive/components/startup-identity.js.map +1 -1
  1283. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1284. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1285. package/dist/modes/interactive/components/tree-selector-model.js +1 -9
  1286. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
  1287. package/dist/modes/interactive/components/tree-selector-viewport.d.ts.map +1 -1
  1288. package/dist/modes/interactive/components/tree-selector-viewport.js.map +1 -1
  1289. package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
  1290. package/dist/modes/interactive/components/working-status.js +1 -1
  1291. package/dist/modes/interactive/components/working-status.js.map +1 -1
  1292. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1293. package/dist/modes/interactive/external-editor.js.map +1 -1
  1294. package/dist/modes/interactive/interactive-agent-events.js +20 -13
  1295. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  1296. package/dist/modes/interactive/interactive-auth-login.js +6 -6
  1297. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  1298. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  1299. package/dist/modes/interactive/interactive-auth-routing.js +3 -6
  1300. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  1301. package/dist/modes/interactive/interactive-autocomplete.js +4 -10
  1302. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  1303. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
  1304. package/dist/modes/interactive/interactive-bash-compact.js +18 -8
  1305. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  1306. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  1307. package/dist/modes/interactive/interactive-deferred-startup.js +6 -2
  1308. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  1309. package/dist/modes/interactive/interactive-editor-actions.js +6 -11
  1310. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  1311. package/dist/modes/interactive/interactive-extension-context.js +4 -4
  1312. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  1313. package/dist/modes/interactive/interactive-extension-custom-ui.js +15 -8
  1314. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  1315. package/dist/modes/interactive/interactive-extension-dialogs.js +50 -24
  1316. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  1317. package/dist/modes/interactive/interactive-extension-runtime.js +9 -6
  1318. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  1319. package/dist/modes/interactive/interactive-extension-widgets.js +1 -1
  1320. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
  1321. package/dist/modes/interactive/interactive-global-clear.d.ts +45 -1
  1322. package/dist/modes/interactive/interactive-global-clear.d.ts.map +1 -1
  1323. package/dist/modes/interactive/interactive-global-clear.js +60 -4
  1324. package/dist/modes/interactive/interactive-global-clear.js.map +1 -1
  1325. package/dist/modes/interactive/interactive-hotkeys-debug.js +2 -3
  1326. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  1327. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  1328. package/dist/modes/interactive/interactive-input-handling.js +55 -20
  1329. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  1330. package/dist/modes/interactive/interactive-key-identity.d.ts +22 -0
  1331. package/dist/modes/interactive/interactive-key-identity.d.ts.map +1 -0
  1332. package/dist/modes/interactive/interactive-key-identity.js +29 -0
  1333. package/dist/modes/interactive/interactive-key-identity.js.map +1 -0
  1334. package/dist/modes/interactive/interactive-mode-base.d.ts +7 -6
  1335. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  1336. package/dist/modes/interactive/interactive-mode-base.js +12 -12
  1337. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  1338. package/dist/modes/interactive/interactive-mode-deps.d.ts +20 -20
  1339. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  1340. package/dist/modes/interactive/interactive-mode-deps.js +16 -16
  1341. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  1342. package/dist/modes/interactive/interactive-mode-helpers.d.ts +1 -1
  1343. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  1344. package/dist/modes/interactive/interactive-mode-helpers.js +3 -9
  1345. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  1346. package/dist/modes/interactive/interactive-mode-surface.d.ts +8 -7
  1347. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  1348. package/dist/modes/interactive/interactive-mode-surface.js +1 -0
  1349. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  1350. package/dist/modes/interactive/interactive-mode-types.d.ts +2 -2
  1351. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  1352. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  1353. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
  1354. package/dist/modes/interactive/interactive-model-catalog-startup.js +2 -1
  1355. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
  1356. package/dist/modes/interactive/interactive-model-routing.js +6 -6
  1357. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  1358. package/dist/modes/interactive/interactive-onboarding.js +7 -7
  1359. package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
  1360. package/dist/modes/interactive/interactive-pause.js.map +1 -1
  1361. package/dist/modes/interactive/interactive-process-lifecycle.js +38 -8
  1362. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  1363. package/dist/modes/interactive/interactive-prompt-restore.d.ts +58 -0
  1364. package/dist/modes/interactive/interactive-prompt-restore.d.ts.map +1 -0
  1365. package/dist/modes/interactive/interactive-prompt-restore.js +87 -0
  1366. package/dist/modes/interactive/interactive-prompt-restore.js.map +1 -0
  1367. package/dist/modes/interactive/interactive-prompt-turn.js +18 -3
  1368. package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -1
  1369. package/dist/modes/interactive/interactive-queueing.js +3 -7
  1370. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  1371. package/dist/modes/interactive/interactive-render-chat.js +47 -36
  1372. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  1373. package/dist/modes/interactive/interactive-resource-disclosure.js +1 -3
  1374. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  1375. package/dist/modes/interactive/interactive-resource-paths.js +6 -19
  1376. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
  1377. package/dist/modes/interactive/interactive-resource-rendering.js +15 -16
  1378. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  1379. package/dist/modes/interactive/interactive-selectors.js +3 -5
  1380. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  1381. package/dist/modes/interactive/interactive-session-routing.js +16 -4
  1382. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  1383. package/dist/modes/interactive/interactive-session-runtime.js +11 -0
  1384. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  1385. package/dist/modes/interactive/interactive-slash-commands.js +11 -6
  1386. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  1387. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  1388. package/dist/modes/interactive/interactive-startup.js +9 -11
  1389. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  1390. package/dist/modes/interactive/interactive-submission.d.ts +24 -0
  1391. package/dist/modes/interactive/interactive-submission.d.ts.map +1 -0
  1392. package/dist/modes/interactive/interactive-submission.js +10 -0
  1393. package/dist/modes/interactive/interactive-submission.js.map +1 -0
  1394. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts +1 -1
  1395. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -1
  1396. package/dist/modes/interactive/interactive-summarization-retry-events.js +4 -2
  1397. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
  1398. package/dist/modes/interactive/login-provider-options.d.ts.map +1 -1
  1399. package/dist/modes/interactive/login-provider-options.js +1 -2
  1400. package/dist/modes/interactive/login-provider-options.js.map +1 -1
  1401. package/dist/modes/interactive/theme/global-theme.d.ts +1 -1
  1402. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  1403. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  1404. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  1405. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  1406. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  1407. package/dist/modes/interactive/theme/theme-loading.js +1 -1
  1408. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  1409. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  1410. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  1411. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1412. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1413. package/dist/modes/interactive/theme/theme.js +2 -2
  1414. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1415. package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
  1416. package/dist/modes/interactive/whimsical-messages.js.map +1 -1
  1417. package/dist/modes/interactive-engine/activity-watchdog.d.ts +16 -6
  1418. package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
  1419. package/dist/modes/interactive-engine/activity-watchdog.js +12 -6
  1420. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
  1421. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
  1422. package/dist/modes/interactive-engine/create-isolated-runtime.js +5 -4
  1423. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
  1424. package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -1
  1425. package/dist/modes/interactive-engine/engine-child-liveness.js +6 -4
  1426. package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -1
  1427. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -2
  1428. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  1429. package/dist/modes/interactive-engine/engine-custom-ui.js +32 -11
  1430. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  1431. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +16 -0
  1432. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -0
  1433. package/dist/modes/interactive-engine/engine-diagnostic-view.js +19 -0
  1434. package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -0
  1435. package/dist/modes/interactive-engine/engine-dialog-host.d.ts +33 -0
  1436. package/dist/modes/interactive-engine/engine-dialog-host.d.ts.map +1 -0
  1437. package/dist/modes/interactive-engine/engine-dialog-host.js +129 -0
  1438. package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -0
  1439. package/dist/modes/interactive-engine/engine-generation.d.ts +29 -0
  1440. package/dist/modes/interactive-engine/engine-generation.d.ts.map +1 -0
  1441. package/dist/modes/interactive-engine/engine-generation.js +11 -0
  1442. package/dist/modes/interactive-engine/engine-generation.js.map +1 -0
  1443. package/dist/modes/interactive-engine/engine-health.d.ts +101 -0
  1444. package/dist/modes/interactive-engine/engine-health.d.ts.map +1 -0
  1445. package/dist/modes/interactive-engine/engine-health.js +236 -0
  1446. package/dist/modes/interactive-engine/engine-health.js.map +1 -0
  1447. package/dist/modes/interactive-engine/engine-input-form.d.ts.map +1 -1
  1448. package/dist/modes/interactive-engine/engine-input-form.js +12 -3
  1449. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -1
  1450. package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -1
  1451. package/dist/modes/interactive-engine/engine-monitor.js +7 -2
  1452. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
  1453. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  1454. package/dist/modes/interactive-engine/engine-render-service.js +11 -5
  1455. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  1456. package/dist/modes/interactive-engine/engine-session-picker.d.ts.map +1 -1
  1457. package/dist/modes/interactive-engine/engine-session-picker.js +4 -2
  1458. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -1
  1459. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +14 -3
  1460. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  1461. package/dist/modes/interactive-engine/extension-ui-bridge.js +32 -45
  1462. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  1463. package/dist/modes/interactive-engine/input-form-host.d.ts +1 -0
  1464. package/dist/modes/interactive-engine/input-form-host.d.ts.map +1 -1
  1465. package/dist/modes/interactive-engine/input-form-host.js +12 -2
  1466. package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
  1467. package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -1
  1468. package/dist/modes/interactive-engine/isolated-auth.js +1 -1
  1469. package/dist/modes/interactive-engine/isolated-auth.js.map +1 -1
  1470. package/dist/modes/interactive-engine/isolated-runtime.d.ts +32 -6
  1471. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  1472. package/dist/modes/interactive-engine/isolated-runtime.js +122 -59
  1473. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  1474. package/dist/modes/interactive-engine/protocol.d.ts +20 -1
  1475. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  1476. package/dist/modes/interactive-engine/protocol.js +183 -55
  1477. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  1478. package/dist/modes/interactive-engine/remote-component.d.ts +38 -0
  1479. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  1480. package/dist/modes/interactive-engine/remote-component.js +111 -22
  1481. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  1482. package/dist/modes/interactive-engine/remote-input-ownership.d.ts +48 -0
  1483. package/dist/modes/interactive-engine/remote-input-ownership.d.ts.map +1 -0
  1484. package/dist/modes/interactive-engine/remote-input-ownership.js +42 -0
  1485. package/dist/modes/interactive-engine/remote-input-ownership.js.map +1 -0
  1486. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
  1487. package/dist/modes/interactive-engine/remote-model-catalog.js +10 -4
  1488. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  1489. package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -1
  1490. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -1
  1491. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
  1492. package/dist/modes/interactive-engine/remote-renderer.js +38 -10
  1493. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  1494. package/dist/modes/interactive-engine/session-picker-host.d.ts +1 -0
  1495. package/dist/modes/interactive-engine/session-picker-host.d.ts.map +1 -1
  1496. package/dist/modes/interactive-engine/session-picker-host.js +4 -0
  1497. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
  1498. package/dist/modes/print-mode.d.ts.map +1 -1
  1499. package/dist/modes/print-mode.js.map +1 -1
  1500. package/dist/modes/rpc/jsonl.d.ts +7 -0
  1501. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1502. package/dist/modes/rpc/jsonl.js +17 -1
  1503. package/dist/modes/rpc/jsonl.js.map +1 -1
  1504. package/dist/modes/rpc/queued-writer.d.ts +14 -0
  1505. package/dist/modes/rpc/queued-writer.d.ts.map +1 -1
  1506. package/dist/modes/rpc/queued-writer.js +33 -9
  1507. package/dist/modes/rpc/queued-writer.js.map +1 -1
  1508. package/dist/modes/rpc/rpc-bash-request-owners.js +1 -1
  1509. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -1
  1510. package/dist/modes/rpc/rpc-client-api.d.ts +3 -3
  1511. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  1512. package/dist/modes/rpc/rpc-client-api.js +63 -22
  1513. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  1514. package/dist/modes/rpc/rpc-client-process.d.ts +10 -0
  1515. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  1516. package/dist/modes/rpc/rpc-client-process.js +72 -15
  1517. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  1518. package/dist/modes/rpc/rpc-client-waits.d.ts +17 -1
  1519. package/dist/modes/rpc/rpc-client-waits.d.ts.map +1 -1
  1520. package/dist/modes/rpc/rpc-client-waits.js +25 -0
  1521. package/dist/modes/rpc/rpc-client-waits.js.map +1 -1
  1522. package/dist/modes/rpc/rpc-client.d.ts +61 -6
  1523. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1524. package/dist/modes/rpc/rpc-client.js +200 -145
  1525. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1526. package/dist/modes/rpc/rpc-command-handler.d.ts +2 -2
  1527. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  1528. package/dist/modes/rpc/rpc-command-handler.js +35 -13
  1529. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  1530. package/dist/modes/rpc/rpc-command-timeouts.d.ts +30 -0
  1531. package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -0
  1532. package/dist/modes/rpc/rpc-command-timeouts.js +52 -0
  1533. package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -0
  1534. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
  1535. package/dist/modes/rpc/rpc-event-buffer.js +3 -1
  1536. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  1537. package/dist/modes/rpc/rpc-extension-ui.d.ts +1 -1
  1538. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  1539. package/dist/modes/rpc/rpc-extension-ui.js +44 -16
  1540. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  1541. package/dist/modes/rpc/rpc-generation-buffer.d.ts +21 -0
  1542. package/dist/modes/rpc/rpc-generation-buffer.d.ts.map +1 -0
  1543. package/dist/modes/rpc/rpc-generation-buffer.js +35 -0
  1544. package/dist/modes/rpc/rpc-generation-buffer.js.map +1 -0
  1545. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  1546. package/dist/modes/rpc/rpc-input-scheduler.js +13 -6
  1547. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  1548. package/dist/modes/rpc/rpc-input.d.ts +7 -1
  1549. package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
  1550. package/dist/modes/rpc/rpc-input.js +14 -4
  1551. package/dist/modes/rpc/rpc-input.js.map +1 -1
  1552. package/dist/modes/rpc/rpc-keybindings-reload.d.ts.map +1 -1
  1553. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -1
  1554. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1555. package/dist/modes/rpc/rpc-mode.js +17 -18
  1556. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1557. package/dist/modes/rpc/rpc-oauth-client.d.ts +1 -2
  1558. package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -1
  1559. package/dist/modes/rpc/rpc-oauth-client.js +11 -4
  1560. package/dist/modes/rpc/rpc-oauth-client.js.map +1 -1
  1561. package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -1
  1562. package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -1
  1563. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  1564. package/dist/modes/rpc/rpc-output-buffer.js +3 -1
  1565. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  1566. package/dist/modes/rpc/rpc-pending-requests.d.ts +37 -0
  1567. package/dist/modes/rpc/rpc-pending-requests.d.ts.map +1 -0
  1568. package/dist/modes/rpc/rpc-pending-requests.js +57 -0
  1569. package/dist/modes/rpc/rpc-pending-requests.js.map +1 -0
  1570. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  1571. package/dist/modes/rpc/rpc-provider-auth.js +24 -5
  1572. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  1573. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  1574. package/dist/modes/rpc/rpc-session-binding.d.ts +1 -1
  1575. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  1576. package/dist/modes/rpc/rpc-session-binding.js +7 -2
  1577. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  1578. package/dist/modes/rpc/rpc-terminal-drain.d.ts +52 -0
  1579. package/dist/modes/rpc/rpc-terminal-drain.d.ts.map +1 -0
  1580. package/dist/modes/rpc/rpc-terminal-drain.js +85 -0
  1581. package/dist/modes/rpc/rpc-terminal-drain.js.map +1 -0
  1582. package/dist/modes/rpc/rpc-transport-error.d.ts +49 -0
  1583. package/dist/modes/rpc/rpc-transport-error.d.ts.map +1 -0
  1584. package/dist/modes/rpc/rpc-transport-error.js +78 -0
  1585. package/dist/modes/rpc/rpc-transport-error.js.map +1 -0
  1586. package/dist/modes/rpc/rpc-types.d.ts +10 -8
  1587. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1588. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1589. package/dist/package-manager-cli-parser.js.map +1 -1
  1590. package/dist/package-manager-cli.d.ts.map +1 -1
  1591. package/dist/package-manager-cli.js +22 -11
  1592. package/dist/package-manager-cli.js.map +1 -1
  1593. package/dist/utils/child-process.d.ts.map +1 -1
  1594. package/dist/utils/child-process.js.map +1 -1
  1595. package/dist/utils/clipboard-image.js +1 -1
  1596. package/dist/utils/clipboard-image.js.map +1 -1
  1597. package/dist/utils/clipboard.d.ts.map +1 -1
  1598. package/dist/utils/clipboard.js.map +1 -1
  1599. package/dist/utils/fs-watch.d.ts.map +1 -1
  1600. package/dist/utils/fs-watch.js +1 -3
  1601. package/dist/utils/fs-watch.js.map +1 -1
  1602. package/dist/utils/git.js +1 -1
  1603. package/dist/utils/git.js.map +1 -1
  1604. package/dist/utils/interactive-engine-bootstrap.d.ts +67 -0
  1605. package/dist/utils/interactive-engine-bootstrap.d.ts.map +1 -0
  1606. package/dist/utils/interactive-engine-bootstrap.js +117 -0
  1607. package/dist/utils/interactive-engine-bootstrap.js.map +1 -0
  1608. package/dist/utils/interactive-engine-env.d.ts +41 -0
  1609. package/dist/utils/interactive-engine-env.d.ts.map +1 -0
  1610. package/dist/utils/interactive-engine-env.js +67 -0
  1611. package/dist/utils/interactive-engine-env.js.map +1 -0
  1612. package/dist/utils/markit.d.ts.map +1 -1
  1613. package/dist/utils/markit.js +15 -5
  1614. package/dist/utils/markit.js.map +1 -1
  1615. package/dist/utils/shell.js +2 -2
  1616. package/dist/utils/shell.js.map +1 -1
  1617. package/dist/utils/split-launcher.d.ts.map +1 -1
  1618. package/dist/utils/split-launcher.js +1 -2
  1619. package/dist/utils/split-launcher.js.map +1 -1
  1620. package/dist/utils/tools-manager.d.ts.map +1 -1
  1621. package/dist/utils/tools-manager.js +8 -34
  1622. package/dist/utils/tools-manager.js.map +1 -1
  1623. package/dist/utils/version-check.d.ts.map +1 -1
  1624. package/dist/utils/version-check.js +1 -1
  1625. package/dist/utils/version-check.js.map +1 -1
  1626. package/docs/changelog.mdx +11 -0
  1627. package/docs/custom-provider.md +26 -3
  1628. package/docs/development.md +14 -15
  1629. package/docs/extensions.md +60 -2
  1630. package/docs/keybindings.md +13 -1
  1631. package/docs/providers.md +15 -2
  1632. package/docs/rpc.md +1 -1
  1633. package/docs/security.md +15 -0
  1634. package/docs/session-format.md +2 -0
  1635. package/docs/usage.md +34 -0
  1636. package/docs/workflows.md +86 -9
  1637. package/examples/extensions/border-status-editor.ts +1 -6
  1638. package/examples/extensions/custom-compaction.ts +7 -2
  1639. package/examples/extensions/custom-footer.ts +1 -1
  1640. package/examples/extensions/custom-provider-anthropic/index.ts +14 -2
  1641. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  1642. package/examples/extensions/gondolin/index.ts +1 -1
  1643. package/examples/extensions/handoff.ts +2 -2
  1644. package/examples/extensions/hello.ts +1 -1
  1645. package/examples/extensions/minimal-mode.ts +6 -6
  1646. package/examples/extensions/overlay-qa-focus-components.ts +0 -1
  1647. package/examples/extensions/overlay-qa-streaming-input-components.ts +2 -2
  1648. package/examples/extensions/overlay-qa-tests.ts +16 -14
  1649. package/examples/extensions/overlay-qa-toggle-passive-components.ts +3 -5
  1650. package/examples/extensions/overlay-test.ts +3 -6
  1651. package/examples/extensions/plan-mode/index.ts +1 -1
  1652. package/examples/extensions/preset.ts +1 -1
  1653. package/examples/extensions/qna.ts +1 -1
  1654. package/examples/extensions/structured-output.ts +9 -9
  1655. package/examples/extensions/subagent/display.ts +115 -127
  1656. package/examples/extensions/subagent/index.ts +310 -349
  1657. package/examples/extensions/subagent/render.ts +244 -345
  1658. package/examples/extensions/subagent/runner.ts +223 -230
  1659. package/examples/extensions/subagent/schemas.ts +39 -46
  1660. package/examples/extensions/subagent/types.ts +22 -22
  1661. package/examples/extensions/summarize.ts +2 -2
  1662. package/examples/extensions/tic-tac-toe.ts +4 -4
  1663. package/examples/extensions/todo.ts +1 -1
  1664. package/examples/extensions/tool-override.ts +1 -1
  1665. package/examples/extensions/trigger-compact.ts +4 -1
  1666. package/examples/extensions/working-indicator.ts +2 -1
  1667. package/examples/rpc-extension-ui-components.ts +1 -2
  1668. package/examples/sdk/02-custom-model.ts +1 -1
  1669. package/examples/sdk/03-custom-prompt.ts +1 -6
  1670. package/examples/sdk/06-extensions.ts +1 -6
  1671. package/examples/sdk/07-context-files.ts +1 -6
  1672. package/examples/sdk/12-full-control.ts +1 -1
  1673. package/npm-shrinkwrap.json +300 -303
  1674. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-accessors.js","sourceRoot":"","sources":["../../src/core/agent-session-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\n\nexport function installAgentSessionAccessors(prototype: AgentSession): void {\n\tObject.defineProperties(prototype, {\n\t\torchestrationContext: { get() { return this._orchestrationContext; } },\n\t\tmodelRuntime: { get() { return this._modelRuntime; } },\n\t\tstate: { get() { return this.agent.state; } },\n\t\tmodel: { get() { return this.agent.state.model; } },\n\t\tthinkingLevel: { get() { return this.agent.state.thinkingLevel; } },\n\t\tisStreaming: { get() { return this.agent.state.isStreaming; } },\n\t\tsystemPrompt: { get() { return this.agent.state.systemPrompt; } },\n\t\tretryAttempt: { get() { return this._retryAttempt; } },\n\t\tisCompacting: {\n\t\t\tget() {\n\t\t\t\treturn (\n\t\t\t\t\tthis._autoCompactionAbortController !== undefined ||\n\t\t\t\t\tthis._compactionAbortController !== undefined ||\n\t\t\t\t\tthis._branchSummaryAbortController !== undefined\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tmessages: { get() { return this.agent.state.messages; } },\n\t\tsteeringMode: { get() { return this.agent.steeringMode; } },\n\t\tfollowUpMode: { get() { return this.agent.followUpMode; } },\n\t\tsessionFile: { get() { return this.sessionManager.getSessionFile(); } },\n\t\tsessionId: { get() { return this.sessionManager.getSessionId(); } },\n\t\tsessionName: { get() { return this.sessionManager.getSessionName(); } },\n\t\tscopedModels: { get() { return this._scopedModels; } },\n\t\tpromptTemplates: { get() { return this._resourceLoader.getPrompts().prompts; } },\n\t\tpendingMessageCount: { get() { return this._steeringMessages.length + this._followUpMessages.length; } },\n\t\tqueuedMessagesPaused: { get() { return this._queuedMessagesPaused; } },\n\t\tresourceLoader: { get() { return this._resourceLoader; } },\n\t\tautoCompactionEnabled: { get() { return this.settingsManager.getCompactionEnabled(); } },\n\t\tisRetrying: { get() { return this._retryPromise !== undefined; } },\n\t\tautoRetryEnabled: { get() { return this.settingsManager.getRetryEnabled(); } },\n\t\tisBashRunning: { get() { return this._bashAbortControllers.size > 0; } },\n\t\thasPendingBashMessages: { get() { return this._pendingBashMessages.length > 0; } },\n\t\textensionRunner: { get() { return this._extensionRunner; } },\n\t});\n}\n"]}
1
+ {"version":3,"file":"agent-session-accessors.js","sourceRoot":"","sources":["../../src/core/agent-session-accessors.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\n\nexport function installAgentSessionAccessors(prototype: AgentSession): void {\n\tObject.defineProperties(prototype, {\n\t\torchestrationContext: {\n\t\t\tget() {\n\t\t\t\treturn this._orchestrationContext;\n\t\t\t},\n\t\t},\n\t\tmodelRuntime: {\n\t\t\tget() {\n\t\t\t\treturn this._modelRuntime;\n\t\t\t},\n\t\t},\n\t\tstate: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state;\n\t\t\t},\n\t\t},\n\t\tmodel: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state.model;\n\t\t\t},\n\t\t},\n\t\tthinkingLevel: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state.thinkingLevel;\n\t\t\t},\n\t\t},\n\t\tisStreaming: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state.isStreaming;\n\t\t\t},\n\t\t},\n\t\tsystemPrompt: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state.systemPrompt;\n\t\t\t},\n\t\t},\n\t\tretryAttempt: {\n\t\t\tget() {\n\t\t\t\treturn this._retryAttempt;\n\t\t\t},\n\t\t},\n\t\tisCompacting: {\n\t\t\tget() {\n\t\t\t\treturn (\n\t\t\t\t\tthis._autoCompactionAbortController !== undefined ||\n\t\t\t\t\tthis._compactionAbortController !== undefined ||\n\t\t\t\t\tthis._branchSummaryAbortController !== undefined\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\tmessages: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.state.messages;\n\t\t\t},\n\t\t},\n\t\tsteeringMode: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.steeringMode;\n\t\t\t},\n\t\t},\n\t\tfollowUpMode: {\n\t\t\tget() {\n\t\t\t\treturn this.agent.followUpMode;\n\t\t\t},\n\t\t},\n\t\tsessionFile: {\n\t\t\tget() {\n\t\t\t\treturn this.sessionManager.getSessionFile();\n\t\t\t},\n\t\t},\n\t\tsessionId: {\n\t\t\tget() {\n\t\t\t\treturn this.sessionManager.getSessionId();\n\t\t\t},\n\t\t},\n\t\tsessionName: {\n\t\t\tget() {\n\t\t\t\treturn this.sessionManager.getSessionName();\n\t\t\t},\n\t\t},\n\t\tscopedModels: {\n\t\t\tget() {\n\t\t\t\treturn this._scopedModels;\n\t\t\t},\n\t\t},\n\t\tpromptTemplates: {\n\t\t\tget() {\n\t\t\t\treturn this._resourceLoader.getPrompts().prompts;\n\t\t\t},\n\t\t},\n\t\tpendingMessageCount: {\n\t\t\tget() {\n\t\t\t\treturn this._steeringMessages.length + this._followUpMessages.length;\n\t\t\t},\n\t\t},\n\t\tqueuedMessagesPaused: {\n\t\t\tget() {\n\t\t\t\treturn this._queuedMessagesPaused;\n\t\t\t},\n\t\t},\n\t\tresourceLoader: {\n\t\t\tget() {\n\t\t\t\treturn this._resourceLoader;\n\t\t\t},\n\t\t},\n\t\tautoCompactionEnabled: {\n\t\t\tget() {\n\t\t\t\treturn this.settingsManager.getCompactionEnabled();\n\t\t\t},\n\t\t},\n\t\tisRetrying: {\n\t\t\tget() {\n\t\t\t\treturn this._retryPromise !== undefined;\n\t\t\t},\n\t\t},\n\t\tautoRetryEnabled: {\n\t\t\tget() {\n\t\t\t\treturn this.settingsManager.getRetryEnabled();\n\t\t\t},\n\t\t},\n\t\tisBashRunning: {\n\t\t\tget() {\n\t\t\t\treturn this._bashAbortControllers.size > 0;\n\t\t\t},\n\t\t},\n\t\thasPendingBashMessages: {\n\t\t\tget() {\n\t\t\t\treturn this._pendingBashMessages.length > 0;\n\t\t\t},\n\t\t},\n\t\textensionRunner: {\n\t\t\tget() {\n\t\t\t\treturn this._extensionRunner;\n\t\t\t},\n\t\t},\n\t});\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-auto-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-auto-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAKrE,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9F;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,6CAA6C,IAAI,CAAC;AAc/D,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,UAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuIrI;AAED,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAEnF;AAmDD,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAQ1F;AAED,wBAAgB,mCAAmC,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAE/F;AAED;;GAEG;AAEH,wBAAgB,kDAAkD,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ3F;AAED;;;;;GAKG;AAEH,wBAAgB,4CAA4C,CAAC,IAAI,EAAE,YAAY,EAC9E,OAAO,EAAE,UAAU,GAAG,WAAW,EACjC,SAAS,EAAE,OAAO,GAChB,IAAI,CA4BN;AAED,wBAAsB,uCAAuC,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F;AAED;;GAEG;AAEH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;AAED;;;;;;GAMG;AAEH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAQrE;AAOD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAoFhI;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;CAQ7C,CAAC"}
1
+ {"version":3,"file":"agent-session-auto-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-auto-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAErE,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAK9F;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,IAAI,CAAC;AAElD,eAAO,MAAM,6CAA6C,IAAI,CAAC;AAc/D,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,YAAY,EAClB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,UAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAuIf;AAED,wBAAgB,uBAAuB,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAEnF;AAqDD,wBAAgB,8BAA8B,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAQ1F;AAED,wBAAgB,mCAAmC,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAE/F;AAED;;GAEG;AAEH,wBAAgB,kDAAkD,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAQ3F;AAED;;;;;GAKG;AAEH,wBAAgB,4CAA4C,CAC3D,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,UAAU,GAAG,WAAW,EACjC,SAAS,EAAE,OAAO,GAChB,IAAI,CA4BN;AAED,wBAAsB,uCAAuC,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/F;AAED;;GAEG;AAEH,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAWlF;AAED;;;;;;GAMG;AAEH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAQrE;AAMD,wBAAsB,kBAAkB,CACvC,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,UAAU,GAAG,WAAW,EAChC,SAAS,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAqFf;AAED;;GAEG;AAEH,eAAO,MAAM,iCAAiC;;;;;;;;CAQ7C,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { isContextOverflow } from "@earendil-works/pi-ai/compat";
2
2
  import { calculateContextTokens, estimateContextTokens, shouldCompact } from "./compaction/index.js";
3
- import { getLatestCompactionBoundaryEntry } from "./session-manager.js";
4
3
  import { MIN_RESPONSES_MAX_OUTPUT_TOKENS } from "./openai-responses-payload-sanitizer.js";
4
+ import { getLatestCompactionBoundaryEntry } from "./session-manager.js";
5
5
  /**
6
6
  * Upper bound on consecutive automatic continuations of a response that was
7
7
  * truncated at the output-token cap ("length") while the context is still
@@ -182,7 +182,9 @@ function isStructuredOutputBudgetUnderflow(details) {
182
182
  const param = details.param?.toLowerCase();
183
183
  if (!OUTPUT_BUDGET_UNDERFLOW_PATTERN.test(message))
184
184
  return false;
185
- return param !== undefined ? OUTPUT_BUDGET_PARAMETER_PATTERN.test(param) : OUTPUT_BUDGET_PARAMETER_PATTERN.test(message);
185
+ return param !== undefined
186
+ ? OUTPUT_BUDGET_PARAMETER_PATTERN.test(param)
187
+ : OUTPUT_BUDGET_PARAMETER_PATTERN.test(message);
186
188
  }
187
189
  export function isRetryWorthyOutputBudgetError(assistantMessage) {
188
190
  if (assistantMessage.stopReason !== "error" || !assistantMessage.errorMessage)
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-auto-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-auto-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@earendil-works/pi-ai/compat\";\nimport { isContextOverflow } from \"@earendil-works/pi-ai/compat\";\nimport { calculateContextTokens, estimateContextTokens, shouldCompact } from \"./compaction/index.ts\";\nimport { getLatestCompactionBoundaryEntry } from \"./session-manager.ts\";\nimport { MIN_RESPONSES_MAX_OUTPUT_TOKENS } from \"./openai-responses-payload-sanitizer.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\n\n/**\n * Upper bound on consecutive automatic continuations of a response that was\n * truncated at the output-token cap (\"length\") while the context is still\n * below the compaction budget. Each continuation regenerates the cut-off turn,\n * so a model that insists on emitting more than its per-turn output cap can\n * still terminate instead of looping forever.\n */\nexport const MAX_LENGTH_CONTINUATION_ATTEMPTS = 3;\n\nexport const MAX_OUTPUT_BUDGET_ERROR_CONTINUATION_ATTEMPTS = 1;\n\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\ntype ProviderErrorDetails = {\n\tmessage?: string;\n\tcode?: string;\n\tparam?: string;\n};\n\nconst OUTPUT_BUDGET_PARAMETER_PATTERN = /\\bmax_output_tokens\\b/;\nconst OUTPUT_BUDGET_UNDERFLOW_PATTERN = new RegExp(\n\t`(?:integer\\\\s+below\\\\s+minimum\\\\s+value|expected\\\\s+(?:a\\\\s+)?value\\\\s*>=\\\\s*${MIN_RESPONSES_MAX_OUTPUT_TOKENS}|got\\\\s+1\\\\s+instead)`,\n);\n\nexport async function _checkCompaction(this: AgentSession, assistantMessage: AssistantMessage, skipAbortedCheck = true): Promise<void> {\n\tif (this._pendingPostToolCompactionGuard) {\n\t\tconst { result } = this._pendingPostToolCompactionGuard;\n\t\tthis._pendingPostToolCompactionGuard = undefined;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult,\n\t\t\taborted: true,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t});\n\t}\n\tif (\n\t\tthis._postToolCompactionPreflightError !== undefined &&\n\t\tassistantMessage.errorMessage === this._postToolCompactionPreflightError\n\t) {\n\t\tthis._postToolCompactionPreflightError = undefined;\n\t\treturn;\n\t}\n\t// The agent_end path passes skipAbortedCheck=true; the pre-prompt path passes\n\t// false. Only the live turn-completion path may auto-continue a truncated\n\t// response — before a fresh user prompt we must not resume the old turn.\n\tconst isLiveTurnCompletion = skipAbortedCheck;\n\tconst settings = this.settingsManager.getCompactionSettings();\n\tif (!settings.enabled) return;\n\n\t// Skip if message was aborted (user cancelled) - unless skipAbortedCheck is false\n\tif (skipAbortedCheck && assistantMessage.stopReason === \"aborted\") return;\n\n\tconst contextWindow = this.model?.contextWindow ?? 0;\n\n\t// Skip overflow check if the message came from a different model.\n\t// This handles the case where user switched from a smaller-context model (e.g. opus)\n\t// to a larger-context model (e.g. codex) - the overflow error from the old model\n\t// shouldn't trigger compaction for the new model.\n\tconst sameModel =\n\t\tthis.model && assistantMessage.provider === this.model.provider && assistantMessage.model === this.model.id;\n\n\t// Skip compaction checks if this assistant message is older than the latest\n\t// compaction boundary. This prevents a stale pre-compaction usage/error\n\t// from retriggering compaction on the first prompt after compaction.\n\tconst compactionBoundaryEntry = getLatestCompactionBoundaryEntry(this.sessionManager.getBranch());\n\tconst assistantIsFromBeforeCompactionBoundary =\n\t\tcompactionBoundaryEntry !== null &&\n\t\tassistantMessage.timestamp <= new Date(compactionBoundaryEntry.timestamp).getTime();\n\tif (assistantIsFromBeforeCompactionBoundary) {\n\t\treturn;\n\t}\n\n\t// Case 1: Overflow - LLM returned context overflow error\n\tif (sameModel && isContextOverflow(assistantMessage, contextWindow)) {\n\t\tconst willRetry = assistantMessage.stopReason !== \"stop\";\n\t\tif (!willRetry) {\n\t\t\tawait this._runAutoCompaction(\"overflow\", false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._overflowRecoveryAttempted) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"overflow\",\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: true,\n\t\t\t\terrorMessage:\n\t\t\t\t\t\"Context overflow recovery failed after one compact-and-retry attempt. Try reducing context or switching to a larger-context model.\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis._overflowRecoveryAttempted = true;\n\t\t// Remove the error message from agent state (it IS saved to session for history,\n\t\t// but we don't want it in context for the retry)\n\t\tconst messages = this.agent.state.messages;\n\t\tif (messages.length > 0 && messages[messages.length - 1].role === \"assistant\") {\n\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t}\n\t\tawait this._runAutoCompaction(\"overflow\", willRetry);\n\t\treturn;\n\t}\n\n\t// Case 2: Threshold - context is getting large\n\t// For error messages (no usage data), estimate from last successful response.\n\t// This ensures sessions that hit persistent API errors (e.g. 529) can still compact.\n\tlet contextTokens: number;\n\tif (assistantMessage.stopReason === \"error\") {\n\t\tconst messages = this.agent.state.messages;\n\t\tconst estimate = estimateContextTokens(messages);\n\t\tif (estimate.lastUsageIndex === null) return; // No usage data at all\n\t\t// Verify the usage source is post-compaction. Kept pre-compaction messages\n\t\t// have stale usage reflecting the old (larger) context and would falsely\n\t\t// trigger compaction right after one just finished.\n\t\tconst usageMsg = messages[estimate.lastUsageIndex];\n\t\tif (\n\t\t\tcompactionBoundaryEntry &&\n\t\t\tusageMsg.role === \"assistant\" &&\n\t\t\t(usageMsg as AssistantMessage).timestamp <= new Date(compactionBoundaryEntry.timestamp).getTime()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tcontextTokens = estimate.tokens;\n\t} else {\n\t\tcontextTokens = calculateContextTokens(assistantMessage.usage, assistantMessage.api);\n\t}\n\tif (shouldCompact(contextTokens, contextWindow, settings)) {\n\t\tconst willRetry = shouldRetryAfterThresholdCompaction(assistantMessage);\n\t\tif (willRetry && isRetryWorthyOutputBudgetError(assistantMessage)) {\n\t\t\tif (this._outputBudgetErrorContinuationAttempts >= MAX_OUTPUT_BUDGET_ERROR_CONTINUATION_ATTEMPTS) {\n\t\t\t\tthis._emit({\n\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\treason: \"threshold\",\n\t\t\t\t\tresult: undefined,\n\t\t\t\t\taborted: false,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\t\"Output-budget recovery stopped after a compact-and-retry attempt. Try reducing context or switching to a larger-context model.\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._outputBudgetErrorContinuationAttempts += 1;\n\t\t}\n\t\tawait this._runAutoCompaction(\"threshold\", willRetry);\n\t\treturn;\n\t}\n\n\t// A response truncated at the output-token cap (\"length\") with the context\n\t// still below the compaction budget is genuine work cut off mid-flight, not a\n\t// context overflow. Compaction would not free any room, so continue the\n\t// generation directly instead of dead-ending on the truncation and leaving\n\t// the task half-finished.\n\tif (isLiveTurnCompletion && isRetryWorthyLengthStop(assistantMessage)) {\n\t\tthis._resumeAfterLengthTruncation();\n\t}\n}\n\nexport function isRetryWorthyLengthStop(assistantMessage: AssistantMessage): boolean {\n\treturn assistantMessage.stopReason === \"length\" && assistantMessage.usage.output > 0;\n}\n\nfunction isJsonRecord(value: JsonValue): value is { [key: string]: JsonValue } {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction stringField(record: { [key: string]: JsonValue }, key: string): string | undefined {\n\tconst value = record[key];\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction parseProviderErrorDetails(errorMessage: string): ProviderErrorDetails | undefined {\n\tconst start = errorMessage.indexOf(\"{\");\n\tconst end = errorMessage.lastIndexOf(\"}\");\n\tif (start === -1 || end <= start) return undefined;\n\n\ttry {\n\t\tconst parsed = JSON.parse(errorMessage.slice(start, end + 1)) as JsonValue;\n\t\tif (!isJsonRecord(parsed)) return undefined;\n\n\t\tconst nestedError = parsed.error;\n\t\tif (nestedError !== undefined && isJsonRecord(nestedError)) {\n\t\t\treturn {\n\t\t\t\tmessage: stringField(nestedError, \"message\"),\n\t\t\t\tcode: stringField(nestedError, \"code\") ?? stringField(parsed, \"code\"),\n\t\t\t\tparam: stringField(nestedError, \"param\") ?? stringField(parsed, \"param\"),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: stringField(parsed, \"message\"),\n\t\t\tcode: stringField(parsed, \"code\"),\n\t\t\tparam: stringField(parsed, \"param\"),\n\t\t};\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isOutputBudgetUnderflowText(text: string): boolean {\n\tconst message = text.toLowerCase();\n\treturn OUTPUT_BUDGET_PARAMETER_PATTERN.test(message) && OUTPUT_BUDGET_UNDERFLOW_PATTERN.test(message);\n}\n\nfunction isStructuredOutputBudgetUnderflow(details: ProviderErrorDetails): boolean {\n\tconst message = details.message?.toLowerCase() ?? \"\";\n\tconst param = details.param?.toLowerCase();\n\tif (!OUTPUT_BUDGET_UNDERFLOW_PATTERN.test(message)) return false;\n\treturn param !== undefined ? OUTPUT_BUDGET_PARAMETER_PATTERN.test(param) : OUTPUT_BUDGET_PARAMETER_PATTERN.test(message);\n}\n\nexport function isRetryWorthyOutputBudgetError(assistantMessage: AssistantMessage): boolean {\n\tif (assistantMessage.stopReason !== \"error\" || !assistantMessage.errorMessage) return false;\n\tif (assistantMessage.api !== \"openai-responses\") return false;\n\n\tconst structuredDetails = parseProviderErrorDetails(assistantMessage.errorMessage);\n\tif (structuredDetails && isStructuredOutputBudgetUnderflow(structuredDetails)) return true;\n\n\treturn isOutputBudgetUnderflowText(assistantMessage.errorMessage);\n}\n\nexport function shouldRetryAfterThresholdCompaction(assistantMessage: AssistantMessage): boolean {\n\treturn isRetryWorthyLengthStop(assistantMessage) || isRetryWorthyOutputBudgetError(assistantMessage);\n}\n\n/**\n * Internal: remove an incomplete assistant from retry context before auto-continuing after compaction.\n */\n\nexport function _dropTrailingAutoCompactionRetryAssistantIfPresent(this: AgentSession): void {\n\tconst messages = this.agent.state.messages;\n\tconst lastMsg = messages[messages.length - 1];\n\tif (lastMsg?.role !== \"assistant\") return;\n\tconst stopReason = (lastMsg as AssistantMessage).stopReason;\n\tif (stopReason === \"error\" || stopReason === \"length\") {\n\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t}\n}\n\n/**\n * Internal: schedule a live post-event continuation after compaction_end listeners can flush queues.\n * The grace period preserves listener ordering. Queue-only probes wait for transient work to become\n * idle, while retry probes remain tied to the turn that scheduled them and are abandoned if another\n * turn owns the agent when the grace period ends.\n */\n\nexport function _schedulePostAutoCompactionContinuationProbe(this: AgentSession,\n\t_reason: \"overflow\" | \"threshold\",\n\twillRetry: boolean,\n): void {\n\tconst token = this._postCompactionContinuationToken + 1;\n\tthis._postCompactionContinuationToken = token;\n\tlet pending: Promise<void>;\n\tpending = new Promise<void>((resolve) => {\n\t\tsetTimeout(() => {\n\t\t\tvoid (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tif (willRetry) {\n\t\t\t\t\t\tif (this._postCompactionContinuationToken !== token) return;\n\t\t\t\t\t\tif (this.isCompacting || this.isStreaming) return;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait this.agent.waitForIdle();\n\t\t\t\t\t\tif (this._postCompactionContinuationToken !== token) return;\n\t\t\t\t\t\tif (this.isCompacting || this.isStreaming) return;\n\t\t\t\t\t\tif (!this.agent.hasQueuedMessages()) return;\n\t\t\t\t\t}\n\t\t\t\t\tawait this._resumeAfterAutoCompaction();\n\t\t\t\t} finally {\n\t\t\t\t\tif (this._pendingPostCompactionContinuation === pending) {\n\t\t\t\t\t\tthis._pendingPostCompactionContinuation = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t})();\n\t\t}, 100);\n\t});\n\tthis._pendingPostCompactionContinuation = pending;\n}\n\nexport async function _awaitPendingPostCompactionContinuation(this: AgentSession): Promise<void> {\n\tconst pending = this._pendingPostCompactionContinuation;\n\tif (pending === undefined) return;\n\tawait pending;\n}\n\n/**\n * Internal: resume generation after successful auto-compaction only when active work remains.\n */\n\nexport async function _resumeAfterAutoCompaction(this: AgentSession): Promise<void> {\n\ttry {\n\t\tawait this._runAgentContinue();\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthis._emit({\n\t\t\ttype: \"agent_continue_error\",\n\t\t\tsource: \"post_compaction\",\n\t\t\terrorMessage: `Post-compaction continuation failed: ${message}`,\n\t\t});\n\t}\n}\n\n/**\n * Internal: resume a response that was truncated at the output-token cap\n * (\"length\") when the context does not warrant compaction. The generation is\n * continued directly so the model finishes the work it was cut off from, rather\n * than dead-ending on the truncation. Bounded by MAX_LENGTH_CONTINUATION_ATTEMPTS\n * so a turn that keeps exceeding the per-turn output cap can still terminate.\n */\n\nexport function _resumeAfterLengthTruncation(this: AgentSession): void {\n\tif (this._lengthContinuationAttempts >= MAX_LENGTH_CONTINUATION_ATTEMPTS) return;\n\tthis._lengthContinuationAttempts += 1;\n\t// agent.continue() rejects an assistant tail; drop the incomplete\n\t// length-stopped message so the preceding user/tool-result anchors the\n\t// continuation. It remains persisted in session history.\n\tthis._dropTrailingAutoCompactionRetryAssistantIfPresent();\n\tthis._schedulePostAutoCompactionContinuationProbe(\"threshold\", true);\n}\n\n\nfunction overflowUnresolved(reason: \"overflow\" | \"threshold\", aborted = false): boolean | undefined {\n\treturn reason === \"overflow\" && !aborted ? true : undefined;\n}\n\nexport async function _runAutoCompaction(this: AgentSession, reason: \"overflow\" | \"threshold\", willRetry: boolean): Promise<void> {\n\t// Publish automatic ownership before notifying listeners. `_emit()` invokes\n\t// public listeners synchronously, so a `compaction_start` listener that calls\n\t// `compact()` must already observe this controller and be rejected rather than\n\t// racing the run that was just announced.\n\tthis._autoCompactionAbortController = new AbortController();\n\ttry {\n\t\tthis._emit({ type: \"compaction_start\", reason });\n\t} catch (error) {\n\t\t// A throwing start listener still propagates, matching current behavior,\n\t\t// but must not leave ownership published with no owner running.\n\t\tthis._autoCompactionAbortController = undefined;\n\t\tthrow error;\n\t}\n\n\ttry {\n\t\tif (!this.model) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason,\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: overflowUnresolved(reason),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve auth only after extension hooks have had an opportunity to cancel\n\t\t// compaction or provide compacted text, so local extension compaction does not\n\t\t// require provider credentials. Missing auth then fails model-driven compaction\n\t\t// before persistence or continuation, matching other provider-call failures.\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\tresolvePlannerAuth: async (candidate) => {\n\t\t\t\tconst authResult = await this._getRequiredRequestAuth(candidate);\n\t\t\t\treturn authResult.apiKey || authResult.headers ? authResult : undefined;\n\t\t\t},\n\t\t\tabortController: this._autoCompactionAbortController,\n\t\t\tbackupLabel: reason === \"overflow\" ? \"overflow-auto-compact\" : \"auto-compact\",\n\t\t\treason,\n\t\t\t// Overflow recovery is load-bearing: the turn cannot continue without it.\n\t\t\t// A threshold crossing has already passed its turn boundary, so failing is safe.\n\t\t\turgency: reason === \"overflow\" ? \"load_bearing\" : \"recoverable\",\n\t\t\t// A real provider overflow already proved the context does not fit, so a\n\t\t\t// sub-minimum region may reach the fresh rung.\n\t\t\t...(reason === \"overflow\" ? { allowSmallRegion: true } : {}),\n\t\t});\n\t\tif (!result) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason,\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: overflowUnresolved(reason),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (willRetry) {\n\t\t\tthis._dropTrailingAutoCompactionRetryAssistantIfPresent();\n\t\t}\n\n\t\tthis._emit({ type: \"compaction_end\", reason, result, aborted: false, willRetry });\n\t\tthis._schedulePostAutoCompactionContinuationProbe(reason, willRetry);\n\t} catch (error) {\n\t\tconst errorMessage = error instanceof Error ? error.message : \"compaction failed\";\n\t\tconst aborted = errorMessage === \"Compaction cancelled\" || (error instanceof Error && error.name === \"AbortError\");\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason,\n\t\t\tresult: undefined,\n\t\t\taborted,\n\t\t\twillRetry: false,\n\t\t\tunresolvedOverflow: overflowUnresolved(reason, aborted),\n\t\t\terrorMessage: aborted\n\t\t\t\t? undefined\n\t\t\t\t: reason === \"overflow\"\n\t\t\t\t\t? `Context overflow recovery failed: ${errorMessage}`\n\t\t\t\t\t: `Auto-compaction failed: ${errorMessage}`,\n\t\t});\n\t} finally {\n\t\tthis._autoCompactionAbortController = undefined;\n\t}\n}\n\n/**\n * Toggle auto-compaction setting.\n */\n\nexport const agentSessionAutoCompactionMethods = {\n\t_awaitPendingPostCompactionContinuation,\n\t_checkCompaction,\n\t_dropTrailingAutoCompactionRetryAssistantIfPresent,\n\t_schedulePostAutoCompactionContinuationProbe,\n\t_resumeAfterAutoCompaction,\n\t_resumeAfterLengthTruncation,\n\t_runAutoCompaction,\n};\n"]}
1
+ {"version":3,"file":"agent-session-auto-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-auto-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@earendil-works/pi-ai/compat\";\nimport { isContextOverflow } from \"@earendil-works/pi-ai/compat\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport { calculateContextTokens, estimateContextTokens, shouldCompact } from \"./compaction/index.ts\";\nimport { MIN_RESPONSES_MAX_OUTPUT_TOKENS } from \"./openai-responses-payload-sanitizer.ts\";\nimport { getLatestCompactionBoundaryEntry } from \"./session-manager.ts\";\n\n/**\n * Upper bound on consecutive automatic continuations of a response that was\n * truncated at the output-token cap (\"length\") while the context is still\n * below the compaction budget. Each continuation regenerates the cut-off turn,\n * so a model that insists on emitting more than its per-turn output cap can\n * still terminate instead of looping forever.\n */\nexport const MAX_LENGTH_CONTINUATION_ATTEMPTS = 3;\n\nexport const MAX_OUTPUT_BUDGET_ERROR_CONTINUATION_ATTEMPTS = 1;\n\ntype JsonValue = string | number | boolean | null | JsonValue[] | { [key: string]: JsonValue };\ntype ProviderErrorDetails = {\n\tmessage?: string;\n\tcode?: string;\n\tparam?: string;\n};\n\nconst OUTPUT_BUDGET_PARAMETER_PATTERN = /\\bmax_output_tokens\\b/;\nconst OUTPUT_BUDGET_UNDERFLOW_PATTERN = new RegExp(\n\t`(?:integer\\\\s+below\\\\s+minimum\\\\s+value|expected\\\\s+(?:a\\\\s+)?value\\\\s*>=\\\\s*${MIN_RESPONSES_MAX_OUTPUT_TOKENS}|got\\\\s+1\\\\s+instead)`,\n);\n\nexport async function _checkCompaction(\n\tthis: AgentSession,\n\tassistantMessage: AssistantMessage,\n\tskipAbortedCheck = true,\n): Promise<void> {\n\tif (this._pendingPostToolCompactionGuard) {\n\t\tconst { result } = this._pendingPostToolCompactionGuard;\n\t\tthis._pendingPostToolCompactionGuard = undefined;\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"threshold\",\n\t\t\tresult,\n\t\t\taborted: true,\n\t\t\twillRetry: false,\n\t\t\tmidTurn: true,\n\t\t});\n\t}\n\tif (\n\t\tthis._postToolCompactionPreflightError !== undefined &&\n\t\tassistantMessage.errorMessage === this._postToolCompactionPreflightError\n\t) {\n\t\tthis._postToolCompactionPreflightError = undefined;\n\t\treturn;\n\t}\n\t// The agent_end path passes skipAbortedCheck=true; the pre-prompt path passes\n\t// false. Only the live turn-completion path may auto-continue a truncated\n\t// response — before a fresh user prompt we must not resume the old turn.\n\tconst isLiveTurnCompletion = skipAbortedCheck;\n\tconst settings = this.settingsManager.getCompactionSettings();\n\tif (!settings.enabled) return;\n\n\t// Skip if message was aborted (user cancelled) - unless skipAbortedCheck is false\n\tif (skipAbortedCheck && assistantMessage.stopReason === \"aborted\") return;\n\n\tconst contextWindow = this.model?.contextWindow ?? 0;\n\n\t// Skip overflow check if the message came from a different model.\n\t// This handles the case where user switched from a smaller-context model (e.g. opus)\n\t// to a larger-context model (e.g. codex) - the overflow error from the old model\n\t// shouldn't trigger compaction for the new model.\n\tconst sameModel =\n\t\tthis.model && assistantMessage.provider === this.model.provider && assistantMessage.model === this.model.id;\n\n\t// Skip compaction checks if this assistant message is older than the latest\n\t// compaction boundary. This prevents a stale pre-compaction usage/error\n\t// from retriggering compaction on the first prompt after compaction.\n\tconst compactionBoundaryEntry = getLatestCompactionBoundaryEntry(this.sessionManager.getBranch());\n\tconst assistantIsFromBeforeCompactionBoundary =\n\t\tcompactionBoundaryEntry !== null &&\n\t\tassistantMessage.timestamp <= new Date(compactionBoundaryEntry.timestamp).getTime();\n\tif (assistantIsFromBeforeCompactionBoundary) {\n\t\treturn;\n\t}\n\n\t// Case 1: Overflow - LLM returned context overflow error\n\tif (sameModel && isContextOverflow(assistantMessage, contextWindow)) {\n\t\tconst willRetry = assistantMessage.stopReason !== \"stop\";\n\t\tif (!willRetry) {\n\t\t\tawait this._runAutoCompaction(\"overflow\", false);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this._overflowRecoveryAttempted) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason: \"overflow\",\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: true,\n\t\t\t\terrorMessage:\n\t\t\t\t\t\"Context overflow recovery failed after one compact-and-retry attempt. Try reducing context or switching to a larger-context model.\",\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tthis._overflowRecoveryAttempted = true;\n\t\t// Remove the error message from agent state (it IS saved to session for history,\n\t\t// but we don't want it in context for the retry)\n\t\tconst messages = this.agent.state.messages;\n\t\tif (messages.length > 0 && messages[messages.length - 1].role === \"assistant\") {\n\t\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t\t}\n\t\tawait this._runAutoCompaction(\"overflow\", willRetry);\n\t\treturn;\n\t}\n\n\t// Case 2: Threshold - context is getting large\n\t// For error messages (no usage data), estimate from last successful response.\n\t// This ensures sessions that hit persistent API errors (e.g. 529) can still compact.\n\tlet contextTokens: number;\n\tif (assistantMessage.stopReason === \"error\") {\n\t\tconst messages = this.agent.state.messages;\n\t\tconst estimate = estimateContextTokens(messages);\n\t\tif (estimate.lastUsageIndex === null) return; // No usage data at all\n\t\t// Verify the usage source is post-compaction. Kept pre-compaction messages\n\t\t// have stale usage reflecting the old (larger) context and would falsely\n\t\t// trigger compaction right after one just finished.\n\t\tconst usageMsg = messages[estimate.lastUsageIndex];\n\t\tif (\n\t\t\tcompactionBoundaryEntry &&\n\t\t\tusageMsg.role === \"assistant\" &&\n\t\t\t(usageMsg as AssistantMessage).timestamp <= new Date(compactionBoundaryEntry.timestamp).getTime()\n\t\t) {\n\t\t\treturn;\n\t\t}\n\t\tcontextTokens = estimate.tokens;\n\t} else {\n\t\tcontextTokens = calculateContextTokens(assistantMessage.usage, assistantMessage.api);\n\t}\n\tif (shouldCompact(contextTokens, contextWindow, settings)) {\n\t\tconst willRetry = shouldRetryAfterThresholdCompaction(assistantMessage);\n\t\tif (willRetry && isRetryWorthyOutputBudgetError(assistantMessage)) {\n\t\t\tif (this._outputBudgetErrorContinuationAttempts >= MAX_OUTPUT_BUDGET_ERROR_CONTINUATION_ATTEMPTS) {\n\t\t\t\tthis._emit({\n\t\t\t\t\ttype: \"compaction_end\",\n\t\t\t\t\treason: \"threshold\",\n\t\t\t\t\tresult: undefined,\n\t\t\t\t\taborted: false,\n\t\t\t\t\twillRetry: false,\n\t\t\t\t\terrorMessage:\n\t\t\t\t\t\t\"Output-budget recovery stopped after a compact-and-retry attempt. Try reducing context or switching to a larger-context model.\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis._outputBudgetErrorContinuationAttempts += 1;\n\t\t}\n\t\tawait this._runAutoCompaction(\"threshold\", willRetry);\n\t\treturn;\n\t}\n\n\t// A response truncated at the output-token cap (\"length\") with the context\n\t// still below the compaction budget is genuine work cut off mid-flight, not a\n\t// context overflow. Compaction would not free any room, so continue the\n\t// generation directly instead of dead-ending on the truncation and leaving\n\t// the task half-finished.\n\tif (isLiveTurnCompletion && isRetryWorthyLengthStop(assistantMessage)) {\n\t\tthis._resumeAfterLengthTruncation();\n\t}\n}\n\nexport function isRetryWorthyLengthStop(assistantMessage: AssistantMessage): boolean {\n\treturn assistantMessage.stopReason === \"length\" && assistantMessage.usage.output > 0;\n}\n\nfunction isJsonRecord(value: JsonValue): value is { [key: string]: JsonValue } {\n\treturn typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction stringField(record: { [key: string]: JsonValue }, key: string): string | undefined {\n\tconst value = record[key];\n\treturn typeof value === \"string\" ? value : undefined;\n}\n\nfunction parseProviderErrorDetails(errorMessage: string): ProviderErrorDetails | undefined {\n\tconst start = errorMessage.indexOf(\"{\");\n\tconst end = errorMessage.lastIndexOf(\"}\");\n\tif (start === -1 || end <= start) return undefined;\n\n\ttry {\n\t\tconst parsed = JSON.parse(errorMessage.slice(start, end + 1)) as JsonValue;\n\t\tif (!isJsonRecord(parsed)) return undefined;\n\n\t\tconst nestedError = parsed.error;\n\t\tif (nestedError !== undefined && isJsonRecord(nestedError)) {\n\t\t\treturn {\n\t\t\t\tmessage: stringField(nestedError, \"message\"),\n\t\t\t\tcode: stringField(nestedError, \"code\") ?? stringField(parsed, \"code\"),\n\t\t\t\tparam: stringField(nestedError, \"param\") ?? stringField(parsed, \"param\"),\n\t\t\t};\n\t\t}\n\n\t\treturn {\n\t\t\tmessage: stringField(parsed, \"message\"),\n\t\t\tcode: stringField(parsed, \"code\"),\n\t\t\tparam: stringField(parsed, \"param\"),\n\t\t};\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction isOutputBudgetUnderflowText(text: string): boolean {\n\tconst message = text.toLowerCase();\n\treturn OUTPUT_BUDGET_PARAMETER_PATTERN.test(message) && OUTPUT_BUDGET_UNDERFLOW_PATTERN.test(message);\n}\n\nfunction isStructuredOutputBudgetUnderflow(details: ProviderErrorDetails): boolean {\n\tconst message = details.message?.toLowerCase() ?? \"\";\n\tconst param = details.param?.toLowerCase();\n\tif (!OUTPUT_BUDGET_UNDERFLOW_PATTERN.test(message)) return false;\n\treturn param !== undefined\n\t\t? OUTPUT_BUDGET_PARAMETER_PATTERN.test(param)\n\t\t: OUTPUT_BUDGET_PARAMETER_PATTERN.test(message);\n}\n\nexport function isRetryWorthyOutputBudgetError(assistantMessage: AssistantMessage): boolean {\n\tif (assistantMessage.stopReason !== \"error\" || !assistantMessage.errorMessage) return false;\n\tif (assistantMessage.api !== \"openai-responses\") return false;\n\n\tconst structuredDetails = parseProviderErrorDetails(assistantMessage.errorMessage);\n\tif (structuredDetails && isStructuredOutputBudgetUnderflow(structuredDetails)) return true;\n\n\treturn isOutputBudgetUnderflowText(assistantMessage.errorMessage);\n}\n\nexport function shouldRetryAfterThresholdCompaction(assistantMessage: AssistantMessage): boolean {\n\treturn isRetryWorthyLengthStop(assistantMessage) || isRetryWorthyOutputBudgetError(assistantMessage);\n}\n\n/**\n * Internal: remove an incomplete assistant from retry context before auto-continuing after compaction.\n */\n\nexport function _dropTrailingAutoCompactionRetryAssistantIfPresent(this: AgentSession): void {\n\tconst messages = this.agent.state.messages;\n\tconst lastMsg = messages[messages.length - 1];\n\tif (lastMsg?.role !== \"assistant\") return;\n\tconst stopReason = (lastMsg as AssistantMessage).stopReason;\n\tif (stopReason === \"error\" || stopReason === \"length\") {\n\t\tthis.agent.state.messages = messages.slice(0, -1);\n\t}\n}\n\n/**\n * Internal: schedule a live post-event continuation after compaction_end listeners can flush queues.\n * The grace period preserves listener ordering. Queue-only probes wait for transient work to become\n * idle, while retry probes remain tied to the turn that scheduled them and are abandoned if another\n * turn owns the agent when the grace period ends.\n */\n\nexport function _schedulePostAutoCompactionContinuationProbe(\n\tthis: AgentSession,\n\t_reason: \"overflow\" | \"threshold\",\n\twillRetry: boolean,\n): void {\n\tconst token = this._postCompactionContinuationToken + 1;\n\tthis._postCompactionContinuationToken = token;\n\tlet pending: Promise<void>;\n\tpending = new Promise<void>((resolve) => {\n\t\tsetTimeout(() => {\n\t\t\tvoid (async () => {\n\t\t\t\ttry {\n\t\t\t\t\tif (willRetry) {\n\t\t\t\t\t\tif (this._postCompactionContinuationToken !== token) return;\n\t\t\t\t\t\tif (this.isCompacting || this.isStreaming) return;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tawait this.agent.waitForIdle();\n\t\t\t\t\t\tif (this._postCompactionContinuationToken !== token) return;\n\t\t\t\t\t\tif (this.isCompacting || this.isStreaming) return;\n\t\t\t\t\t\tif (!this.agent.hasQueuedMessages()) return;\n\t\t\t\t\t}\n\t\t\t\t\tawait this._resumeAfterAutoCompaction();\n\t\t\t\t} finally {\n\t\t\t\t\tif (this._pendingPostCompactionContinuation === pending) {\n\t\t\t\t\t\tthis._pendingPostCompactionContinuation = undefined;\n\t\t\t\t\t}\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t})();\n\t\t}, 100);\n\t});\n\tthis._pendingPostCompactionContinuation = pending;\n}\n\nexport async function _awaitPendingPostCompactionContinuation(this: AgentSession): Promise<void> {\n\tconst pending = this._pendingPostCompactionContinuation;\n\tif (pending === undefined) return;\n\tawait pending;\n}\n\n/**\n * Internal: resume generation after successful auto-compaction only when active work remains.\n */\n\nexport async function _resumeAfterAutoCompaction(this: AgentSession): Promise<void> {\n\ttry {\n\t\tawait this._runAgentContinue();\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthis._emit({\n\t\t\ttype: \"agent_continue_error\",\n\t\t\tsource: \"post_compaction\",\n\t\t\terrorMessage: `Post-compaction continuation failed: ${message}`,\n\t\t});\n\t}\n}\n\n/**\n * Internal: resume a response that was truncated at the output-token cap\n * (\"length\") when the context does not warrant compaction. The generation is\n * continued directly so the model finishes the work it was cut off from, rather\n * than dead-ending on the truncation. Bounded by MAX_LENGTH_CONTINUATION_ATTEMPTS\n * so a turn that keeps exceeding the per-turn output cap can still terminate.\n */\n\nexport function _resumeAfterLengthTruncation(this: AgentSession): void {\n\tif (this._lengthContinuationAttempts >= MAX_LENGTH_CONTINUATION_ATTEMPTS) return;\n\tthis._lengthContinuationAttempts += 1;\n\t// agent.continue() rejects an assistant tail; drop the incomplete\n\t// length-stopped message so the preceding user/tool-result anchors the\n\t// continuation. It remains persisted in session history.\n\tthis._dropTrailingAutoCompactionRetryAssistantIfPresent();\n\tthis._schedulePostAutoCompactionContinuationProbe(\"threshold\", true);\n}\n\nfunction overflowUnresolved(reason: \"overflow\" | \"threshold\", aborted = false): boolean | undefined {\n\treturn reason === \"overflow\" && !aborted ? true : undefined;\n}\n\nexport async function _runAutoCompaction(\n\tthis: AgentSession,\n\treason: \"overflow\" | \"threshold\",\n\twillRetry: boolean,\n): Promise<void> {\n\t// Publish automatic ownership before notifying listeners. `_emit()` invokes\n\t// public listeners synchronously, so a `compaction_start` listener that calls\n\t// `compact()` must already observe this controller and be rejected rather than\n\t// racing the run that was just announced.\n\tthis._autoCompactionAbortController = new AbortController();\n\ttry {\n\t\tthis._emit({ type: \"compaction_start\", reason });\n\t} catch (error) {\n\t\t// A throwing start listener still propagates, matching current behavior,\n\t\t// but must not leave ownership published with no owner running.\n\t\tthis._autoCompactionAbortController = undefined;\n\t\tthrow error;\n\t}\n\n\ttry {\n\t\tif (!this.model) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason,\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: overflowUnresolved(reason),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\t// Resolve auth only after extension hooks have had an opportunity to cancel\n\t\t// compaction or provide compacted text, so local extension compaction does not\n\t\t// require provider credentials. Missing auth then fails model-driven compaction\n\t\t// before persistence or continuation, matching other provider-call failures.\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\tresolvePlannerAuth: async (candidate) => {\n\t\t\t\tconst authResult = await this._getRequiredRequestAuth(candidate);\n\t\t\t\treturn authResult.apiKey || authResult.headers ? authResult : undefined;\n\t\t\t},\n\t\t\tabortController: this._autoCompactionAbortController,\n\t\t\tbackupLabel: reason === \"overflow\" ? \"overflow-auto-compact\" : \"auto-compact\",\n\t\t\treason,\n\t\t\t// Overflow recovery is load-bearing: the turn cannot continue without it.\n\t\t\t// A threshold crossing has already passed its turn boundary, so failing is safe.\n\t\t\turgency: reason === \"overflow\" ? \"load_bearing\" : \"recoverable\",\n\t\t\t// A real provider overflow already proved the context does not fit, so a\n\t\t\t// sub-minimum region may reach the fresh rung.\n\t\t\t...(reason === \"overflow\" ? { allowSmallRegion: true } : {}),\n\t\t});\n\t\tif (!result) {\n\t\t\tthis._emit({\n\t\t\t\ttype: \"compaction_end\",\n\t\t\t\treason,\n\t\t\t\tresult: undefined,\n\t\t\t\taborted: false,\n\t\t\t\twillRetry: false,\n\t\t\t\tunresolvedOverflow: overflowUnresolved(reason),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\n\t\tif (willRetry) {\n\t\t\tthis._dropTrailingAutoCompactionRetryAssistantIfPresent();\n\t\t}\n\n\t\tthis._emit({ type: \"compaction_end\", reason, result, aborted: false, willRetry });\n\t\tthis._schedulePostAutoCompactionContinuationProbe(reason, willRetry);\n\t} catch (error) {\n\t\tconst errorMessage = error instanceof Error ? error.message : \"compaction failed\";\n\t\tconst aborted =\n\t\t\terrorMessage === \"Compaction cancelled\" || (error instanceof Error && error.name === \"AbortError\");\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason,\n\t\t\tresult: undefined,\n\t\t\taborted,\n\t\t\twillRetry: false,\n\t\t\tunresolvedOverflow: overflowUnresolved(reason, aborted),\n\t\t\terrorMessage: aborted\n\t\t\t\t? undefined\n\t\t\t\t: reason === \"overflow\"\n\t\t\t\t\t? `Context overflow recovery failed: ${errorMessage}`\n\t\t\t\t\t: `Auto-compaction failed: ${errorMessage}`,\n\t\t});\n\t} finally {\n\t\tthis._autoCompactionAbortController = undefined;\n\t}\n}\n\n/**\n * Toggle auto-compaction setting.\n */\n\nexport const agentSessionAutoCompactionMethods = {\n\t_awaitPendingPostCompactionContinuation,\n\t_checkCompaction,\n\t_dropTrailingAutoCompactionRetryAssistantIfPresent,\n\t_schedulePostAutoCompactionContinuationProbe,\n\t_resumeAfterAutoCompaction,\n\t_resumeAfterLengthTruncation,\n\t_runAutoCompaction,\n};\n"]}
@@ -1,6 +1,6 @@
1
+ import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts";
1
2
  import type { BashResult } from "./bash-executor.ts";
2
3
  import { type BashOperations, type BashOutputChannel } from "./tools/bash.ts";
3
- import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts";
4
4
  export declare function executeBash(this: AgentSession, command: string, onChunk?: (chunk: string, channel: BashOutputChannel) => void, options?: {
5
5
  excludeFromContext?: boolean;
6
6
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-bash.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAA6B,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzG,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE9F,wBAAsB,WAAW,CAAC,IAAI,EAAE,YAAY,EACnD,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,IAAI,EAC7D,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,cAAc,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9I,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAED;;;GAGG;AAEH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAyB9K;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAM/D;AAED,kDAAkD;AAElD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAYlE;AAMD;;GAEG;AAEH,eAAO,MAAM,uBAAuB;;;;;CAKnC,CAAC"}
1
+ {"version":3,"file":"agent-session-bash.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-bash.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAA6B,MAAM,iBAAiB,CAAC;AAGzG,wBAAsB,WAAW,CAChC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,KAAK,IAAI,EAC7D,OAAO,CAAC,EAAE;IACT,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACvB,GACC,OAAO,CAAC,UAAU,CAAC,CAkCrB;AAED;;;GAGG;AAEH,wBAAgB,gBAAgB,CAC/B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAC5E,IAAI,CAyBN;AAED,qFAAqF;AACrF,wBAAgB,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAQ/D;AAED,kDAAkD;AAElD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAYlE;AAMD;;GAEG;AAEH,eAAO,MAAM,uBAAuB;;;;;CAKnC,CAAC"}
@@ -69,7 +69,9 @@ export function abortBash(id) {
69
69
  this._bashAbortControllers.get(id)?.abort();
70
70
  return;
71
71
  }
72
- for (const controller of this._bashAbortControllers.values())
72
+ // Snapshot first: aborting settles owners, and a listener that removes its own
73
+ // entry must not shorten the cancellation sweep.
74
+ for (const controller of [...this._bashAbortControllers.values()])
73
75
  controller.abort();
74
76
  }
75
77
  /** Whether a bash command is currently running */
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-bash.js","sourceRoot":"","sources":["../../src/core/agent-session-bash.ts"],"names":[],"mappings":"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","sourcesContent":["import { getShellEnv } from \"../utils/shell.ts\";\nimport type { BashResult } from \"./bash-executor.ts\";\nimport { executeBashWithOperations } from \"./bash-executor.ts\";\nimport type { BashExecutionMessage } from \"./messages.ts\";\nimport { createLocalBashOperations, type BashOperations, type BashOutputChannel } from \"./tools/bash.ts\";\nimport { applyBashSessionEnvironment, snapshotBashSessionEnvironment } from \"./tools/bash-session-environment.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\n\nexport async function executeBash(this: AgentSession,\n\tcommand: string,\n\tonChunk?: (chunk: string, channel: BashOutputChannel) => void,\n\toptions?: { excludeFromContext?: boolean; id?: string; operations?: BashOperations; pty?: boolean; emitEvent?: boolean; recordResult?: boolean },\n): Promise<BashResult> {\n\tconst requestKey = options?.id ?? Symbol(\"bash-request\");\n\tconst abortController = new AbortController();\n\tthis._bashAbortControllers.set(requestKey, abortController);\n\t// Apply command prefix if configured (e.g., \"shopt -s expand_aliases\" for alias support)\n\tconst prefix = this.settingsManager.getShellCommandPrefix();\n\tconst shellPath = this.settingsManager.getShellPath();\n\tconst resolvedCommand = prefix ? `${prefix}\\n${command}` : command;\n\tconst env = { ...getShellEnv() };\n\tapplyBashSessionEnvironment(env, snapshotBashSessionEnvironment(this, true));\n\n\ttry {\n\t\tconst result = await executeBashWithOperations(\n\t\t\tresolvedCommand,\n\t\t\tthis.sessionManager.getCwd(),\n\t\t\toptions?.operations ?? createLocalBashOperations({ shellPath }),\n\t\t\t{\n\t\t\t\tonChunk: (delta, channel) => {\n\t\t\t\t\tonChunk?.(delta, channel);\n\t\t\t\t\tif (options?.emitEvent !== false) {\n\t\t\t\t\t\tthis._emit({ type: \"bash_execution_update\", id: options?.id, channel, delta });\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsignal: abortController.signal,\n\t\t\t\tenv,\n\t\t\t\tpty: options?.pty,\n\t\t\t},\n\t\t);\n\n\t\tif (options?.recordResult !== false) this.recordBashResult(command, result, options);\n\t\treturn result;\n\t} finally {\n\t\tif (this._bashAbortControllers.get(requestKey) === abortController) this._bashAbortControllers.delete(requestKey);\n\t}\n}\n\n/**\n * Record a bash execution result in session history.\n * Used by executeBash and by extensions that handle bash execution themselves.\n */\n\nexport function recordBashResult(this: AgentSession, command: string, result: BashResult, options?: { excludeFromContext?: boolean; persist?: boolean; defer?: boolean }): void {\n\tconst bashMessage: BashExecutionMessage = {\n\t\trole: \"bashExecution\",\n\t\tcommand,\n\t\toutput: result.output,\n\t\texitCode: result.exitCode,\n\t\tcancelled: result.cancelled,\n\t\ttruncated: result.truncated,\n\t\tfullOutputPath: result.fullOutputPath,\n\t\ttimestamp: Date.now(),\n\t\texcludeFromContext: options?.excludeFromContext,\n\t};\n\n\t// If agent is streaming, defer adding to avoid breaking tool_use/tool_result ordering\n\tif (this.isStreaming && options?.defer !== false) {\n\t\t// Queue for later - will be flushed on agent_end\n\t\tthis._pendingBashMessages.push(bashMessage);\n\t} else {\n\t\t// Add to agent state immediately\n\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t// Avoid writing a source-owned result into a shared manager that an\n\t\t// in-memory fork changed while this execution was active.\n\t\tif (options?.persist !== false) this.sessionManager.appendMessage(bashMessage);\n\t}\n}\n\n/** Cancel one correlated bash request, or all active requests for legacy callers. */\nexport function abortBash(this: AgentSession, id?: string): void {\n\tif (id !== undefined) {\n\t\tthis._bashAbortControllers.get(id)?.abort();\n\t\treturn;\n\t}\n\tfor (const controller of this._bashAbortControllers.values()) controller.abort();\n}\n\n/** Whether a bash command is currently running */\n\nexport function _flushPendingBashMessages(this: AgentSession): void {\n\tif (this._pendingBashMessages.length === 0) return;\n\n\tfor (const bashMessage of this._pendingBashMessages) {\n\t\t// Add to agent state\n\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t// Save to session\n\t\tthis.sessionManager.appendMessage(bashMessage);\n\t}\n\n\tthis._pendingBashMessages = [];\n}\n\n// =========================================================================\n// Session Management\n// =========================================================================\n\n/**\n * Set a display name for the current session.\n */\n\nexport const agentSessionBashMethods = {\n\texecuteBash,\n\trecordBashResult,\n\tabortBash,\n\t_flushPendingBashMessages,\n};\n"]}
1
+ {"version":3,"file":"agent-session-bash.js","sourceRoot":"","sources":["../../src/core/agent-session-bash.ts"],"names":[],"mappings":"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","sourcesContent":["import { getShellEnv } from \"../utils/shell.ts\";\nimport type { AgentSessionInternalSurface as AgentSession } from \"./agent-session-methods.ts\";\nimport type { BashResult } from \"./bash-executor.ts\";\nimport { executeBashWithOperations } from \"./bash-executor.ts\";\nimport type { BashExecutionMessage } from \"./messages.ts\";\nimport { type BashOperations, type BashOutputChannel, createLocalBashOperations } from \"./tools/bash.ts\";\nimport { applyBashSessionEnvironment, snapshotBashSessionEnvironment } from \"./tools/bash-session-environment.ts\";\n\nexport async function executeBash(\n\tthis: AgentSession,\n\tcommand: string,\n\tonChunk?: (chunk: string, channel: BashOutputChannel) => void,\n\toptions?: {\n\t\texcludeFromContext?: boolean;\n\t\tid?: string;\n\t\toperations?: BashOperations;\n\t\tpty?: boolean;\n\t\temitEvent?: boolean;\n\t\trecordResult?: boolean;\n\t},\n): Promise<BashResult> {\n\tconst requestKey = options?.id ?? Symbol(\"bash-request\");\n\tconst abortController = new AbortController();\n\tthis._bashAbortControllers.set(requestKey, abortController);\n\t// Apply command prefix if configured (e.g., \"shopt -s expand_aliases\" for alias support)\n\tconst prefix = this.settingsManager.getShellCommandPrefix();\n\tconst shellPath = this.settingsManager.getShellPath();\n\tconst resolvedCommand = prefix ? `${prefix}\\n${command}` : command;\n\tconst env = { ...getShellEnv() };\n\tapplyBashSessionEnvironment(env, snapshotBashSessionEnvironment(this, true));\n\n\ttry {\n\t\tconst result = await executeBashWithOperations(\n\t\t\tresolvedCommand,\n\t\t\tthis.sessionManager.getCwd(),\n\t\t\toptions?.operations ?? createLocalBashOperations({ shellPath }),\n\t\t\t{\n\t\t\t\tonChunk: (delta, channel) => {\n\t\t\t\t\tonChunk?.(delta, channel);\n\t\t\t\t\tif (options?.emitEvent !== false) {\n\t\t\t\t\t\tthis._emit({ type: \"bash_execution_update\", id: options?.id, channel, delta });\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tsignal: abortController.signal,\n\t\t\t\tenv,\n\t\t\t\tpty: options?.pty,\n\t\t\t},\n\t\t);\n\n\t\tif (options?.recordResult !== false) this.recordBashResult(command, result, options);\n\t\treturn result;\n\t} finally {\n\t\tif (this._bashAbortControllers.get(requestKey) === abortController) this._bashAbortControllers.delete(requestKey);\n\t}\n}\n\n/**\n * Record a bash execution result in session history.\n * Used by executeBash and by extensions that handle bash execution themselves.\n */\n\nexport function recordBashResult(\n\tthis: AgentSession,\n\tcommand: string,\n\tresult: BashResult,\n\toptions?: { excludeFromContext?: boolean; persist?: boolean; defer?: boolean },\n): void {\n\tconst bashMessage: BashExecutionMessage = {\n\t\trole: \"bashExecution\",\n\t\tcommand,\n\t\toutput: result.output,\n\t\texitCode: result.exitCode,\n\t\tcancelled: result.cancelled,\n\t\ttruncated: result.truncated,\n\t\tfullOutputPath: result.fullOutputPath,\n\t\ttimestamp: Date.now(),\n\t\texcludeFromContext: options?.excludeFromContext,\n\t};\n\n\t// If agent is streaming, defer adding to avoid breaking tool_use/tool_result ordering\n\tif (this.isStreaming && options?.defer !== false) {\n\t\t// Queue for later - will be flushed on agent_end\n\t\tthis._pendingBashMessages.push(bashMessage);\n\t} else {\n\t\t// Add to agent state immediately\n\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t// Avoid writing a source-owned result into a shared manager that an\n\t\t// in-memory fork changed while this execution was active.\n\t\tif (options?.persist !== false) this.sessionManager.appendMessage(bashMessage);\n\t}\n}\n\n/** Cancel one correlated bash request, or all active requests for legacy callers. */\nexport function abortBash(this: AgentSession, id?: string): void {\n\tif (id !== undefined) {\n\t\tthis._bashAbortControllers.get(id)?.abort();\n\t\treturn;\n\t}\n\t// Snapshot first: aborting settles owners, and a listener that removes its own\n\t// entry must not shorten the cancellation sweep.\n\tfor (const controller of [...this._bashAbortControllers.values()]) controller.abort();\n}\n\n/** Whether a bash command is currently running */\n\nexport function _flushPendingBashMessages(this: AgentSession): void {\n\tif (this._pendingBashMessages.length === 0) return;\n\n\tfor (const bashMessage of this._pendingBashMessages) {\n\t\t// Add to agent state\n\t\tthis.agent.state.messages.push(bashMessage);\n\n\t\t// Save to session\n\t\tthis.sessionManager.appendMessage(bashMessage);\n\t}\n\n\tthis._pendingBashMessages = [];\n}\n\n// =========================================================================\n// Session Management\n// =========================================================================\n\n/**\n * Set a display name for the current session.\n */\n\nexport const agentSessionBashMethods = {\n\texecuteBash,\n\trecordBashResult,\n\tabortBash,\n\t_flushPendingBashMessages,\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-compaction.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,8BAA8B,EAAE,MAAM,4BAA4B,CAAC;AAC9H,OAAO,EAWN,KAAK,4BAA4B,EAEjC,KAAK,wBAAwB,EAE7B,MAAM,uBAAuB,CAAC;AA8C/B,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,8BAA8B,GACrC,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CA4H/C;AAED,sFAAsF;AACtF,eAAO,MAAM,wCAAwC,mGAC4C,CAAC;AAoClG;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAsBlI;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAA4F;AACrJ,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAAiD;AAC7G,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAwD;AAE5I,eAAO,MAAM,6BAA6B;;;;;;CAAuG,CAAC"}
1
+ {"version":3,"file":"agent-session-compaction.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,2BAA2B,IAAI,YAAY,EAC3C,8BAA8B,EAC9B,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAWN,KAAK,4BAA4B,EAEjC,KAAK,wBAAwB,EAE7B,MAAM,uBAAuB,CAAC;AAkD/B,wBAAsB,wBAAwB,CAC7C,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,8BAA8B,GACrC,OAAO,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAyJ/C;AAED,sFAAsF;AACtF,eAAO,MAAM,wCAAwC,mGAC4C,CAAC;AA2ClG;;;;;;;;GAQG;AACH,wBAAgB,OAAO,CACtB,IAAI,EAAE,YAAY,EAClB,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM,GACjD,OAAO,CAAC,wBAAwB,CAAC,CAsBnC;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAGxD;AACD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI,CAE3D;AACD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAEnF;AAED,eAAO,MAAM,6BAA6B;;;;;;CAMzC,CAAC"}
@@ -98,7 +98,12 @@ export async function _applyVerbatimCompaction(options) {
98
98
  if (hookResult?.compactedText !== undefined) {
99
99
  if (hookResult.compactedText.trim().length === 0)
100
100
  throw new Error("No compacted text provided by extension");
101
- compacted = { text: hookResult.compactedText, stats: extensionStats(preparation, hookResult.compactedText), rung: "extension", keptTail: true };
101
+ compacted = {
102
+ text: hookResult.compactedText,
103
+ stats: extensionStats(preparation, hookResult.compactedText),
104
+ rung: "extension",
105
+ keptTail: true,
106
+ };
102
107
  fromExtension = true;
103
108
  }
104
109
  }
@@ -157,10 +162,22 @@ export async function _applyVerbatimCompaction(options) {
157
162
  };
158
163
  const compactionEntry = this.sessionManager.getEntry(entryId);
159
164
  try {
160
- await this._extensionRunner.emit({ type: "session_compact", reason: options.reason, parameters: preparation.parameters, result, compactionEntry, fromExtension });
165
+ await this._extensionRunner.emit({
166
+ type: "session_compact",
167
+ reason: options.reason,
168
+ parameters: preparation.parameters,
169
+ result,
170
+ compactionEntry,
171
+ fromExtension,
172
+ });
161
173
  }
162
174
  catch (error) {
163
- this._extensionRunner.emitError({ extensionPath: "<session_compact>", event: "session_compact", error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined });
175
+ this._extensionRunner.emitError({
176
+ extensionPath: "<session_compact>",
177
+ event: "session_compact",
178
+ error: error instanceof Error ? error.message : String(error),
179
+ stack: error instanceof Error ? error.stack : undefined,
180
+ });
164
181
  }
165
182
  return result;
166
183
  }
@@ -194,7 +211,14 @@ async function runOwnedManualCompaction(controller, options) {
194
211
  catch (error) {
195
212
  const message = error instanceof Error ? error.message : String(error);
196
213
  const aborted = message === "Compaction cancelled" || (error instanceof Error && error.name === "AbortError");
197
- this._emit({ type: "compaction_end", reason: "manual", result: undefined, aborted, willRetry: false, errorMessage: aborted ? undefined : `Compaction failed: ${message}` });
214
+ this._emit({
215
+ type: "compaction_end",
216
+ reason: "manual",
217
+ result: undefined,
218
+ aborted,
219
+ willRetry: false,
220
+ errorMessage: aborted ? undefined : `Compaction failed: ${message}`,
221
+ });
198
222
  throw error;
199
223
  }
200
224
  }
@@ -232,8 +256,21 @@ export function compact(options = {}) {
232
256
  this._manualCompactionPromise = flight;
233
257
  return flight;
234
258
  }
235
- export function abortCompaction() { this._compactionAbortController?.abort(); this._autoCompactionAbortController?.abort(); }
236
- export function abortBranchSummary() { this._branchSummaryAbortController?.abort(); }
237
- export function setAutoCompactionEnabled(enabled) { this.settingsManager.setCompactionEnabled(enabled); }
238
- export const agentSessionCompactionMethods = { _applyVerbatimCompaction, compact, abortCompaction, abortBranchSummary, setAutoCompactionEnabled };
259
+ export function abortCompaction() {
260
+ this._compactionAbortController?.abort();
261
+ this._autoCompactionAbortController?.abort();
262
+ }
263
+ export function abortBranchSummary() {
264
+ this._branchSummaryAbortController?.abort();
265
+ }
266
+ export function setAutoCompactionEnabled(enabled) {
267
+ this.settingsManager.setCompactionEnabled(enabled);
268
+ }
269
+ export const agentSessionCompactionMethods = {
270
+ _applyVerbatimCompaction,
271
+ compact,
272
+ abortCompaction,
273
+ abortBranchSummary,
274
+ setAutoCompactionEnabled,
275
+ };
239
276
  //# sourceMappingURL=agent-session-compaction.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import { formatNoModelSelectedMessage } from \"./auth-guidance.ts\";\nimport type { AgentSessionInternalSurface as AgentSession, VerbatimCompactionApplyOptions } from \"./agent-session-methods.ts\";\nimport {\n\tgetKeptTailTokenEstimate,\n\tprepareCompactionBoundary,\n\trunVerbatimCompaction,\n\tVERBATIM_COMPACTION_PROMPT_VERSION,\n\tVERBATIM_COMPACTION_STRATEGY,\n\ttype CompactionPlannerModel,\n\ttype CompactionPlanOptions,\n\ttype CompactionRung,\n\ttype FallbackPlannerContext,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n\ttype VerbatimCompactionResult,\n\ttype VerbatimCompactionStats,\n} from \"./compaction/index.ts\";\nimport type { SessionBeforeCompactEvent, SessionBeforeCompactResult, SessionCompactEvent } from \"./extensions/index.ts\";\nimport type { CompactionEntry } from \"./session-manager.ts\";\nimport { createSummarizationRetryCallbacks } from \"./summarization-retry.ts\";\n\nfunction frozenCollectionMutation(): never {\n\tthrow new TypeError(\"Cannot mutate frozen compaction preparation\");\n}\n\nfunction deepFreeze<T>(value: T): T {\n\tif (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n\tif (value instanceof Map) {\n\t\tfor (const [key, nested] of value) { deepFreeze(key); deepFreeze(nested); }\n\t\tObject.defineProperties(value, {\n\t\t\tset: { value: frozenCollectionMutation },\n\t\t\tdelete: { value: frozenCollectionMutation },\n\t\t\tclear: { value: frozenCollectionMutation },\n\t\t});\n\t} else if (value instanceof Set) {\n\t\tfor (const nested of value) deepFreeze(nested);\n\t\tObject.defineProperties(value, {\n\t\t\tadd: { value: frozenCollectionMutation },\n\t\t\tdelete: { value: frozenCollectionMutation },\n\t\t\tclear: { value: frozenCollectionMutation },\n\t\t});\n\t} else {\n\t\tfor (const nested of Object.values(value)) deepFreeze(nested);\n\t}\n\treturn Object.freeze(value);\n}\n\nfunction extensionStats(preparation: VerbatimCompactionPreparation, compactedText: string): VerbatimCompactionStats {\n\tconst linesBefore = preparation.region.lines.length;\n\tconst linesKept = compactedText.split(\"\\n\").length;\n\tconst tokensAfter = Math.ceil(compactedText.length / 4) + getKeptTailTokenEstimate(preparation);\n\treturn {\n\t\tlinesBefore,\n\t\tlinesDeleted: Math.max(0, linesBefore - linesKept),\n\t\tlinesKept,\n\t\trangeCount: 0,\n\t\ttokensBefore: preparation.tokensBefore,\n\t\ttokensAfter,\n\t\tpercentReduction: preparation.tokensBefore === 0 ? 0 : Math.round((1 - tokensAfter / preparation.tokensBefore) * 1000) / 10,\n\t};\n}\n\nexport async function _applyVerbatimCompaction(\n\tthis: AgentSession,\n\toptions: VerbatimCompactionApplyOptions,\n): Promise<VerbatimCompactionResult | undefined> {\n\tif (!this.model) throw new Error(formatNoModelSelectedMessage());\n\tconst model = this.model;\n\tconst pathEntries = this.sessionManager.getBranch();\n\tconst settings = this.settingsManager.getCompactionSettings();\n\t// A sub-minimum region is admitted only when the caller already knows the\n\t// context does not fit: overflow recovery, or a post-tool preflight over the\n\t// provider hard input limit. A threshold crossing that still fits must not\n\t// clear context — its follow-up request can be sent as-is. `load_bearing`\n\t// alone does not mean \"must destroy context\".\n\tconst allowSmallRegion = options.urgency === \"load_bearing\" && options.allowSmallRegion === true;\n\tconst preparation = prepareCompactionBoundary(\n\t\tpathEntries,\n\t\tsettings,\n\t\t{\n\t\t\t...(options.compression_ratio === undefined ? {} : { compression_ratio: options.compression_ratio }),\n\t\t\t...(options.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t...(options.query === undefined ? {} : { query: options.query }),\n\t\t},\n\t\t{ allowSmallRegion },\n\t);\n\tif (!preparation) {\n\t\tif (options.reason === \"overflow\") throw new Error(\"Context compaction found no compactable transcript entries; nothing more was safely deletable\");\n\t\treturn undefined;\n\t}\n\n\tconst plan: CompactionPlanOptions = {\n\t\tstreamFn: this.agent.streamFunction,\n\t\tsessionFilePath: this.sessionManager.getSessionFile(),\n\t\tretry: this.settingsManager.getRetrySettings(),\n\t\tcallbacks: createSummarizationRetryCallbacks(this, { source: \"compaction\", reason: options.reason }),\n\t};\n\tlet fromExtension = false;\n\tlet compacted: {\n\t\ttext: string;\n\t\tstats: VerbatimCompactionStats;\n\t\trung: CompactionRung;\n\t\tplannerModel?: CompactionPlannerModel;\n\t\tkeptTail: boolean;\n\t} | undefined;\n\n\tif (this._extensionRunner.hasHandlers(\"session_before_compact\")) {\n\t\tlet snapshot: VerbatimCompactionPreparation;\n\t\ttry {\n\t\t\tsnapshot = deepFreeze(structuredClone(preparation));\n\t\t} catch (error) {\n\t\t\tthrow new Error(`Failed to snapshot transcript for compaction extensions: ${error instanceof Error ? error.message : String(error)}`);\n\t\t}\n\t\tconst hookResult = (await this._extensionRunner.emit({\n\t\t\ttype: \"session_before_compact\",\n\t\t\treason: options.reason,\n\t\t\tparameters: preparation.parameters,\n\t\t\tpreparation: snapshot,\n\t\t\tbranchEntries: pathEntries,\n\t\t\tsignal: options.abortController.signal,\n\t\t} satisfies SessionBeforeCompactEvent)) as SessionBeforeCompactResult | undefined;\n\t\tif (hookResult?.cancel) throw new Error(\"Compaction cancelled\");\n\t\tif (hookResult?.compactedText !== undefined) {\n\t\t\tif (hookResult.compactedText.trim().length === 0) throw new Error(\"No compacted text provided by extension\");\n\t\t\tcompacted = { text: hookResult.compactedText, stats: extensionStats(preparation, hookResult.compactedText), rung: \"extension\", keptTail: true };\n\t\t\tfromExtension = true;\n\t\t}\n\t}\n\n\tif (!compacted) {\n\t\t// Borrowing walks the session's *effective* fallback list, which SDK\n\t\t// options may override, and resolves credentials per candidate. It never\n\t\t// touches session model state or the main chat's attempted-key set.\n\t\tconst fallback: FallbackPlannerContext = {\n\t\t\tfallbackModels: this._fallbackModels,\n\t\t\tregistry: this._modelRuntime,\n\t\t\tpreferredProvider: model.provider,\n\t\t\tsessionThinkingLevel: this.thinkingLevel,\n\t\t};\n\t\tconst run = await runVerbatimCompaction(preparation, model, {\n\t\t\t...plan,\n\t\t\tresolveAuth: options.resolvePlannerAuth,\n\t\t\tsignal: options.abortController.signal,\n\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\turgency: options.urgency,\n\t\t\tfallback,\n\t\t});\n\t\tcompacted = {\n\t\t\ttext: run.text,\n\t\t\tstats: run.stats,\n\t\t\trung: run.rung,\n\t\t\t...(run.plannerModel ? { plannerModel: run.plannerModel } : {}),\n\t\t\tkeptTail: run.keptTail,\n\t\t};\n\t}\n\tif (options.abortController.signal.aborted) throw new Error(\"Compaction cancelled\");\n\n\t// A fresh rung that had to drop the protected tail persists no tail boundary.\n\tconst firstKeptEntryId = compacted.keptTail ? preparation.firstKeptEntryId : null;\n\tconst backupPath = this.sessionManager.writeBackupSnapshot(options.backupLabel);\n\tconst details: VerbatimCompactionDetails = {\n\t\tstrategy: VERBATIM_COMPACTION_STRATEGY,\n\t\tpromptVersion: VERBATIM_COMPACTION_PROMPT_VERSION,\n\t\tparameters: preparation.parameters,\n\t\tstats: compacted.stats,\n\t\trung: compacted.rung,\n\t\t...(compacted.plannerModel ? { plannerModel: compacted.plannerModel } : {}),\n\t\t...(backupPath ? { backupPath } : {}),\n\t};\n\tconst entryId = this.sessionManager.appendCompaction(compacted.text, firstKeptEntryId, preparation.tokensBefore, details);\n\tthis.agent.state.messages = this.sessionManager.buildSessionContext().messages;\n\tconst result: VerbatimCompactionResult = {\n\t\tcompactedText: compacted.text,\n\t\tfirstKeptEntryId,\n\t\ttokensBefore: preparation.tokensBefore,\n\t\tstats: compacted.stats,\n\t\tparameters: preparation.parameters,\n\t\tpromptVersion: VERBATIM_COMPACTION_PROMPT_VERSION,\n\t\trung: compacted.rung,\n\t\t...(compacted.plannerModel ? { plannerModel: compacted.plannerModel } : {}),\n\t\t...(backupPath ? { backupPath } : {}),\n\t};\n\tconst compactionEntry = this.sessionManager.getEntry(entryId) as CompactionEntry<VerbatimCompactionDetails>;\n\ttry {\n\t\tawait this._extensionRunner.emit({ type: \"session_compact\", reason: options.reason, parameters: preparation.parameters, result, compactionEntry, fromExtension } satisfies SessionCompactEvent);\n\t} catch (error) {\n\t\tthis._extensionRunner.emitError({ extensionPath: \"<session_compact>\", event: \"session_compact\", error: error instanceof Error ? error.message : String(error), stack: error instanceof Error ? error.stack : undefined });\n\t}\n\treturn result;\n}\n\n/** Message surfaced when a manual compaction is requested during an automatic one. */\nexport const AUTOMATIC_COMPACTION_IN_PROGRESS_MESSAGE =\n\t\"Automatic compaction is already in progress; wait for it to finish before compacting manually.\";\n\nasync function runOwnedManualCompaction(\n\tthis: AgentSession,\n\tcontroller: AbortController,\n\toptions: Partial<VerbatimCompactionParameters>,\n): Promise<VerbatimCompactionResult> {\n\tawait this.abort();\n\tthis._emit({ type: \"compaction_start\", reason: \"manual\" });\n\ttry {\n\t\tif (!this.model) throw new Error(formatNoModelSelectedMessage());\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\t// Caller parameters are projected explicitly, so no extra runtime\n\t\t\t// property survives. A widened or cast object could otherwise carry\n\t\t\t// `urgency: \"load_bearing\"` through a public `session.compact()` call and\n\t\t\t// reach the context-destroying rung, which manual compaction must never do.\n\t\t\t...(options.compression_ratio === undefined ? {} : { compression_ratio: options.compression_ratio }),\n\t\t\t...(options.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t...(options.query === undefined ? {} : { query: options.query }),\n\t\t\tresolvePlannerAuth: (candidate) => this._getRequiredRequestAuth(candidate),\n\t\t\tabortController: controller,\n\t\t\tbackupLabel: \"compact\",\n\t\t\treason: \"manual\",\n\t\t\turgency: \"recoverable\",\n\t\t});\n\t\tif (!result) throw new Error(\"Nothing to compact (session too small)\");\n\t\tthis._emit({ type: \"compaction_end\", reason: \"manual\", result, aborted: false, willRetry: false });\n\t\treturn result;\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst aborted = message === \"Compaction cancelled\" || (error instanceof Error && error.name === \"AbortError\");\n\t\tthis._emit({ type: \"compaction_end\", reason: \"manual\", result: undefined, aborted, willRetry: false, errorMessage: aborted ? undefined : `Compaction failed: ${message}` });\n\t\tthrow error;\n\t}\n}\n\n/**\n * Persist one verbatim line-subset compaction boundary.\n *\n * Re-entrancy safe: a call made while a manual compaction is still in flight\n * joins that run instead of starting a second one, and a call made while an\n * automatic compaction owns `_autoCompactionAbortController` fails fast rather\n * than racing it. Only the owning call clears `_compactionAbortController` and\n * reconnects agent events, so `abortCompaction()` always reaches the live run.\n */\nexport function compact(this: AgentSession, options: Partial<VerbatimCompactionParameters> = {}): Promise<VerbatimCompactionResult> {\n\tconst inFlight = this._manualCompactionPromise;\n\tif (inFlight) return inFlight;\n\tif (this._autoCompactionAbortController) return Promise.reject(new Error(AUTOMATIC_COMPACTION_IN_PROGRESS_MESSAGE));\n\n\tconst controller = new AbortController();\n\tthis._disconnectFromAgent();\n\tthis._compactionAbortController = controller;\n\tlet flight!: Promise<VerbatimCompactionResult>;\n\t// Start the owned run in a microtask so both single-flight fields are\n\t// published before any joiner can observe a partially claimed compaction.\n\tflight = Promise.resolve()\n\t\t.then(() => runOwnedManualCompaction.call(this, controller, options))\n\t\t.finally(() => {\n\t\t\tif (this._compactionAbortController === controller) {\n\t\t\t\tthis._compactionAbortController = undefined;\n\t\t\t\tthis._reconnectToAgent();\n\t\t\t}\n\t\t\tif (this._manualCompactionPromise === flight) this._manualCompactionPromise = undefined;\n\t\t});\n\tthis._manualCompactionPromise = flight;\n\treturn flight;\n}\n\nexport function abortCompaction(this: AgentSession): void { this._compactionAbortController?.abort(); this._autoCompactionAbortController?.abort(); }\nexport function abortBranchSummary(this: AgentSession): void { this._branchSummaryAbortController?.abort(); }\nexport function setAutoCompactionEnabled(this: AgentSession, enabled: boolean): void { this.settingsManager.setCompactionEnabled(enabled); }\n\nexport const agentSessionCompactionMethods = { _applyVerbatimCompaction, compact, abortCompaction, abortBranchSummary, setAutoCompactionEnabled };\n"]}
1
+ {"version":3,"file":"agent-session-compaction.js","sourceRoot":"","sources":["../../src/core/agent-session-compaction.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n\tAgentSessionInternalSurface as AgentSession,\n\tVerbatimCompactionApplyOptions,\n} from \"./agent-session-methods.ts\";\nimport { formatNoModelSelectedMessage } from \"./auth-guidance.ts\";\nimport {\n\ttype CompactionPlannerModel,\n\ttype CompactionPlanOptions,\n\ttype CompactionRung,\n\ttype FallbackPlannerContext,\n\tgetKeptTailTokenEstimate,\n\tprepareCompactionBoundary,\n\trunVerbatimCompaction,\n\tVERBATIM_COMPACTION_PROMPT_VERSION,\n\tVERBATIM_COMPACTION_STRATEGY,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n\ttype VerbatimCompactionResult,\n\ttype VerbatimCompactionStats,\n} from \"./compaction/index.ts\";\nimport type { SessionBeforeCompactEvent, SessionBeforeCompactResult, SessionCompactEvent } from \"./extensions/index.ts\";\nimport type { CompactionEntry } from \"./session-manager.ts\";\nimport { createSummarizationRetryCallbacks } from \"./summarization-retry.ts\";\n\nfunction frozenCollectionMutation(): never {\n\tthrow new TypeError(\"Cannot mutate frozen compaction preparation\");\n}\n\nfunction deepFreeze<T>(value: T): T {\n\tif (!value || typeof value !== \"object\" || Object.isFrozen(value)) return value;\n\tif (value instanceof Map) {\n\t\tfor (const [key, nested] of value) {\n\t\t\tdeepFreeze(key);\n\t\t\tdeepFreeze(nested);\n\t\t}\n\t\tObject.defineProperties(value, {\n\t\t\tset: { value: frozenCollectionMutation },\n\t\t\tdelete: { value: frozenCollectionMutation },\n\t\t\tclear: { value: frozenCollectionMutation },\n\t\t});\n\t} else if (value instanceof Set) {\n\t\tfor (const nested of value) deepFreeze(nested);\n\t\tObject.defineProperties(value, {\n\t\t\tadd: { value: frozenCollectionMutation },\n\t\t\tdelete: { value: frozenCollectionMutation },\n\t\t\tclear: { value: frozenCollectionMutation },\n\t\t});\n\t} else {\n\t\tfor (const nested of Object.values(value)) deepFreeze(nested);\n\t}\n\treturn Object.freeze(value);\n}\n\nfunction extensionStats(preparation: VerbatimCompactionPreparation, compactedText: string): VerbatimCompactionStats {\n\tconst linesBefore = preparation.region.lines.length;\n\tconst linesKept = compactedText.split(\"\\n\").length;\n\tconst tokensAfter = Math.ceil(compactedText.length / 4) + getKeptTailTokenEstimate(preparation);\n\treturn {\n\t\tlinesBefore,\n\t\tlinesDeleted: Math.max(0, linesBefore - linesKept),\n\t\tlinesKept,\n\t\trangeCount: 0,\n\t\ttokensBefore: preparation.tokensBefore,\n\t\ttokensAfter,\n\t\tpercentReduction:\n\t\t\tpreparation.tokensBefore === 0 ? 0 : Math.round((1 - tokensAfter / preparation.tokensBefore) * 1000) / 10,\n\t};\n}\n\nexport async function _applyVerbatimCompaction(\n\tthis: AgentSession,\n\toptions: VerbatimCompactionApplyOptions,\n): Promise<VerbatimCompactionResult | undefined> {\n\tif (!this.model) throw new Error(formatNoModelSelectedMessage());\n\tconst model = this.model;\n\tconst pathEntries = this.sessionManager.getBranch();\n\tconst settings = this.settingsManager.getCompactionSettings();\n\t// A sub-minimum region is admitted only when the caller already knows the\n\t// context does not fit: overflow recovery, or a post-tool preflight over the\n\t// provider hard input limit. A threshold crossing that still fits must not\n\t// clear context — its follow-up request can be sent as-is. `load_bearing`\n\t// alone does not mean \"must destroy context\".\n\tconst allowSmallRegion = options.urgency === \"load_bearing\" && options.allowSmallRegion === true;\n\tconst preparation = prepareCompactionBoundary(\n\t\tpathEntries,\n\t\tsettings,\n\t\t{\n\t\t\t...(options.compression_ratio === undefined ? {} : { compression_ratio: options.compression_ratio }),\n\t\t\t...(options.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t...(options.query === undefined ? {} : { query: options.query }),\n\t\t},\n\t\t{ allowSmallRegion },\n\t);\n\tif (!preparation) {\n\t\tif (options.reason === \"overflow\")\n\t\t\tthrow new Error(\n\t\t\t\t\"Context compaction found no compactable transcript entries; nothing more was safely deletable\",\n\t\t\t);\n\t\treturn undefined;\n\t}\n\n\tconst plan: CompactionPlanOptions = {\n\t\tstreamFn: this.agent.streamFunction,\n\t\tsessionFilePath: this.sessionManager.getSessionFile(),\n\t\tretry: this.settingsManager.getRetrySettings(),\n\t\tcallbacks: createSummarizationRetryCallbacks(this, { source: \"compaction\", reason: options.reason }),\n\t};\n\tlet fromExtension = false;\n\tlet compacted:\n\t\t| {\n\t\t\t\ttext: string;\n\t\t\t\tstats: VerbatimCompactionStats;\n\t\t\t\trung: CompactionRung;\n\t\t\t\tplannerModel?: CompactionPlannerModel;\n\t\t\t\tkeptTail: boolean;\n\t\t }\n\t\t| undefined;\n\n\tif (this._extensionRunner.hasHandlers(\"session_before_compact\")) {\n\t\tlet snapshot: VerbatimCompactionPreparation;\n\t\ttry {\n\t\t\tsnapshot = deepFreeze(structuredClone(preparation));\n\t\t} catch (error) {\n\t\t\tthrow new Error(\n\t\t\t\t`Failed to snapshot transcript for compaction extensions: ${error instanceof Error ? error.message : String(error)}`,\n\t\t\t);\n\t\t}\n\t\tconst hookResult = (await this._extensionRunner.emit({\n\t\t\ttype: \"session_before_compact\",\n\t\t\treason: options.reason,\n\t\t\tparameters: preparation.parameters,\n\t\t\tpreparation: snapshot,\n\t\t\tbranchEntries: pathEntries,\n\t\t\tsignal: options.abortController.signal,\n\t\t} satisfies SessionBeforeCompactEvent)) as SessionBeforeCompactResult | undefined;\n\t\tif (hookResult?.cancel) throw new Error(\"Compaction cancelled\");\n\t\tif (hookResult?.compactedText !== undefined) {\n\t\t\tif (hookResult.compactedText.trim().length === 0) throw new Error(\"No compacted text provided by extension\");\n\t\t\tcompacted = {\n\t\t\t\ttext: hookResult.compactedText,\n\t\t\t\tstats: extensionStats(preparation, hookResult.compactedText),\n\t\t\t\trung: \"extension\",\n\t\t\t\tkeptTail: true,\n\t\t\t};\n\t\t\tfromExtension = true;\n\t\t}\n\t}\n\n\tif (!compacted) {\n\t\t// Borrowing walks the session's *effective* fallback list, which SDK\n\t\t// options may override, and resolves credentials per candidate. It never\n\t\t// touches session model state or the main chat's attempted-key set.\n\t\tconst fallback: FallbackPlannerContext = {\n\t\t\tfallbackModels: this._fallbackModels,\n\t\t\tregistry: this._modelRuntime,\n\t\t\tpreferredProvider: model.provider,\n\t\t\tsessionThinkingLevel: this.thinkingLevel,\n\t\t};\n\t\tconst run = await runVerbatimCompaction(preparation, model, {\n\t\t\t...plan,\n\t\t\tresolveAuth: options.resolvePlannerAuth,\n\t\t\tsignal: options.abortController.signal,\n\t\t\tthinkingLevel: this.thinkingLevel,\n\t\t\turgency: options.urgency,\n\t\t\tfallback,\n\t\t});\n\t\tcompacted = {\n\t\t\ttext: run.text,\n\t\t\tstats: run.stats,\n\t\t\trung: run.rung,\n\t\t\t...(run.plannerModel ? { plannerModel: run.plannerModel } : {}),\n\t\t\tkeptTail: run.keptTail,\n\t\t};\n\t}\n\tif (options.abortController.signal.aborted) throw new Error(\"Compaction cancelled\");\n\n\t// A fresh rung that had to drop the protected tail persists no tail boundary.\n\tconst firstKeptEntryId = compacted.keptTail ? preparation.firstKeptEntryId : null;\n\tconst backupPath = this.sessionManager.writeBackupSnapshot(options.backupLabel);\n\tconst details: VerbatimCompactionDetails = {\n\t\tstrategy: VERBATIM_COMPACTION_STRATEGY,\n\t\tpromptVersion: VERBATIM_COMPACTION_PROMPT_VERSION,\n\t\tparameters: preparation.parameters,\n\t\tstats: compacted.stats,\n\t\trung: compacted.rung,\n\t\t...(compacted.plannerModel ? { plannerModel: compacted.plannerModel } : {}),\n\t\t...(backupPath ? { backupPath } : {}),\n\t};\n\tconst entryId = this.sessionManager.appendCompaction(\n\t\tcompacted.text,\n\t\tfirstKeptEntryId,\n\t\tpreparation.tokensBefore,\n\t\tdetails,\n\t);\n\tthis.agent.state.messages = this.sessionManager.buildSessionContext().messages;\n\tconst result: VerbatimCompactionResult = {\n\t\tcompactedText: compacted.text,\n\t\tfirstKeptEntryId,\n\t\ttokensBefore: preparation.tokensBefore,\n\t\tstats: compacted.stats,\n\t\tparameters: preparation.parameters,\n\t\tpromptVersion: VERBATIM_COMPACTION_PROMPT_VERSION,\n\t\trung: compacted.rung,\n\t\t...(compacted.plannerModel ? { plannerModel: compacted.plannerModel } : {}),\n\t\t...(backupPath ? { backupPath } : {}),\n\t};\n\tconst compactionEntry = this.sessionManager.getEntry(entryId) as CompactionEntry<VerbatimCompactionDetails>;\n\ttry {\n\t\tawait this._extensionRunner.emit({\n\t\t\ttype: \"session_compact\",\n\t\t\treason: options.reason,\n\t\t\tparameters: preparation.parameters,\n\t\t\tresult,\n\t\t\tcompactionEntry,\n\t\t\tfromExtension,\n\t\t} satisfies SessionCompactEvent);\n\t} catch (error) {\n\t\tthis._extensionRunner.emitError({\n\t\t\textensionPath: \"<session_compact>\",\n\t\t\tevent: \"session_compact\",\n\t\t\terror: error instanceof Error ? error.message : String(error),\n\t\t\tstack: error instanceof Error ? error.stack : undefined,\n\t\t});\n\t}\n\treturn result;\n}\n\n/** Message surfaced when a manual compaction is requested during an automatic one. */\nexport const AUTOMATIC_COMPACTION_IN_PROGRESS_MESSAGE =\n\t\"Automatic compaction is already in progress; wait for it to finish before compacting manually.\";\n\nasync function runOwnedManualCompaction(\n\tthis: AgentSession,\n\tcontroller: AbortController,\n\toptions: Partial<VerbatimCompactionParameters>,\n): Promise<VerbatimCompactionResult> {\n\tawait this.abort();\n\tthis._emit({ type: \"compaction_start\", reason: \"manual\" });\n\ttry {\n\t\tif (!this.model) throw new Error(formatNoModelSelectedMessage());\n\t\tconst result = await this._applyVerbatimCompaction({\n\t\t\t// Caller parameters are projected explicitly, so no extra runtime\n\t\t\t// property survives. A widened or cast object could otherwise carry\n\t\t\t// `urgency: \"load_bearing\"` through a public `session.compact()` call and\n\t\t\t// reach the context-destroying rung, which manual compaction must never do.\n\t\t\t...(options.compression_ratio === undefined ? {} : { compression_ratio: options.compression_ratio }),\n\t\t\t...(options.preserve_recent === undefined ? {} : { preserve_recent: options.preserve_recent }),\n\t\t\t...(options.query === undefined ? {} : { query: options.query }),\n\t\t\tresolvePlannerAuth: (candidate) => this._getRequiredRequestAuth(candidate),\n\t\t\tabortController: controller,\n\t\t\tbackupLabel: \"compact\",\n\t\t\treason: \"manual\",\n\t\t\turgency: \"recoverable\",\n\t\t});\n\t\tif (!result) throw new Error(\"Nothing to compact (session too small)\");\n\t\tthis._emit({ type: \"compaction_end\", reason: \"manual\", result, aborted: false, willRetry: false });\n\t\treturn result;\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tconst aborted = message === \"Compaction cancelled\" || (error instanceof Error && error.name === \"AbortError\");\n\t\tthis._emit({\n\t\t\ttype: \"compaction_end\",\n\t\t\treason: \"manual\",\n\t\t\tresult: undefined,\n\t\t\taborted,\n\t\t\twillRetry: false,\n\t\t\terrorMessage: aborted ? undefined : `Compaction failed: ${message}`,\n\t\t});\n\t\tthrow error;\n\t}\n}\n\n/**\n * Persist one verbatim line-subset compaction boundary.\n *\n * Re-entrancy safe: a call made while a manual compaction is still in flight\n * joins that run instead of starting a second one, and a call made while an\n * automatic compaction owns `_autoCompactionAbortController` fails fast rather\n * than racing it. Only the owning call clears `_compactionAbortController` and\n * reconnects agent events, so `abortCompaction()` always reaches the live run.\n */\nexport function compact(\n\tthis: AgentSession,\n\toptions: Partial<VerbatimCompactionParameters> = {},\n): Promise<VerbatimCompactionResult> {\n\tconst inFlight = this._manualCompactionPromise;\n\tif (inFlight) return inFlight;\n\tif (this._autoCompactionAbortController) return Promise.reject(new Error(AUTOMATIC_COMPACTION_IN_PROGRESS_MESSAGE));\n\n\tconst controller = new AbortController();\n\tthis._disconnectFromAgent();\n\tthis._compactionAbortController = controller;\n\tlet flight!: Promise<VerbatimCompactionResult>;\n\t// Start the owned run in a microtask so both single-flight fields are\n\t// published before any joiner can observe a partially claimed compaction.\n\tflight = Promise.resolve()\n\t\t.then(() => runOwnedManualCompaction.call(this, controller, options))\n\t\t.finally(() => {\n\t\t\tif (this._compactionAbortController === controller) {\n\t\t\t\tthis._compactionAbortController = undefined;\n\t\t\t\tthis._reconnectToAgent();\n\t\t\t}\n\t\t\tif (this._manualCompactionPromise === flight) this._manualCompactionPromise = undefined;\n\t\t});\n\tthis._manualCompactionPromise = flight;\n\treturn flight;\n}\n\nexport function abortCompaction(this: AgentSession): void {\n\tthis._compactionAbortController?.abort();\n\tthis._autoCompactionAbortController?.abort();\n}\nexport function abortBranchSummary(this: AgentSession): void {\n\tthis._branchSummaryAbortController?.abort();\n}\nexport function setAutoCompactionEnabled(this: AgentSession, enabled: boolean): void {\n\tthis.settingsManager.setCompactionEnabled(enabled);\n}\n\nexport const agentSessionCompactionMethods = {\n\t_applyVerbatimCompaction,\n\tcompact,\n\tabortCompaction,\n\tabortBranchSummary,\n\tsetAutoCompactionEnabled,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import type { SendMessageOptions, SendMessagesOptions } from "./extensions/index.ts";
2
1
  import type { AgentSessionInternalSurface as AgentSession } from "./agent-session-methods.ts";
2
+ import type { SendMessageOptions, SendMessagesOptions } from "./extensions/index.ts";
3
3
  import type { CustomMessage } from "./messages.ts";
4
4
  /** Commit one delivery whose source generation already granted admission. */
5
5
  export declare function commitAdmittedCustomMessage<T>(session: AgentSession, appMessage: CustomMessage<T>, options?: SendMessageOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-session-custom-message-commit.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-custom-message-commit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC9F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AASnD,6EAA6E;AAC7E,wBAAsB,2BAA2B,CAAC,CAAC,EACjD,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAsEf;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAC7C,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,+EAA+E;AAC/E,wBAAsB,4BAA4B,CAAC,CAAC,EAClD,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC9C,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,eAAO,MAAM,sCAAsC;;;CAGlD,CAAC"}
1
+ {"version":3,"file":"agent-session-custom-message-commit.d.ts","sourceRoot":"","sources":["../../src/core/agent-session-custom-message-commit.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,2BAA2B,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAO9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAEnD,6EAA6E;AAC7E,wBAAsB,2BAA2B,CAAC,CAAC,EAClD,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAsEf;AAED,wBAAgB,4BAA4B,CAAC,CAAC,EAC7C,IAAI,EAAE,YAAY,EAClB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,EAC5B,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,+EAA+E;AAC/E,wBAAsB,4BAA4B,CAAC,CAAC,EACnD,OAAO,EAAE,YAAY,EACrB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA0Cf;AAED,wBAAgB,6BAA6B,CAAC,CAAC,EAC9C,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,eAAO,MAAM,sCAAsC;;;CAGlD,CAAC"}
@@ -6,9 +6,7 @@ export async function commitAdmittedCustomMessage(session, appMessage, options)
6
6
  if (owner !== session)
7
7
  return commitAdmittedCustomMessage(owner, appMessage, options);
8
8
  const self = session;
9
- const useProtectedReconciliation = options?.persistWhenStreaming === true &&
10
- options.triggerTurn === true &&
11
- options.excludeFromContext !== true;
9
+ const useProtectedReconciliation = options?.persistWhenStreaming === true && options.triggerTurn === true && options.excludeFromContext !== true;
12
10
  if (options?.deliverAs === "nextTurn") {
13
11
  self._pendingNextTurnMessages.push(appMessage);
14
12
  }
@@ -31,7 +29,10 @@ export async function commitAdmittedCustomMessage(session, appMessage, options)
31
29
  self._workflowStageAdmission?.trackAdmittedWork(interrupt);
32
30
  void interrupt.catch(() => { });
33
31
  }
34
- else if (self.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {
32
+ else if (self.isStreaming &&
33
+ options?.excludeFromContext === true &&
34
+ options.triggerTurn !== true &&
35
+ options.deliverAs === undefined) {
35
36
  self._appendCustomMessage(appMessage);
36
37
  }
37
38
  else if (self.isStreaming && useProtectedReconciliation) {
@@ -53,7 +54,9 @@ export async function commitAdmittedCustomMessage(session, appMessage, options)
53
54
  return;
54
55
  }
55
56
  let resolveAdmission;
56
- const admission = new Promise((resolve) => { resolveAdmission = resolve; });
57
+ const admission = new Promise((resolve) => {
58
+ resolveAdmission = resolve;
59
+ });
57
60
  const turn = self._runAgentPrompt(promptMessage, resolveAdmission);
58
61
  try {
59
62
  await Promise.race([admission, turn]);
@@ -80,9 +83,7 @@ export async function commitAdmittedCustomMessages(session, appMessages, options
80
83
  if (owner !== session)
81
84
  return commitAdmittedCustomMessages(owner, appMessages, options);
82
85
  const self = session;
83
- const useProtectedReconciliation = options?.persistWhenStreaming === true &&
84
- options.triggerTurn === true &&
85
- options.excludeFromContext !== true;
86
+ const useProtectedReconciliation = options?.persistWhenStreaming === true && options.triggerTurn === true && options.excludeFromContext !== true;
86
87
  const delivery = options?.deliverAs === "followUp" ? "followUp" : "steer";
87
88
  if (options?.deliverAs === "nextTurn") {
88
89
  self._pendingNextTurnMessages.push(...appMessages);
@@ -102,7 +103,10 @@ export async function commitAdmittedCustomMessages(session, appMessages, options
102
103
  self._appendCustomMessage(item);
103
104
  }
104
105
  }
105
- else if (self.isStreaming && options?.excludeFromContext === true && options.triggerTurn !== true && options.deliverAs === undefined) {
106
+ else if (self.isStreaming &&
107
+ options?.excludeFromContext === true &&
108
+ options.triggerTurn !== true &&
109
+ options.deliverAs === undefined) {
106
110
  for (const item of appMessages)
107
111
  self._appendCustomMessage(item);
108
112
  }