@bastani/atomic 0.9.11-alpha.7 → 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 (1798) hide show
  1. package/CHANGELOG.md +98 -0
  2. package/README.md +3 -5
  3. package/dist/builtin/intercom/package.json +3 -3
  4. package/dist/builtin/mcp/CHANGELOG.md +6 -0
  5. package/dist/builtin/mcp/commands.ts +7 -3
  6. package/dist/builtin/mcp/package.json +6 -6
  7. package/dist/builtin/mcp/sampling-handler.ts +1 -5
  8. package/dist/builtin/subagents/CHANGELOG.md +9 -0
  9. package/dist/builtin/subagents/package.json +5 -5
  10. package/dist/builtin/subagents/src/agents/agent-discovery.ts +26 -15
  11. package/dist/builtin/subagents/src/agents/agent-loaders.ts +48 -34
  12. package/dist/builtin/subagents/src/agents/agent-management-helpers.ts +80 -31
  13. package/dist/builtin/subagents/src/agents/agent-management.ts +194 -55
  14. package/dist/builtin/subagents/src/agents/agent-overrides.ts +85 -32
  15. package/dist/builtin/subagents/src/agents/agent-paths.ts +4 -1
  16. package/dist/builtin/subagents/src/agents/agent-selection.ts +1 -1
  17. package/dist/builtin/subagents/src/agents/agent-serializer.ts +1 -4
  18. package/dist/builtin/subagents/src/agents/agents.ts +9 -9
  19. package/dist/builtin/subagents/src/agents/chain-serializer.ts +9 -5
  20. package/dist/builtin/subagents/src/agents/identity.ts +12 -3
  21. package/dist/builtin/subagents/src/agents/skills-paths.ts +64 -24
  22. package/dist/builtin/subagents/src/agents/skills.ts +29 -26
  23. package/dist/builtin/subagents/src/extension/doctor.ts +31 -20
  24. package/dist/builtin/subagents/src/extension/fanout-child.ts +27 -12
  25. package/dist/builtin/subagents/src/extension/index.ts +119 -43
  26. package/dist/builtin/subagents/src/extension/prompt-guidance.ts +0 -1
  27. package/dist/builtin/subagents/src/extension/schemas.ts +304 -177
  28. package/dist/builtin/subagents/src/extension/startup-maintenance.ts +137 -73
  29. package/dist/builtin/subagents/src/intercom/intercom-bridge.ts +49 -21
  30. package/dist/builtin/subagents/src/intercom/result-intercom.ts +76 -38
  31. package/dist/builtin/subagents/src/runs/background/async-event-journal.ts +12 -6
  32. package/dist/builtin/subagents/src/runs/background/async-execution-chain.ts +164 -57
  33. package/dist/builtin/subagents/src/runs/background/async-execution-common.ts +15 -18
  34. package/dist/builtin/subagents/src/runs/background/async-execution-single.ts +66 -27
  35. package/dist/builtin/subagents/src/runs/background/async-execution-types.ts +4 -14
  36. package/dist/builtin/subagents/src/runs/background/async-execution.ts +1 -1
  37. package/dist/builtin/subagents/src/runs/background/async-job-tracker.ts +86 -32
  38. package/dist/builtin/subagents/src/runs/background/async-resume.ts +93 -36
  39. package/dist/builtin/subagents/src/runs/background/async-status.ts +82 -27
  40. package/dist/builtin/subagents/src/runs/background/completion-claims.ts +12 -5
  41. package/dist/builtin/subagents/src/runs/background/completion-dedupe.ts +3 -1
  42. package/dist/builtin/subagents/src/runs/background/completion-notification.ts +3 -1
  43. package/dist/builtin/subagents/src/runs/background/notify.ts +36 -18
  44. package/dist/builtin/subagents/src/runs/background/parallel-groups.ts +28 -14
  45. package/dist/builtin/subagents/src/runs/background/result-delivery-processor.ts +147 -79
  46. package/dist/builtin/subagents/src/runs/background/result-file-claims.ts +20 -5
  47. package/dist/builtin/subagents/src/runs/background/result-quarantine.ts +7 -2
  48. package/dist/builtin/subagents/src/runs/background/result-status.ts +11 -5
  49. package/dist/builtin/subagents/src/runs/background/result-watcher-data.ts +18 -5
  50. package/dist/builtin/subagents/src/runs/background/result-watcher.ts +104 -35
  51. package/dist/builtin/subagents/src/runs/background/run-id-resolver.ts +28 -7
  52. package/dist/builtin/subagents/src/runs/background/run-status.ts +120 -32
  53. package/dist/builtin/subagents/src/runs/background/stale-run-reconciler.ts +98 -39
  54. package/dist/builtin/subagents/src/runs/background/subagent-runner-dynamic.ts +185 -37
  55. package/dist/builtin/subagents/src/runs/background/subagent-runner-finalize.ts +23 -9
  56. package/dist/builtin/subagents/src/runs/background/subagent-runner-output.ts +6 -2
  57. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel-helpers.ts +34 -18
  58. package/dist/builtin/subagents/src/runs/background/subagent-runner-parallel.ts +175 -26
  59. package/dist/builtin/subagents/src/runs/background/subagent-runner-sequential.ts +68 -23
  60. package/dist/builtin/subagents/src/runs/background/subagent-runner-state.ts +200 -49
  61. package/dist/builtin/subagents/src/runs/background/subagent-runner-step.ts +81 -49
  62. package/dist/builtin/subagents/src/runs/background/subagent-runner-streaming.ts +33 -11
  63. package/dist/builtin/subagents/src/runs/background/subagent-runner-types.ts +16 -6
  64. package/dist/builtin/subagents/src/runs/background/subagent-runner-utils.ts +2 -3
  65. package/dist/builtin/subagents/src/runs/background/subagent-runner.ts +11 -8
  66. package/dist/builtin/subagents/src/runs/foreground/chain-execution-details.ts +5 -2
  67. package/dist/builtin/subagents/src/runs/foreground/chain-execution-dynamic-step.ts +113 -31
  68. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-runner.ts +64 -55
  69. package/dist/builtin/subagents/src/runs/foreground/chain-execution-parallel-step.ts +103 -37
  70. package/dist/builtin/subagents/src/runs/foreground/chain-execution-sequential-step.ts +97 -62
  71. package/dist/builtin/subagents/src/runs/foreground/chain-execution-types.ts +22 -10
  72. package/dist/builtin/subagents/src/runs/foreground/chain-execution.ts +9 -6
  73. package/dist/builtin/subagents/src/runs/foreground/detached-cleanup-barrier.ts +22 -22
  74. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-control.ts +45 -40
  75. package/dist/builtin/subagents/src/runs/foreground/execution-attempt-finalize.ts +6 -5
  76. package/dist/builtin/subagents/src/runs/foreground/execution-attempt.ts +118 -43
  77. package/dist/builtin/subagents/src/runs/foreground/execution-detach-reservations.ts +17 -7
  78. package/dist/builtin/subagents/src/runs/foreground/execution-detach-route.ts +5 -3
  79. package/dist/builtin/subagents/src/runs/foreground/execution-intercom-detach.ts +39 -35
  80. package/dist/builtin/subagents/src/runs/foreground/execution-run-sync.ts +81 -42
  81. package/dist/builtin/subagents/src/runs/foreground/execution-structured-retries.ts +27 -21
  82. package/dist/builtin/subagents/src/runs/foreground/execution-updates.ts +2 -5
  83. package/dist/builtin/subagents/src/runs/foreground/execution-utils.ts +9 -4
  84. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-async.ts +64 -27
  85. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-chain.ts +31 -18
  86. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-context.ts +95 -62
  87. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-input.ts +30 -9
  88. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel-task.ts +106 -96
  89. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-parallel.ts +68 -37
  90. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-resume.ts +260 -84
  91. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-runtime.ts +6 -1
  92. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-single.ts +63 -40
  93. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-status.ts +110 -59
  94. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-types.ts +20 -3
  95. package/dist/builtin/subagents/src/runs/foreground/subagent-executor-worktree.ts +8 -6
  96. package/dist/builtin/subagents/src/runs/foreground/subagent-executor.ts +65 -47
  97. package/dist/builtin/subagents/src/runs/shared/chain-outputs.ts +37 -12
  98. package/dist/builtin/subagents/src/runs/shared/dynamic-fanout.ts +120 -34
  99. package/dist/builtin/subagents/src/runs/shared/final-drain.ts +12 -7
  100. package/dist/builtin/subagents/src/runs/shared/intercom-group.ts +3 -2
  101. package/dist/builtin/subagents/src/runs/shared/long-running-guard.ts +8 -3
  102. package/dist/builtin/subagents/src/runs/shared/mcp-direct-tool-allowlist.ts +42 -19
  103. package/dist/builtin/subagents/src/runs/shared/model-candidate-filter.ts +8 -4
  104. package/dist/builtin/subagents/src/runs/shared/model-fallback.ts +103 -38
  105. package/dist/builtin/subagents/src/runs/shared/nested-events-control.ts +30 -20
  106. package/dist/builtin/subagents/src/runs/shared/nested-events-core.ts +45 -20
  107. package/dist/builtin/subagents/src/runs/shared/nested-events-projection.ts +57 -23
  108. package/dist/builtin/subagents/src/runs/shared/nested-events-registry.ts +77 -29
  109. package/dist/builtin/subagents/src/runs/shared/nested-events-sanitize.ts +99 -42
  110. package/dist/builtin/subagents/src/runs/shared/nested-events.ts +32 -26
  111. package/dist/builtin/subagents/src/runs/shared/nested-path.ts +22 -17
  112. package/dist/builtin/subagents/src/runs/shared/nested-render.ts +31 -10
  113. package/dist/builtin/subagents/src/runs/shared/parallel-utils.ts +9 -8
  114. package/dist/builtin/subagents/src/runs/shared/pi-args.ts +54 -30
  115. package/dist/builtin/subagents/src/runs/shared/pi-spawn.ts +17 -13
  116. package/dist/builtin/subagents/src/runs/shared/run-history.ts +13 -6
  117. package/dist/builtin/subagents/src/runs/shared/single-output.ts +11 -6
  118. package/dist/builtin/subagents/src/runs/shared/spawn-env.ts +21 -0
  119. package/dist/builtin/subagents/src/runs/shared/structured-output.ts +33 -19
  120. package/dist/builtin/subagents/src/runs/shared/subagent-control.ts +59 -48
  121. package/dist/builtin/subagents/src/runs/shared/subagent-prompt-runtime.ts +18 -11
  122. package/dist/builtin/subagents/src/runs/shared/workflow-graph.ts +41 -11
  123. package/dist/builtin/subagents/src/runs/shared/worktree-post-create.ts +46 -10
  124. package/dist/builtin/subagents/src/runs/shared/worktree-root.ts +21 -5
  125. package/dist/builtin/subagents/src/runs/shared/worktree.ts +89 -34
  126. package/dist/builtin/subagents/src/shared/artifacts.ts +137 -7
  127. package/dist/builtin/subagents/src/shared/event-jsonl-writer.ts +49 -13
  128. package/dist/builtin/subagents/src/shared/fast-mode.ts +13 -6
  129. package/dist/builtin/subagents/src/shared/fork-context.ts +7 -4
  130. package/dist/builtin/subagents/src/shared/formatters.ts +14 -9
  131. package/dist/builtin/subagents/src/shared/jsonl-writer.ts +2 -1
  132. package/dist/builtin/subagents/src/shared/model-info.ts +10 -3
  133. package/dist/builtin/subagents/src/shared/post-exit-stdio-guard.ts +7 -6
  134. package/dist/builtin/subagents/src/shared/session-tokens.ts +2 -1
  135. package/dist/builtin/subagents/src/shared/settings.ts +39 -43
  136. package/dist/builtin/subagents/src/shared/status-format.ts +10 -2
  137. package/dist/builtin/subagents/src/shared/types-async.ts +22 -19
  138. package/dist/builtin/subagents/src/shared/types-config.ts +1 -1
  139. package/dist/builtin/subagents/src/shared/types-depth.ts +23 -11
  140. package/dist/builtin/subagents/src/shared/types-results.ts +49 -6
  141. package/dist/builtin/subagents/src/shared/types-runtime.ts +16 -17
  142. package/dist/builtin/subagents/src/shared/types.ts +2 -2
  143. package/dist/builtin/subagents/src/shared/utils.ts +34 -20
  144. package/dist/builtin/subagents/src/slash/prompt-template-bridge.ts +44 -47
  145. package/dist/builtin/subagents/src/slash/saved-chain-mapping.ts +5 -7
  146. package/dist/builtin/subagents/src/slash/slash-bridge.ts +3 -3
  147. package/dist/builtin/subagents/src/slash/slash-commands.ts +78 -52
  148. package/dist/builtin/subagents/src/slash/slash-live-state.ts +59 -32
  149. package/dist/builtin/subagents/src/tui/render-chain-graph.ts +120 -32
  150. package/dist/builtin/subagents/src/tui/render-event-formatting.ts +85 -22
  151. package/dist/builtin/subagents/src/tui/render-helpers.ts +16 -6
  152. package/dist/builtin/subagents/src/tui/render-layout.ts +8 -3
  153. package/dist/builtin/subagents/src/tui/render-result-compact.ts +125 -43
  154. package/dist/builtin/subagents/src/tui/render-result.ts +128 -85
  155. package/dist/builtin/subagents/src/tui/render-stable-output.ts +17 -13
  156. package/dist/builtin/subagents/src/tui/render-status-progress.ts +52 -20
  157. package/dist/builtin/subagents/src/tui/render-widget-graph.ts +130 -28
  158. package/dist/builtin/subagents/src/tui/render-widget.ts +54 -27
  159. package/dist/builtin/subagents/src/tui/render.ts +10 -3
  160. package/dist/builtin/web-access/package.json +2 -2
  161. package/dist/builtin/workflows/CHANGELOG.md +31 -0
  162. package/dist/builtin/workflows/README.md +7 -1
  163. package/dist/builtin/workflows/builtin/open-claude-design-phases.ts +104 -40
  164. package/dist/builtin/workflows/builtin/open-claude-design-runner.ts +57 -26
  165. package/dist/builtin/workflows/builtin/open-claude-design-setup.ts +125 -12
  166. package/dist/builtin/workflows/package.json +3 -3
  167. package/dist/builtin/workflows/skills/impeccable/scripts/live-accept.mjs +4 -1
  168. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-dom.js +5 -1
  169. package/dist/builtin/workflows/skills/impeccable/scripts/live-browser-session.js +7 -1
  170. package/dist/builtin/workflows/skills/impeccable/scripts/live-manual-edit-evidence.mjs +5 -2
  171. package/dist/builtin/workflows/skills/impeccable/scripts/live-server.mjs +7 -1
  172. package/dist/builtin/workflows/src/authoring/typebox-defaults.d.ts +5 -5
  173. package/dist/builtin/workflows/src/authoring/typebox-defaults.ts +160 -197
  174. package/dist/builtin/workflows/src/authoring/workflow.ts +137 -133
  175. package/dist/builtin/workflows/src/authoring.d.ts +3 -3
  176. package/dist/builtin/workflows/src/durable/backend.ts +507 -439
  177. package/dist/builtin/workflows/src/durable/boundary-lifecycle.ts +142 -118
  178. package/dist/builtin/workflows/src/durable/boundary-topology.ts +410 -355
  179. package/dist/builtin/workflows/src/durable/child-invocation.ts +6 -6
  180. package/dist/builtin/workflows/src/durable/child-primitive.ts +109 -101
  181. package/dist/builtin/workflows/src/durable/completed-catalog-stage-groups.ts +234 -194
  182. package/dist/builtin/workflows/src/durable/completed-catalog.ts +379 -372
  183. package/dist/builtin/workflows/src/durable/completed-inspection.ts +118 -116
  184. package/dist/builtin/workflows/src/durable/completed-subtree.ts +24 -20
  185. package/dist/builtin/workflows/src/durable/dbos-backend.ts +484 -418
  186. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres-root.ts +86 -87
  187. package/dist/builtin/workflows/src/durable/dbos-embedded-postgres.ts +171 -149
  188. package/dist/builtin/workflows/src/durable/dbos-envelope.ts +400 -324
  189. package/dist/builtin/workflows/src/durable/dbos-lifecycle.ts +117 -121
  190. package/dist/builtin/workflows/src/durable/dbos-local-postgres.ts +75 -68
  191. package/dist/builtin/workflows/src/durable/dbos-metadata.ts +138 -119
  192. package/dist/builtin/workflows/src/durable/dbos-prompt-reservations.ts +316 -259
  193. package/dist/builtin/workflows/src/durable/dbos-sdk-handle.ts +138 -117
  194. package/dist/builtin/workflows/src/durable/dbos-status-transition.ts +48 -43
  195. package/dist/builtin/workflows/src/durable/dbos-tombstone.ts +14 -14
  196. package/dist/builtin/workflows/src/durable/durable-hash.ts +9 -11
  197. package/dist/builtin/workflows/src/durable/factory.ts +45 -46
  198. package/dist/builtin/workflows/src/durable/format-version.ts +1 -1
  199. package/dist/builtin/workflows/src/durable/index.ts +69 -70
  200. package/dist/builtin/workflows/src/durable/local-command.ts +47 -43
  201. package/dist/builtin/workflows/src/durable/prompt-reservation-state.ts +156 -149
  202. package/dist/builtin/workflows/src/durable/prompt-reservations.ts +16 -16
  203. package/dist/builtin/workflows/src/durable/resume-catalog.ts +11 -11
  204. package/dist/builtin/workflows/src/durable/resume-eligibility.ts +27 -25
  205. package/dist/builtin/workflows/src/durable/resume-runtime.ts +261 -226
  206. package/dist/builtin/workflows/src/durable/retention-policy.ts +31 -30
  207. package/dist/builtin/workflows/src/durable/run-timing.ts +42 -41
  208. package/dist/builtin/workflows/src/durable/scoped-backend.ts +249 -228
  209. package/dist/builtin/workflows/src/durable/stage-primitive.ts +456 -398
  210. package/dist/builtin/workflows/src/durable/stage-topology-validation.ts +199 -186
  211. package/dist/builtin/workflows/src/durable/stage-topology.ts +40 -40
  212. package/dist/builtin/workflows/src/durable/tool-failure-checkpoint.ts +37 -37
  213. package/dist/builtin/workflows/src/durable/tool-outcome.ts +95 -85
  214. package/dist/builtin/workflows/src/durable/tool-primitive.ts +606 -410
  215. package/dist/builtin/workflows/src/durable/types.ts +219 -216
  216. package/dist/builtin/workflows/src/durable/ui-primitive.ts +241 -208
  217. package/dist/builtin/workflows/src/durable/workflow-child-result.ts +40 -37
  218. package/dist/builtin/workflows/src/durable/workflow-status-transition.ts +16 -15
  219. package/dist/builtin/workflows/src/engine/graph-inference.ts +76 -76
  220. package/dist/builtin/workflows/src/engine/options.ts +35 -36
  221. package/dist/builtin/workflows/src/engine/primitives/chain.ts +27 -22
  222. package/dist/builtin/workflows/src/engine/primitives/exit.ts +1 -1
  223. package/dist/builtin/workflows/src/engine/primitives/parallel.ts +64 -52
  224. package/dist/builtin/workflows/src/engine/primitives/task.ts +110 -95
  225. package/dist/builtin/workflows/src/engine/primitives/ui.ts +46 -50
  226. package/dist/builtin/workflows/src/engine/primitives/workflow.ts +194 -160
  227. package/dist/builtin/workflows/src/engine/replay.ts +6 -6
  228. package/dist/builtin/workflows/src/engine/run-durable-admission.ts +30 -30
  229. package/dist/builtin/workflows/src/engine/run-durable-finalize.ts +64 -47
  230. package/dist/builtin/workflows/src/engine/run-durable-stage-session.ts +29 -23
  231. package/dist/builtin/workflows/src/engine/run-durable-topology.ts +246 -219
  232. package/dist/builtin/workflows/src/engine/run-returned-status.ts +60 -57
  233. package/dist/builtin/workflows/src/engine/run-terminal-event.ts +25 -23
  234. package/dist/builtin/workflows/src/engine/run-terminal-failure.ts +45 -42
  235. package/dist/builtin/workflows/src/engine/run-tool-admission-boundary.ts +99 -0
  236. package/dist/builtin/workflows/src/engine/run-tool-control-registry.ts +179 -0
  237. package/dist/builtin/workflows/src/engine/run-tool-execution-tracker.ts +144 -132
  238. package/dist/builtin/workflows/src/engine/run-tool-node-lifecycle.ts +134 -69
  239. package/dist/builtin/workflows/src/engine/run.ts +678 -473
  240. package/dist/builtin/workflows/src/engine/runtime.ts +160 -153
  241. package/dist/builtin/workflows/src/engine/workflow-activity.ts +7 -3
  242. package/dist/builtin/workflows/src/engine/workflow-tool-abort.ts +92 -0
  243. package/dist/builtin/workflows/src/extension/atomic-stage-session.ts +123 -120
  244. package/dist/builtin/workflows/src/extension/background-ui-adapter.ts +108 -112
  245. package/dist/builtin/workflows/src/extension/companions.ts +116 -116
  246. package/dist/builtin/workflows/src/extension/completed-stage-intercom-ask.ts +123 -111
  247. package/dist/builtin/workflows/src/extension/config-file-loader.ts +153 -148
  248. package/dist/builtin/workflows/src/extension/config-loader.ts +264 -283
  249. package/dist/builtin/workflows/src/extension/discovery-loaders.ts +81 -84
  250. package/dist/builtin/workflows/src/extension/discovery.ts +267 -272
  251. package/dist/builtin/workflows/src/extension/dispatcher.ts +214 -217
  252. package/dist/builtin/workflows/src/extension/extension-factory.ts +102 -108
  253. package/dist/builtin/workflows/src/extension/extension-lifecycle.ts +118 -116
  254. package/dist/builtin/workflows/src/extension/extension-runtime-state.ts +413 -419
  255. package/dist/builtin/workflows/src/extension/hil-answer-notifications.ts +270 -261
  256. package/dist/builtin/workflows/src/extension/index.bundle.mjs +33743 -32844
  257. package/dist/builtin/workflows/src/extension/index.ts +37 -37
  258. package/dist/builtin/workflows/src/extension/lifecycle-notification-delivery.ts +64 -64
  259. package/dist/builtin/workflows/src/extension/lifecycle-notifications.ts +384 -378
  260. package/dist/builtin/workflows/src/extension/mcp.ts +35 -35
  261. package/dist/builtin/workflows/src/extension/postmortem-deps.ts +31 -35
  262. package/dist/builtin/workflows/src/extension/public-types.ts +160 -182
  263. package/dist/builtin/workflows/src/extension/render-call.ts +85 -88
  264. package/dist/builtin/workflows/src/extension/render-component.ts +9 -11
  265. package/dist/builtin/workflows/src/extension/render-result.ts +447 -386
  266. package/dist/builtin/workflows/src/extension/renderers.ts +35 -35
  267. package/dist/builtin/workflows/src/extension/runtime-active-block-claim.ts +37 -37
  268. package/dist/builtin/workflows/src/extension/runtime-durable-resume.ts +145 -143
  269. package/dist/builtin/workflows/src/extension/runtime.ts +346 -264
  270. package/dist/builtin/workflows/src/extension/status-writer.ts +95 -95
  271. package/dist/builtin/workflows/src/extension/ui-surface.ts +224 -222
  272. package/dist/builtin/workflows/src/extension/wiring.ts +307 -283
  273. package/dist/builtin/workflows/src/extension/workflow-command-completions.ts +109 -108
  274. package/dist/builtin/workflows/src/extension/workflow-command-registration.ts +257 -227
  275. package/dist/builtin/workflows/src/extension/workflow-command-surfaces.ts +84 -84
  276. package/dist/builtin/workflows/src/extension/workflow-command-utils.ts +126 -132
  277. package/dist/builtin/workflows/src/extension/workflow-durable-resume-command.ts +213 -205
  278. package/dist/builtin/workflows/src/extension/workflow-model-catalog.ts +24 -0
  279. package/dist/builtin/workflows/src/extension/workflow-module-loader.ts +104 -104
  280. package/dist/builtin/workflows/src/extension/workflow-policy.ts +7 -9
  281. package/dist/builtin/workflows/src/extension/workflow-ports.ts +30 -34
  282. package/dist/builtin/workflows/src/extension/workflow-prompts.ts +15 -14
  283. package/dist/builtin/workflows/src/extension/workflow-reload-coordinator.ts +46 -46
  284. package/dist/builtin/workflows/src/extension/workflow-reload-report.ts +28 -25
  285. package/dist/builtin/workflows/src/extension/workflow-resume-picker-rows.ts +48 -45
  286. package/dist/builtin/workflows/src/extension/workflow-resume-shadow.ts +28 -31
  287. package/dist/builtin/workflows/src/extension/workflow-run-control-command.ts +539 -453
  288. package/dist/builtin/workflows/src/extension/workflow-schema.ts +149 -92
  289. package/dist/builtin/workflows/src/extension/workflow-stage-results.ts +182 -194
  290. package/dist/builtin/workflows/src/extension/workflow-status-summary.ts +150 -155
  291. package/dist/builtin/workflows/src/extension/workflow-targets.ts +151 -121
  292. package/dist/builtin/workflows/src/extension/workflow-tool-content.ts +204 -224
  293. package/dist/builtin/workflows/src/extension/workflow-tool-control.ts +512 -372
  294. package/dist/builtin/workflows/src/extension/workflow-tool-inspection.ts +146 -150
  295. package/dist/builtin/workflows/src/extension/workflow-tool-registration.ts +43 -46
  296. package/dist/builtin/workflows/src/extension/workflow-tool-send.ts +341 -292
  297. package/dist/builtin/workflows/src/extension/workflow-tool.ts +122 -129
  298. package/dist/builtin/workflows/src/intercom/intercom-bridge.ts +17 -20
  299. package/dist/builtin/workflows/src/intercom/intercom-routing.ts +62 -62
  300. package/dist/builtin/workflows/src/intercom/result-intercom.ts +123 -123
  301. package/dist/builtin/workflows/src/runs/background/cancellation-registry.ts +72 -59
  302. package/dist/builtin/workflows/src/runs/background/durable-resume-transition.ts +45 -45
  303. package/dist/builtin/workflows/src/runs/background/job-tracker.ts +69 -34
  304. package/dist/builtin/workflows/src/runs/background/quit-tool-node.ts +71 -0
  305. package/dist/builtin/workflows/src/runs/background/quit.ts +359 -138
  306. package/dist/builtin/workflows/src/runs/background/resume-acknowledgements.ts +70 -69
  307. package/dist/builtin/workflows/src/runs/background/run-inspect.ts +85 -80
  308. package/dist/builtin/workflows/src/runs/background/runner.ts +122 -121
  309. package/dist/builtin/workflows/src/runs/background/startup-admission.ts +56 -60
  310. package/dist/builtin/workflows/src/runs/background/status.ts +324 -294
  311. package/dist/builtin/workflows/src/runs/background/workflow-lifecycle-aggregate.ts +23 -17
  312. package/dist/builtin/workflows/src/runs/foreground/executor-abort.ts +311 -309
  313. package/dist/builtin/workflows/src/runs/foreground/executor-child-boundary.ts +228 -201
  314. package/dist/builtin/workflows/src/runs/foreground/executor-child-helpers.ts +56 -51
  315. package/dist/builtin/workflows/src/runs/foreground/executor-continuation.ts +168 -152
  316. package/dist/builtin/workflows/src/runs/foreground/executor-direct-helpers.ts +255 -217
  317. package/dist/builtin/workflows/src/runs/foreground/executor-exit-manager.ts +178 -173
  318. package/dist/builtin/workflows/src/runs/foreground/executor-hil.ts +273 -269
  319. package/dist/builtin/workflows/src/runs/foreground/executor-inputs.ts +59 -56
  320. package/dist/builtin/workflows/src/runs/foreground/executor-lifecycle.ts +368 -361
  321. package/dist/builtin/workflows/src/runs/foreground/executor-outputs.ts +123 -127
  322. package/dist/builtin/workflows/src/runs/foreground/executor-prompt-nodes.ts +355 -339
  323. package/dist/builtin/workflows/src/runs/foreground/executor-queued-user-message.ts +47 -47
  324. package/dist/builtin/workflows/src/runs/foreground/executor-run-finalizers.ts +125 -104
  325. package/dist/builtin/workflows/src/runs/foreground/executor-scheduler.ts +189 -189
  326. package/dist/builtin/workflows/src/runs/foreground/executor-stage-call.ts +294 -250
  327. package/dist/builtin/workflows/src/runs/foreground/executor-stage-context.ts +141 -127
  328. package/dist/builtin/workflows/src/runs/foreground/executor-stage-control.ts +218 -213
  329. package/dist/builtin/workflows/src/runs/foreground/executor-stage-factory.ts +406 -364
  330. package/dist/builtin/workflows/src/runs/foreground/executor-stage-replay.ts +143 -127
  331. package/dist/builtin/workflows/src/runs/foreground/executor-stage-types.ts +49 -49
  332. package/dist/builtin/workflows/src/runs/foreground/executor-task-context.ts +1 -1
  333. package/dist/builtin/workflows/src/runs/foreground/executor-task-prompts.ts +148 -153
  334. package/dist/builtin/workflows/src/runs/foreground/executor-types.ts +155 -117
  335. package/dist/builtin/workflows/src/runs/foreground/executor.ts +10 -10
  336. package/dist/builtin/workflows/src/runs/foreground/postmortem-stage-chat.ts +168 -141
  337. package/dist/builtin/workflows/src/runs/foreground/stage-control-registry.ts +356 -379
  338. package/dist/builtin/workflows/src/runs/foreground/stage-delivery-activity.ts +53 -53
  339. package/dist/builtin/workflows/src/runs/foreground/stage-queued-user-messages.ts +95 -0
  340. package/dist/builtin/workflows/src/runs/foreground/stage-runner-candidate.ts +8 -8
  341. package/dist/builtin/workflows/src/runs/foreground/stage-runner-context.ts +232 -232
  342. package/dist/builtin/workflows/src/runs/foreground/stage-runner-controller.ts +630 -493
  343. package/dist/builtin/workflows/src/runs/foreground/stage-runner-message-admission.ts +182 -181
  344. package/dist/builtin/workflows/src/runs/foreground/stage-runner-messages.ts +80 -80
  345. package/dist/builtin/workflows/src/runs/foreground/stage-runner-options.ts +78 -78
  346. package/dist/builtin/workflows/src/runs/foreground/stage-runner-output.ts +102 -104
  347. package/dist/builtin/workflows/src/runs/foreground/stage-runner-pause.ts +178 -173
  348. package/dist/builtin/workflows/src/runs/foreground/stage-runner-replacement.ts +31 -32
  349. package/dist/builtin/workflows/src/runs/foreground/stage-runner-send-user-message.ts +114 -105
  350. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session-options.ts +29 -29
  351. package/dist/builtin/workflows/src/runs/foreground/stage-runner-session.ts +44 -52
  352. package/dist/builtin/workflows/src/runs/foreground/stage-runner-structured-output.ts +63 -58
  353. package/dist/builtin/workflows/src/runs/foreground/stage-runner-types.ts +157 -148
  354. package/dist/builtin/workflows/src/runs/foreground/stage-runner-unresolved-overflow.ts +27 -23
  355. package/dist/builtin/workflows/src/runs/foreground/stage-runner.ts +10 -10
  356. package/dist/builtin/workflows/src/runs/foreground/stage-tool-execution-buffer.ts +33 -31
  357. package/dist/builtin/workflows/src/runs/shared/concurrency.ts +53 -53
  358. package/dist/builtin/workflows/src/runs/shared/graph-inference.ts +1 -1
  359. package/dist/builtin/workflows/src/runs/shared/model-fallback-candidates.ts +257 -245
  360. package/dist/builtin/workflows/src/runs/shared/model-fallback-failures.ts +378 -363
  361. package/dist/builtin/workflows/src/runs/shared/prompt-callsite.ts +55 -55
  362. package/dist/builtin/workflows/src/runs/shared/validate-inputs.ts +75 -84
  363. package/dist/builtin/workflows/src/runs/shared/worktree-cache-lifecycle.ts +1 -3
  364. package/dist/builtin/workflows/src/runs/shared/worktree-cwd.ts +96 -83
  365. package/dist/builtin/workflows/src/runs/shared/worktree-diff.ts +9 -2
  366. package/dist/builtin/workflows/src/runs/shared/worktree-git-runner.ts +21 -6
  367. package/dist/builtin/workflows/src/runs/shared/worktree-git.ts +60 -30
  368. package/dist/builtin/workflows/src/runs/shared/worktree-post-create.ts +12 -5
  369. package/dist/builtin/workflows/src/runs/shared/worktree-setup.ts +51 -30
  370. package/dist/builtin/workflows/src/runs/shared/worktree.ts +4 -4
  371. package/dist/builtin/workflows/src/sdk-surface.ts +38 -19
  372. package/dist/builtin/workflows/src/shared/authoring-contract-stage.d.ts +11 -5
  373. package/dist/builtin/workflows/src/shared/authoring-contract-stage.ts +299 -275
  374. package/dist/builtin/workflows/src/shared/authoring-contract-ui.d.ts +21 -7
  375. package/dist/builtin/workflows/src/shared/authoring-contract-ui.ts +290 -264
  376. package/dist/builtin/workflows/src/shared/expanded-workflow-graph.ts +220 -211
  377. package/dist/builtin/workflows/src/shared/intercom-group.ts +22 -22
  378. package/dist/builtin/workflows/src/shared/persistence-compaction-policy.ts +30 -30
  379. package/dist/builtin/workflows/src/shared/persistence-restore-helpers.ts +432 -406
  380. package/dist/builtin/workflows/src/shared/persistence-restore.ts +187 -181
  381. package/dist/builtin/workflows/src/shared/persistence-session-entries.ts +211 -212
  382. package/dist/builtin/workflows/src/shared/prompt-callsite-context.ts +3 -3
  383. package/dist/builtin/workflows/src/shared/render-inputs-schema.ts +84 -91
  384. package/dist/builtin/workflows/src/shared/resume-continuation.ts +1 -1
  385. package/dist/builtin/workflows/src/shared/returned-run-status.ts +91 -77
  386. package/dist/builtin/workflows/src/shared/run-visibility.ts +2 -2
  387. package/dist/builtin/workflows/src/shared/schema-introspection.ts +50 -60
  388. package/dist/builtin/workflows/src/shared/serializable.ts +72 -86
  389. package/dist/builtin/workflows/src/shared/session-transcript.ts +44 -39
  390. package/dist/builtin/workflows/src/shared/stage-prompt.ts +183 -202
  391. package/dist/builtin/workflows/src/shared/stage-ui-broker.ts +270 -274
  392. package/dist/builtin/workflows/src/shared/store-factory.ts +8 -8
  393. package/dist/builtin/workflows/src/shared/store-internal.ts +168 -172
  394. package/dist/builtin/workflows/src/shared/store-prompt-methods.ts +196 -200
  395. package/dist/builtin/workflows/src/shared/store-public-types.ts +208 -204
  396. package/dist/builtin/workflows/src/shared/store-run-methods.ts +238 -231
  397. package/dist/builtin/workflows/src/shared/store-stage-methods.ts +284 -285
  398. package/dist/builtin/workflows/src/shared/store-tool-node-methods.ts +43 -36
  399. package/dist/builtin/workflows/src/shared/store-types.ts +263 -263
  400. package/dist/builtin/workflows/src/shared/store.ts +7 -7
  401. package/dist/builtin/workflows/src/shared/timing.ts +36 -34
  402. package/dist/builtin/workflows/src/shared/types.ts +256 -213
  403. package/dist/builtin/workflows/src/shared/workflow-authoring-types.d.ts +10 -4
  404. package/dist/builtin/workflows/src/shared/workflow-authoring-types.ts +81 -59
  405. package/dist/builtin/workflows/src/shared/workflow-failures-classifier.ts +247 -227
  406. package/dist/builtin/workflows/src/shared/workflow-failures-contract.ts +45 -46
  407. package/dist/builtin/workflows/src/shared/workflow-failures-decisions.ts +330 -351
  408. package/dist/builtin/workflows/src/shared/workflow-failures-signals.ts +192 -195
  409. package/dist/builtin/workflows/src/shared/workflow-failures.ts +10 -10
  410. package/dist/builtin/workflows/src/shared/workflow-run-ownership.ts +32 -36
  411. package/dist/builtin/workflows/src/tui/chat-surface-message.ts +157 -184
  412. package/dist/builtin/workflows/src/tui/chat-surface.ts +332 -355
  413. package/dist/builtin/workflows/src/tui/color-utils.ts +21 -30
  414. package/dist/builtin/workflows/src/tui/connectors.ts +57 -61
  415. package/dist/builtin/workflows/src/tui/dispatch-confirm.ts +168 -192
  416. package/dist/builtin/workflows/src/tui/edge.ts +10 -9
  417. package/dist/builtin/workflows/src/tui/graph-canvas.ts +131 -134
  418. package/dist/builtin/workflows/src/tui/graph-theme.ts +139 -148
  419. package/dist/builtin/workflows/src/tui/graph-view-constants.ts +6 -6
  420. package/dist/builtin/workflows/src/tui/graph-view-graph-render.ts +146 -179
  421. package/dist/builtin/workflows/src/tui/graph-view-input.ts +295 -323
  422. package/dist/builtin/workflows/src/tui/graph-view-render-helpers.ts +291 -327
  423. package/dist/builtin/workflows/src/tui/graph-view-render.ts +171 -191
  424. package/dist/builtin/workflows/src/tui/graph-view-state.ts +317 -303
  425. package/dist/builtin/workflows/src/tui/graph-view-types.ts +65 -59
  426. package/dist/builtin/workflows/src/tui/header.ts +140 -156
  427. package/dist/builtin/workflows/src/tui/host-input-form.ts +47 -45
  428. package/dist/builtin/workflows/src/tui/inline-form-card.ts +277 -266
  429. package/dist/builtin/workflows/src/tui/inline-form-editor-text.ts +61 -62
  430. package/dist/builtin/workflows/src/tui/inline-form-editor.ts +407 -412
  431. package/dist/builtin/workflows/src/tui/inline-form-overlay.ts +203 -214
  432. package/dist/builtin/workflows/src/tui/inline-form-store.ts +24 -24
  433. package/dist/builtin/workflows/src/tui/inputs-overlay.ts +116 -129
  434. package/dist/builtin/workflows/src/tui/inputs-picker-editing.ts +111 -115
  435. package/dist/builtin/workflows/src/tui/inputs-picker-input.ts +255 -269
  436. package/dist/builtin/workflows/src/tui/inputs-picker-render.ts +248 -236
  437. package/dist/builtin/workflows/src/tui/inputs-picker-types.ts +111 -140
  438. package/dist/builtin/workflows/src/tui/inputs-picker.ts +12 -12
  439. package/dist/builtin/workflows/src/tui/keybindings-adapter.ts +49 -57
  440. package/dist/builtin/workflows/src/tui/layout.ts +124 -133
  441. package/dist/builtin/workflows/src/tui/mouse-input.ts +45 -47
  442. package/dist/builtin/workflows/src/tui/node-card.ts +230 -219
  443. package/dist/builtin/workflows/src/tui/overlay-adapter.ts +381 -394
  444. package/dist/builtin/workflows/src/tui/overlay-terminal-modes.ts +20 -19
  445. package/dist/builtin/workflows/src/tui/prompt-card-input.ts +183 -194
  446. package/dist/builtin/workflows/src/tui/prompt-card-render.ts +243 -302
  447. package/dist/builtin/workflows/src/tui/prompt-card-select.ts +76 -98
  448. package/dist/builtin/workflows/src/tui/prompt-card-state.ts +40 -40
  449. package/dist/builtin/workflows/src/tui/prompt-card-text.ts +76 -83
  450. package/dist/builtin/workflows/src/tui/prompt-card.ts +3 -3
  451. package/dist/builtin/workflows/src/tui/renderers.ts +6 -6
  452. package/dist/builtin/workflows/src/tui/run-detail.ts +287 -279
  453. package/dist/builtin/workflows/src/tui/session-list.ts +19 -22
  454. package/dist/builtin/workflows/src/tui/session-overlays.ts +82 -87
  455. package/dist/builtin/workflows/src/tui/session-picker.ts +258 -275
  456. package/dist/builtin/workflows/src/tui/stage-chat-composer-drafts.ts +11 -11
  457. package/dist/builtin/workflows/src/tui/stage-chat-layout.ts +55 -62
  458. package/dist/builtin/workflows/src/tui/stage-chat-view-archive-history.ts +220 -263
  459. package/dist/builtin/workflows/src/tui/stage-chat-view-custom-ui.ts +91 -102
  460. package/dist/builtin/workflows/src/tui/stage-chat-view-delivery-activity.ts +51 -59
  461. package/dist/builtin/workflows/src/tui/stage-chat-view-footer-status.ts +154 -208
  462. package/dist/builtin/workflows/src/tui/stage-chat-view-input.ts +174 -208
  463. package/dist/builtin/workflows/src/tui/stage-chat-view-live-events.ts +32 -44
  464. package/dist/builtin/workflows/src/tui/stage-chat-view-pending-tools.ts +2 -4
  465. package/dist/builtin/workflows/src/tui/stage-chat-view-render-helpers.ts +82 -97
  466. package/dist/builtin/workflows/src/tui/stage-chat-view-render-settings.ts +33 -31
  467. package/dist/builtin/workflows/src/tui/stage-chat-view-state.ts +428 -400
  468. package/dist/builtin/workflows/src/tui/stage-chat-view-status.ts +24 -25
  469. package/dist/builtin/workflows/src/tui/stage-chat-view-transcript.ts +181 -197
  470. package/dist/builtin/workflows/src/tui/stage-chat-view-types.ts +125 -134
  471. package/dist/builtin/workflows/src/tui/stage-chat-view.ts +210 -211
  472. package/dist/builtin/workflows/src/tui/status-helpers.ts +65 -69
  473. package/dist/builtin/workflows/src/tui/status-list.ts +316 -294
  474. package/dist/builtin/workflows/src/tui/store-widget-installer.ts +213 -214
  475. package/dist/builtin/workflows/src/tui/submit-pane.ts +114 -130
  476. package/dist/builtin/workflows/src/tui/switcher.ts +116 -134
  477. package/dist/builtin/workflows/src/tui/text-helpers.ts +136 -145
  478. package/dist/builtin/workflows/src/tui/toast.ts +68 -67
  479. package/dist/builtin/workflows/src/tui/widget.ts +265 -285
  480. package/dist/builtin/workflows/src/tui/workflow-attach-pane-handle.ts +12 -17
  481. package/dist/builtin/workflows/src/tui/workflow-attach-pane-types.ts +81 -82
  482. package/dist/builtin/workflows/src/tui/workflow-attach-pane.ts +467 -445
  483. package/dist/builtin/workflows/src/tui/workflow-list.ts +130 -145
  484. package/dist/builtin/workflows/src/tui/workflow-notice-card.ts +127 -144
  485. package/dist/builtin/workflows/src/tui/workflow-resume-selector.ts +217 -216
  486. package/dist/builtin/workflows/src/workflows/identity.ts +11 -11
  487. package/dist/builtin/workflows/src/workflows/registry.ts +66 -68
  488. package/dist/bun/cli.js.map +1 -1
  489. package/dist/bun/internal-intercom-broker.d.ts.map +1 -1
  490. package/dist/bun/internal-intercom-broker.js +1 -1
  491. package/dist/bun/internal-intercom-broker.js.map +1 -1
  492. package/dist/bun/register-bedrock.js +1 -1
  493. package/dist/bun/register-bedrock.js.map +1 -1
  494. package/dist/cli/args.d.ts.map +1 -1
  495. package/dist/cli/args.js +8 -1
  496. package/dist/cli/args.js.map +1 -1
  497. package/dist/cli/credential-print.d.ts +170 -0
  498. package/dist/cli/credential-print.d.ts.map +1 -0
  499. package/dist/cli/credential-print.js +513 -0
  500. package/dist/cli/credential-print.js.map +1 -0
  501. package/dist/cli/list-models.d.ts +2 -2
  502. package/dist/cli/list-models.d.ts.map +1 -1
  503. package/dist/cli/list-models.js +5 -5
  504. package/dist/cli/list-models.js.map +1 -1
  505. package/dist/cli/project-trust.d.ts +1 -1
  506. package/dist/cli/project-trust.d.ts.map +1 -1
  507. package/dist/cli/project-trust.js.map +1 -1
  508. package/dist/cli/startup-ui.d.ts.map +1 -1
  509. package/dist/cli/startup-ui.js +13 -6
  510. package/dist/cli/startup-ui.js.map +1 -1
  511. package/dist/config-self-update.d.ts.map +1 -1
  512. package/dist/config-self-update.js +5 -2
  513. package/dist/config-self-update.js.map +1 -1
  514. package/dist/config.d.ts.map +1 -1
  515. package/dist/config.js +1 -3
  516. package/dist/config.js.map +1 -1
  517. package/dist/core/agent-session-accessors.d.ts.map +1 -1
  518. package/dist/core/agent-session-accessors.js +125 -25
  519. package/dist/core/agent-session-accessors.js.map +1 -1
  520. package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
  521. package/dist/core/agent-session-auto-compaction.js +6 -7
  522. package/dist/core/agent-session-auto-compaction.js.map +1 -1
  523. package/dist/core/agent-session-bash.d.ts +1 -1
  524. package/dist/core/agent-session-bash.d.ts.map +1 -1
  525. package/dist/core/agent-session-bash.js +3 -1
  526. package/dist/core/agent-session-bash.js.map +1 -1
  527. package/dist/core/agent-session-compaction.d.ts.map +1 -1
  528. package/dist/core/agent-session-compaction.js +46 -9
  529. package/dist/core/agent-session-compaction.js.map +1 -1
  530. package/dist/core/agent-session-custom-message-commit.d.ts +1 -1
  531. package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
  532. package/dist/core/agent-session-custom-message-commit.js +13 -9
  533. package/dist/core/agent-session-custom-message-commit.js.map +1 -1
  534. package/dist/core/agent-session-delivery-forwarding.d.ts +1 -1
  535. package/dist/core/agent-session-delivery-forwarding.d.ts.map +1 -1
  536. package/dist/core/agent-session-delivery-forwarding.js.map +1 -1
  537. package/dist/core/agent-session-events.d.ts.map +1 -1
  538. package/dist/core/agent-session-events.js +15 -8
  539. package/dist/core/agent-session-events.js.map +1 -1
  540. package/dist/core/agent-session-export.d.ts +1 -1
  541. package/dist/core/agent-session-export.d.ts.map +1 -1
  542. package/dist/core/agent-session-export.js.map +1 -1
  543. package/dist/core/agent-session-extension-bindings.d.ts.map +1 -1
  544. package/dist/core/agent-session-extension-bindings.js +17 -10
  545. package/dist/core/agent-session-extension-bindings.js.map +1 -1
  546. package/dist/core/agent-session-message-queue.d.ts +4 -4
  547. package/dist/core/agent-session-message-queue.d.ts.map +1 -1
  548. package/dist/core/agent-session-message-queue.js +21 -12
  549. package/dist/core/agent-session-message-queue.js.map +1 -1
  550. package/dist/core/agent-session-methods.d.ts +8 -9
  551. package/dist/core/agent-session-methods.d.ts.map +1 -1
  552. package/dist/core/agent-session-methods.js.map +1 -1
  553. package/dist/core/agent-session-models.d.ts +1 -1
  554. package/dist/core/agent-session-models.d.ts.map +1 -1
  555. package/dist/core/agent-session-models.js +19 -15
  556. package/dist/core/agent-session-models.js.map +1 -1
  557. package/dist/core/agent-session-persistent-custom-messages.d.ts +1 -1
  558. package/dist/core/agent-session-persistent-custom-messages.d.ts.map +1 -1
  559. package/dist/core/agent-session-persistent-custom-messages.js +6 -4
  560. package/dist/core/agent-session-persistent-custom-messages.js.map +1 -1
  561. package/dist/core/agent-session-post-tool-compaction.d.ts +1 -1
  562. package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
  563. package/dist/core/agent-session-post-tool-compaction.js +2 -4
  564. package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
  565. package/dist/core/agent-session-prompt.d.ts.map +1 -1
  566. package/dist/core/agent-session-prompt.js +7 -11
  567. package/dist/core/agent-session-prompt.js.map +1 -1
  568. package/dist/core/agent-session-queue-pause.d.ts.map +1 -1
  569. package/dist/core/agent-session-queue-pause.js +8 -7
  570. package/dist/core/agent-session-queue-pause.js.map +1 -1
  571. package/dist/core/agent-session-retry.d.ts.map +1 -1
  572. package/dist/core/agent-session-retry.js +31 -8
  573. package/dist/core/agent-session-retry.js.map +1 -1
  574. package/dist/core/agent-session-runtime-auth.d.ts +3 -3
  575. package/dist/core/agent-session-runtime-auth.d.ts.map +1 -1
  576. package/dist/core/agent-session-runtime-auth.js +7 -15
  577. package/dist/core/agent-session-runtime-auth.js.map +1 -1
  578. package/dist/core/agent-session-runtime.d.ts +14 -3
  579. package/dist/core/agent-session-runtime.d.ts.map +1 -1
  580. package/dist/core/agent-session-runtime.js +20 -4
  581. package/dist/core/agent-session-runtime.js.map +1 -1
  582. package/dist/core/agent-session-services.d.ts +3 -8
  583. package/dist/core/agent-session-services.d.ts.map +1 -1
  584. package/dist/core/agent-session-services.js +20 -25
  585. package/dist/core/agent-session-services.js.map +1 -1
  586. package/dist/core/agent-session-state.d.ts +1 -1
  587. package/dist/core/agent-session-state.d.ts.map +1 -1
  588. package/dist/core/agent-session-state.js.map +1 -1
  589. package/dist/core/agent-session-tool-hooks.d.ts.map +1 -1
  590. package/dist/core/agent-session-tool-hooks.js +2 -6
  591. package/dist/core/agent-session-tool-hooks.js.map +1 -1
  592. package/dist/core/agent-session-tool-registry.d.ts.map +1 -1
  593. package/dist/core/agent-session-tool-registry.js +5 -3
  594. package/dist/core/agent-session-tool-registry.js.map +1 -1
  595. package/dist/core/agent-session-transfer.d.ts.map +1 -1
  596. package/dist/core/agent-session-transfer.js +6 -10
  597. package/dist/core/agent-session-transfer.js.map +1 -1
  598. package/dist/core/agent-session-tree.d.ts +1 -1
  599. package/dist/core/agent-session-tree.d.ts.map +1 -1
  600. package/dist/core/agent-session-tree.js +5 -0
  601. package/dist/core/agent-session-tree.js.map +1 -1
  602. package/dist/core/agent-session-types.d.ts +3 -3
  603. package/dist/core/agent-session-types.d.ts.map +1 -1
  604. package/dist/core/agent-session-types.js +4 -1
  605. package/dist/core/agent-session-types.js.map +1 -1
  606. package/dist/core/agent-session.d.ts +16 -12
  607. package/dist/core/agent-session.d.ts.map +1 -1
  608. package/dist/core/agent-session.js +9 -10
  609. package/dist/core/agent-session.js.map +1 -1
  610. package/dist/core/anthropic-thinking-guard.d.ts.map +1 -1
  611. package/dist/core/anthropic-thinking-guard.js +4 -2
  612. package/dist/core/anthropic-thinking-guard.js.map +1 -1
  613. package/dist/core/async/format.d.ts +1 -1
  614. package/dist/core/async/format.d.ts.map +1 -1
  615. package/dist/core/async/format.js +3 -1
  616. package/dist/core/async/format.js.map +1 -1
  617. package/dist/core/async/job-manager.d.ts.map +1 -1
  618. package/dist/core/async/job-manager.js +20 -5
  619. package/dist/core/async/job-manager.js.map +1 -1
  620. package/dist/core/async/session-manager.d.ts.map +1 -1
  621. package/dist/core/async/session-manager.js.map +1 -1
  622. package/dist/core/atomic-guide-command.d.ts.map +1 -1
  623. package/dist/core/atomic-guide-command.js +1 -2
  624. package/dist/core/atomic-guide-command.js.map +1 -1
  625. package/dist/core/auth-guidance.d.ts.map +1 -1
  626. package/dist/core/auth-guidance.js.map +1 -1
  627. package/dist/core/auth-storage-backends.d.ts +1 -0
  628. package/dist/core/auth-storage-backends.d.ts.map +1 -1
  629. package/dist/core/auth-storage-backends.js +18 -4
  630. package/dist/core/auth-storage-backends.js.map +1 -1
  631. package/dist/core/auth-storage.d.ts +13 -140
  632. package/dist/core/auth-storage.d.ts.map +1 -1
  633. package/dist/core/auth-storage.js +69 -379
  634. package/dist/core/auth-storage.js.map +1 -1
  635. package/dist/core/builtin-packages.d.ts.map +1 -1
  636. package/dist/core/builtin-packages.js +1 -4
  637. package/dist/core/builtin-packages.js.map +1 -1
  638. package/dist/core/cache-stats.d.ts.map +1 -1
  639. package/dist/core/cache-stats.js +8 -6
  640. package/dist/core/cache-stats.js.map +1 -1
  641. package/dist/core/callback-activity.d.ts.map +1 -1
  642. package/dist/core/callback-activity.js.map +1 -1
  643. package/dist/core/codex-errors.d.ts.map +1 -1
  644. package/dist/core/codex-errors.js +1 -1
  645. package/dist/core/codex-errors.js.map +1 -1
  646. package/dist/core/codex-fast-mode.d.ts.map +1 -1
  647. package/dist/core/codex-fast-mode.js.map +1 -1
  648. package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
  649. package/dist/core/compaction/branch-summarization.js +1 -1
  650. package/dist/core/compaction/branch-summarization.js.map +1 -1
  651. package/dist/core/compaction/compaction-boundary.d.ts.map +1 -1
  652. package/dist/core/compaction/compaction-boundary.js +10 -6
  653. package/dist/core/compaction/compaction-boundary.js.map +1 -1
  654. package/dist/core/compaction/compaction-runner.d.ts +1 -1
  655. package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
  656. package/dist/core/compaction/compaction-runner.js +2 -4
  657. package/dist/core/compaction/compaction-runner.js.map +1 -1
  658. package/dist/core/compaction/compaction.d.ts.map +1 -1
  659. package/dist/core/compaction/compaction.js +5 -1
  660. package/dist/core/compaction/compaction.js.map +1 -1
  661. package/dist/core/compaction/deleted-ranges.d.ts.map +1 -1
  662. package/dist/core/compaction/deleted-ranges.js.map +1 -1
  663. package/dist/core/compaction/fallback-planner.d.ts.map +1 -1
  664. package/dist/core/compaction/fallback-planner.js.map +1 -1
  665. package/dist/core/compaction/index.d.ts +6 -6
  666. package/dist/core/compaction/index.d.ts.map +1 -1
  667. package/dist/core/compaction/index.js +6 -6
  668. package/dist/core/compaction/index.js.map +1 -1
  669. package/dist/core/compaction/planner-outcome.d.ts.map +1 -1
  670. package/dist/core/compaction/planner-outcome.js.map +1 -1
  671. package/dist/core/compaction/range-planner-diagnostics.d.ts.map +1 -1
  672. package/dist/core/compaction/range-planner-diagnostics.js +4 -2
  673. package/dist/core/compaction/range-planner-diagnostics.js.map +1 -1
  674. package/dist/core/compaction/range-planner.d.ts.map +1 -1
  675. package/dist/core/compaction/range-planner.js +4 -1
  676. package/dist/core/compaction/range-planner.js.map +1 -1
  677. package/dist/core/compaction/transcript-serialization.d.ts.map +1 -1
  678. package/dist/core/compaction/transcript-serialization.js.map +1 -1
  679. package/dist/core/context-tool-pairing.js +3 -3
  680. package/dist/core/context-tool-pairing.js.map +1 -1
  681. package/dist/core/copilot-env-routing.d.ts +36 -0
  682. package/dist/core/copilot-env-routing.d.ts.map +1 -0
  683. package/dist/core/copilot-env-routing.js +94 -0
  684. package/dist/core/copilot-env-routing.js.map +1 -0
  685. package/dist/core/exec.d.ts.map +1 -1
  686. package/dist/core/exec.js +5 -0
  687. package/dist/core/exec.js.map +1 -1
  688. package/dist/core/experimental.d.ts.map +1 -1
  689. package/dist/core/experimental.js +2 -1
  690. package/dist/core/experimental.js.map +1 -1
  691. package/dist/core/extensions/api-types.d.ts +2 -2
  692. package/dist/core/extensions/api-types.d.ts.map +1 -1
  693. package/dist/core/extensions/api-types.js.map +1 -1
  694. package/dist/core/extensions/context-types.d.ts +7 -1
  695. package/dist/core/extensions/context-types.d.ts.map +1 -1
  696. package/dist/core/extensions/context-types.js.map +1 -1
  697. package/dist/core/extensions/index.d.ts +7 -7
  698. package/dist/core/extensions/index.d.ts.map +1 -1
  699. package/dist/core/extensions/index.js +2 -2
  700. package/dist/core/extensions/index.js.map +1 -1
  701. package/dist/core/extensions/loader-api.d.ts +1 -1
  702. package/dist/core/extensions/loader-api.d.ts.map +1 -1
  703. package/dist/core/extensions/loader-api.js +4 -2
  704. package/dist/core/extensions/loader-api.js.map +1 -1
  705. package/dist/core/extensions/loader-core.d.ts.map +1 -1
  706. package/dist/core/extensions/loader-core.js +2 -2
  707. package/dist/core/extensions/loader-core.js.map +1 -1
  708. package/dist/core/extensions/loader-discovery.d.ts.map +1 -1
  709. package/dist/core/extensions/loader-discovery.js.map +1 -1
  710. package/dist/core/extensions/loader-resources.d.ts.map +1 -1
  711. package/dist/core/extensions/loader-resources.js.map +1 -1
  712. package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
  713. package/dist/core/extensions/loader-runtime.js +23 -11
  714. package/dist/core/extensions/loader-runtime.js.map +1 -1
  715. package/dist/core/extensions/loader-virtual-modules.d.ts +17 -0
  716. package/dist/core/extensions/loader-virtual-modules.d.ts.map +1 -1
  717. package/dist/core/extensions/loader-virtual-modules.js +288 -19
  718. package/dist/core/extensions/loader-virtual-modules.js.map +1 -1
  719. package/dist/core/extensions/loader.d.ts.map +1 -1
  720. package/dist/core/extensions/loader.js.map +1 -1
  721. package/dist/core/extensions/provider-types.d.ts +2 -42
  722. package/dist/core/extensions/provider-types.d.ts.map +1 -1
  723. package/dist/core/extensions/provider-types.js.map +1 -1
  724. package/dist/core/extensions/reactive-widget.d.ts.map +1 -1
  725. package/dist/core/extensions/reactive-widget.js.map +1 -1
  726. package/dist/core/extensions/runner-context.d.ts +27 -1
  727. package/dist/core/extensions/runner-context.d.ts.map +1 -1
  728. package/dist/core/extensions/runner-context.js +52 -0
  729. package/dist/core/extensions/runner-context.js.map +1 -1
  730. package/dist/core/extensions/runner-events.d.ts.map +1 -1
  731. package/dist/core/extensions/runner-events.js.map +1 -1
  732. package/dist/core/extensions/runner.d.ts +1 -0
  733. package/dist/core/extensions/runner.d.ts.map +1 -1
  734. package/dist/core/extensions/runner.js +18 -6
  735. package/dist/core/extensions/runner.js.map +1 -1
  736. package/dist/core/extensions/runtime-types.d.ts +3 -1
  737. package/dist/core/extensions/runtime-types.d.ts.map +1 -1
  738. package/dist/core/extensions/runtime-types.js.map +1 -1
  739. package/dist/core/extensions/session-events.d.ts.map +1 -1
  740. package/dist/core/extensions/session-events.js.map +1 -1
  741. package/dist/core/extensions/tool-types.d.ts.map +1 -1
  742. package/dist/core/extensions/tool-types.js.map +1 -1
  743. package/dist/core/extensions/types.d.ts +15 -2
  744. package/dist/core/extensions/types.d.ts.map +1 -1
  745. package/dist/core/extensions/types.js +1 -1
  746. package/dist/core/extensions/types.js.map +1 -1
  747. package/dist/core/extensions/ui-types.d.ts +16 -2
  748. package/dist/core/extensions/ui-types.d.ts.map +1 -1
  749. package/dist/core/extensions/ui-types.js.map +1 -1
  750. package/dist/core/fallback-models.d.ts +4 -4
  751. package/dist/core/fallback-models.d.ts.map +1 -1
  752. package/dist/core/fallback-models.js +14 -5
  753. package/dist/core/fallback-models.js.map +1 -1
  754. package/dist/core/flattened-tool-arguments.d.ts.map +1 -1
  755. package/dist/core/flattened-tool-arguments.js.map +1 -1
  756. package/dist/core/footer-data-provider.d.ts +10 -0
  757. package/dist/core/footer-data-provider.d.ts.map +1 -1
  758. package/dist/core/footer-data-provider.js +5 -3
  759. package/dist/core/footer-data-provider.js.map +1 -1
  760. package/dist/core/http-dispatcher.d.ts.map +1 -1
  761. package/dist/core/http-dispatcher.js.map +1 -1
  762. package/dist/core/keybindings.d.ts +1 -1
  763. package/dist/core/keybindings.d.ts.map +1 -1
  764. package/dist/core/keybindings.js.map +1 -1
  765. package/dist/core/messages.d.ts.map +1 -1
  766. package/dist/core/messages.js.map +1 -1
  767. package/dist/core/model-capabilities.d.ts.map +1 -1
  768. package/dist/core/model-capabilities.js +1 -2
  769. package/dist/core/model-capabilities.js.map +1 -1
  770. package/dist/core/model-config.d.ts +542 -0
  771. package/dist/core/model-config.d.ts.map +1 -0
  772. package/dist/core/{model-registry-schemas.js → model-config.js} +85 -34
  773. package/dist/core/model-config.js.map +1 -0
  774. package/dist/core/model-registry.d.ts +25 -85
  775. package/dist/core/model-registry.d.ts.map +1 -1
  776. package/dist/core/model-registry.js +65 -388
  777. package/dist/core/model-registry.js.map +1 -1
  778. package/dist/core/model-resolver-cli.d.ts +2 -2
  779. package/dist/core/model-resolver-cli.d.ts.map +1 -1
  780. package/dist/core/model-resolver-cli.js +2 -2
  781. package/dist/core/model-resolver-cli.js.map +1 -1
  782. package/dist/core/model-resolver-defaults.js.map +1 -1
  783. package/dist/core/model-resolver-initial.d.ts +4 -4
  784. package/dist/core/model-resolver-initial.d.ts.map +1 -1
  785. package/dist/core/model-resolver-initial.js +18 -18
  786. package/dist/core/model-resolver-initial.js.map +1 -1
  787. package/dist/core/model-resolver-patterns.d.ts.map +1 -1
  788. package/dist/core/model-resolver-patterns.js.map +1 -1
  789. package/dist/core/model-resolver-scope.d.ts +3 -3
  790. package/dist/core/model-resolver-scope.d.ts.map +1 -1
  791. package/dist/core/model-resolver-scope.js +16 -6
  792. package/dist/core/model-resolver-scope.js.map +1 -1
  793. package/dist/core/model-resolver-types.d.ts.map +1 -1
  794. package/dist/core/model-resolver-types.js.map +1 -1
  795. package/dist/core/model-resolver.d.ts +3 -3
  796. package/dist/core/model-resolver.d.ts.map +1 -1
  797. package/dist/core/model-resolver.js +1 -1
  798. package/dist/core/model-resolver.js.map +1 -1
  799. package/dist/core/model-runtime-auth.d.ts +7 -0
  800. package/dist/core/model-runtime-auth.d.ts.map +1 -0
  801. package/dist/core/model-runtime-auth.js +17 -0
  802. package/dist/core/model-runtime-auth.js.map +1 -0
  803. package/dist/core/model-runtime-providers.d.ts +6 -0
  804. package/dist/core/model-runtime-providers.d.ts.map +1 -0
  805. package/dist/core/model-runtime-providers.js +22 -0
  806. package/dist/core/model-runtime-providers.js.map +1 -0
  807. package/dist/core/model-runtime-restoration.d.ts +6 -0
  808. package/dist/core/model-runtime-restoration.d.ts.map +1 -0
  809. package/dist/core/model-runtime-restoration.js +21 -0
  810. package/dist/core/model-runtime-restoration.js.map +1 -0
  811. package/dist/core/model-runtime-snapshot.d.ts +16 -0
  812. package/dist/core/model-runtime-snapshot.d.ts.map +1 -0
  813. package/dist/core/model-runtime-snapshot.js +52 -0
  814. package/dist/core/model-runtime-snapshot.js.map +1 -0
  815. package/dist/core/model-runtime-streaming.d.ts +17 -0
  816. package/dist/core/model-runtime-streaming.d.ts.map +1 -0
  817. package/dist/core/model-runtime-streaming.js +66 -0
  818. package/dist/core/model-runtime-streaming.js.map +1 -0
  819. package/dist/core/model-runtime-types.d.ts +21 -0
  820. package/dist/core/model-runtime-types.d.ts.map +1 -0
  821. package/dist/core/model-runtime-types.js +2 -0
  822. package/dist/core/model-runtime-types.js.map +1 -0
  823. package/dist/core/model-runtime.d.ts +50 -29
  824. package/dist/core/model-runtime.d.ts.map +1 -1
  825. package/dist/core/model-runtime.js +332 -90
  826. package/dist/core/model-runtime.js.map +1 -1
  827. package/dist/core/models-store.d.ts +2 -10
  828. package/dist/core/models-store.d.ts.map +1 -1
  829. package/dist/core/models-store.js +2 -29
  830. package/dist/core/models-store.js.map +1 -1
  831. package/dist/core/oauth-login.d.ts +24 -0
  832. package/dist/core/oauth-login.d.ts.map +1 -0
  833. package/dist/core/oauth-login.js +92 -0
  834. package/dist/core/oauth-login.js.map +1 -0
  835. package/dist/core/oauth-provider-metadata.d.ts +5 -0
  836. package/dist/core/oauth-provider-metadata.d.ts.map +1 -0
  837. package/dist/core/oauth-provider-metadata.js +33 -0
  838. package/dist/core/oauth-provider-metadata.js.map +1 -0
  839. package/dist/core/openai-responses-payload-sanitizer.js.map +1 -1
  840. package/dist/core/output-guard.d.ts +44 -0
  841. package/dist/core/output-guard.d.ts.map +1 -1
  842. package/dist/core/output-guard.js +63 -0
  843. package/dist/core/output-guard.js.map +1 -1
  844. package/dist/core/package-manager-auto-resources.d.ts.map +1 -1
  845. package/dist/core/package-manager-auto-resources.js +6 -1
  846. package/dist/core/package-manager-auto-resources.js.map +1 -1
  847. package/dist/core/package-manager-git.d.ts.map +1 -1
  848. package/dist/core/package-manager-git.js +27 -11
  849. package/dist/core/package-manager-git.js.map +1 -1
  850. package/dist/core/package-manager-npm.d.ts.map +1 -1
  851. package/dist/core/package-manager-npm.js +4 -2
  852. package/dist/core/package-manager-npm.js.map +1 -1
  853. package/dist/core/package-manager-operations.d.ts.map +1 -1
  854. package/dist/core/package-manager-operations.js +2 -2
  855. package/dist/core/package-manager-operations.js.map +1 -1
  856. package/dist/core/package-manager-paths.d.ts.map +1 -1
  857. package/dist/core/package-manager-paths.js.map +1 -1
  858. package/dist/core/package-manager-resolver.d.ts.map +1 -1
  859. package/dist/core/package-manager-resolver.js +19 -16
  860. package/dist/core/package-manager-resolver.js.map +1 -1
  861. package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
  862. package/dist/core/package-manager-resource-collector.js +6 -6
  863. package/dist/core/package-manager-resource-collector.js.map +1 -1
  864. package/dist/core/package-manager-resource-files.d.ts.map +1 -1
  865. package/dist/core/package-manager-resource-files.js +4 -3
  866. package/dist/core/package-manager-resource-files.js.map +1 -1
  867. package/dist/core/package-manager-resource-patterns.d.ts.map +1 -1
  868. package/dist/core/package-manager-resource-patterns.js.map +1 -1
  869. package/dist/core/package-manager-settings.d.ts.map +1 -1
  870. package/dist/core/package-manager-settings.js +3 -2
  871. package/dist/core/package-manager-settings.js.map +1 -1
  872. package/dist/core/package-manager-source.d.ts.map +1 -1
  873. package/dist/core/package-manager-source.js +1 -1
  874. package/dist/core/package-manager-source.js.map +1 -1
  875. package/dist/core/package-manager.d.ts +1 -1
  876. package/dist/core/package-manager.d.ts.map +1 -1
  877. package/dist/core/package-manager.js +2 -3
  878. package/dist/core/package-manager.js.map +1 -1
  879. package/dist/core/prompt-templates-async.d.ts.map +1 -1
  880. package/dist/core/prompt-templates-async.js +15 -7
  881. package/dist/core/prompt-templates-async.js.map +1 -1
  882. package/dist/core/prompt-templates.d.ts.map +1 -1
  883. package/dist/core/prompt-templates.js +1 -3
  884. package/dist/core/prompt-templates.js.map +1 -1
  885. package/dist/core/provider-composer-internal.d.ts +53 -0
  886. package/dist/core/provider-composer-internal.d.ts.map +1 -0
  887. package/dist/core/provider-composer-internal.js +273 -0
  888. package/dist/core/provider-composer-internal.js.map +1 -0
  889. package/dist/core/provider-composer.d.ts +16 -0
  890. package/dist/core/provider-composer.d.ts.map +1 -0
  891. package/dist/core/provider-composer.js +108 -0
  892. package/dist/core/provider-composer.js.map +1 -0
  893. package/dist/core/provider-context-usage.d.ts.map +1 -1
  894. package/dist/core/provider-context-usage.js +2 -1
  895. package/dist/core/provider-context-usage.js.map +1 -1
  896. package/dist/core/remote-catalog-provider.d.ts.map +1 -1
  897. package/dist/core/remote-catalog-provider.js +74 -122
  898. package/dist/core/remote-catalog-provider.js.map +1 -1
  899. package/dist/core/resolve-config-value.d.ts +8 -7
  900. package/dist/core/resolve-config-value.d.ts.map +1 -1
  901. package/dist/core/resolve-config-value.js +26 -23
  902. package/dist/core/resolve-config-value.js.map +1 -1
  903. package/dist/core/resource-loader-assets.d.ts.map +1 -1
  904. package/dist/core/resource-loader-assets.js +31 -7
  905. package/dist/core/resource-loader-assets.js.map +1 -1
  906. package/dist/core/resource-loader-context-files.d.ts +6 -0
  907. package/dist/core/resource-loader-context-files.d.ts.map +1 -1
  908. package/dist/core/resource-loader-context-files.js +83 -4
  909. package/dist/core/resource-loader-context-files.js.map +1 -1
  910. package/dist/core/resource-loader-core.d.ts +12 -3
  911. package/dist/core/resource-loader-core.d.ts.map +1 -1
  912. package/dist/core/resource-loader-core.js +36 -19
  913. package/dist/core/resource-loader-core.js.map +1 -1
  914. package/dist/core/resource-loader-discovery.d.ts.map +1 -1
  915. package/dist/core/resource-loader-discovery.js.map +1 -1
  916. package/dist/core/resource-loader-extensions.d.ts.map +1 -1
  917. package/dist/core/resource-loader-extensions.js +33 -21
  918. package/dist/core/resource-loader-extensions.js.map +1 -1
  919. package/dist/core/resource-loader-internals.d.ts +13 -6
  920. package/dist/core/resource-loader-internals.d.ts.map +1 -1
  921. package/dist/core/resource-loader-internals.js.map +1 -1
  922. package/dist/core/resource-loader-package-resources.d.ts.map +1 -1
  923. package/dist/core/resource-loader-package-resources.js +1 -1
  924. package/dist/core/resource-loader-package-resources.js.map +1 -1
  925. package/dist/core/resource-loader-paths.js.map +1 -1
  926. package/dist/core/resource-loader-reload.d.ts.map +1 -1
  927. package/dist/core/resource-loader-reload.js +28 -13
  928. package/dist/core/resource-loader-reload.js.map +1 -1
  929. package/dist/core/resource-loader-source-info.d.ts +1 -1
  930. package/dist/core/resource-loader-source-info.d.ts.map +1 -1
  931. package/dist/core/resource-loader-source-info.js +1 -1
  932. package/dist/core/resource-loader-source-info.js.map +1 -1
  933. package/dist/core/resource-loader-types.d.ts +9 -3
  934. package/dist/core/resource-loader-types.d.ts.map +1 -1
  935. package/dist/core/resource-loader-types.js.map +1 -1
  936. package/dist/core/resource-loader.d.ts +1 -1
  937. package/dist/core/resource-loader.d.ts.map +1 -1
  938. package/dist/core/resource-loader.js +1 -1
  939. package/dist/core/resource-loader.js.map +1 -1
  940. package/dist/core/runtime-credentials.d.ts +16 -0
  941. package/dist/core/runtime-credentials.d.ts.map +1 -0
  942. package/dist/core/runtime-credentials.js +42 -0
  943. package/dist/core/runtime-credentials.js.map +1 -0
  944. package/dist/core/sdk-exports.d.ts +1 -1
  945. package/dist/core/sdk-exports.d.ts.map +1 -1
  946. package/dist/core/sdk-exports.js +2 -2
  947. package/dist/core/sdk-exports.js.map +1 -1
  948. package/dist/core/sdk-types.d.ts +4 -10
  949. package/dist/core/sdk-types.d.ts.map +1 -1
  950. package/dist/core/sdk-types.js.map +1 -1
  951. package/dist/core/sdk.d.ts +1 -1
  952. package/dist/core/sdk.d.ts.map +1 -1
  953. package/dist/core/sdk.js +37 -45
  954. package/dist/core/sdk.js.map +1 -1
  955. package/dist/core/session-manager-archive.d.ts.map +1 -1
  956. package/dist/core/session-manager-archive.js +5 -2
  957. package/dist/core/session-manager-archive.js.map +1 -1
  958. package/dist/core/session-manager-classification.js +3 -3
  959. package/dist/core/session-manager-classification.js.map +1 -1
  960. package/dist/core/session-manager-core.d.ts.map +1 -1
  961. package/dist/core/session-manager-core.js +3 -3
  962. package/dist/core/session-manager-core.js.map +1 -1
  963. package/dist/core/session-manager-entries.d.ts +1 -1
  964. package/dist/core/session-manager-entries.d.ts.map +1 -1
  965. package/dist/core/session-manager-entries.js.map +1 -1
  966. package/dist/core/session-manager-history.d.ts.map +1 -1
  967. package/dist/core/session-manager-history.js +13 -5
  968. package/dist/core/session-manager-history.js.map +1 -1
  969. package/dist/core/session-manager-list.d.ts.map +1 -1
  970. package/dist/core/session-manager-list.js +1 -1
  971. package/dist/core/session-manager-list.js.map +1 -1
  972. package/dist/core/session-manager-migrations.js.map +1 -1
  973. package/dist/core/session-manager-storage.d.ts.map +1 -1
  974. package/dist/core/session-manager-storage.js.map +1 -1
  975. package/dist/core/session-manager-types.d.ts.map +1 -1
  976. package/dist/core/session-manager-types.js.map +1 -1
  977. package/dist/core/session-manager.d.ts +4 -4
  978. package/dist/core/session-manager.d.ts.map +1 -1
  979. package/dist/core/session-manager.js +2 -2
  980. package/dist/core/session-manager.js.map +1 -1
  981. package/dist/core/settings-manager-core.d.ts.map +1 -1
  982. package/dist/core/settings-manager-core.js.map +1 -1
  983. package/dist/core/settings-manager-ui-accessors.js +2 -1
  984. package/dist/core/settings-manager-ui-accessors.js.map +1 -1
  985. package/dist/core/settings-storage.d.ts.map +1 -1
  986. package/dist/core/settings-storage.js +3 -3
  987. package/dist/core/settings-storage.js.map +1 -1
  988. package/dist/core/settings-types.d.ts.map +1 -1
  989. package/dist/core/settings-types.js.map +1 -1
  990. package/dist/core/skills-async.d.ts.map +1 -1
  991. package/dist/core/skills-async.js +18 -8
  992. package/dist/core/skills-async.js.map +1 -1
  993. package/dist/core/slash-commands.d.ts.map +1 -1
  994. package/dist/core/slash-commands.js +76 -19
  995. package/dist/core/slash-commands.js.map +1 -1
  996. package/dist/core/system-prompt.d.ts.map +1 -1
  997. package/dist/core/system-prompt.js +5 -19
  998. package/dist/core/system-prompt.js.map +1 -1
  999. package/dist/core/thinking-blocks.d.ts.map +1 -1
  1000. package/dist/core/thinking-blocks.js +2 -2
  1001. package/dist/core/thinking-blocks.js.map +1 -1
  1002. package/dist/core/tools/artifact-protocol.d.ts.map +1 -1
  1003. package/dist/core/tools/artifact-protocol.js.map +1 -1
  1004. package/dist/core/tools/artifacts.d.ts.map +1 -1
  1005. package/dist/core/tools/artifacts.js.map +1 -1
  1006. package/dist/core/tools/ask-user-question/ask-user-question.d.ts.map +1 -1
  1007. package/dist/core/tools/ask-user-question/ask-user-question.js.map +1 -1
  1008. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts +1 -1
  1009. package/dist/core/tools/ask-user-question/state/build-questionnaire.d.ts.map +1 -1
  1010. package/dist/core/tools/ask-user-question/state/build-questionnaire.js +1 -1
  1011. package/dist/core/tools/ask-user-question/state/build-questionnaire.js.map +1 -1
  1012. package/dist/core/tools/ask-user-question/state/questionnaire-session.d.ts.map +1 -1
  1013. package/dist/core/tools/ask-user-question/state/questionnaire-session.js +2 -4
  1014. package/dist/core/tools/ask-user-question/state/questionnaire-session.js.map +1 -1
  1015. package/dist/core/tools/ask-user-question/state/state-reducer.d.ts.map +1 -1
  1016. package/dist/core/tools/ask-user-question/state/state-reducer.js.map +1 -1
  1017. package/dist/core/tools/ask-user-question/view/body-residual-spacer.d.ts.map +1 -1
  1018. package/dist/core/tools/ask-user-question/view/body-residual-spacer.js.map +1 -1
  1019. package/dist/core/tools/ask-user-question/view/components/multi-select-view.d.ts.map +1 -1
  1020. package/dist/core/tools/ask-user-question/view/components/multi-select-view.js.map +1 -1
  1021. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts +1 -1
  1022. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.d.ts.map +1 -1
  1023. package/dist/core/tools/ask-user-question/view/components/preview/markdown-content-cache.js.map +1 -1
  1024. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts +1 -1
  1025. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.d.ts.map +1 -1
  1026. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js +1 -3
  1027. package/dist/core/tools/ask-user-question/view/components/preview/preview-block-renderer.js.map +1 -1
  1028. package/dist/core/tools/ask-user-question/view/components/submit-picker.d.ts.map +1 -1
  1029. package/dist/core/tools/ask-user-question/view/components/submit-picker.js.map +1 -1
  1030. package/dist/core/tools/ask-user-question/view/components/tab-bar.d.ts.map +1 -1
  1031. package/dist/core/tools/ask-user-question/view/components/tab-bar.js.map +1 -1
  1032. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts +1 -1
  1033. package/dist/core/tools/ask-user-question/view/dialog-builder.d.ts.map +1 -1
  1034. package/dist/core/tools/ask-user-question/view/dialog-builder.js +1 -1
  1035. package/dist/core/tools/ask-user-question/view/dialog-builder.js.map +1 -1
  1036. package/dist/core/tools/ask-user-question/view/props-adapter.d.ts.map +1 -1
  1037. package/dist/core/tools/ask-user-question/view/props-adapter.js +2 -4
  1038. package/dist/core/tools/ask-user-question/view/props-adapter.js.map +1 -1
  1039. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts +1 -1
  1040. package/dist/core/tools/ask-user-question/view/tab-content-strategy.d.ts.map +1 -1
  1041. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js +2 -9
  1042. package/dist/core/tools/ask-user-question/view/tab-content-strategy.js.map +1 -1
  1043. package/dist/core/tools/bash-async-execution.d.ts.map +1 -1
  1044. package/dist/core/tools/bash-async-execution.js +11 -4
  1045. package/dist/core/tools/bash-async-execution.js.map +1 -1
  1046. package/dist/core/tools/bash-async-jobs.d.ts.map +1 -1
  1047. package/dist/core/tools/bash-async-jobs.js +14 -2
  1048. package/dist/core/tools/bash-async-jobs.js.map +1 -1
  1049. package/dist/core/tools/bash-async-output.d.ts.map +1 -1
  1050. package/dist/core/tools/bash-async-output.js +6 -2
  1051. package/dist/core/tools/bash-async-output.js.map +1 -1
  1052. package/dist/core/tools/bash-interceptor.d.ts.map +1 -1
  1053. package/dist/core/tools/bash-interceptor.js +20 -4
  1054. package/dist/core/tools/bash-interceptor.js.map +1 -1
  1055. package/dist/core/tools/bash-leading-cd.d.ts.map +1 -1
  1056. package/dist/core/tools/bash-leading-cd.js +9 -3
  1057. package/dist/core/tools/bash-leading-cd.js.map +1 -1
  1058. package/dist/core/tools/bash-pty-native.d.ts.map +1 -1
  1059. package/dist/core/tools/bash-pty-native.js.map +1 -1
  1060. package/dist/core/tools/bash-session-environment.d.ts.map +1 -1
  1061. package/dist/core/tools/bash-session-environment.js +24 -12
  1062. package/dist/core/tools/bash-session-environment.js.map +1 -1
  1063. package/dist/core/tools/bash.d.ts.map +1 -1
  1064. package/dist/core/tools/bash.js +123 -27
  1065. package/dist/core/tools/bash.js.map +1 -1
  1066. package/dist/core/tools/block-resolver.d.ts.map +1 -1
  1067. package/dist/core/tools/block-resolver.js.map +1 -1
  1068. package/dist/core/tools/conflict-registry.d.ts.map +1 -1
  1069. package/dist/core/tools/conflict-registry.js.map +1 -1
  1070. package/dist/core/tools/directory-tree.d.ts.map +1 -1
  1071. package/dist/core/tools/directory-tree.js +20 -4
  1072. package/dist/core/tools/directory-tree.js.map +1 -1
  1073. package/dist/core/tools/edit.d.ts.map +1 -1
  1074. package/dist/core/tools/edit.js +37 -13
  1075. package/dist/core/tools/edit.js.map +1 -1
  1076. package/dist/core/tools/fetch-url.d.ts.map +1 -1
  1077. package/dist/core/tools/fetch-url.js +127 -41
  1078. package/dist/core/tools/fetch-url.js.map +1 -1
  1079. package/dist/core/tools/find.d.ts.map +1 -1
  1080. package/dist/core/tools/find.js +176 -46
  1081. package/dist/core/tools/find.js.map +1 -1
  1082. package/dist/core/tools/grep.d.ts.map +1 -1
  1083. package/dist/core/tools/grep.js +43 -10
  1084. package/dist/core/tools/grep.js.map +1 -1
  1085. package/dist/core/tools/hashline-engine/apply.d.ts.map +1 -1
  1086. package/dist/core/tools/hashline-engine/apply.js +6 -6
  1087. package/dist/core/tools/hashline-engine/apply.js.map +1 -1
  1088. package/dist/core/tools/hashline-engine/block.js +1 -1
  1089. package/dist/core/tools/hashline-engine/block.js.map +1 -1
  1090. package/dist/core/tools/hashline-engine/format.d.ts.map +1 -1
  1091. package/dist/core/tools/hashline-engine/format.js +1 -1
  1092. package/dist/core/tools/hashline-engine/format.js.map +1 -1
  1093. package/dist/core/tools/hashline-engine/input.d.ts.map +1 -1
  1094. package/dist/core/tools/hashline-engine/input.js +7 -7
  1095. package/dist/core/tools/hashline-engine/input.js.map +1 -1
  1096. package/dist/core/tools/hashline-engine/parser.js +1 -1
  1097. package/dist/core/tools/hashline-engine/parser.js.map +1 -1
  1098. package/dist/core/tools/hashline-engine/patcher.js +5 -5
  1099. package/dist/core/tools/hashline-engine/patcher.js.map +1 -1
  1100. package/dist/core/tools/hashline-engine/prefixes.js +4 -4
  1101. package/dist/core/tools/hashline-engine/prefixes.js.map +1 -1
  1102. package/dist/core/tools/hashline-engine/recovery.d.ts.map +1 -1
  1103. package/dist/core/tools/hashline-engine/recovery.js +4 -2
  1104. package/dist/core/tools/hashline-engine/recovery.js.map +1 -1
  1105. package/dist/core/tools/hashline-engine/snapshots.js +5 -5
  1106. package/dist/core/tools/hashline-engine/snapshots.js.map +1 -1
  1107. package/dist/core/tools/hashline.d.ts.map +1 -1
  1108. package/dist/core/tools/hashline.js +24 -13
  1109. package/dist/core/tools/hashline.js.map +1 -1
  1110. package/dist/core/tools/index.d.ts +6 -6
  1111. package/dist/core/tools/index.d.ts.map +1 -1
  1112. package/dist/core/tools/index.js +6 -6
  1113. package/dist/core/tools/index.js.map +1 -1
  1114. package/dist/core/tools/ls.d.ts.map +1 -1
  1115. package/dist/core/tools/ls.js +2 -1
  1116. package/dist/core/tools/ls.js.map +1 -1
  1117. package/dist/core/tools/notebook.d.ts.map +1 -1
  1118. package/dist/core/tools/notebook.js +13 -3
  1119. package/dist/core/tools/notebook.js.map +1 -1
  1120. package/dist/core/tools/read-document-extract.d.ts.map +1 -1
  1121. package/dist/core/tools/read-document-extract.js +30 -10
  1122. package/dist/core/tools/read-document-extract.js.map +1 -1
  1123. package/dist/core/tools/read-selectors.d.ts.map +1 -1
  1124. package/dist/core/tools/read-selectors.js +59 -15
  1125. package/dist/core/tools/read-selectors.js.map +1 -1
  1126. package/dist/core/tools/read-url.d.ts.map +1 -1
  1127. package/dist/core/tools/read-url.js +41 -7
  1128. package/dist/core/tools/read-url.js.map +1 -1
  1129. package/dist/core/tools/read.d.ts.map +1 -1
  1130. package/dist/core/tools/read.js +306 -71
  1131. package/dist/core/tools/read.js.map +1 -1
  1132. package/dist/core/tools/resource-selectors.d.ts +4 -0
  1133. package/dist/core/tools/resource-selectors.d.ts.map +1 -1
  1134. package/dist/core/tools/resource-selectors.js +324 -84
  1135. package/dist/core/tools/resource-selectors.js.map +1 -1
  1136. package/dist/core/tools/search-details.d.ts.map +1 -1
  1137. package/dist/core/tools/search-details.js +13 -1
  1138. package/dist/core/tools/search-details.js.map +1 -1
  1139. package/dist/core/tools/search-line-ranges.d.ts.map +1 -1
  1140. package/dist/core/tools/search-line-ranges.js +5 -2
  1141. package/dist/core/tools/search-line-ranges.js.map +1 -1
  1142. package/dist/core/tools/search-native.d.ts.map +1 -1
  1143. package/dist/core/tools/search-native.js.map +1 -1
  1144. package/dist/core/tools/search.d.ts.map +1 -1
  1145. package/dist/core/tools/search.js +244 -90
  1146. package/dist/core/tools/search.js.map +1 -1
  1147. package/dist/core/tools/structured-output.d.ts +1 -1
  1148. package/dist/core/tools/structured-output.d.ts.map +1 -1
  1149. package/dist/core/tools/structured-output.js.map +1 -1
  1150. package/dist/core/tools/todos-execute.d.ts.map +1 -1
  1151. package/dist/core/tools/todos-execute.js +4 -4
  1152. package/dist/core/tools/todos-execute.js.map +1 -1
  1153. package/dist/core/tools/todos-locks.d.ts.map +1 -1
  1154. package/dist/core/tools/todos-locks.js.map +1 -1
  1155. package/dist/core/tools/todos-mutations.js +1 -1
  1156. package/dist/core/tools/todos-mutations.js.map +1 -1
  1157. package/dist/core/tools/todos-paths.js +2 -2
  1158. package/dist/core/tools/todos-paths.js.map +1 -1
  1159. package/dist/core/tools/todos-render.d.ts.map +1 -1
  1160. package/dist/core/tools/todos-render.js +2 -2
  1161. package/dist/core/tools/todos-render.js.map +1 -1
  1162. package/dist/core/tools/todos-storage.d.ts.map +1 -1
  1163. package/dist/core/tools/todos-storage.js +1 -2
  1164. package/dist/core/tools/todos-storage.js.map +1 -1
  1165. package/dist/core/tools/todos-types.d.ts.map +1 -1
  1166. package/dist/core/tools/todos-types.js +1 -11
  1167. package/dist/core/tools/todos-types.js.map +1 -1
  1168. package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
  1169. package/dist/core/tools/tool-definition-wrapper.js +2 -6
  1170. package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
  1171. package/dist/core/tools/url-ip-guards.d.ts.map +1 -1
  1172. package/dist/core/tools/url-ip-guards.js +27 -17
  1173. package/dist/core/tools/url-ip-guards.js.map +1 -1
  1174. package/dist/core/tools/write.d.ts.map +1 -1
  1175. package/dist/core/tools/write.js +88 -29
  1176. package/dist/core/tools/write.js.map +1 -1
  1177. package/dist/core/usage-totals.d.ts.map +1 -1
  1178. package/dist/core/usage-totals.js +5 -2
  1179. package/dist/core/usage-totals.js.map +1 -1
  1180. package/dist/core/workflow-stage-admission.d.ts.map +1 -1
  1181. package/dist/core/workflow-stage-admission.js +8 -2
  1182. package/dist/core/workflow-stage-admission.js.map +1 -1
  1183. package/dist/extensions/llama/index.js +1 -1
  1184. package/dist/extensions/llama/index.js.map +1 -1
  1185. package/dist/extensions/llama/provider.d.ts +2 -4
  1186. package/dist/extensions/llama/provider.d.ts.map +1 -1
  1187. package/dist/extensions/llama/provider.js +26 -18
  1188. package/dist/extensions/llama/provider.js.map +1 -1
  1189. package/dist/extensions/llama/ui.d.ts.map +1 -1
  1190. package/dist/extensions/llama/ui.js.map +1 -1
  1191. package/dist/index-extensions.d.ts +2 -2
  1192. package/dist/index-extensions.d.ts.map +1 -1
  1193. package/dist/index-extensions.js +1 -1
  1194. package/dist/index-extensions.js.map +1 -1
  1195. package/dist/index.d.ts +21 -22
  1196. package/dist/index.d.ts.map +1 -1
  1197. package/dist/index.js +25 -26
  1198. package/dist/index.js.map +1 -1
  1199. package/dist/main-deferred-startup.d.ts +1 -1
  1200. package/dist/main-deferred-startup.d.ts.map +1 -1
  1201. package/dist/main-deferred-startup.js +16 -15
  1202. package/dist/main-deferred-startup.js.map +1 -1
  1203. package/dist/main-early-input.js.map +1 -1
  1204. package/dist/main-first-time-setup.d.ts +1 -1
  1205. package/dist/main-first-time-setup.d.ts.map +1 -1
  1206. package/dist/main-first-time-setup.js.map +1 -1
  1207. package/dist/main-runtime-api-key.d.ts +6 -0
  1208. package/dist/main-runtime-api-key.d.ts.map +1 -0
  1209. package/dist/main-runtime-api-key.js +6 -0
  1210. package/dist/main-runtime-api-key.js.map +1 -0
  1211. package/dist/main-session-options.d.ts +2 -2
  1212. package/dist/main-session-options.d.ts.map +1 -1
  1213. package/dist/main-session-options.js +3 -3
  1214. package/dist/main-session-options.js.map +1 -1
  1215. package/dist/main-session.d.ts.map +1 -1
  1216. package/dist/main-session.js +4 -4
  1217. package/dist/main-session.js.map +1 -1
  1218. package/dist/main.d.ts +1 -1
  1219. package/dist/main.d.ts.map +1 -1
  1220. package/dist/main.js +152 -49
  1221. package/dist/main.js.map +1 -1
  1222. package/dist/migrations-config-values.d.ts.map +1 -1
  1223. package/dist/migrations-config-values.js +3 -1
  1224. package/dist/migrations-config-values.js.map +1 -1
  1225. package/dist/migrations.d.ts.map +1 -1
  1226. package/dist/migrations.js.map +1 -1
  1227. package/dist/modes/interactive/chat-input-actions.d.ts.map +1 -1
  1228. package/dist/modes/interactive/chat-input-actions.js +3 -6
  1229. package/dist/modes/interactive/chat-input-actions.js.map +1 -1
  1230. package/dist/modes/interactive/components/atomic-banner.d.ts.map +1 -1
  1231. package/dist/modes/interactive/components/atomic-banner.js +7 -5
  1232. package/dist/modes/interactive/components/atomic-banner.js.map +1 -1
  1233. package/dist/modes/interactive/components/atomic-working-status.d.ts.map +1 -1
  1234. package/dist/modes/interactive/components/atomic-working-status.js +26 -13
  1235. package/dist/modes/interactive/components/atomic-working-status.js.map +1 -1
  1236. package/dist/modes/interactive/components/chat-message-renderer.d.ts +1 -1
  1237. package/dist/modes/interactive/components/chat-message-renderer.d.ts.map +1 -1
  1238. package/dist/modes/interactive/components/chat-message-renderer.js +6 -5
  1239. package/dist/modes/interactive/components/chat-message-renderer.js.map +1 -1
  1240. package/dist/modes/interactive/components/chat-session-host-actions.d.ts +3 -2
  1241. package/dist/modes/interactive/components/chat-session-host-actions.d.ts.map +1 -1
  1242. package/dist/modes/interactive/components/chat-session-host-actions.js +14 -18
  1243. package/dist/modes/interactive/components/chat-session-host-actions.js.map +1 -1
  1244. package/dist/modes/interactive/components/chat-session-host-editor.d.ts +4 -4
  1245. package/dist/modes/interactive/components/chat-session-host-editor.d.ts.map +1 -1
  1246. package/dist/modes/interactive/components/chat-session-host-editor.js +9 -4
  1247. package/dist/modes/interactive/components/chat-session-host-editor.js.map +1 -1
  1248. package/dist/modes/interactive/components/chat-session-host-events.d.ts.map +1 -1
  1249. package/dist/modes/interactive/components/chat-session-host-events.js +9 -8
  1250. package/dist/modes/interactive/components/chat-session-host-events.js.map +1 -1
  1251. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts +1 -1
  1252. package/dist/modes/interactive/components/chat-session-host-rendering.d.ts.map +1 -1
  1253. package/dist/modes/interactive/components/chat-session-host-rendering.js +22 -7
  1254. package/dist/modes/interactive/components/chat-session-host-rendering.js.map +1 -1
  1255. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts +9 -2
  1256. package/dist/modes/interactive/components/chat-session-host-runtime.d.ts.map +1 -1
  1257. package/dist/modes/interactive/components/chat-session-host-runtime.js +15 -13
  1258. package/dist/modes/interactive/components/chat-session-host-runtime.js.map +1 -1
  1259. package/dist/modes/interactive/components/chat-session-host-state.d.ts +2 -2
  1260. package/dist/modes/interactive/components/chat-session-host-state.d.ts.map +1 -1
  1261. package/dist/modes/interactive/components/chat-session-host-state.js.map +1 -1
  1262. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.d.ts.map +1 -1
  1263. package/dist/modes/interactive/components/chat-session-host-terminal-cleanup.js.map +1 -1
  1264. package/dist/modes/interactive/components/chat-session-host-types.d.ts +9 -2
  1265. package/dist/modes/interactive/components/chat-session-host-types.d.ts.map +1 -1
  1266. package/dist/modes/interactive/components/chat-session-host-types.js.map +1 -1
  1267. package/dist/modes/interactive/components/chat-session-host-utils.d.ts +1 -1
  1268. package/dist/modes/interactive/components/chat-session-host-utils.d.ts.map +1 -1
  1269. package/dist/modes/interactive/components/chat-session-host-utils.js +3 -8
  1270. package/dist/modes/interactive/components/chat-session-host-utils.js.map +1 -1
  1271. package/dist/modes/interactive/components/chat-session-host.d.ts +4 -4
  1272. package/dist/modes/interactive/components/chat-session-host.d.ts.map +1 -1
  1273. package/dist/modes/interactive/components/chat-session-host.js +1 -2
  1274. package/dist/modes/interactive/components/chat-session-host.js.map +1 -1
  1275. package/dist/modes/interactive/components/chat-transcript.d.ts +1 -1
  1276. package/dist/modes/interactive/components/chat-transcript.d.ts.map +1 -1
  1277. package/dist/modes/interactive/components/chat-transcript.js +5 -12
  1278. package/dist/modes/interactive/components/chat-transcript.js.map +1 -1
  1279. package/dist/modes/interactive/components/compaction-boundary-message.d.ts.map +1 -1
  1280. package/dist/modes/interactive/components/compaction-boundary-message.js +18 -7
  1281. package/dist/modes/interactive/components/compaction-boundary-message.js.map +1 -1
  1282. package/dist/modes/interactive/components/config-selector-list.d.ts.map +1 -1
  1283. package/dist/modes/interactive/components/config-selector-list.js +4 -2
  1284. package/dist/modes/interactive/components/config-selector-list.js.map +1 -1
  1285. package/dist/modes/interactive/components/config-selector-project-scope.d.ts.map +1 -1
  1286. package/dist/modes/interactive/components/config-selector-project-scope.js +2 -4
  1287. package/dist/modes/interactive/components/config-selector-project-scope.js.map +1 -1
  1288. package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
  1289. package/dist/modes/interactive/components/config-selector.js +15 -6
  1290. package/dist/modes/interactive/components/config-selector.js.map +1 -1
  1291. package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
  1292. package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
  1293. package/dist/modes/interactive/components/custom-editor.d.ts +11 -0
  1294. package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
  1295. package/dist/modes/interactive/components/custom-editor.js +21 -5
  1296. package/dist/modes/interactive/components/custom-editor.js.map +1 -1
  1297. package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
  1298. package/dist/modes/interactive/components/custom-entry.js.map +1 -1
  1299. package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
  1300. package/dist/modes/interactive/components/custom-message.js +1 -3
  1301. package/dist/modes/interactive/components/custom-message.js.map +1 -1
  1302. package/dist/modes/interactive/components/diff.js +2 -2
  1303. package/dist/modes/interactive/components/diff.js.map +1 -1
  1304. package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
  1305. package/dist/modes/interactive/components/extension-editor.js +1 -1
  1306. package/dist/modes/interactive/components/extension-editor.js.map +1 -1
  1307. package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
  1308. package/dist/modes/interactive/components/first-time-setup.js +15 -4
  1309. package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
  1310. package/dist/modes/interactive/components/footer.d.ts.map +1 -1
  1311. package/dist/modes/interactive/components/footer.js +17 -16
  1312. package/dist/modes/interactive/components/footer.js.map +1 -1
  1313. package/dist/modes/interactive/components/host-input-form-mount.d.ts.map +1 -1
  1314. package/dist/modes/interactive/components/host-input-form-mount.js +4 -2
  1315. package/dist/modes/interactive/components/host-input-form-mount.js.map +1 -1
  1316. package/dist/modes/interactive/components/host-input-form.d.ts.map +1 -1
  1317. package/dist/modes/interactive/components/host-input-form.js +55 -21
  1318. package/dist/modes/interactive/components/host-input-form.js.map +1 -1
  1319. package/dist/modes/interactive/components/host-session-picker.d.ts.map +1 -1
  1320. package/dist/modes/interactive/components/host-session-picker.js +8 -3
  1321. package/dist/modes/interactive/components/host-session-picker.js.map +1 -1
  1322. package/dist/modes/interactive/components/index.d.ts +7 -7
  1323. package/dist/modes/interactive/components/index.d.ts.map +1 -1
  1324. package/dist/modes/interactive/components/index.js +4 -4
  1325. package/dist/modes/interactive/components/index.js.map +1 -1
  1326. package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
  1327. package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
  1328. package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
  1329. package/dist/modes/interactive/components/login-dialog.js +1 -3
  1330. package/dist/modes/interactive/components/login-dialog.js.map +1 -1
  1331. package/dist/modes/interactive/components/model-selector.d.ts +4 -3
  1332. package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
  1333. package/dist/modes/interactive/components/model-selector.js +60 -74
  1334. package/dist/modes/interactive/components/model-selector.js.map +1 -1
  1335. package/dist/modes/interactive/components/oauth-selector.d.ts +4 -3
  1336. package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
  1337. package/dist/modes/interactive/components/oauth-selector.js +10 -13
  1338. package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
  1339. package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
  1340. package/dist/modes/interactive/components/scoped-models-selector.js +5 -1
  1341. package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
  1342. package/dist/modes/interactive/components/session-selector-list.d.ts +1 -1
  1343. package/dist/modes/interactive/components/session-selector-list.d.ts.map +1 -1
  1344. package/dist/modes/interactive/components/session-selector-list.js.map +1 -1
  1345. package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
  1346. package/dist/modes/interactive/components/session-selector.js.map +1 -1
  1347. package/dist/modes/interactive/components/settings-selector-handlers.d.ts.map +1 -1
  1348. package/dist/modes/interactive/components/settings-selector-handlers.js.map +1 -1
  1349. package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
  1350. package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
  1351. package/dist/modes/interactive/components/startup-identity.d.ts.map +1 -1
  1352. package/dist/modes/interactive/components/startup-identity.js.map +1 -1
  1353. package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
  1354. package/dist/modes/interactive/components/tool-execution.js.map +1 -1
  1355. package/dist/modes/interactive/components/tree-selector-model.js +1 -9
  1356. package/dist/modes/interactive/components/tree-selector-model.js.map +1 -1
  1357. package/dist/modes/interactive/components/tree-selector-viewport.d.ts.map +1 -1
  1358. package/dist/modes/interactive/components/tree-selector-viewport.js.map +1 -1
  1359. package/dist/modes/interactive/components/working-status.d.ts.map +1 -1
  1360. package/dist/modes/interactive/components/working-status.js +1 -1
  1361. package/dist/modes/interactive/components/working-status.js.map +1 -1
  1362. package/dist/modes/interactive/external-editor.d.ts.map +1 -1
  1363. package/dist/modes/interactive/external-editor.js.map +1 -1
  1364. package/dist/modes/interactive/interactive-agent-events.js +20 -13
  1365. package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
  1366. package/dist/modes/interactive/interactive-auth-login.js +24 -35
  1367. package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
  1368. package/dist/modes/interactive/interactive-auth-routing.d.ts +1 -1
  1369. package/dist/modes/interactive/interactive-auth-routing.d.ts.map +1 -1
  1370. package/dist/modes/interactive/interactive-auth-routing.js +22 -51
  1371. package/dist/modes/interactive/interactive-auth-routing.js.map +1 -1
  1372. package/dist/modes/interactive/interactive-autocomplete.js +7 -13
  1373. package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
  1374. package/dist/modes/interactive/interactive-bash-compact.d.ts.map +1 -1
  1375. package/dist/modes/interactive/interactive-bash-compact.js +18 -8
  1376. package/dist/modes/interactive/interactive-bash-compact.js.map +1 -1
  1377. package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
  1378. package/dist/modes/interactive/interactive-deferred-startup.js +14 -10
  1379. package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
  1380. package/dist/modes/interactive/interactive-editor-actions.js +6 -11
  1381. package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
  1382. package/dist/modes/interactive/interactive-extension-context.js +4 -4
  1383. package/dist/modes/interactive/interactive-extension-context.js.map +1 -1
  1384. package/dist/modes/interactive/interactive-extension-custom-ui.js +15 -8
  1385. package/dist/modes/interactive/interactive-extension-custom-ui.js.map +1 -1
  1386. package/dist/modes/interactive/interactive-extension-dialogs.js +50 -24
  1387. package/dist/modes/interactive/interactive-extension-dialogs.js.map +1 -1
  1388. package/dist/modes/interactive/interactive-extension-runtime.js +11 -7
  1389. package/dist/modes/interactive/interactive-extension-runtime.js.map +1 -1
  1390. package/dist/modes/interactive/interactive-extension-widgets.js +1 -1
  1391. package/dist/modes/interactive/interactive-extension-widgets.js.map +1 -1
  1392. package/dist/modes/interactive/interactive-global-clear.d.ts +45 -1
  1393. package/dist/modes/interactive/interactive-global-clear.d.ts.map +1 -1
  1394. package/dist/modes/interactive/interactive-global-clear.js +60 -4
  1395. package/dist/modes/interactive/interactive-global-clear.js.map +1 -1
  1396. package/dist/modes/interactive/interactive-hotkeys-debug.js +2 -3
  1397. package/dist/modes/interactive/interactive-hotkeys-debug.js.map +1 -1
  1398. package/dist/modes/interactive/interactive-input-handling.d.ts.map +1 -1
  1399. package/dist/modes/interactive/interactive-input-handling.js +55 -20
  1400. package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
  1401. package/dist/modes/interactive/interactive-key-identity.d.ts +22 -0
  1402. package/dist/modes/interactive/interactive-key-identity.d.ts.map +1 -0
  1403. package/dist/modes/interactive/interactive-key-identity.js +29 -0
  1404. package/dist/modes/interactive/interactive-key-identity.js.map +1 -0
  1405. package/dist/modes/interactive/interactive-mode-base.d.ts +7 -6
  1406. package/dist/modes/interactive/interactive-mode-base.d.ts.map +1 -1
  1407. package/dist/modes/interactive/interactive-mode-base.js +12 -12
  1408. package/dist/modes/interactive/interactive-mode-base.js.map +1 -1
  1409. package/dist/modes/interactive/interactive-mode-deps.d.ts +20 -20
  1410. package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
  1411. package/dist/modes/interactive/interactive-mode-deps.js +16 -16
  1412. package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
  1413. package/dist/modes/interactive/interactive-mode-helpers.d.ts +1 -1
  1414. package/dist/modes/interactive/interactive-mode-helpers.d.ts.map +1 -1
  1415. package/dist/modes/interactive/interactive-mode-helpers.js +3 -9
  1416. package/dist/modes/interactive/interactive-mode-helpers.js.map +1 -1
  1417. package/dist/modes/interactive/interactive-mode-surface.d.ts +8 -7
  1418. package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
  1419. package/dist/modes/interactive/interactive-mode-surface.js +1 -0
  1420. package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
  1421. package/dist/modes/interactive/interactive-mode-types.d.ts +2 -2
  1422. package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
  1423. package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
  1424. package/dist/modes/interactive/interactive-model-catalog-startup.d.ts.map +1 -1
  1425. package/dist/modes/interactive/interactive-model-catalog-startup.js +3 -2
  1426. package/dist/modes/interactive/interactive-model-catalog-startup.js.map +1 -1
  1427. package/dist/modes/interactive/interactive-model-routing.js +17 -17
  1428. package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
  1429. package/dist/modes/interactive/interactive-onboarding.js +7 -7
  1430. package/dist/modes/interactive/interactive-onboarding.js.map +1 -1
  1431. package/dist/modes/interactive/interactive-pause.js.map +1 -1
  1432. package/dist/modes/interactive/interactive-process-lifecycle.js +38 -8
  1433. package/dist/modes/interactive/interactive-process-lifecycle.js.map +1 -1
  1434. package/dist/modes/interactive/interactive-prompt-restore.d.ts +58 -0
  1435. package/dist/modes/interactive/interactive-prompt-restore.d.ts.map +1 -0
  1436. package/dist/modes/interactive/interactive-prompt-restore.js +87 -0
  1437. package/dist/modes/interactive/interactive-prompt-restore.js.map +1 -0
  1438. package/dist/modes/interactive/interactive-prompt-turn.js +18 -3
  1439. package/dist/modes/interactive/interactive-prompt-turn.js.map +1 -1
  1440. package/dist/modes/interactive/interactive-queueing.js +3 -7
  1441. package/dist/modes/interactive/interactive-queueing.js.map +1 -1
  1442. package/dist/modes/interactive/interactive-render-chat.js +47 -36
  1443. package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
  1444. package/dist/modes/interactive/interactive-resource-disclosure.js +1 -3
  1445. package/dist/modes/interactive/interactive-resource-disclosure.js.map +1 -1
  1446. package/dist/modes/interactive/interactive-resource-paths.js +6 -19
  1447. package/dist/modes/interactive/interactive-resource-paths.js.map +1 -1
  1448. package/dist/modes/interactive/interactive-resource-rendering.js +15 -16
  1449. package/dist/modes/interactive/interactive-resource-rendering.js.map +1 -1
  1450. package/dist/modes/interactive/interactive-selectors.js +3 -5
  1451. package/dist/modes/interactive/interactive-selectors.js.map +1 -1
  1452. package/dist/modes/interactive/interactive-session-routing.js +16 -4
  1453. package/dist/modes/interactive/interactive-session-routing.js.map +1 -1
  1454. package/dist/modes/interactive/interactive-session-runtime.js +11 -0
  1455. package/dist/modes/interactive/interactive-session-runtime.js.map +1 -1
  1456. package/dist/modes/interactive/interactive-slash-commands.js +12 -7
  1457. package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
  1458. package/dist/modes/interactive/interactive-startup.d.ts.map +1 -1
  1459. package/dist/modes/interactive/interactive-startup.js +10 -12
  1460. package/dist/modes/interactive/interactive-startup.js.map +1 -1
  1461. package/dist/modes/interactive/interactive-submission.d.ts +24 -0
  1462. package/dist/modes/interactive/interactive-submission.d.ts.map +1 -0
  1463. package/dist/modes/interactive/interactive-submission.js +10 -0
  1464. package/dist/modes/interactive/interactive-submission.js.map +1 -0
  1465. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts +1 -1
  1466. package/dist/modes/interactive/interactive-summarization-retry-events.d.ts.map +1 -1
  1467. package/dist/modes/interactive/interactive-summarization-retry-events.js +4 -2
  1468. package/dist/modes/interactive/interactive-summarization-retry-events.js.map +1 -1
  1469. package/dist/modes/interactive/login-provider-options.d.ts.map +1 -1
  1470. package/dist/modes/interactive/login-provider-options.js +1 -2
  1471. package/dist/modes/interactive/login-provider-options.js.map +1 -1
  1472. package/dist/modes/interactive/theme/global-theme.d.ts +1 -1
  1473. package/dist/modes/interactive/theme/global-theme.d.ts.map +1 -1
  1474. package/dist/modes/interactive/theme/global-theme.js.map +1 -1
  1475. package/dist/modes/interactive/theme/theme-class.d.ts.map +1 -1
  1476. package/dist/modes/interactive/theme/theme-class.js.map +1 -1
  1477. package/dist/modes/interactive/theme/theme-loading.d.ts.map +1 -1
  1478. package/dist/modes/interactive/theme/theme-loading.js +1 -1
  1479. package/dist/modes/interactive/theme/theme-loading.js.map +1 -1
  1480. package/dist/modes/interactive/theme/theme-schema.d.ts.map +1 -1
  1481. package/dist/modes/interactive/theme/theme-schema.js.map +1 -1
  1482. package/dist/modes/interactive/theme/theme.d.ts +2 -2
  1483. package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
  1484. package/dist/modes/interactive/theme/theme.js +2 -2
  1485. package/dist/modes/interactive/theme/theme.js.map +1 -1
  1486. package/dist/modes/interactive/whimsical-messages.d.ts.map +1 -1
  1487. package/dist/modes/interactive/whimsical-messages.js.map +1 -1
  1488. package/dist/modes/interactive-engine/activity-watchdog.d.ts +16 -6
  1489. package/dist/modes/interactive-engine/activity-watchdog.d.ts.map +1 -1
  1490. package/dist/modes/interactive-engine/activity-watchdog.js +12 -6
  1491. package/dist/modes/interactive-engine/activity-watchdog.js.map +1 -1
  1492. package/dist/modes/interactive-engine/create-isolated-runtime.d.ts.map +1 -1
  1493. package/dist/modes/interactive-engine/create-isolated-runtime.js +5 -4
  1494. package/dist/modes/interactive-engine/create-isolated-runtime.js.map +1 -1
  1495. package/dist/modes/interactive-engine/engine-child-liveness.d.ts.map +1 -1
  1496. package/dist/modes/interactive-engine/engine-child-liveness.js +6 -4
  1497. package/dist/modes/interactive-engine/engine-child-liveness.js.map +1 -1
  1498. package/dist/modes/interactive-engine/engine-custom-ui.d.ts +3 -2
  1499. package/dist/modes/interactive-engine/engine-custom-ui.d.ts.map +1 -1
  1500. package/dist/modes/interactive-engine/engine-custom-ui.js +32 -11
  1501. package/dist/modes/interactive-engine/engine-custom-ui.js.map +1 -1
  1502. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts +16 -0
  1503. package/dist/modes/interactive-engine/engine-diagnostic-view.d.ts.map +1 -0
  1504. package/dist/modes/interactive-engine/engine-diagnostic-view.js +19 -0
  1505. package/dist/modes/interactive-engine/engine-diagnostic-view.js.map +1 -0
  1506. package/dist/modes/interactive-engine/engine-dialog-host.d.ts +33 -0
  1507. package/dist/modes/interactive-engine/engine-dialog-host.d.ts.map +1 -0
  1508. package/dist/modes/interactive-engine/engine-dialog-host.js +129 -0
  1509. package/dist/modes/interactive-engine/engine-dialog-host.js.map +1 -0
  1510. package/dist/modes/interactive-engine/engine-generation.d.ts +29 -0
  1511. package/dist/modes/interactive-engine/engine-generation.d.ts.map +1 -0
  1512. package/dist/modes/interactive-engine/engine-generation.js +11 -0
  1513. package/dist/modes/interactive-engine/engine-generation.js.map +1 -0
  1514. package/dist/modes/interactive-engine/engine-health.d.ts +101 -0
  1515. package/dist/modes/interactive-engine/engine-health.d.ts.map +1 -0
  1516. package/dist/modes/interactive-engine/engine-health.js +236 -0
  1517. package/dist/modes/interactive-engine/engine-health.js.map +1 -0
  1518. package/dist/modes/interactive-engine/engine-input-form.d.ts.map +1 -1
  1519. package/dist/modes/interactive-engine/engine-input-form.js +12 -3
  1520. package/dist/modes/interactive-engine/engine-input-form.js.map +1 -1
  1521. package/dist/modes/interactive-engine/engine-monitor.d.ts.map +1 -1
  1522. package/dist/modes/interactive-engine/engine-monitor.js +7 -2
  1523. package/dist/modes/interactive-engine/engine-monitor.js.map +1 -1
  1524. package/dist/modes/interactive-engine/engine-render-service.d.ts.map +1 -1
  1525. package/dist/modes/interactive-engine/engine-render-service.js +11 -5
  1526. package/dist/modes/interactive-engine/engine-render-service.js.map +1 -1
  1527. package/dist/modes/interactive-engine/engine-session-picker.d.ts.map +1 -1
  1528. package/dist/modes/interactive-engine/engine-session-picker.js +4 -2
  1529. package/dist/modes/interactive-engine/engine-session-picker.js.map +1 -1
  1530. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts +14 -3
  1531. package/dist/modes/interactive-engine/extension-ui-bridge.d.ts.map +1 -1
  1532. package/dist/modes/interactive-engine/extension-ui-bridge.js +32 -45
  1533. package/dist/modes/interactive-engine/extension-ui-bridge.js.map +1 -1
  1534. package/dist/modes/interactive-engine/input-form-host.d.ts +1 -0
  1535. package/dist/modes/interactive-engine/input-form-host.d.ts.map +1 -1
  1536. package/dist/modes/interactive-engine/input-form-host.js +12 -2
  1537. package/dist/modes/interactive-engine/input-form-host.js.map +1 -1
  1538. package/dist/modes/interactive-engine/isolated-auth.d.ts +2 -2
  1539. package/dist/modes/interactive-engine/isolated-auth.d.ts.map +1 -1
  1540. package/dist/modes/interactive-engine/isolated-auth.js +4 -3
  1541. package/dist/modes/interactive-engine/isolated-auth.js.map +1 -1
  1542. package/dist/modes/interactive-engine/isolated-runtime.d.ts +32 -6
  1543. package/dist/modes/interactive-engine/isolated-runtime.d.ts.map +1 -1
  1544. package/dist/modes/interactive-engine/isolated-runtime.js +126 -62
  1545. package/dist/modes/interactive-engine/isolated-runtime.js.map +1 -1
  1546. package/dist/modes/interactive-engine/protocol.d.ts +20 -1
  1547. package/dist/modes/interactive-engine/protocol.d.ts.map +1 -1
  1548. package/dist/modes/interactive-engine/protocol.js +183 -55
  1549. package/dist/modes/interactive-engine/protocol.js.map +1 -1
  1550. package/dist/modes/interactive-engine/remote-component.d.ts +38 -0
  1551. package/dist/modes/interactive-engine/remote-component.d.ts.map +1 -1
  1552. package/dist/modes/interactive-engine/remote-component.js +111 -22
  1553. package/dist/modes/interactive-engine/remote-component.js.map +1 -1
  1554. package/dist/modes/interactive-engine/remote-input-ownership.d.ts +48 -0
  1555. package/dist/modes/interactive-engine/remote-input-ownership.d.ts.map +1 -0
  1556. package/dist/modes/interactive-engine/remote-input-ownership.js +42 -0
  1557. package/dist/modes/interactive-engine/remote-input-ownership.js.map +1 -0
  1558. package/dist/modes/interactive-engine/remote-model-catalog.d.ts +0 -1
  1559. package/dist/modes/interactive-engine/remote-model-catalog.d.ts.map +1 -1
  1560. package/dist/modes/interactive-engine/remote-model-catalog.js +14 -47
  1561. package/dist/modes/interactive-engine/remote-model-catalog.js.map +1 -1
  1562. package/dist/modes/interactive-engine/remote-queue-pause.d.ts.map +1 -1
  1563. package/dist/modes/interactive-engine/remote-queue-pause.js.map +1 -1
  1564. package/dist/modes/interactive-engine/remote-renderer.d.ts.map +1 -1
  1565. package/dist/modes/interactive-engine/remote-renderer.js +38 -10
  1566. package/dist/modes/interactive-engine/remote-renderer.js.map +1 -1
  1567. package/dist/modes/interactive-engine/session-picker-host.d.ts +1 -0
  1568. package/dist/modes/interactive-engine/session-picker-host.d.ts.map +1 -1
  1569. package/dist/modes/interactive-engine/session-picker-host.js +4 -0
  1570. package/dist/modes/interactive-engine/session-picker-host.js.map +1 -1
  1571. package/dist/modes/print-mode.d.ts.map +1 -1
  1572. package/dist/modes/print-mode.js.map +1 -1
  1573. package/dist/modes/rpc/jsonl.d.ts +7 -0
  1574. package/dist/modes/rpc/jsonl.d.ts.map +1 -1
  1575. package/dist/modes/rpc/jsonl.js +17 -1
  1576. package/dist/modes/rpc/jsonl.js.map +1 -1
  1577. package/dist/modes/rpc/queued-writer.d.ts +14 -0
  1578. package/dist/modes/rpc/queued-writer.d.ts.map +1 -1
  1579. package/dist/modes/rpc/queued-writer.js +33 -9
  1580. package/dist/modes/rpc/queued-writer.js.map +1 -1
  1581. package/dist/modes/rpc/rpc-bash-request-owners.js +1 -1
  1582. package/dist/modes/rpc/rpc-bash-request-owners.js.map +1 -1
  1583. package/dist/modes/rpc/rpc-client-api.d.ts +4 -4
  1584. package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
  1585. package/dist/modes/rpc/rpc-client-api.js +63 -22
  1586. package/dist/modes/rpc/rpc-client-api.js.map +1 -1
  1587. package/dist/modes/rpc/rpc-client-process.d.ts +10 -0
  1588. package/dist/modes/rpc/rpc-client-process.d.ts.map +1 -1
  1589. package/dist/modes/rpc/rpc-client-process.js +72 -15
  1590. package/dist/modes/rpc/rpc-client-process.js.map +1 -1
  1591. package/dist/modes/rpc/rpc-client-waits.d.ts +17 -1
  1592. package/dist/modes/rpc/rpc-client-waits.d.ts.map +1 -1
  1593. package/dist/modes/rpc/rpc-client-waits.js +25 -0
  1594. package/dist/modes/rpc/rpc-client-waits.js.map +1 -1
  1595. package/dist/modes/rpc/rpc-client.d.ts +61 -6
  1596. package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
  1597. package/dist/modes/rpc/rpc-client.js +200 -145
  1598. package/dist/modes/rpc/rpc-client.js.map +1 -1
  1599. package/dist/modes/rpc/rpc-command-handler.d.ts +2 -2
  1600. package/dist/modes/rpc/rpc-command-handler.d.ts.map +1 -1
  1601. package/dist/modes/rpc/rpc-command-handler.js +61 -32
  1602. package/dist/modes/rpc/rpc-command-handler.js.map +1 -1
  1603. package/dist/modes/rpc/rpc-command-timeouts.d.ts +30 -0
  1604. package/dist/modes/rpc/rpc-command-timeouts.d.ts.map +1 -0
  1605. package/dist/modes/rpc/rpc-command-timeouts.js +52 -0
  1606. package/dist/modes/rpc/rpc-command-timeouts.js.map +1 -0
  1607. package/dist/modes/rpc/rpc-event-buffer.d.ts.map +1 -1
  1608. package/dist/modes/rpc/rpc-event-buffer.js +3 -1
  1609. package/dist/modes/rpc/rpc-event-buffer.js.map +1 -1
  1610. package/dist/modes/rpc/rpc-extension-ui.d.ts +1 -1
  1611. package/dist/modes/rpc/rpc-extension-ui.d.ts.map +1 -1
  1612. package/dist/modes/rpc/rpc-extension-ui.js +44 -16
  1613. package/dist/modes/rpc/rpc-extension-ui.js.map +1 -1
  1614. package/dist/modes/rpc/rpc-generation-buffer.d.ts +21 -0
  1615. package/dist/modes/rpc/rpc-generation-buffer.d.ts.map +1 -0
  1616. package/dist/modes/rpc/rpc-generation-buffer.js +35 -0
  1617. package/dist/modes/rpc/rpc-generation-buffer.js.map +1 -0
  1618. package/dist/modes/rpc/rpc-input-scheduler.d.ts.map +1 -1
  1619. package/dist/modes/rpc/rpc-input-scheduler.js +13 -6
  1620. package/dist/modes/rpc/rpc-input-scheduler.js.map +1 -1
  1621. package/dist/modes/rpc/rpc-input.d.ts +7 -1
  1622. package/dist/modes/rpc/rpc-input.d.ts.map +1 -1
  1623. package/dist/modes/rpc/rpc-input.js +14 -4
  1624. package/dist/modes/rpc/rpc-input.js.map +1 -1
  1625. package/dist/modes/rpc/rpc-keybindings-reload.d.ts.map +1 -1
  1626. package/dist/modes/rpc/rpc-keybindings-reload.js.map +1 -1
  1627. package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
  1628. package/dist/modes/rpc/rpc-mode.js +17 -18
  1629. package/dist/modes/rpc/rpc-mode.js.map +1 -1
  1630. package/dist/modes/rpc/rpc-oauth-client.d.ts +2 -3
  1631. package/dist/modes/rpc/rpc-oauth-client.d.ts.map +1 -1
  1632. package/dist/modes/rpc/rpc-oauth-client.js +12 -5
  1633. package/dist/modes/rpc/rpc-oauth-client.js.map +1 -1
  1634. package/dist/modes/rpc/rpc-oauth-interaction.d.ts +1 -1
  1635. package/dist/modes/rpc/rpc-oauth-interaction.d.ts.map +1 -1
  1636. package/dist/modes/rpc/rpc-oauth-interaction.js +1 -1
  1637. package/dist/modes/rpc/rpc-oauth-interaction.js.map +1 -1
  1638. package/dist/modes/rpc/rpc-output-buffer.d.ts.map +1 -1
  1639. package/dist/modes/rpc/rpc-output-buffer.js +3 -1
  1640. package/dist/modes/rpc/rpc-output-buffer.js.map +1 -1
  1641. package/dist/modes/rpc/rpc-pending-requests.d.ts +37 -0
  1642. package/dist/modes/rpc/rpc-pending-requests.d.ts.map +1 -0
  1643. package/dist/modes/rpc/rpc-pending-requests.js +57 -0
  1644. package/dist/modes/rpc/rpc-pending-requests.js.map +1 -0
  1645. package/dist/modes/rpc/rpc-provider-auth.d.ts +4 -5
  1646. package/dist/modes/rpc/rpc-provider-auth.d.ts.map +1 -1
  1647. package/dist/modes/rpc/rpc-provider-auth.js +29 -57
  1648. package/dist/modes/rpc/rpc-provider-auth.js.map +1 -1
  1649. package/dist/modes/rpc/rpc-responses.js.map +1 -1
  1650. package/dist/modes/rpc/rpc-session-binding.d.ts +1 -1
  1651. package/dist/modes/rpc/rpc-session-binding.d.ts.map +1 -1
  1652. package/dist/modes/rpc/rpc-session-binding.js +8 -3
  1653. package/dist/modes/rpc/rpc-session-binding.js.map +1 -1
  1654. package/dist/modes/rpc/rpc-terminal-drain.d.ts +52 -0
  1655. package/dist/modes/rpc/rpc-terminal-drain.d.ts.map +1 -0
  1656. package/dist/modes/rpc/rpc-terminal-drain.js +85 -0
  1657. package/dist/modes/rpc/rpc-terminal-drain.js.map +1 -0
  1658. package/dist/modes/rpc/rpc-transport-error.d.ts +49 -0
  1659. package/dist/modes/rpc/rpc-transport-error.d.ts.map +1 -0
  1660. package/dist/modes/rpc/rpc-transport-error.js +78 -0
  1661. package/dist/modes/rpc/rpc-transport-error.js.map +1 -0
  1662. package/dist/modes/rpc/rpc-types.d.ts +12 -7
  1663. package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
  1664. package/dist/modes/rpc/rpc-types.js.map +1 -1
  1665. package/dist/package-manager-cli-parser.js.map +1 -1
  1666. package/dist/package-manager-cli.d.ts.map +1 -1
  1667. package/dist/package-manager-cli.js +25 -16
  1668. package/dist/package-manager-cli.js.map +1 -1
  1669. package/dist/utils/child-process.d.ts.map +1 -1
  1670. package/dist/utils/child-process.js.map +1 -1
  1671. package/dist/utils/clipboard-image.js +1 -1
  1672. package/dist/utils/clipboard-image.js.map +1 -1
  1673. package/dist/utils/clipboard.d.ts.map +1 -1
  1674. package/dist/utils/clipboard.js.map +1 -1
  1675. package/dist/utils/fs-watch.d.ts.map +1 -1
  1676. package/dist/utils/fs-watch.js +1 -3
  1677. package/dist/utils/fs-watch.js.map +1 -1
  1678. package/dist/utils/git.js +1 -1
  1679. package/dist/utils/git.js.map +1 -1
  1680. package/dist/utils/interactive-engine-bootstrap.d.ts +67 -0
  1681. package/dist/utils/interactive-engine-bootstrap.d.ts.map +1 -0
  1682. package/dist/utils/interactive-engine-bootstrap.js +117 -0
  1683. package/dist/utils/interactive-engine-bootstrap.js.map +1 -0
  1684. package/dist/utils/interactive-engine-env.d.ts +41 -0
  1685. package/dist/utils/interactive-engine-env.d.ts.map +1 -0
  1686. package/dist/utils/interactive-engine-env.js +67 -0
  1687. package/dist/utils/interactive-engine-env.js.map +1 -0
  1688. package/dist/utils/markit.d.ts.map +1 -1
  1689. package/dist/utils/markit.js +15 -5
  1690. package/dist/utils/markit.js.map +1 -1
  1691. package/dist/utils/shell.js +2 -2
  1692. package/dist/utils/shell.js.map +1 -1
  1693. package/dist/utils/split-launcher.d.ts.map +1 -1
  1694. package/dist/utils/split-launcher.js +1 -2
  1695. package/dist/utils/split-launcher.js.map +1 -1
  1696. package/dist/utils/tools-manager.d.ts.map +1 -1
  1697. package/dist/utils/tools-manager.js +8 -34
  1698. package/dist/utils/tools-manager.js.map +1 -1
  1699. package/dist/utils/version-check.d.ts.map +1 -1
  1700. package/dist/utils/version-check.js +1 -1
  1701. package/dist/utils/version-check.js.map +1 -1
  1702. package/docs/changelog.mdx +12 -1
  1703. package/docs/custom-provider.md +27 -4
  1704. package/docs/development.md +14 -15
  1705. package/docs/extensions.md +60 -2
  1706. package/docs/keybindings.md +13 -1
  1707. package/docs/models.md +4 -6
  1708. package/docs/providers.md +28 -2
  1709. package/docs/quickstart.md +2 -1
  1710. package/docs/rpc.md +1 -1
  1711. package/docs/sdk.md +32 -49
  1712. package/docs/security.md +15 -0
  1713. package/docs/session-format.md +2 -0
  1714. package/docs/usage.md +34 -0
  1715. package/docs/workflows.md +89 -12
  1716. package/examples/extensions/border-status-editor.ts +1 -6
  1717. package/examples/extensions/custom-compaction.ts +7 -2
  1718. package/examples/extensions/custom-footer.ts +1 -1
  1719. package/examples/extensions/custom-provider-anthropic/index.ts +14 -2
  1720. package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
  1721. package/examples/extensions/gondolin/index.ts +1 -1
  1722. package/examples/extensions/handoff.ts +2 -2
  1723. package/examples/extensions/hello.ts +1 -1
  1724. package/examples/extensions/minimal-mode.ts +6 -6
  1725. package/examples/extensions/overlay-qa-focus-components.ts +0 -1
  1726. package/examples/extensions/overlay-qa-streaming-input-components.ts +2 -2
  1727. package/examples/extensions/overlay-qa-tests.ts +16 -14
  1728. package/examples/extensions/overlay-qa-toggle-passive-components.ts +3 -5
  1729. package/examples/extensions/overlay-test.ts +3 -6
  1730. package/examples/extensions/plan-mode/index.ts +1 -1
  1731. package/examples/extensions/preset.ts +1 -1
  1732. package/examples/extensions/qna.ts +1 -1
  1733. package/examples/extensions/structured-output.ts +9 -9
  1734. package/examples/extensions/subagent/display.ts +115 -127
  1735. package/examples/extensions/subagent/index.ts +310 -349
  1736. package/examples/extensions/subagent/render.ts +244 -345
  1737. package/examples/extensions/subagent/runner.ts +223 -230
  1738. package/examples/extensions/subagent/schemas.ts +39 -46
  1739. package/examples/extensions/subagent/types.ts +22 -22
  1740. package/examples/extensions/summarize.ts +2 -2
  1741. package/examples/extensions/tic-tac-toe.ts +4 -4
  1742. package/examples/extensions/todo.ts +1 -1
  1743. package/examples/extensions/tool-override.ts +1 -1
  1744. package/examples/extensions/trigger-compact.ts +4 -1
  1745. package/examples/extensions/working-indicator.ts +2 -1
  1746. package/examples/rpc-extension-ui-components.ts +1 -2
  1747. package/examples/sdk/02-custom-model.ts +8 -10
  1748. package/examples/sdk/03-custom-prompt.ts +1 -6
  1749. package/examples/sdk/06-extensions.ts +1 -6
  1750. package/examples/sdk/07-context-files.ts +1 -6
  1751. package/examples/sdk/09-api-keys-and-oauth.ts +17 -23
  1752. package/examples/sdk/12-full-control.ts +10 -12
  1753. package/examples/sdk/README.md +17 -21
  1754. package/npm-shrinkwrap.json +300 -303
  1755. package/package.json +11 -11
  1756. package/dist/core/model-registry-auth.d.ts +0 -10
  1757. package/dist/core/model-registry-auth.d.ts.map +0 -1
  1758. package/dist/core/model-registry-auth.js +0 -98
  1759. package/dist/core/model-registry-auth.js.map +0 -1
  1760. package/dist/core/model-registry-builtins.d.ts +0 -8
  1761. package/dist/core/model-registry-builtins.d.ts.map +0 -1
  1762. package/dist/core/model-registry-builtins.js +0 -104
  1763. package/dist/core/model-registry-builtins.js.map +0 -1
  1764. package/dist/core/model-registry-custom-loader.d.ts +0 -3
  1765. package/dist/core/model-registry-custom-loader.d.ts.map +0 -1
  1766. package/dist/core/model-registry-custom-loader.js +0 -255
  1767. package/dist/core/model-registry-custom-loader.js.map +0 -1
  1768. package/dist/core/model-registry-dynamic.d.ts +0 -7
  1769. package/dist/core/model-registry-dynamic.d.ts.map +0 -1
  1770. package/dist/core/model-registry-dynamic.js +0 -189
  1771. package/dist/core/model-registry-dynamic.js.map +0 -1
  1772. package/dist/core/model-registry-extension-refresh.d.ts +0 -23
  1773. package/dist/core/model-registry-extension-refresh.d.ts.map +0 -1
  1774. package/dist/core/model-registry-extension-refresh.js +0 -32
  1775. package/dist/core/model-registry-extension-refresh.js.map +0 -1
  1776. package/dist/core/model-registry-loader.d.ts +0 -5
  1777. package/dist/core/model-registry-loader.d.ts.map +0 -1
  1778. package/dist/core/model-registry-loader.js +0 -29
  1779. package/dist/core/model-registry-loader.js.map +0 -1
  1780. package/dist/core/model-registry-schemas.d.ts +0 -1399
  1781. package/dist/core/model-registry-schemas.d.ts.map +0 -1
  1782. package/dist/core/model-registry-schemas.js.map +0 -1
  1783. package/dist/core/model-registry-types.d.ts +0 -91
  1784. package/dist/core/model-registry-types.d.ts.map +0 -1
  1785. package/dist/core/model-registry-types.js +0 -2
  1786. package/dist/core/model-registry-types.js.map +0 -1
  1787. package/dist/core/model-registry-validation.d.ts +0 -7
  1788. package/dist/core/model-registry-validation.d.ts.map +0 -1
  1789. package/dist/core/model-registry-validation.js +0 -12
  1790. package/dist/core/model-registry-validation.js.map +0 -1
  1791. package/dist/core/oauth-compat.d.ts +0 -17
  1792. package/dist/core/oauth-compat.d.ts.map +0 -1
  1793. package/dist/core/oauth-compat.js +0 -2
  1794. package/dist/core/oauth-compat.js.map +0 -1
  1795. package/dist/core/oauth-provider-bridge.d.ts +0 -63
  1796. package/dist/core/oauth-provider-bridge.d.ts.map +0 -1
  1797. package/dist/core/oauth-provider-bridge.js +0 -232
  1798. package/dist/core/oauth-provider-bridge.js.map +0 -1
@@ -27,12 +27,14 @@ function detect(prev, message, models) {
27
27
  function previous(message, reportedCache) {
28
28
  const usage = message.usage;
29
29
  const promptTokens = usage.input + usage.cacheRead + usage.cacheWrite;
30
- return promptTokens > 0 ? {
31
- promptTokens,
32
- modelKey: `${message.provider}/${message.model}`,
33
- timestamp: message.timestamp,
34
- reportedCache: reportedCache || usage.cacheRead + usage.cacheWrite > 0,
35
- } : undefined;
30
+ return promptTokens > 0
31
+ ? {
32
+ promptTokens,
33
+ modelKey: `${message.provider}/${message.model}`,
34
+ timestamp: message.timestamp,
35
+ reportedCache: reportedCache || usage.cacheRead + usage.cacheWrite > 0,
36
+ }
37
+ : undefined;
36
38
  }
37
39
  function scan(entries, models) {
38
40
  let prev;
@@ -1 +1 @@
1
- {"version":3,"file":"cache-stats.js","sourceRoot":"","sources":["../../src/core/cache-stats.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@earendil-works/pi-ai/compat\";\nimport type { SessionEntry } from \"./session-manager.ts\";\n\nexport const CACHE_TTL_MS = 5 * 60 * 1000;\nconst MISS_TOKEN_THRESHOLD = 20_000;\nconst MISS_COST_THRESHOLD = 0.1;\n\nexport interface CacheMiss {\n\tmissedTokens: number;\n\tmissedCost: number;\n\tidleMs: number;\n\tmodelChanged: boolean;\n}\nexport interface CacheWasteTotals { missedTokens: number; missedCost: number; missCount: number }\nexport interface ModelPriceSource {\n\tgetModel(provider: string, modelId: string): { cost: { cacheRead: number } } | undefined;\n}\ninterface PreviousRequest { promptTokens: number; modelKey: string; timestamp: number; reportedCache: boolean }\n\nfunction detect(prev: PreviousRequest | undefined, message: AssistantMessage, models: ModelPriceSource): CacheMiss | undefined {\n\tconst usage = message.usage;\n\tconst promptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\tif (!prev || promptTokens <= 0 || (usage.cacheRead + usage.cacheWrite === 0 && !prev.reportedCache)) return undefined;\n\tconst missedTokens = Math.min(prev.promptTokens, promptTokens) - usage.cacheRead;\n\tif (missedTokens <= 0) return undefined;\n\tconst paidTokens = usage.input + usage.cacheWrite;\n\tconst paidRate = paidTokens > 0 ? (usage.cost.input + usage.cost.cacheWrite) / paidTokens : 0;\n\tconst readRate = usage.cacheRead > 0\n\t\t? usage.cost.cacheRead / usage.cacheRead\n\t\t: (models.getModel(message.provider, message.model)?.cost.cacheRead ?? 0) / 1_000_000;\n\tconst missedCost = missedTokens * Math.max(0, paidRate - readRate);\n\tif (missedTokens < MISS_TOKEN_THRESHOLD && missedCost < MISS_COST_THRESHOLD) return undefined;\n\treturn {\n\t\tmissedTokens,\n\t\tmissedCost,\n\t\tidleMs: Math.max(0, message.timestamp - prev.timestamp),\n\t\tmodelChanged: `${message.provider}/${message.model}` !== prev.modelKey,\n\t};\n}\n\nfunction previous(message: AssistantMessage, reportedCache: boolean): PreviousRequest | undefined {\n\tconst usage = message.usage;\n\tconst promptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\treturn promptTokens > 0 ? {\n\t\tpromptTokens,\n\t\tmodelKey: `${message.provider}/${message.model}`,\n\t\ttimestamp: message.timestamp,\n\t\treportedCache: reportedCache || usage.cacheRead + usage.cacheWrite > 0,\n\t} : undefined;\n}\n\nfunction scan(entries: SessionEntry[], models: ModelPriceSource) {\n\tlet prev: PreviousRequest | undefined;\n\tconst totals: CacheWasteTotals = { missedTokens: 0, missedCost: 0, missCount: 0 };\n\tconst misses = new Map<AssistantMessage, CacheMiss>();\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") { prev = undefined; continue; }\n\t\tif (entry.type !== \"message\" || entry.message.role !== \"assistant\") continue;\n\t\tconst miss = detect(prev, entry.message, models);\n\t\tif (miss) {\n\t\t\ttotals.missedTokens += miss.missedTokens;\n\t\t\ttotals.missedCost += miss.missedCost;\n\t\t\ttotals.missCount++;\n\t\t\tmisses.set(entry.message, miss);\n\t\t}\n\t\tprev = previous(entry.message, prev?.reportedCache ?? false) ?? prev;\n\t}\n\treturn { prev, totals, misses };\n}\n\nexport function computeCacheWaste(entries: SessionEntry[], models: ModelPriceSource): CacheWasteTotals {\n\treturn scan(entries, models).totals;\n}\nexport function collectCacheMisses(entries: SessionEntry[], models: ModelPriceSource): Map<AssistantMessage, CacheMiss> {\n\treturn scan(entries, models).misses;\n}\nexport function detectCacheMiss(entries: SessionEntry[], message: AssistantMessage, models: ModelPriceSource): CacheMiss | undefined {\n\treturn detect(scan(entries, models).prev, message, models);\n}\n"]}
1
+ {"version":3,"file":"cache-stats.js","sourceRoot":"","sources":["../../src/core/cache-stats.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AssistantMessage } from \"@earendil-works/pi-ai/compat\";\nimport type { SessionEntry } from \"./session-manager.ts\";\n\nexport const CACHE_TTL_MS = 5 * 60 * 1000;\nconst MISS_TOKEN_THRESHOLD = 20_000;\nconst MISS_COST_THRESHOLD = 0.1;\n\nexport interface CacheMiss {\n\tmissedTokens: number;\n\tmissedCost: number;\n\tidleMs: number;\n\tmodelChanged: boolean;\n}\nexport interface CacheWasteTotals {\n\tmissedTokens: number;\n\tmissedCost: number;\n\tmissCount: number;\n}\nexport interface ModelPriceSource {\n\tgetModel(provider: string, modelId: string): { cost: { cacheRead: number } } | undefined;\n}\ninterface PreviousRequest {\n\tpromptTokens: number;\n\tmodelKey: string;\n\ttimestamp: number;\n\treportedCache: boolean;\n}\n\nfunction detect(\n\tprev: PreviousRequest | undefined,\n\tmessage: AssistantMessage,\n\tmodels: ModelPriceSource,\n): CacheMiss | undefined {\n\tconst usage = message.usage;\n\tconst promptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\tif (!prev || promptTokens <= 0 || (usage.cacheRead + usage.cacheWrite === 0 && !prev.reportedCache))\n\t\treturn undefined;\n\tconst missedTokens = Math.min(prev.promptTokens, promptTokens) - usage.cacheRead;\n\tif (missedTokens <= 0) return undefined;\n\tconst paidTokens = usage.input + usage.cacheWrite;\n\tconst paidRate = paidTokens > 0 ? (usage.cost.input + usage.cost.cacheWrite) / paidTokens : 0;\n\tconst readRate =\n\t\tusage.cacheRead > 0\n\t\t\t? usage.cost.cacheRead / usage.cacheRead\n\t\t\t: (models.getModel(message.provider, message.model)?.cost.cacheRead ?? 0) / 1_000_000;\n\tconst missedCost = missedTokens * Math.max(0, paidRate - readRate);\n\tif (missedTokens < MISS_TOKEN_THRESHOLD && missedCost < MISS_COST_THRESHOLD) return undefined;\n\treturn {\n\t\tmissedTokens,\n\t\tmissedCost,\n\t\tidleMs: Math.max(0, message.timestamp - prev.timestamp),\n\t\tmodelChanged: `${message.provider}/${message.model}` !== prev.modelKey,\n\t};\n}\n\nfunction previous(message: AssistantMessage, reportedCache: boolean): PreviousRequest | undefined {\n\tconst usage = message.usage;\n\tconst promptTokens = usage.input + usage.cacheRead + usage.cacheWrite;\n\treturn promptTokens > 0\n\t\t? {\n\t\t\t\tpromptTokens,\n\t\t\t\tmodelKey: `${message.provider}/${message.model}`,\n\t\t\t\ttimestamp: message.timestamp,\n\t\t\t\treportedCache: reportedCache || usage.cacheRead + usage.cacheWrite > 0,\n\t\t\t}\n\t\t: undefined;\n}\n\nfunction scan(entries: SessionEntry[], models: ModelPriceSource) {\n\tlet prev: PreviousRequest | undefined;\n\tconst totals: CacheWasteTotals = { missedTokens: 0, missedCost: 0, missCount: 0 };\n\tconst misses = new Map<AssistantMessage, CacheMiss>();\n\tfor (const entry of entries) {\n\t\tif (entry.type === \"compaction\" || entry.type === \"branch_summary\") {\n\t\t\tprev = undefined;\n\t\t\tcontinue;\n\t\t}\n\t\tif (entry.type !== \"message\" || entry.message.role !== \"assistant\") continue;\n\t\tconst miss = detect(prev, entry.message, models);\n\t\tif (miss) {\n\t\t\ttotals.missedTokens += miss.missedTokens;\n\t\t\ttotals.missedCost += miss.missedCost;\n\t\t\ttotals.missCount++;\n\t\t\tmisses.set(entry.message, miss);\n\t\t}\n\t\tprev = previous(entry.message, prev?.reportedCache ?? false) ?? prev;\n\t}\n\treturn { prev, totals, misses };\n}\n\nexport function computeCacheWaste(entries: SessionEntry[], models: ModelPriceSource): CacheWasteTotals {\n\treturn scan(entries, models).totals;\n}\nexport function collectCacheMisses(\n\tentries: SessionEntry[],\n\tmodels: ModelPriceSource,\n): Map<AssistantMessage, CacheMiss> {\n\treturn scan(entries, models).misses;\n}\nexport function detectCacheMiss(\n\tentries: SessionEntry[],\n\tmessage: AssistantMessage,\n\tmodels: ModelPriceSource,\n): CacheMiss | undefined {\n\treturn detect(scan(entries, models).prev, message, models);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"callback-activity.d.ts","sourceRoot":"","sources":["../../src/core/callback-activity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAC7B,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,wBAAwB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAE5F;AAiBD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAQtG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAWvH"}
1
+ {"version":3,"file":"callback-activity.d.ts","sourceRoot":"","sources":["../../src/core/callback-activity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,oBAAoB,GAC7B,gBAAgB,GAChB,UAAU,GACV,cAAc,GACd,cAAc,GACd,mBAAmB,GACnB,cAAc,GACd,wBAAwB,CAAC;AAE5B,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACxC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IAC1C,IAAI,EAAE,oBAAoB,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,wBAAwB,GAAG,SAAS,GAAG,IAAI,CAE5F;AAmBD,wBAAgB,sBAAsB,CAAC,CAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAQtG;AAED,wBAAsB,WAAW,CAAC,CAAC,EAClC,UAAU,EAAE,0BAA0B,EACtC,QAAQ,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAC5B,OAAO,CAAC,CAAC,CAAC,CAWZ"}
@@ -1 +1 @@
1
- {"version":3,"file":"callback-activity.js","sourceRoot":"","sources":["../../src/core/callback-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAoC1D,IAAI,QAA8C,CAAC;AACnD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,2BAA2B,CAAC,IAA0C;IACrF,QAAQ,GAAG,IAAI,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,UAAsC;IAI5D,MAAM,cAAc,GAAG,QAAQ,CAAC;IAChC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAqB;QAClC,GAAG,UAAU;QACb,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;QAClC,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;KAC5B,CAAC;IACF,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,UAAsC,EAAE,QAAiB;IAClG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC;QACJ,OAAO,QAAQ,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,UAAsC,EAAE,QAA8B;IAC1G,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC;QACJ,2EAA2E;QAC3E,oDAAoD;QACpD,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO,MAAM,QAAQ,EAAE,CAAC;IACzB,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC","sourcesContent":["import { yieldToEventLoop } from \"../utils/event-loop.ts\";\n\nexport type CallbackActivityKind =\n\t| \"extension.hook\"\n\t| \"renderer\"\n\t| \"tool.execute\"\n\t| \"tool.prepare\"\n\t| \"workflow.ctx_tool\"\n\t| \"workflow.run\"\n\t| \"workflow.stage_adapter\";\n\nexport interface CallbackActivity {\n\tid: string;\n\tkind: CallbackActivityKind;\n\tname: string;\n\tstartedAt: number;\n\tsourcePath?: string;\n\ttoolCallId?: string;\n\trunId?: string;\n\tstageId?: string;\n}\n\nexport interface CallbackActivityReporter {\n\tstarted(activity: CallbackActivity): void;\n\tfinished(activityId: string): void;\n}\n\nexport interface CallbackActivityDescriptor {\n\tkind: CallbackActivityKind;\n\tname: string;\n\tsourcePath?: string;\n\ttoolCallId?: string;\n\trunId?: string;\n\tstageId?: string;\n}\n\nlet reporter: CallbackActivityReporter | undefined;\nlet nextActivityId = 0;\n\nexport function setCallbackActivityReporter(next: CallbackActivityReporter | undefined): void {\n\treporter = next;\n}\n\nfunction beginActivity(descriptor: CallbackActivityDescriptor): {\n\tactivity: CallbackActivity;\n\treporter: CallbackActivityReporter;\n} | undefined {\n\tconst activeReporter = reporter;\n\tif (!activeReporter) return undefined;\n\tconst activity: CallbackActivity = {\n\t\t...descriptor,\n\t\tid: `callback_${++nextActivityId}`,\n\t\tstartedAt: performance.now(),\n\t};\n\tactiveReporter.started(activity);\n\treturn { activity, reporter: activeReporter };\n}\n\nexport function runSynchronousCallback<T>(descriptor: CallbackActivityDescriptor, callback: () => T): T {\n\tconst active = beginActivity(descriptor);\n\tif (!active) return callback();\n\ttry {\n\t\treturn callback();\n\t} finally {\n\t\tactive.reporter.finished(active.activity.id);\n\t}\n}\n\nexport async function runCallback<T>(descriptor: CallbackActivityDescriptor, callback: () => T | Promise<T>): Promise<T> {\n\tconst active = beginActivity(descriptor);\n\tif (!active) return callback();\n\ttry {\n\t\t// Give the activity frame and the last healthy heartbeat a chance to leave\n\t\t// the engine before arbitrary callback code begins.\n\t\tawait yieldToEventLoop();\n\t\treturn await callback();\n\t} finally {\n\t\tactive.reporter.finished(active.activity.id);\n\t}\n}\n"]}
1
+ {"version":3,"file":"callback-activity.js","sourceRoot":"","sources":["../../src/core/callback-activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAoC1D,IAAI,QAA8C,CAAC;AACnD,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB,MAAM,UAAU,2BAA2B,CAAC,IAA0C;IACrF,QAAQ,GAAG,IAAI,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,UAAsC;IAM5D,MAAM,cAAc,GAAG,QAAQ,CAAC;IAChC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAC;IACtC,MAAM,QAAQ,GAAqB;QAClC,GAAG,UAAU;QACb,EAAE,EAAE,YAAY,EAAE,cAAc,EAAE;QAClC,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;KAC5B,CAAC;IACF,cAAc,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAI,UAAsC,EAAE,QAAiB;IAClG,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC;QACJ,OAAO,QAAQ,EAAE,CAAC;IACnB,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,UAAsC,EACtC,QAA8B;IAE9B,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC;QACJ,2EAA2E;QAC3E,oDAAoD;QACpD,MAAM,gBAAgB,EAAE,CAAC;QACzB,OAAO,MAAM,QAAQ,EAAE,CAAC;IACzB,CAAC;YAAS,CAAC;QACV,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC9C,CAAC;AACF,CAAC","sourcesContent":["import { yieldToEventLoop } from \"../utils/event-loop.ts\";\n\nexport type CallbackActivityKind =\n\t| \"extension.hook\"\n\t| \"renderer\"\n\t| \"tool.execute\"\n\t| \"tool.prepare\"\n\t| \"workflow.ctx_tool\"\n\t| \"workflow.run\"\n\t| \"workflow.stage_adapter\";\n\nexport interface CallbackActivity {\n\tid: string;\n\tkind: CallbackActivityKind;\n\tname: string;\n\tstartedAt: number;\n\tsourcePath?: string;\n\ttoolCallId?: string;\n\trunId?: string;\n\tstageId?: string;\n}\n\nexport interface CallbackActivityReporter {\n\tstarted(activity: CallbackActivity): void;\n\tfinished(activityId: string): void;\n}\n\nexport interface CallbackActivityDescriptor {\n\tkind: CallbackActivityKind;\n\tname: string;\n\tsourcePath?: string;\n\ttoolCallId?: string;\n\trunId?: string;\n\tstageId?: string;\n}\n\nlet reporter: CallbackActivityReporter | undefined;\nlet nextActivityId = 0;\n\nexport function setCallbackActivityReporter(next: CallbackActivityReporter | undefined): void {\n\treporter = next;\n}\n\nfunction beginActivity(descriptor: CallbackActivityDescriptor):\n\t| {\n\t\t\tactivity: CallbackActivity;\n\t\t\treporter: CallbackActivityReporter;\n\t }\n\t| undefined {\n\tconst activeReporter = reporter;\n\tif (!activeReporter) return undefined;\n\tconst activity: CallbackActivity = {\n\t\t...descriptor,\n\t\tid: `callback_${++nextActivityId}`,\n\t\tstartedAt: performance.now(),\n\t};\n\tactiveReporter.started(activity);\n\treturn { activity, reporter: activeReporter };\n}\n\nexport function runSynchronousCallback<T>(descriptor: CallbackActivityDescriptor, callback: () => T): T {\n\tconst active = beginActivity(descriptor);\n\tif (!active) return callback();\n\ttry {\n\t\treturn callback();\n\t} finally {\n\t\tactive.reporter.finished(active.activity.id);\n\t}\n}\n\nexport async function runCallback<T>(\n\tdescriptor: CallbackActivityDescriptor,\n\tcallback: () => T | Promise<T>,\n): Promise<T> {\n\tconst active = beginActivity(descriptor);\n\tif (!active) return callback();\n\ttry {\n\t\t// Give the activity frame and the last healthy heartbeat a chance to leave\n\t\t// the engine before arbitrary callback code begins.\n\t\tawait yieldToEventLoop();\n\t\treturn await callback();\n\t} finally {\n\t\tactive.reporter.finished(active.activity.id);\n\t}\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-errors.d.ts","sourceRoot":"","sources":["../../src/core/codex-errors.ts"],"names":[],"mappings":"AAIA,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAEzG;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKvF"}
1
+ {"version":3,"file":"codex-errors.d.ts","sourceRoot":"","sources":["../../src/core/codex-errors.ts"],"names":[],"mappings":"AAIA,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAIzG;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAKvF"}
@@ -1,7 +1,7 @@
1
1
  const CODEX_INVALIDATED_TOKEN_PATTERN = /\binvalidated\s+(?:oauth|auth)\s+token\b|\btoken_revoked\b/i;
2
2
  const CODEX_RECOVERY_GUIDANCE = "This Codex session may no longer be valid. Retry the request once in case the rejection is transient. If it persists, run `/logout` and select OpenAI ChatGPT Plus/Pro. Then run `/login`, authenticate OpenAI ChatGPT Plus/Pro again, and retry the request.";
3
3
  export function isCodexTokenInvalidationError(provider, errorMessage) {
4
- return provider === "openai-codex" && errorMessage !== undefined && CODEX_INVALIDATED_TOKEN_PATTERN.test(errorMessage);
4
+ return (provider === "openai-codex" && errorMessage !== undefined && CODEX_INVALIDATED_TOKEN_PATTERN.test(errorMessage));
5
5
  }
6
6
  export function formatCodexProviderError(provider, errorMessage) {
7
7
  if (!isCodexTokenInvalidationError(provider, errorMessage) || errorMessage.includes(CODEX_RECOVERY_GUIDANCE)) {
@@ -1 +1 @@
1
- {"version":3,"file":"codex-errors.js","sourceRoot":"","sources":["../../src/core/codex-errors.ts"],"names":[],"mappings":"AAAA,MAAM,+BAA+B,GAAG,6DAA6D,CAAC;AACtG,MAAM,uBAAuB,GAC5B,+PAA+P,CAAC;AAEjQ,MAAM,UAAU,6BAA6B,CAAC,QAAgB,EAAE,YAAgC;IAC/F,OAAO,QAAQ,KAAK,cAAc,IAAI,YAAY,KAAK,SAAS,IAAI,+BAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AACxH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB,EAAE,YAAoB;IAC9E,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9G,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,YAAY,OAAO,uBAAuB,EAAE,CAAC;AACxD,CAAC","sourcesContent":["const CODEX_INVALIDATED_TOKEN_PATTERN = /\\binvalidated\\s+(?:oauth|auth)\\s+token\\b|\\btoken_revoked\\b/i;\nconst CODEX_RECOVERY_GUIDANCE =\n\t\"This Codex session may no longer be valid. Retry the request once in case the rejection is transient. If it persists, run `/logout` and select OpenAI ChatGPT Plus/Pro. Then run `/login`, authenticate OpenAI ChatGPT Plus/Pro again, and retry the request.\";\n\nexport function isCodexTokenInvalidationError(provider: string, errorMessage: string | undefined): boolean {\n\treturn provider === \"openai-codex\" && errorMessage !== undefined && CODEX_INVALIDATED_TOKEN_PATTERN.test(errorMessage);\n}\n\nexport function formatCodexProviderError(provider: string, errorMessage: string): string {\n\tif (!isCodexTokenInvalidationError(provider, errorMessage) || errorMessage.includes(CODEX_RECOVERY_GUIDANCE)) {\n\t\treturn errorMessage;\n\t}\n\treturn `${errorMessage}\\n\\n${CODEX_RECOVERY_GUIDANCE}`;\n}\n"]}
1
+ {"version":3,"file":"codex-errors.js","sourceRoot":"","sources":["../../src/core/codex-errors.ts"],"names":[],"mappings":"AAAA,MAAM,+BAA+B,GAAG,6DAA6D,CAAC;AACtG,MAAM,uBAAuB,GAC5B,+PAA+P,CAAC;AAEjQ,MAAM,UAAU,6BAA6B,CAAC,QAAgB,EAAE,YAAgC;IAC/F,OAAO,CACN,QAAQ,KAAK,cAAc,IAAI,YAAY,KAAK,SAAS,IAAI,+BAA+B,CAAC,IAAI,CAAC,YAAY,CAAC,CAC/G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAgB,EAAE,YAAoB;IAC9E,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,YAAY,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE,CAAC;QAC9G,OAAO,YAAY,CAAC;IACrB,CAAC;IACD,OAAO,GAAG,YAAY,OAAO,uBAAuB,EAAE,CAAC;AACxD,CAAC","sourcesContent":["const CODEX_INVALIDATED_TOKEN_PATTERN = /\\binvalidated\\s+(?:oauth|auth)\\s+token\\b|\\btoken_revoked\\b/i;\nconst CODEX_RECOVERY_GUIDANCE =\n\t\"This Codex session may no longer be valid. Retry the request once in case the rejection is transient. If it persists, run `/logout` and select OpenAI ChatGPT Plus/Pro. Then run `/login`, authenticate OpenAI ChatGPT Plus/Pro again, and retry the request.\";\n\nexport function isCodexTokenInvalidationError(provider: string, errorMessage: string | undefined): boolean {\n\treturn (\n\t\tprovider === \"openai-codex\" && errorMessage !== undefined && CODEX_INVALIDATED_TOKEN_PATTERN.test(errorMessage)\n\t);\n}\n\nexport function formatCodexProviderError(provider: string, errorMessage: string): string {\n\tif (!isCodexTokenInvalidationError(provider, errorMessage) || errorMessage.includes(CODEX_RECOVERY_GUIDANCE)) {\n\t\treturn errorMessage;\n\t}\n\treturn `${errorMessage}\\n\\n${CODEX_RECOVERY_GUIDANCE}`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-fast-mode.d.ts","sourceRoot":"","sources":["../../src/core/codex-fast-mode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codex-fast-mode.d.ts","sourceRoot":"","sources":["../../src/core/codex-fast-mode.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"codex-fast-mode.js","sourceRoot":"","sources":["../../src/core/codex-fast-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAMlB,0BAA0B,EAC1B,qBAAqB,EACrB,YAAY,GAKZ,MAAM,8BAA8B,CAAC;AAGtC,MAAM,CAAC,MAAM,4BAA4B,GAAG,UAAmB,CAAC;AA+BhE,MAAM,iCAAiC,GAA2B;IACjE,YAAY;IACZ,qBAAqB;IACrB,0BAA0B;CAC1B,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAAC,QAAgB;IAChE,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,cAAc,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,OAA2B;IAC1E,MAAM,QAAQ,GAAG,OAAO,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,OAAO,QAAQ,KAAK,SAAS,IAAI,gCAAgC,CAAC,QAAQ,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAmC;IAChF,OAAO,gCAAgC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,MAA+C;IAC7F,OAAO,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,mCAAmC,CAAC,OAAyC;IAC5F,OAAO,OAAO,EAAE,IAAI,KAAK,gBAAgB,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAyC;IAC9E,OAAO,mCAAmC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,QAAuC,EACvC,KAAyB;IAEzB,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC/C,QAAuC,EACvC,OAAyC;IAEzC,OAAO,8BAA8B,CAAC,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC/C,KAAmC,EACnC,QAAuC,EACvC,KAAyB;IAEzB,OAAO,6BAA6B,CAAC,KAAK,CAAC,IAAI,8BAA8B,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChG,CAAC;AAED,MAAM,UAAU,wBAAwB,CACvC,KAAmC,EACnC,QAAuC,EACvC,OAAyC;IAEzC,OAAO,gCAAgC,CAAC,KAAK,EAAE,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,OAAwC,EACxC,OAAgB;IAEhB,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,OAAO;QACN,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC;QAClB,WAAW,EAAE,4BAA4B;KACzC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,GAAQ;IAChD,OAAO,GAAG,KAAK,kBAAkB,IAAI,GAAG,KAAK,wBAAwB,CAAC;AACvE,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC3C,KAA2C,EAC3C,OAA+C;IAE/C,OAAO,CACN,6BAA6B,CAAC,KAAK,CAAC;QACpC,wBAAwB,CAAC,KAAK,CAAC,GAAG,CAAC;QACnC,OAAO,EAAE,WAAW,KAAK,4BAA4B,CACrD,CAAC;AACH,CAAC;AAED,SAAS,qCAAqC,CAC7C,OAA+C;IAE/C,OAAO;QACN,WAAW,EAAE,OAAO,EAAE,WAAW;QACjC,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,cAAc,EAAE,OAAO,EAAE,cAAc;QACvC,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,OAAO,EAAE,OAAO,EAAE,OAAO;QACzB,SAAS,EAAE,OAAO,EAAE,SAAS;QAC7B,yBAAyB,EAAE,OAAO,EAAE,yBAAyB;QAC7D,UAAU,EAAE,OAAO,EAAE,UAAU;QAC/B,eAAe,EAAE,OAAO,EAAE,eAAe;QACzC,QAAQ,EAAE,OAAO,EAAE,QAAQ;KAC3B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC9C,KAAiB,EACjB,SAAoC;IAEpC,MAAM,gBAAgB,GAAG,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,OAAO,gBAAgB,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,wCAAwC,CACvD,KAAiB,EACjB,OAA+C;IAE/C,OAAO;QACN,GAAG,qCAAqC,CAAC,OAAO,CAAC;QACjD,eAAe,EAAE,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;QAC3E,WAAW,EAAE,OAAO,EAAE,WAAW;KACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6CAA6C,CAC5D,KAAiB,EACjB,OAA+C;IAE/C,OAAO;QACN,GAAG,qCAAqC,CAAC,OAAO,CAAC;QACjD,eAAe,EAAE,+BAA+B,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,CAAC;QAC3E,WAAW,EAAE,OAAO,EAAE,WAAW;KACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACtC,KAAiB,EACjB,OAAgB,EAChB,OAA+C,EAC/C,SAAS,GAA2B,iCAAiC;IAErE,IAAI,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,KAAK,CAAC,GAAG,KAAK,kBAAkB,EAAE,CAAC;YACtC,OAAO,SAAS,CAAC,qBAAqB,CACrC,KAAkC,EAClC,OAAO,EACP,wCAAwC,CAAC,KAAK,EAAE,OAAO,CAAC,CACxD,CAAC;QACH,CAAC;QAED,OAAO,SAAS,CAAC,0BAA0B,CAC1C,KAAwC,EACxC,OAAO,EACP,6CAA6C,CAAC,KAAK,EAAE,OAAO,CAAC,CAC7D,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,eAAe,CAAC,OAAgB;IACxC,OAAO,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,OAAgB;IAC1E,IAAI,CAAC,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACjF,OAAO,OAAO,CAAC;IAChB,CAAC;IAED,OAAO;QACN,GAAG,OAAO;QACV,YAAY,EAAE,4BAA4B;KAC1C,CAAC;AACH,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,SAAiB,EAAE,OAAgB;IAChF,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,SAAS,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AAClD,CAAC","sourcesContent":["import {\n\tclampThinkingLevel,\n\ttype Api,\n\ttype AssistantMessageEventStream,\n\ttype Context,\n\ttype Model,\n\ttype OpenAICodexResponsesOptions,\n\tstreamOpenAICodexResponses,\n\tstreamOpenAIResponses,\n\tstreamSimple,\n\ttype OpenAIResponsesOptions,\n\ttype SimpleStreamOptions,\n\ttype StreamOptions,\n\ttype ThinkingLevel,\n} from \"@earendil-works/pi-ai/compat\";\nimport type { OrchestrationContext } from \"./extensions/index.ts\";\n\nexport const CODEX_FAST_MODE_SERVICE_TIER = \"priority\" as const;\n\nexport interface CodexFastModeResolvedSettings {\n\tchat: boolean;\n\tworkflow: boolean;\n}\n\nexport type CodexFastModeScope = \"chat\" | \"workflow\";\n\nexport interface CodexFastModeStreamOptions extends SimpleStreamOptions {\n\tserviceTier?: typeof CODEX_FAST_MODE_SERVICE_TIER;\n}\n\nexport interface CodexFastModeStreamers {\n\tstreamSimple: (\n\t\tmodel: Model<Api>,\n\t\tcontext: Context,\n\t\toptions?: SimpleStreamOptions,\n\t) => AssistantMessageEventStream;\n\tstreamOpenAIResponses: (\n\t\tmodel: Model<\"openai-responses\">,\n\t\tcontext: Context,\n\t\toptions?: OpenAIResponsesOptions,\n\t) => AssistantMessageEventStream;\n\tstreamOpenAICodexResponses: (\n\t\tmodel: Model<\"openai-codex-responses\">,\n\t\tcontext: Context,\n\t\toptions?: OpenAICodexResponsesOptions,\n\t) => AssistantMessageEventStream;\n}\n\nconst DEFAULT_CODEX_FAST_MODE_STREAMERS: CodexFastModeStreamers = {\n\tstreamSimple,\n\tstreamOpenAIResponses,\n\tstreamOpenAICodexResponses,\n};\n\nexport function isCodexFastModeSupportedProvider(provider: string): boolean {\n\treturn provider === \"openai\" || provider === \"openai-codex\";\n}\n\nexport function isCodexFastModeCandidateModelId(modelId: string | undefined): boolean {\n\tconst provider = modelId?.split(\"/\", 1)[0];\n\treturn provider !== undefined && isCodexFastModeSupportedProvider(provider);\n}\n\nexport function isCodexFastModeSupportedModel(model: Pick<Model<Api>, \"provider\">): boolean {\n\treturn isCodexFastModeSupportedProvider(model.provider);\n}\n\nexport function hasSupportedCodexFastModeModel(models: readonly Pick<Model<Api>, \"provider\">[]): boolean {\n\treturn models.some(isCodexFastModeSupportedModel);\n}\n\nexport function isWorkflowStageOrchestrationContext(context: OrchestrationContext | undefined): boolean {\n\treturn context?.kind === \"workflow-stage\";\n}\n\nexport function getCodexFastModeScope(context: OrchestrationContext | undefined): CodexFastModeScope {\n\treturn isWorkflowStageOrchestrationContext(context) ? \"workflow\" : \"chat\";\n}\n\nexport function isCodexFastModeEnabledForScope(\n\tsettings: CodexFastModeResolvedSettings,\n\tscope: CodexFastModeScope,\n): boolean {\n\treturn settings[scope];\n}\n\nexport function isCodexFastModeEnabledForSession(\n\tsettings: CodexFastModeResolvedSettings,\n\tcontext: OrchestrationContext | undefined,\n): boolean {\n\treturn isCodexFastModeEnabledForScope(settings, getCodexFastModeScope(context));\n}\n\nexport function shouldApplyCodexFastModeForScope(\n\tmodel: Pick<Model<Api>, \"provider\">,\n\tsettings: CodexFastModeResolvedSettings,\n\tscope: CodexFastModeScope,\n): boolean {\n\treturn isCodexFastModeSupportedModel(model) && isCodexFastModeEnabledForScope(settings, scope);\n}\n\nexport function shouldApplyCodexFastMode(\n\tmodel: Pick<Model<Api>, \"provider\">,\n\tsettings: CodexFastModeResolvedSettings,\n\tcontext: OrchestrationContext | undefined,\n): boolean {\n\treturn shouldApplyCodexFastModeForScope(model, settings, getCodexFastModeScope(context));\n}\n\nexport function withCodexFastModeStreamOptions(\n\toptions: SimpleStreamOptions | undefined,\n\tenabled: boolean,\n): CodexFastModeStreamOptions | undefined {\n\tif (!enabled) {\n\t\treturn options;\n\t}\n\n\treturn {\n\t\t...(options ?? {}),\n\t\tserviceTier: CODEX_FAST_MODE_SERVICE_TIER,\n\t};\n}\n\nexport function isCodexFastModeNativeApi(api: Api): api is \"openai-responses\" | \"openai-codex-responses\" {\n\treturn api === \"openai-responses\" || api === \"openai-codex-responses\";\n}\n\nexport function shouldUseNativeCodexFastMode(\n\tmodel: Pick<Model<Api>, \"api\" | \"provider\">,\n\toptions: CodexFastModeStreamOptions | undefined,\n): boolean {\n\treturn (\n\t\tisCodexFastModeSupportedModel(model) &&\n\t\tisCodexFastModeNativeApi(model.api) &&\n\t\toptions?.serviceTier === CODEX_FAST_MODE_SERVICE_TIER\n\t);\n}\n\nfunction buildCodexFastModeBaseProviderOptions(\n\toptions: CodexFastModeStreamOptions | undefined,\n): StreamOptions {\n\treturn {\n\t\ttemperature: options?.temperature,\n\t\tmaxTokens: options?.maxTokens,\n\t\tsignal: options?.signal,\n\t\tapiKey: options?.apiKey,\n\t\ttransport: options?.transport,\n\t\tcacheRetention: options?.cacheRetention,\n\t\tsessionId: options?.sessionId,\n\t\tonPayload: options?.onPayload,\n\t\tonResponse: options?.onResponse,\n\t\theaders: options?.headers,\n\t\ttimeoutMs: options?.timeoutMs,\n\t\twebsocketConnectTimeoutMs: options?.websocketConnectTimeoutMs,\n\t\tmaxRetries: options?.maxRetries,\n\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\tmetadata: options?.metadata,\n\t};\n}\n\nexport function mapCodexFastModeReasoningEffort(\n\tmodel: Model<Api>,\n\treasoning: ThinkingLevel | undefined,\n): ThinkingLevel | undefined {\n\tconst clampedReasoning = reasoning ? clampThinkingLevel(model, reasoning) : undefined;\n\treturn clampedReasoning === \"off\" ? undefined : clampedReasoning;\n}\n\nexport function buildOpenAIResponsesCodexFastModeOptions(\n\tmodel: Model<Api>,\n\toptions: CodexFastModeStreamOptions | undefined,\n): OpenAIResponsesOptions {\n\treturn {\n\t\t...buildCodexFastModeBaseProviderOptions(options),\n\t\treasoningEffort: mapCodexFastModeReasoningEffort(model, options?.reasoning),\n\t\tserviceTier: options?.serviceTier,\n\t};\n}\n\nexport function buildOpenAICodexResponsesCodexFastModeOptions(\n\tmodel: Model<Api>,\n\toptions: CodexFastModeStreamOptions | undefined,\n): OpenAICodexResponsesOptions {\n\treturn {\n\t\t...buildCodexFastModeBaseProviderOptions(options),\n\t\treasoningEffort: mapCodexFastModeReasoningEffort(model, options?.reasoning),\n\t\tserviceTier: options?.serviceTier,\n\t};\n}\n\nexport function streamWithCodexFastMode(\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions: CodexFastModeStreamOptions | undefined,\n\tstreamers: CodexFastModeStreamers = DEFAULT_CODEX_FAST_MODE_STREAMERS,\n): AssistantMessageEventStream {\n\tif (shouldUseNativeCodexFastMode(model, options)) {\n\t\tif (model.api === \"openai-responses\") {\n\t\t\treturn streamers.streamOpenAIResponses(\n\t\t\t\tmodel as Model<\"openai-responses\">,\n\t\t\t\tcontext,\n\t\t\t\tbuildOpenAIResponsesCodexFastModeOptions(model, options),\n\t\t\t);\n\t\t}\n\n\t\treturn streamers.streamOpenAICodexResponses(\n\t\t\tmodel as Model<\"openai-codex-responses\">,\n\t\t\tcontext,\n\t\t\tbuildOpenAICodexResponsesCodexFastModeOptions(model, options),\n\t\t);\n\t}\n\n\treturn streamers.streamSimple(model, context, options);\n}\n\nfunction isObjectPayload(payload: unknown): payload is Record<string, unknown> {\n\treturn typeof payload === \"object\" && payload !== null && !Array.isArray(payload);\n}\n\nexport function withCodexFastModePayload(payload: unknown, enabled: boolean): unknown {\n\tif (!enabled || !isObjectPayload(payload) || payload.service_tier !== undefined) {\n\t\treturn payload;\n\t}\n\n\treturn {\n\t\t...payload,\n\t\tservice_tier: CODEX_FAST_MODE_SERVICE_TIER,\n\t};\n}\n\nexport function formatCodexFastModeModelLabel(modelName: string, enabled: boolean): string {\n\treturn enabled ? `${modelName} fast` : modelName;\n}\n"]}
1
+ {"version":3,"file":"codex-fast-mode.js","sourceRoot":"","sources":["../../src/core/codex-fast-mode.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n\ttype Api,\n\ttype AssistantMessageEventStream,\n\ttype Context,\n\tclampThinkingLevel,\n\ttype Model,\n\ttype OpenAICodexResponsesOptions,\n\ttype OpenAIResponsesOptions,\n\ttype SimpleStreamOptions,\n\ttype StreamOptions,\n\tstreamOpenAICodexResponses,\n\tstreamOpenAIResponses,\n\tstreamSimple,\n\ttype ThinkingLevel,\n} from \"@earendil-works/pi-ai/compat\";\nimport type { OrchestrationContext } from \"./extensions/index.ts\";\n\nexport const CODEX_FAST_MODE_SERVICE_TIER = \"priority\" as const;\n\nexport interface CodexFastModeResolvedSettings {\n\tchat: boolean;\n\tworkflow: boolean;\n}\n\nexport type CodexFastModeScope = \"chat\" | \"workflow\";\n\nexport interface CodexFastModeStreamOptions extends SimpleStreamOptions {\n\tserviceTier?: typeof CODEX_FAST_MODE_SERVICE_TIER;\n}\n\nexport interface CodexFastModeStreamers {\n\tstreamSimple: (model: Model<Api>, context: Context, options?: SimpleStreamOptions) => AssistantMessageEventStream;\n\tstreamOpenAIResponses: (\n\t\tmodel: Model<\"openai-responses\">,\n\t\tcontext: Context,\n\t\toptions?: OpenAIResponsesOptions,\n\t) => AssistantMessageEventStream;\n\tstreamOpenAICodexResponses: (\n\t\tmodel: Model<\"openai-codex-responses\">,\n\t\tcontext: Context,\n\t\toptions?: OpenAICodexResponsesOptions,\n\t) => AssistantMessageEventStream;\n}\n\nconst DEFAULT_CODEX_FAST_MODE_STREAMERS: CodexFastModeStreamers = {\n\tstreamSimple,\n\tstreamOpenAIResponses,\n\tstreamOpenAICodexResponses,\n};\n\nexport function isCodexFastModeSupportedProvider(provider: string): boolean {\n\treturn provider === \"openai\" || provider === \"openai-codex\";\n}\n\nexport function isCodexFastModeCandidateModelId(modelId: string | undefined): boolean {\n\tconst provider = modelId?.split(\"/\", 1)[0];\n\treturn provider !== undefined && isCodexFastModeSupportedProvider(provider);\n}\n\nexport function isCodexFastModeSupportedModel(model: Pick<Model<Api>, \"provider\">): boolean {\n\treturn isCodexFastModeSupportedProvider(model.provider);\n}\n\nexport function hasSupportedCodexFastModeModel(models: readonly Pick<Model<Api>, \"provider\">[]): boolean {\n\treturn models.some(isCodexFastModeSupportedModel);\n}\n\nexport function isWorkflowStageOrchestrationContext(context: OrchestrationContext | undefined): boolean {\n\treturn context?.kind === \"workflow-stage\";\n}\n\nexport function getCodexFastModeScope(context: OrchestrationContext | undefined): CodexFastModeScope {\n\treturn isWorkflowStageOrchestrationContext(context) ? \"workflow\" : \"chat\";\n}\n\nexport function isCodexFastModeEnabledForScope(\n\tsettings: CodexFastModeResolvedSettings,\n\tscope: CodexFastModeScope,\n): boolean {\n\treturn settings[scope];\n}\n\nexport function isCodexFastModeEnabledForSession(\n\tsettings: CodexFastModeResolvedSettings,\n\tcontext: OrchestrationContext | undefined,\n): boolean {\n\treturn isCodexFastModeEnabledForScope(settings, getCodexFastModeScope(context));\n}\n\nexport function shouldApplyCodexFastModeForScope(\n\tmodel: Pick<Model<Api>, \"provider\">,\n\tsettings: CodexFastModeResolvedSettings,\n\tscope: CodexFastModeScope,\n): boolean {\n\treturn isCodexFastModeSupportedModel(model) && isCodexFastModeEnabledForScope(settings, scope);\n}\n\nexport function shouldApplyCodexFastMode(\n\tmodel: Pick<Model<Api>, \"provider\">,\n\tsettings: CodexFastModeResolvedSettings,\n\tcontext: OrchestrationContext | undefined,\n): boolean {\n\treturn shouldApplyCodexFastModeForScope(model, settings, getCodexFastModeScope(context));\n}\n\nexport function withCodexFastModeStreamOptions(\n\toptions: SimpleStreamOptions | undefined,\n\tenabled: boolean,\n): CodexFastModeStreamOptions | undefined {\n\tif (!enabled) {\n\t\treturn options;\n\t}\n\n\treturn {\n\t\t...(options ?? {}),\n\t\tserviceTier: CODEX_FAST_MODE_SERVICE_TIER,\n\t};\n}\n\nexport function isCodexFastModeNativeApi(api: Api): api is \"openai-responses\" | \"openai-codex-responses\" {\n\treturn api === \"openai-responses\" || api === \"openai-codex-responses\";\n}\n\nexport function shouldUseNativeCodexFastMode(\n\tmodel: Pick<Model<Api>, \"api\" | \"provider\">,\n\toptions: CodexFastModeStreamOptions | undefined,\n): boolean {\n\treturn (\n\t\tisCodexFastModeSupportedModel(model) &&\n\t\tisCodexFastModeNativeApi(model.api) &&\n\t\toptions?.serviceTier === CODEX_FAST_MODE_SERVICE_TIER\n\t);\n}\n\nfunction buildCodexFastModeBaseProviderOptions(options: CodexFastModeStreamOptions | undefined): StreamOptions {\n\treturn {\n\t\ttemperature: options?.temperature,\n\t\tmaxTokens: options?.maxTokens,\n\t\tsignal: options?.signal,\n\t\tapiKey: options?.apiKey,\n\t\ttransport: options?.transport,\n\t\tcacheRetention: options?.cacheRetention,\n\t\tsessionId: options?.sessionId,\n\t\tonPayload: options?.onPayload,\n\t\tonResponse: options?.onResponse,\n\t\theaders: options?.headers,\n\t\ttimeoutMs: options?.timeoutMs,\n\t\twebsocketConnectTimeoutMs: options?.websocketConnectTimeoutMs,\n\t\tmaxRetries: options?.maxRetries,\n\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\tmetadata: options?.metadata,\n\t};\n}\n\nexport function mapCodexFastModeReasoningEffort(\n\tmodel: Model<Api>,\n\treasoning: ThinkingLevel | undefined,\n): ThinkingLevel | undefined {\n\tconst clampedReasoning = reasoning ? clampThinkingLevel(model, reasoning) : undefined;\n\treturn clampedReasoning === \"off\" ? undefined : clampedReasoning;\n}\n\nexport function buildOpenAIResponsesCodexFastModeOptions(\n\tmodel: Model<Api>,\n\toptions: CodexFastModeStreamOptions | undefined,\n): OpenAIResponsesOptions {\n\treturn {\n\t\t...buildCodexFastModeBaseProviderOptions(options),\n\t\treasoningEffort: mapCodexFastModeReasoningEffort(model, options?.reasoning),\n\t\tserviceTier: options?.serviceTier,\n\t};\n}\n\nexport function buildOpenAICodexResponsesCodexFastModeOptions(\n\tmodel: Model<Api>,\n\toptions: CodexFastModeStreamOptions | undefined,\n): OpenAICodexResponsesOptions {\n\treturn {\n\t\t...buildCodexFastModeBaseProviderOptions(options),\n\t\treasoningEffort: mapCodexFastModeReasoningEffort(model, options?.reasoning),\n\t\tserviceTier: options?.serviceTier,\n\t};\n}\n\nexport function streamWithCodexFastMode(\n\tmodel: Model<Api>,\n\tcontext: Context,\n\toptions: CodexFastModeStreamOptions | undefined,\n\tstreamers: CodexFastModeStreamers = DEFAULT_CODEX_FAST_MODE_STREAMERS,\n): AssistantMessageEventStream {\n\tif (shouldUseNativeCodexFastMode(model, options)) {\n\t\tif (model.api === \"openai-responses\") {\n\t\t\treturn streamers.streamOpenAIResponses(\n\t\t\t\tmodel as Model<\"openai-responses\">,\n\t\t\t\tcontext,\n\t\t\t\tbuildOpenAIResponsesCodexFastModeOptions(model, options),\n\t\t\t);\n\t\t}\n\n\t\treturn streamers.streamOpenAICodexResponses(\n\t\t\tmodel as Model<\"openai-codex-responses\">,\n\t\t\tcontext,\n\t\t\tbuildOpenAICodexResponsesCodexFastModeOptions(model, options),\n\t\t);\n\t}\n\n\treturn streamers.streamSimple(model, context, options);\n}\n\nfunction isObjectPayload(payload: unknown): payload is Record<string, unknown> {\n\treturn typeof payload === \"object\" && payload !== null && !Array.isArray(payload);\n}\n\nexport function withCodexFastModePayload(payload: unknown, enabled: boolean): unknown {\n\tif (!enabled || !isObjectPayload(payload) || payload.service_tier !== undefined) {\n\t\treturn payload;\n\t}\n\n\treturn {\n\t\t...payload,\n\t\tservice_tier: CODEX_FAST_MODE_SERVICE_TIER,\n\t};\n}\n\nexport function formatCodexFastModeModelLabel(modelName: string, enabled: boolean): string {\n\treturn enabled ? `${modelName} fast` : modelName;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EAAsB,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAU,MAAM,uBAAuB,CAAC;AAChI,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAuB,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAIN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IACjC,mEAAmE;IACnE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,cAAc,CAAC;IACxB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC5C,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,oBAAoB,CAkCtB;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,iBAAiB,CAqDxG;AAwCD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAgH9B"}
1
+ {"version":3,"file":"branch-summarization.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC3F,OAAO,EACN,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,WAAW,EAGhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAuB,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG3F,OAAO,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGlF,OAAO,EAIN,KAAK,cAAc,EAInB,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACpC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,iBAAiB;IACjC,mEAAmE;IACnE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,gDAAgD;IAChD,OAAO,EAAE,cAAc,CAAC;IACxB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACpC,mDAAmD;IACnD,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,2DAA2D;IAC3D,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC5C,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAClB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wFAAwF;IACxF,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,4GAA4G;IAC5G,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,yDAAyD;IACzD,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iCAAiC;IACjC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAMD;;;;;;;;;;;GAWG;AACH,wBAAgB,8BAA8B,CAC7C,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,QAAQ,EAAE,MAAM,GACd,oBAAoB,CAkCtB;AA4CD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,WAAW,GAAE,MAAU,GAAG,iBAAiB,CAqDxG;AAwCD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAC1C,OAAO,EAAE,YAAY,EAAE,EACvB,OAAO,EAAE,4BAA4B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAiH9B"}
@@ -4,7 +4,7 @@
4
4
  * When navigating to a different point in the session tree, this generates
5
5
  * a summary of the branch being left so context isn't lost.
6
6
  */
7
- import { retryAssistantCall, uuidv7 } from "@earendil-works/pi-ai";
7
+ import { retryAssistantCall, uuidv7, } from "@earendil-works/pi-ai";
8
8
  import { completeSimple } from "@earendil-works/pi-ai/compat";
9
9
  import { convertToLlm, createBranchSummaryMessage, createCustomMessage } from "../messages.js";
10
10
  import { estimateTokens } from "./compaction.js";
@@ -1 +1 @@
1
- {"version":3,"file":"branch-summarization.js","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport { retryAssistantCall, type ProviderHeaders, type RetryCallbacks, type RetryPolicy, uuidv7 } from \"@earendil-works/pi-ai\";\nimport type { Api, Model, SimpleStreamOptions, Usage } from \"@earendil-works/pi-ai/compat\";\nimport { completeSimple } from \"@earendil-works/pi-ai/compat\";\nimport { convertToLlm, createBranchSummaryMessage, createCustomMessage } from \"../messages.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport { resolvePlannerRequest } from \"./range-planner.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\tusage?: Usage;\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<Api>;\n\t/** API key for the model; omitted for header-only bearer authentication. */\n\tapiKey?: string;\n\t/** Request headers for the model */\n\theaders?: ProviderHeaders;\n\t/** Credential-specific request endpoint for the model */\n\tbaseUrl?: string;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/**\n\t * Session reasoning level, inherited by the summarization request.\n\t * No output cap is sent, so thinking has no artificial budget to exhaust.\n\t */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n\t/** Retry policy for transient summarization failures. */\n\tretry?: RetryPolicy;\n\t/** Retry lifecycle callbacks. */\n\tcallbacks?: RetryCallbacks;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at legacy compaction entries, but those entries are\n * inert and are not fed into branch summarization prompts.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts, with legacy compaction entries kept inert.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(\n\t\t\t\tentry.customType,\n\t\t\t\tentry.content,\n\t\t\t\tentry.display,\n\t\t\t\tentry.details,\n\t\t\t\tentry.timestamp,\n\t\t\t\tentry.excludeFromContext,\n\t\t\t);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn undefined;\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\tcase \"context_compaction\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tconst filteredEntries = entries;\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\t// Only extract from pi-generated summaries (fromHook !== true), not extension-generated ones\n\tfor (const entry of filteredEntries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = filteredEntries.length - 1; i >= 0; i--) {\n\t\tconst entry = filteredEntries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a branch summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\nKeep each section concise. Preserve exact file paths, function names, and error messages.`;\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tbaseUrl,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tthinkingLevel,\n\t\tstreamFn,\n\t\tretry,\n\t\tcallbacks,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = serializeConversation(llmMessages);\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior stays consistent without mutating agent state.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestModel = baseUrl === undefined || baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n\t// Same budget rule as the compaction planner: no output cap is sent, so\n\t// pi-ai's context clamp is the only bound and the inherited reasoning level\n\t// has no artificial budget to exhaust. `reserveTokens` keeps its input-side\n\t// meaning above, unchanged.\n\tconst budget = resolvePlannerRequest(requestModel, thinkingLevel);\n\tconst requestOptions: SimpleStreamOptions = {\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcacheRetention: \"none\",\n\t\tsessionId: uuidv7(),\n\t\t...(budget.reasoning && budget.reasoning !== \"off\" ? { reasoning: budget.reasoning } : {}),\n\t};\n\tconst response = await (async () => {\n\t\ttry {\n\t\t\treturn await retryAssistantCall(\n\t\t\t\tasync () => streamFn\n\t\t\t\t\t? (await streamFn(requestModel, context, requestOptions)).result()\n\t\t\t\t\t: completeSimple(requestModel, context, requestOptions),\n\t\t\t\tretry,\n\t\t\t\tsignal,\n\t\t\t\tcallbacks,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (signal.aborted) return undefined;\n\t\t\treturn {\n\t\t\t\tstopReason: \"error\" as const,\n\t\t\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t})();\n\n\t// Check if aborted or errored\n\tif (!response || response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = response.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\tusage: response.usage,\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
1
+ {"version":3,"file":"branch-summarization.js","sourceRoot":"","sources":["../../../src/core/compaction/branch-summarization.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAIN,kBAAkB,EAClB,MAAM,GACN,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE/F,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACN,gBAAgB,EAChB,aAAa,EACb,yBAAyB,EAEzB,oBAAoB,EACpB,2BAA2B,EAC3B,qBAAqB,GACrB,MAAM,YAAY,CAAC;AAqEpB,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,8BAA8B,CAC7C,OAA+B,EAC/B,SAAwB,EACxB,QAAgB;IAEhB,2CAA2C;IAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;QAChB,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC;IAChD,CAAC;IAED,2DAA2D;IAC3D,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE/C,iFAAiF;IACjF,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACjD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;YACnC,gBAAgB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpC,MAAM;QACP,CAAC;IACF,CAAC;IAED,wDAAwD;IACxD,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,IAAI,OAAO,GAAkB,SAAS,CAAC;IAEvC,OAAO,OAAO,IAAI,OAAO,KAAK,gBAAgB,EAAE,CAAC;QAChD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC,KAAK;YAAE,MAAM;QAClB,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,OAAO,GAAG,KAAK,CAAC,QAAQ,CAAC;IAC1B,CAAC;IAED,qCAAqC;IACrC,OAAO,CAAC,OAAO,EAAE,CAAC;IAElB,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC;AACtC,CAAC;AAED,+EAA+E;AAC/E,8BAA8B;AAC9B,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,mBAAmB,CAAC,KAAmB;IAC/C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,SAAS;YACb,0DAA0D;YAC1D,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY;gBAAE,OAAO,SAAS,CAAC;YAC1D,OAAO,KAAK,CAAC,OAAO,CAAC;QAEtB,KAAK,gBAAgB;YACpB,OAAO,mBAAmB,CACzB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,kBAAkB,CACxB,CAAC;QAEH,KAAK,gBAAgB;YACpB,OAAO,0BAA0B,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEjF,KAAK,YAAY;YAChB,OAAO,SAAS,CAAC;QAElB,iDAAiD;QACjD,KAAK,uBAAuB,CAAC;QAC7B,KAAK,cAAc,CAAC;QACpB,KAAK,QAAQ,CAAC;QACd,KAAK,OAAO,CAAC;QACb,KAAK,cAAc,CAAC;QACpB,KAAK,oBAAoB;YACxB,OAAO,SAAS,CAAC;IACnB,CAAC;AACF,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAuB,EAAE,WAAW,GAAW,CAAC;IACpF,MAAM,QAAQ,GAAmB,EAAE,CAAC;IACpC,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,eAAe,GAAG,OAAO,CAAC;IAChC,IAAI,WAAW,GAAG,CAAC,CAAC;IAEpB,yFAAyF;IACzF,gFAAgF;IAChF,6FAA6F;IAC7F,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACzE,MAAM,OAAO,GAAG,KAAK,CAAC,OAA+B,CAAC;YACtD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtC,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,SAAS;oBAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1C,0EAA0E;gBAC1E,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;oBACvC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;gBACvB,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,8EAA8E;IAC9E,KAAK,IAAI,CAAC,GAAG,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtD,MAAM,KAAK,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,OAAO,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,wDAAwD;QACxD,yBAAyB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QAEvC,6BAA6B;QAC7B,IAAI,WAAW,GAAG,CAAC,IAAI,WAAW,GAAG,MAAM,GAAG,WAAW,EAAE,CAAC;YAC3D,oFAAoF;YACpF,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrC,IAAI,WAAW,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC;oBACrC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBAC1B,WAAW,IAAI,MAAM,CAAC;gBACvB,CAAC;YACF,CAAC;YACD,8BAA8B;YAC9B,MAAM;QACP,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1B,WAAW,IAAI,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;AAC3C,CAAC;AAED,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,MAAM,uBAAuB,GAAG;;;CAG/B,CAAC;AAEF,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;0FA2B4D,CAAC;AAE3F;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,OAAuB,EACvB,OAAqC;IAErC,MAAM,EACL,KAAK,EACL,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,kBAAkB,EAClB,mBAAmB,EACnB,aAAa,GAAG,KAAK,EACrB,aAAa,EACb,QAAQ,EACR,KAAK,EACL,SAAS,GACT,GAAG,OAAO,CAAC;IAEZ,2EAA2E;IAC3E,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC;IACpD,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,CAAC;IAElD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAEzE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,CAAC;IAC/C,CAAC;IAED,+DAA+D;IAC/D,kFAAkF;IAClF,MAAM,WAAW,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;IAE5D,eAAe;IACf,IAAI,YAAoB,CAAC;IACzB,IAAI,mBAAmB,IAAI,kBAAkB,EAAE,CAAC;QAC/C,YAAY,GAAG,kBAAkB,CAAC;IACnC,CAAC;SAAM,IAAI,kBAAkB,EAAE,CAAC;QAC/B,YAAY,GAAG,GAAG,qBAAqB,yBAAyB,kBAAkB,EAAE,CAAC;IACtF,CAAC;SAAM,CAAC;QACP,YAAY,GAAG,qBAAqB,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,mBAAmB,gBAAgB,wBAAwB,YAAY,EAAE,CAAC;IAE7F,MAAM,qBAAqB,GAAG;QAC7B;YACC,IAAI,EAAE,MAAe;YACrB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACtD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACrB;KACD,CAAC;IAEF,wEAAwE;IACxE,kEAAkE;IAClE,MAAM,OAAO,GAAG,EAAE,YAAY,EAAE,2BAA2B,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAC/F,MAAM,YAAY,GAAG,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,CAAC;IACxG,wEAAwE;IACxE,4EAA4E;IAC5E,4EAA4E;IAC5E,4BAA4B;IAC5B,MAAM,MAAM,GAAG,qBAAqB,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAClE,MAAM,cAAc,GAAwB;QAC3C,MAAM;QACN,OAAO;QACP,MAAM;QACN,cAAc,EAAE,MAAM;QACtB,SAAS,EAAE,MAAM,EAAE;QACnB,GAAG,CAAC,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1F,CAAC;IACF,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC;YACJ,OAAO,MAAM,kBAAkB,CAC9B,KAAK,IAAI,EAAE,CACV,QAAQ;gBACP,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,MAAM,EAAE;gBAClE,CAAC,CAAC,cAAc,CAAC,YAAY,EAAE,OAAO,EAAE,cAAc,CAAC,EACzD,KAAK,EACL,MAAM,EACN,SAAS,CACT,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,MAAM,CAAC,OAAO;gBAAE,OAAO,SAAS,CAAC;YACrC,OAAO;gBACN,UAAU,EAAE,OAAgB;gBAC5B,YAAY,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aACpE,CAAC;QACH,CAAC;IACF,CAAC,CAAC,EAAE,CAAC;IAEL,8BAA8B;IAC9B,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI,QAAQ,CAAC,UAAU,KAAK,OAAO,EAAE,CAAC;QACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,IAAI,sBAAsB,EAAE,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAuC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC;SACrE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;SAClB,IAAI,CAAC,IAAI,CAAC,CAAC;IAEb,+DAA+D;IAC/D,OAAO,GAAG,uBAAuB,GAAG,OAAO,CAAC;IAE5C,2CAA2C;IAC3C,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/D,OAAO,IAAI,oBAAoB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE1D,OAAO;QACN,OAAO,EAAE,OAAO,IAAI,sBAAsB;QAC1C,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,SAAS;QACT,aAAa;KACb,CAAC;AACH,CAAC","sourcesContent":["/**\n * Branch summarization for tree navigation.\n *\n * When navigating to a different point in the session tree, this generates\n * a summary of the branch being left so context isn't lost.\n */\n\nimport type { AgentMessage, StreamFn, ThinkingLevel } from \"@earendil-works/pi-agent-core\";\nimport {\n\ttype ProviderHeaders,\n\ttype RetryCallbacks,\n\ttype RetryPolicy,\n\tretryAssistantCall,\n\tuuidv7,\n} from \"@earendil-works/pi-ai\";\nimport type { Api, Model, SimpleStreamOptions, Usage } from \"@earendil-works/pi-ai/compat\";\nimport { completeSimple } from \"@earendil-works/pi-ai/compat\";\nimport { convertToLlm, createBranchSummaryMessage, createCustomMessage } from \"../messages.ts\";\nimport type { ReadonlySessionManager, SessionEntry } from \"../session-manager.ts\";\nimport { estimateTokens } from \"./compaction.ts\";\nimport { resolvePlannerRequest } from \"./range-planner.ts\";\nimport {\n\tcomputeFileLists,\n\tcreateFileOps,\n\textractFileOpsFromMessage,\n\ttype FileOperations,\n\tformatFileOperations,\n\tSUMMARIZATION_SYSTEM_PROMPT,\n\tserializeConversation,\n} from \"./utils.ts\";\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface BranchSummaryResult {\n\tsummary?: string;\n\treadFiles?: string[];\n\tmodifiedFiles?: string[];\n\tusage?: Usage;\n\taborted?: boolean;\n\terror?: string;\n}\n\n/** Details stored in BranchSummaryEntry.details for file tracking */\nexport interface BranchSummaryDetails {\n\treadFiles: string[];\n\tmodifiedFiles: string[];\n}\n\nexport type { FileOperations } from \"./utils.ts\";\n\nexport interface BranchPreparation {\n\t/** Messages extracted for summarization, in chronological order */\n\tmessages: AgentMessage[];\n\t/** File operations extracted from tool calls */\n\tfileOps: FileOperations;\n\t/** Total estimated tokens in messages */\n\ttotalTokens: number;\n}\n\nexport interface CollectEntriesResult {\n\t/** Entries to summarize, in chronological order */\n\tentries: SessionEntry[];\n\t/** Common ancestor between old and new position, if any */\n\tcommonAncestorId: string | null;\n}\n\nexport interface GenerateBranchSummaryOptions {\n\t/** Model to use for summarization */\n\tmodel: Model<Api>;\n\t/** API key for the model; omitted for header-only bearer authentication. */\n\tapiKey?: string;\n\t/** Request headers for the model */\n\theaders?: ProviderHeaders;\n\t/** Credential-specific request endpoint for the model */\n\tbaseUrl?: string;\n\t/** Abort signal for cancellation */\n\tsignal: AbortSignal;\n\t/** Optional custom instructions for summarization */\n\tcustomInstructions?: string;\n\t/** If true, customInstructions replaces the default prompt instead of being appended */\n\treplaceInstructions?: boolean;\n\t/** Tokens reserved for prompt + LLM response (default 16384) */\n\treserveTokens?: number;\n\t/**\n\t * Session reasoning level, inherited by the summarization request.\n\t * No output cap is sent, so thinking has no artificial budget to exhaust.\n\t */\n\tthinkingLevel?: ThinkingLevel;\n\t/** Optional session stream function. Used to preserve SDK request behavior without mutating agent state. */\n\tstreamFn?: StreamFn;\n\t/** Retry policy for transient summarization failures. */\n\tretry?: RetryPolicy;\n\t/** Retry lifecycle callbacks. */\n\tcallbacks?: RetryCallbacks;\n}\n\n// ============================================================================\n// Entry Collection\n// ============================================================================\n\n/**\n * Collect entries that should be summarized when navigating from one position to another.\n *\n * Walks from oldLeafId back to the common ancestor with targetId, collecting entries\n * along the way. Does NOT stop at legacy compaction entries, but those entries are\n * inert and are not fed into branch summarization prompts.\n *\n * @param session - Session manager (read-only access)\n * @param oldLeafId - Current position (where we're navigating from)\n * @param targetId - Target position (where we're navigating to)\n * @returns Entries to summarize and the common ancestor\n */\nexport function collectEntriesForBranchSummary(\n\tsession: ReadonlySessionManager,\n\toldLeafId: string | null,\n\ttargetId: string,\n): CollectEntriesResult {\n\t// If no old position, nothing to summarize\n\tif (!oldLeafId) {\n\t\treturn { entries: [], commonAncestorId: null };\n\t}\n\n\t// Find common ancestor (deepest node that's on both paths)\n\tconst oldPath = new Set(session.getBranch(oldLeafId).map((e) => e.id));\n\tconst targetPath = session.getBranch(targetId);\n\n\t// targetPath is root-first, so iterate backwards to find deepest common ancestor\n\tlet commonAncestorId: string | null = null;\n\tfor (let i = targetPath.length - 1; i >= 0; i--) {\n\t\tif (oldPath.has(targetPath[i].id)) {\n\t\t\tcommonAncestorId = targetPath[i].id;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Collect entries from old leaf back to common ancestor\n\tconst entries: SessionEntry[] = [];\n\tlet current: string | null = oldLeafId;\n\n\twhile (current && current !== commonAncestorId) {\n\t\tconst entry = session.getEntry(current);\n\t\tif (!entry) break;\n\t\tentries.push(entry);\n\t\tcurrent = entry.parentId;\n\t}\n\n\t// Reverse to get chronological order\n\tentries.reverse();\n\n\treturn { entries, commonAncestorId };\n}\n\n// ============================================================================\n// Entry to Message Conversion\n// ============================================================================\n\n/**\n * Extract AgentMessage from a session entry.\n * Similar to getMessageFromEntry in compaction.ts, with legacy compaction entries kept inert.\n */\nfunction getMessageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tswitch (entry.type) {\n\t\tcase \"message\":\n\t\t\t// Skip tool results - context is in assistant's tool call\n\t\t\tif (entry.message.role === \"toolResult\") return undefined;\n\t\t\treturn entry.message;\n\n\t\tcase \"custom_message\":\n\t\t\treturn createCustomMessage(\n\t\t\t\tentry.customType,\n\t\t\t\tentry.content,\n\t\t\t\tentry.display,\n\t\t\t\tentry.details,\n\t\t\t\tentry.timestamp,\n\t\t\t\tentry.excludeFromContext,\n\t\t\t);\n\n\t\tcase \"branch_summary\":\n\t\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\n\t\tcase \"compaction\":\n\t\t\treturn undefined;\n\n\t\t// These don't contribute to conversation content\n\t\tcase \"thinking_level_change\":\n\t\tcase \"model_change\":\n\t\tcase \"custom\":\n\t\tcase \"label\":\n\t\tcase \"session_info\":\n\t\tcase \"context_compaction\":\n\t\t\treturn undefined;\n\t}\n}\n\n/**\n * Prepare entries for summarization with token budget.\n *\n * Walks entries from NEWEST to OLDEST, adding messages until we hit the token budget.\n * This ensures we keep the most recent context when the branch is too long.\n *\n * Also collects file operations from:\n * - Tool calls in assistant messages\n * - Existing branch_summary entries' details (for cumulative tracking)\n *\n * @param entries - Entries in chronological order\n * @param tokenBudget - Maximum tokens to include (0 = no limit)\n */\nexport function prepareBranchEntries(entries: SessionEntry[], tokenBudget: number = 0): BranchPreparation {\n\tconst messages: AgentMessage[] = [];\n\tconst fileOps = createFileOps();\n\tconst filteredEntries = entries;\n\tlet totalTokens = 0;\n\n\t// First pass: collect file ops from ALL entries (even if they don't fit in token budget)\n\t// This ensures we capture cumulative file tracking from nested branch summaries\n\t// Only extract from pi-generated summaries (fromHook !== true), not extension-generated ones\n\tfor (const entry of filteredEntries) {\n\t\tif (entry.type === \"branch_summary\" && !entry.fromHook && entry.details) {\n\t\t\tconst details = entry.details as BranchSummaryDetails;\n\t\t\tif (Array.isArray(details.readFiles)) {\n\t\t\t\tfor (const f of details.readFiles) fileOps.read.add(f);\n\t\t\t}\n\t\t\tif (Array.isArray(details.modifiedFiles)) {\n\t\t\t\t// Modified files go into both edited and written for proper deduplication\n\t\t\t\tfor (const f of details.modifiedFiles) {\n\t\t\t\t\tfileOps.edited.add(f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Second pass: walk from newest to oldest, adding messages until token budget\n\tfor (let i = filteredEntries.length - 1; i >= 0; i--) {\n\t\tconst entry = filteredEntries[i];\n\t\tconst message = getMessageFromEntry(entry);\n\t\tif (!message) continue;\n\n\t\t// Extract file ops from assistant messages (tool calls)\n\t\textractFileOpsFromMessage(message, fileOps);\n\n\t\tconst tokens = estimateTokens(message);\n\n\t\t// Check budget before adding\n\t\tif (tokenBudget > 0 && totalTokens + tokens > tokenBudget) {\n\t\t\t// If this is a branch summary entry, try to fit it anyway as it's important context\n\t\t\tif (entry.type === \"branch_summary\") {\n\t\t\t\tif (totalTokens < tokenBudget * 0.9) {\n\t\t\t\t\tmessages.unshift(message);\n\t\t\t\t\ttotalTokens += tokens;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Stop - we've hit the budget\n\t\t\tbreak;\n\t\t}\n\n\t\tmessages.unshift(message);\n\t\ttotalTokens += tokens;\n\t}\n\n\treturn { messages, fileOps, totalTokens };\n}\n\n// ============================================================================\n// Summary Generation\n// ============================================================================\n\nconst BRANCH_SUMMARY_PREAMBLE = `The user explored a different conversation branch before returning here.\nSummary of that exploration:\n\n`;\n\nconst BRANCH_SUMMARY_PROMPT = `Create a structured summary of this conversation branch for context when returning later.\n\nUse this EXACT format:\n\n## Goal\n[What was the user trying to accomplish in this branch?]\n\n## Constraints & Preferences\n- [Any constraints, preferences, or requirements mentioned]\n- [Or \"(none)\" if none were mentioned]\n\n## Progress\n### Done\n- [x] [Completed tasks/changes]\n\n### In Progress\n- [ ] [Work that was started but not finished]\n\n### Blocked\n- [Issues preventing progress, if any]\n\n## Key Decisions\n- **[Decision]**: [Brief rationale]\n\n## Next Steps\n1. [What should happen next to continue this work]\n\nKeep each section concise. Preserve exact file paths, function names, and error messages.`;\n\n/**\n * Generate a summary of abandoned branch entries.\n *\n * @param entries - Session entries to summarize (chronological order)\n * @param options - Generation options\n */\nexport async function generateBranchSummary(\n\tentries: SessionEntry[],\n\toptions: GenerateBranchSummaryOptions,\n): Promise<BranchSummaryResult> {\n\tconst {\n\t\tmodel,\n\t\tapiKey,\n\t\theaders,\n\t\tbaseUrl,\n\t\tsignal,\n\t\tcustomInstructions,\n\t\treplaceInstructions,\n\t\treserveTokens = 16384,\n\t\tthinkingLevel,\n\t\tstreamFn,\n\t\tretry,\n\t\tcallbacks,\n\t} = options;\n\n\t// Token budget = context window minus reserved space for prompt + response\n\tconst contextWindow = model.contextWindow || 128000;\n\tconst tokenBudget = contextWindow - reserveTokens;\n\n\tconst { messages, fileOps } = prepareBranchEntries(entries, tokenBudget);\n\n\tif (messages.length === 0) {\n\t\treturn { summary: \"No content to summarize\" };\n\t}\n\n\t// Transform to LLM-compatible messages, then serialize to text\n\t// Serialization prevents the model from treating it as a conversation to continue\n\tconst llmMessages = convertToLlm(messages);\n\tconst conversationText = serializeConversation(llmMessages);\n\n\t// Build prompt\n\tlet instructions: string;\n\tif (replaceInstructions && customInstructions) {\n\t\tinstructions = customInstructions;\n\t} else if (customInstructions) {\n\t\tinstructions = `${BRANCH_SUMMARY_PROMPT}\\n\\nAdditional focus: ${customInstructions}`;\n\t} else {\n\t\tinstructions = BRANCH_SUMMARY_PROMPT;\n\t}\n\tconst promptText = `<conversation>\\n${conversationText}\\n</conversation>\\n\\n${instructions}`;\n\n\tconst summarizationMessages = [\n\t\t{\n\t\t\trole: \"user\" as const,\n\t\t\tcontent: [{ type: \"text\" as const, text: promptText }],\n\t\t\ttimestamp: Date.now(),\n\t\t},\n\t];\n\n\t// Call LLM for summarization. Prefer the session stream function so SDK\n\t// request behavior stays consistent without mutating agent state.\n\tconst context = { systemPrompt: SUMMARIZATION_SYSTEM_PROMPT, messages: summarizationMessages };\n\tconst requestModel = baseUrl === undefined || baseUrl === model.baseUrl ? model : { ...model, baseUrl };\n\t// Same budget rule as the compaction planner: no output cap is sent, so\n\t// pi-ai's context clamp is the only bound and the inherited reasoning level\n\t// has no artificial budget to exhaust. `reserveTokens` keeps its input-side\n\t// meaning above, unchanged.\n\tconst budget = resolvePlannerRequest(requestModel, thinkingLevel);\n\tconst requestOptions: SimpleStreamOptions = {\n\t\tapiKey,\n\t\theaders,\n\t\tsignal,\n\t\tcacheRetention: \"none\",\n\t\tsessionId: uuidv7(),\n\t\t...(budget.reasoning && budget.reasoning !== \"off\" ? { reasoning: budget.reasoning } : {}),\n\t};\n\tconst response = await (async () => {\n\t\ttry {\n\t\t\treturn await retryAssistantCall(\n\t\t\t\tasync () =>\n\t\t\t\t\tstreamFn\n\t\t\t\t\t\t? (await streamFn(requestModel, context, requestOptions)).result()\n\t\t\t\t\t\t: completeSimple(requestModel, context, requestOptions),\n\t\t\t\tretry,\n\t\t\t\tsignal,\n\t\t\t\tcallbacks,\n\t\t\t);\n\t\t} catch (error) {\n\t\t\tif (signal.aborted) return undefined;\n\t\t\treturn {\n\t\t\t\tstopReason: \"error\" as const,\n\t\t\t\terrorMessage: error instanceof Error ? error.message : String(error),\n\t\t\t};\n\t\t}\n\t})();\n\n\t// Check if aborted or errored\n\tif (!response || response.stopReason === \"aborted\") {\n\t\treturn { aborted: true };\n\t}\n\tif (response.stopReason === \"error\") {\n\t\treturn { error: response.errorMessage || \"Summarization failed\" };\n\t}\n\n\tlet summary = response.content\n\t\t.filter((c): c is { type: \"text\"; text: string } => c.type === \"text\")\n\t\t.map((c) => c.text)\n\t\t.join(\"\\n\");\n\n\t// Prepend preamble to provide context about the branch summary\n\tsummary = BRANCH_SUMMARY_PREAMBLE + summary;\n\n\t// Compute file lists and append to summary\n\tconst { readFiles, modifiedFiles } = computeFileLists(fileOps);\n\tsummary += formatFileOperations(readFiles, modifiedFiles);\n\n\treturn {\n\t\tsummary: summary || \"No summary generated\",\n\t\tusage: response.usage,\n\t\treadFiles,\n\t\tmodifiedFiles,\n\t};\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-boundary.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compaction-boundary.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAyC,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAEjG,OAAO,EAIN,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,MAAM,uBAAuB,CAAC;AAW/B,qEAAqE;AACrE,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,6BAA6B,GAAG,MAAM,CAG3F;AAqCD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CASlF;AAUD;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACzC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,YAAY,EAAE,EAC3B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACnD,OAAO,GAAE,yBAA8B,GACrC,6BAA6B,GAAG,SAAS,CAiC3C"}
1
+ {"version":3,"file":"compaction-boundary.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compaction-boundary.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAmB,YAAY,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAE,KAAK,kBAAkB,EAAyC,MAAM,iBAAiB,CAAC;AAMjG,OAAO,EAIN,KAAK,4BAA4B,EACjC,KAAK,6BAA6B,EAClC,MAAM,uBAAuB,CAAC;AAW/B,qEAAqE;AACrE,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,6BAA6B,GAAG,MAAM,CAK3F;AAgDD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,CASlF;AAYD;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAAyB;IACzC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,8FAA8F;AAC9F,wBAAgB,yBAAyB,CACxC,WAAW,EAAE,YAAY,EAAE,EAC3B,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,GAAE,OAAO,CAAC,4BAA4B,CAAM,EACnD,OAAO,GAAE,yBAA8B,GACrC,6BAA6B,GAAG,SAAS,CAuC3C"}
@@ -1,15 +1,15 @@
1
- import { convertToLlm, createBranchSummaryMessage, createCustomMessage, messageIsLlmVisible, messageStartsLlmUserTurn } from "../messages.js";
1
+ import { convertToLlm, createBranchSummaryMessage, createCustomMessage, messageIsLlmVisible, messageStartsLlmUserTurn, } from "../messages.js";
2
2
  import { normalizeDerivedSessionEntries } from "../session-entry-normalization.js";
3
3
  import { buildSessionContext } from "../session-manager-history.js";
4
4
  import { estimateContextTokens, estimateTokens } from "./compaction.js";
5
- import { normalizeCompactionParameters, normalizeCompactionQuery, COMPACTION_AUTO_QUERY } from "./compaction-parameters.js";
5
+ import { COMPACTION_AUTO_QUERY, normalizeCompactionParameters, normalizeCompactionQuery, } from "./compaction-parameters.js";
6
6
  import { MIN_COMPACTABLE_REGION_LINES, VERBATIM_COMPACTION_STRATEGY, } from "./compaction-types.js";
7
7
  import { createNumberedRegion, serializeConversationForCompaction } from "./transcript-serialization.js";
8
8
  const keptTailTokensByPreparation = new WeakMap();
9
9
  /** Return the independently estimated cost of the protected tail. */
10
10
  export function getKeptTailTokenEstimate(preparation) {
11
- return keptTailTokensByPreparation.get(preparation)
12
- ?? Math.max(0, preparation.tokensBefore - preparation.region.tokenEstimate);
11
+ return (keptTailTokensByPreparation.get(preparation) ??
12
+ Math.max(0, preparation.tokensBefore - preparation.region.tokenEstimate));
13
13
  }
14
14
  function messageFromEntry(entry) {
15
15
  if (entry.type === "message")
@@ -43,7 +43,9 @@ function messageText(message) {
43
43
  if (converted.length === 0)
44
44
  return "";
45
45
  return converted
46
- .flatMap((item) => typeof item.content === "string" ? [item.content] : item.content.filter((block) => block.type === "text").map((block) => block.text))
46
+ .flatMap((item) => typeof item.content === "string"
47
+ ? [item.content]
48
+ : item.content.filter((block) => block.type === "text").map((block) => block.text))
47
49
  .join("\n");
48
50
  }
49
51
  export function autoDetectCompactionQuery(entries) {
@@ -83,7 +85,9 @@ export function prepareCompactionBoundary(pathEntries, settings, options = {}, c
83
85
  const regionMessages = visible.slice(0, tailStart);
84
86
  const tailMessages = visible.slice(tailStart);
85
87
  const serialized = serializeConversationForCompaction(convertToLlm(regionMessages.map((item) => item.message)));
86
- const regionText = [previous?.entry.summary, serialized].filter((text) => typeof text === "string" && text.length > 0).join("\n");
88
+ const regionText = [previous?.entry.summary, serialized]
89
+ .filter((text) => typeof text === "string" && text.length > 0)
90
+ .join("\n");
87
91
  const region = createNumberedRegion(regionText);
88
92
  if (!control.allowSmallRegion && region.lines.length < MIN_COMPACTABLE_REGION_LINES)
89
93
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-boundary.js","sourceRoot":"","sources":["../../../src/core/compaction/compaction-boundary.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport { convertToLlm, createBranchSummaryMessage, createCustomMessage, messageIsLlmVisible, messageStartsLlmUserTurn } from \"../messages.js\";\nimport { normalizeDerivedSessionEntries } from \"../session-entry-normalization.js\";\nimport { buildSessionContext } from \"../session-manager-history.js\";\nimport type { CompactionEntry, SessionEntry } from \"../session-manager-types.js\";\nimport { estimateContextTokens, estimateTokens, type CompactionSettings } from \"./compaction.js\";\nimport { normalizeCompactionParameters, normalizeCompactionQuery, COMPACTION_AUTO_QUERY } from \"./compaction-parameters.js\";\nimport {\n\tMIN_COMPACTABLE_REGION_LINES,\n\tVERBATIM_COMPACTION_STRATEGY,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n} from \"./compaction-types.js\";\nimport { createNumberedRegion, serializeConversationForCompaction } from \"./transcript-serialization.js\";\n\ninterface VisibleEntry {\n\tentry: SessionEntry;\n\tindex: number;\n\tmessage: AgentMessage;\n}\n\nconst keptTailTokensByPreparation = new WeakMap<VerbatimCompactionPreparation, number>();\n\n/** Return the independently estimated cost of the protected tail. */\nexport function getKeptTailTokenEstimate(preparation: VerbatimCompactionPreparation): number {\n\treturn keptTailTokensByPreparation.get(preparation)\n\t\t?? Math.max(0, preparation.tokensBefore - preparation.region.tokenEstimate);\n}\n\nfunction messageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tif (entry.type === \"message\") return entry.message;\n\tif (entry.type === \"custom_message\") {\n\t\treturn createCustomMessage(entry.customType, entry.content, entry.display, entry.details, entry.timestamp, entry.excludeFromContext);\n\t}\n\tif (entry.type === \"branch_summary\" && typeof entry.summary === \"string\") {\n\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\t}\n\treturn undefined;\n}\n\nfunction activeBoundary(entry: SessionEntry): entry is CompactionEntry<VerbatimCompactionDetails> {\n\tif (entry.type !== \"compaction\") return false;\n\tconst details = (entry as CompactionEntry<{ strategy?: string }>).details;\n\treturn details?.strategy === VERBATIM_COMPACTION_STRATEGY;\n}\n\nfunction visibleEntries(entries: SessionEntry[], start = 0): VisibleEntry[] {\n\tconst visible: VisibleEntry[] = [];\n\tfor (let index = start; index < entries.length; index++) {\n\t\tconst entry = entries[index];\n\t\tconst message = messageFromEntry(entry);\n\t\tif (message && messageIsLlmVisible(message)) visible.push({ entry, index, message });\n\t}\n\treturn visible;\n}\n\nfunction messageText(message: AgentMessage): string {\n\tconst converted = convertToLlm([message]);\n\tif (converted.length === 0) return \"\";\n\treturn converted\n\t\t.flatMap((item) => typeof item.content === \"string\" ? [item.content] : item.content.filter((block) => block.type === \"text\").map((block) => block.text))\n\t\t.join(\"\\n\");\n}\n\nexport function autoDetectCompactionQuery(entries: readonly SessionEntry[]): string {\n\tconst normalized = normalizeDerivedSessionEntries(entries);\n\tfor (let index = normalized.length - 1; index >= 0; index--) {\n\t\tconst message = messageFromEntry(normalized[index]);\n\t\tif (!message || !messageStartsLlmUserTurn(message)) continue;\n\t\tconst text = messageText(message).trim();\n\t\tif (text) return normalizeCompactionQuery(text, COMPACTION_AUTO_QUERY);\n\t}\n\treturn COMPACTION_AUTO_QUERY;\n}\n\nfunction latestActiveBoundary(entries: SessionEntry[]): { entry: CompactionEntry<VerbatimCompactionDetails>; index: number } | undefined {\n\tfor (let index = entries.length - 1; index >= 0; index--) {\n\t\tconst entry = entries[index];\n\t\tif (activeBoundary(entry)) return { entry, index };\n\t}\n\treturn undefined;\n}\n\n/**\n * Planner eligibility, kept separate from boundary preparation.\n *\n * `MIN_COMPACTABLE_REGION_LINES` exists to stop repeated pointless *planned*\n * compaction. A load-bearing caller has a different problem: one oversized tool\n * result can blow the context window while producing fewer than 20 compactable\n * lines, and refusing to prepare a boundary there makes the \"always completes\"\n * guarantee hollow — the fresh rung and its tail-drop rule become unreachable.\n */\nexport interface CompactionBoundaryControl {\n\t/**\n\t * Prepare a boundary even when the region is below the planner minimum.\n\t * Only `load_bearing` callers set this; the runner routes such a region\n\t * straight to the fresh rung without invoking a planner.\n\t */\n\tallowSmallRegion?: boolean;\n}\n\n/** Prepare the complete compactable transcript and its exact context-visible message tail. */\nexport function prepareCompactionBoundary(\n\tpathEntries: SessionEntry[],\n\tsettings: CompactionSettings,\n\toptions: Partial<VerbatimCompactionParameters> = {},\n\tcontrol: CompactionBoundaryControl = {},\n): VerbatimCompactionPreparation | undefined {\n\tconst entries = normalizeDerivedSessionEntries(pathEntries);\n\tconst previous = latestActiveBoundary(entries);\n\tlet regionStart = 0;\n\tif (previous) {\n\t\tconst keptIndex = previous.entry.firstKeptEntryId === null\n\t\t\t? -1\n\t\t\t: entries.findIndex((entry) => entry.id === previous.entry.firstKeptEntryId);\n\t\tregionStart = keptIndex >= 0 ? keptIndex : previous.index + 1;\n\t}\n\n\tconst visible = visibleEntries(entries, regionStart);\n\tconst parameters = normalizeCompactionParameters({ ...settings, ...options }, autoDetectCompactionQuery(entries));\n\tconst tailStart = Math.max(0, visible.length - parameters.preserve_recent);\n\tconst regionMessages = visible.slice(0, tailStart);\n\tconst tailMessages = visible.slice(tailStart);\n\n\tconst serialized = serializeConversationForCompaction(convertToLlm(regionMessages.map((item) => item.message)));\n\tconst regionText = [previous?.entry.summary, serialized].filter((text): text is string => typeof text === \"string\" && text.length > 0).join(\"\\n\");\n\tconst region = createNumberedRegion(regionText);\n\tif (!control.allowSmallRegion && region.lines.length < MIN_COMPACTABLE_REGION_LINES) return undefined;\n\n\tconst preparation: VerbatimCompactionPreparation = {\n\t\tfirstKeptEntryId: tailMessages[0]?.entry.id ?? null,\n\t\tregion,\n\t\tregionEntryIds: regionMessages.map((item) => item.entry.id),\n\t\tkeptTailMessageCount: tailMessages.length,\n\t\ttokensBefore: estimateContextTokens(buildSessionContext(entries).messages).tokens,\n\t\tparameters,\n\t\tsettings,\n\t};\n\tkeptTailTokensByPreparation.set(preparation, tailMessages.reduce((sum, item) => sum + estimateTokens(item.message), 0));\n\treturn preparation;\n}\n"]}
1
+ {"version":3,"file":"compaction-boundary.js","sourceRoot":"","sources":["../../../src/core/compaction/compaction-boundary.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nimport {\n\tconvertToLlm,\n\tcreateBranchSummaryMessage,\n\tcreateCustomMessage,\n\tmessageIsLlmVisible,\n\tmessageStartsLlmUserTurn,\n} from \"../messages.js\";\nimport { normalizeDerivedSessionEntries } from \"../session-entry-normalization.js\";\nimport { buildSessionContext } from \"../session-manager-history.js\";\nimport type { CompactionEntry, SessionEntry } from \"../session-manager-types.js\";\nimport { type CompactionSettings, estimateContextTokens, estimateTokens } from \"./compaction.js\";\nimport {\n\tCOMPACTION_AUTO_QUERY,\n\tnormalizeCompactionParameters,\n\tnormalizeCompactionQuery,\n} from \"./compaction-parameters.js\";\nimport {\n\tMIN_COMPACTABLE_REGION_LINES,\n\tVERBATIM_COMPACTION_STRATEGY,\n\ttype VerbatimCompactionDetails,\n\ttype VerbatimCompactionParameters,\n\ttype VerbatimCompactionPreparation,\n} from \"./compaction-types.js\";\nimport { createNumberedRegion, serializeConversationForCompaction } from \"./transcript-serialization.js\";\n\ninterface VisibleEntry {\n\tentry: SessionEntry;\n\tindex: number;\n\tmessage: AgentMessage;\n}\n\nconst keptTailTokensByPreparation = new WeakMap<VerbatimCompactionPreparation, number>();\n\n/** Return the independently estimated cost of the protected tail. */\nexport function getKeptTailTokenEstimate(preparation: VerbatimCompactionPreparation): number {\n\treturn (\n\t\tkeptTailTokensByPreparation.get(preparation) ??\n\t\tMath.max(0, preparation.tokensBefore - preparation.region.tokenEstimate)\n\t);\n}\n\nfunction messageFromEntry(entry: SessionEntry): AgentMessage | undefined {\n\tif (entry.type === \"message\") return entry.message;\n\tif (entry.type === \"custom_message\") {\n\t\treturn createCustomMessage(\n\t\t\tentry.customType,\n\t\t\tentry.content,\n\t\t\tentry.display,\n\t\t\tentry.details,\n\t\t\tentry.timestamp,\n\t\t\tentry.excludeFromContext,\n\t\t);\n\t}\n\tif (entry.type === \"branch_summary\" && typeof entry.summary === \"string\") {\n\t\treturn createBranchSummaryMessage(entry.summary, entry.fromId, entry.timestamp);\n\t}\n\treturn undefined;\n}\n\nfunction activeBoundary(entry: SessionEntry): entry is CompactionEntry<VerbatimCompactionDetails> {\n\tif (entry.type !== \"compaction\") return false;\n\tconst details = (entry as CompactionEntry<{ strategy?: string }>).details;\n\treturn details?.strategy === VERBATIM_COMPACTION_STRATEGY;\n}\n\nfunction visibleEntries(entries: SessionEntry[], start = 0): VisibleEntry[] {\n\tconst visible: VisibleEntry[] = [];\n\tfor (let index = start; index < entries.length; index++) {\n\t\tconst entry = entries[index];\n\t\tconst message = messageFromEntry(entry);\n\t\tif (message && messageIsLlmVisible(message)) visible.push({ entry, index, message });\n\t}\n\treturn visible;\n}\n\nfunction messageText(message: AgentMessage): string {\n\tconst converted = convertToLlm([message]);\n\tif (converted.length === 0) return \"\";\n\treturn converted\n\t\t.flatMap((item) =>\n\t\t\ttypeof item.content === \"string\"\n\t\t\t\t? [item.content]\n\t\t\t\t: item.content.filter((block) => block.type === \"text\").map((block) => block.text),\n\t\t)\n\t\t.join(\"\\n\");\n}\n\nexport function autoDetectCompactionQuery(entries: readonly SessionEntry[]): string {\n\tconst normalized = normalizeDerivedSessionEntries(entries);\n\tfor (let index = normalized.length - 1; index >= 0; index--) {\n\t\tconst message = messageFromEntry(normalized[index]);\n\t\tif (!message || !messageStartsLlmUserTurn(message)) continue;\n\t\tconst text = messageText(message).trim();\n\t\tif (text) return normalizeCompactionQuery(text, COMPACTION_AUTO_QUERY);\n\t}\n\treturn COMPACTION_AUTO_QUERY;\n}\n\nfunction latestActiveBoundary(\n\tentries: SessionEntry[],\n): { entry: CompactionEntry<VerbatimCompactionDetails>; index: number } | undefined {\n\tfor (let index = entries.length - 1; index >= 0; index--) {\n\t\tconst entry = entries[index];\n\t\tif (activeBoundary(entry)) return { entry, index };\n\t}\n\treturn undefined;\n}\n\n/**\n * Planner eligibility, kept separate from boundary preparation.\n *\n * `MIN_COMPACTABLE_REGION_LINES` exists to stop repeated pointless *planned*\n * compaction. A load-bearing caller has a different problem: one oversized tool\n * result can blow the context window while producing fewer than 20 compactable\n * lines, and refusing to prepare a boundary there makes the \"always completes\"\n * guarantee hollow — the fresh rung and its tail-drop rule become unreachable.\n */\nexport interface CompactionBoundaryControl {\n\t/**\n\t * Prepare a boundary even when the region is below the planner minimum.\n\t * Only `load_bearing` callers set this; the runner routes such a region\n\t * straight to the fresh rung without invoking a planner.\n\t */\n\tallowSmallRegion?: boolean;\n}\n\n/** Prepare the complete compactable transcript and its exact context-visible message tail. */\nexport function prepareCompactionBoundary(\n\tpathEntries: SessionEntry[],\n\tsettings: CompactionSettings,\n\toptions: Partial<VerbatimCompactionParameters> = {},\n\tcontrol: CompactionBoundaryControl = {},\n): VerbatimCompactionPreparation | undefined {\n\tconst entries = normalizeDerivedSessionEntries(pathEntries);\n\tconst previous = latestActiveBoundary(entries);\n\tlet regionStart = 0;\n\tif (previous) {\n\t\tconst keptIndex =\n\t\t\tprevious.entry.firstKeptEntryId === null\n\t\t\t\t? -1\n\t\t\t\t: entries.findIndex((entry) => entry.id === previous.entry.firstKeptEntryId);\n\t\tregionStart = keptIndex >= 0 ? keptIndex : previous.index + 1;\n\t}\n\n\tconst visible = visibleEntries(entries, regionStart);\n\tconst parameters = normalizeCompactionParameters({ ...settings, ...options }, autoDetectCompactionQuery(entries));\n\tconst tailStart = Math.max(0, visible.length - parameters.preserve_recent);\n\tconst regionMessages = visible.slice(0, tailStart);\n\tconst tailMessages = visible.slice(tailStart);\n\n\tconst serialized = serializeConversationForCompaction(convertToLlm(regionMessages.map((item) => item.message)));\n\tconst regionText = [previous?.entry.summary, serialized]\n\t\t.filter((text): text is string => typeof text === \"string\" && text.length > 0)\n\t\t.join(\"\\n\");\n\tconst region = createNumberedRegion(regionText);\n\tif (!control.allowSmallRegion && region.lines.length < MIN_COMPACTABLE_REGION_LINES) return undefined;\n\n\tconst preparation: VerbatimCompactionPreparation = {\n\t\tfirstKeptEntryId: tailMessages[0]?.entry.id ?? null,\n\t\tregion,\n\t\tregionEntryIds: regionMessages.map((item) => item.entry.id),\n\t\tkeptTailMessageCount: tailMessages.length,\n\t\ttokensBefore: estimateContextTokens(buildSessionContext(entries).messages).tokens,\n\t\tparameters,\n\t\tsettings,\n\t};\n\tkeptTailTokensByPreparation.set(\n\t\tpreparation,\n\t\ttailMessages.reduce((sum, item) => sum + estimateTokens(item.message), 0),\n\t);\n\treturn preparation;\n}\n"]}
@@ -1,8 +1,8 @@
1
1
  import type { StreamFn, ThinkingLevel } from "@earendil-works/pi-agent-core";
2
2
  import type { RetryCallbacks, RetryPolicy } from "@earendil-works/pi-ai";
3
3
  import type { Api, Model } from "@earendil-works/pi-ai/compat";
4
- import { type FallbackPlannerContext } from "./fallback-planner.js";
5
4
  import type { CompactedTranscript, CompactionPlannerModel, CompactionUrgency, PlannerAuth, VerbatimCompactionPreparation } from "./compaction-types.js";
5
+ import { type FallbackPlannerContext } from "./fallback-planner.js";
6
6
  export interface CompactionPlanOptions {
7
7
  streamFn: StreamFn;
8
8
  /** Absolute path of the persisted session file. Undefined for in-memory sessions. */
@@ -1 +1 @@
1
- {"version":3,"file":"compaction-runner.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compaction-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAIN,KAAK,sBAAsB,EAC3B,MAAM,uBAAuB,CAAC;AAW/B,OAAO,KAAK,EAEX,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EAEX,6BAA6B,EAC7B,MAAM,uBAAuB,CAAC;AAG/B,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IAClE,2FAA2F;IAC3F,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACxD,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAQF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,6BAA6B,GAAG,MAAM,CAMlF;AAgDD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CACpC,WAAW,EAAE,6BAA6B,GACxC,mBAAmB,CAErB;AAqID;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,6BAA6B,EAC1C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAmE/B"}
1
+ {"version":3,"file":"compaction-runner.d.ts","sourceRoot":"","sources":["../../../src/core/compaction/compaction-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,KAAK,EAEX,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,WAAW,EAEX,6BAA6B,EAC7B,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAGN,KAAK,sBAAsB,EAE3B,MAAM,uBAAuB,CAAC;AAY/B,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,qFAAqF;IACrF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,SAAS,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,8EAA8E;AAC9E,MAAM,WAAW,oBAAqB,SAAQ,qBAAqB;IAClE,2FAA2F;IAC3F,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;IACrE,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,mEAAmE;IACnE,aAAa,EAAE,aAAa,GAAG,SAAS,CAAC;IACzC,OAAO,EAAE,iBAAiB,CAAC;IAC3B,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG;IACxD,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE,sBAAsB,CAAC;IACtC,qEAAqE;IACrE,QAAQ,EAAE,OAAO,CAAC;CAClB,CAAC;AAQF;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,6BAA6B,GAAG,MAAM,CAMlF;AA4CD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,6BAA6B,GAAG,mBAAmB,CAErG;AAkID;;;;;;;;;;;GAWG;AACH,wBAAsB,qBAAqB,CAC1C,WAAW,EAAE,6BAA6B,EAC1C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAmE/B"}
@@ -1,10 +1,10 @@
1
1
  import { getKeptTailTokenEstimate } from "./compaction-boundary.js";
2
+ import { MIN_COMPACTABLE_REGION_LINES } from "./compaction-types.js";
2
3
  import { reconstructCompactedTranscript, validateDeletedRanges } from "./deleted-ranges.js";
3
4
  import { createFallbackPlannerBorrower, plannerAttemptKey, } from "./fallback-planner.js";
4
5
  import { MALFORMED_OUTPUT_MESSAGE, NO_USABLE_RANGES_MESSAGE, planDeletedLineRanges, RangePlanError, resolvePlannerRequest, } from "./range-planner.js";
5
6
  import { writeSuccessDiagnosticSidecar } from "./range-planner-diagnostics.js";
6
7
  import { nextTrimOffset, rebaseTrimmedRanges, trimRegionHead } from "./region-trimming.js";
7
- import { MIN_COMPACTABLE_REGION_LINES } from "./compaction-types.js";
8
8
  /**
9
9
  * Calculate the single global line threshold from the prepared setting.
10
10
  *
@@ -25,9 +25,7 @@ function hardInputLimitFor(model) {
25
25
  }
26
26
  function withWholeContextStats(result, preparation, keptTail) {
27
27
  const tokensAfter = result.stats.tokensAfter + (keptTail ? getKeptTailTokenEstimate(preparation) : 0);
28
- const percentReduction = preparation.tokensBefore === 0
29
- ? 0
30
- : Math.round((1 - tokensAfter / preparation.tokensBefore) * 1000) / 10;
28
+ const percentReduction = preparation.tokensBefore === 0 ? 0 : Math.round((1 - tokensAfter / preparation.tokensBefore) * 1000) / 10;
31
29
  return {
32
30
  ...result,
33
31
  stats: { ...result.stats, tokensBefore: preparation.tokensBefore, tokensAfter, percentReduction },