@pentoshi/clai 4.18.0 → 5.0.0
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.
- package/CHANGELOG.md +73 -0
- package/CONTRIBUTING.md +3 -2
- package/PROVIDERS.md +3 -3
- package/REA.md +96 -0
- package/README.md +110 -267
- package/SECURITY.md +5 -1
- package/dist/agent/compaction/compaction-prompt.d.ts +49 -0
- package/dist/agent/compaction/compaction-prompt.js +163 -0
- package/dist/agent/compaction/compaction-prompt.js.map +1 -0
- package/dist/agent/compaction/memory-sections.d.ts +27 -0
- package/dist/agent/compaction/memory-sections.js +144 -0
- package/dist/agent/compaction/memory-sections.js.map +1 -0
- package/dist/agent/compaction-summary.d.ts +2 -33
- package/dist/agent/compaction-summary.js +3 -113
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/context/compact-with-summary.d.ts +2 -4
- package/dist/agent/context/compact-with-summary.js +42 -68
- package/dist/agent/context/compact-with-summary.js.map +1 -1
- package/dist/agent/context/compaction-recent-history.d.ts +4 -3
- package/dist/agent/context/compaction-recent-history.js +30 -52
- package/dist/agent/context/compaction-recent-history.js.map +1 -1
- package/dist/agent/context/compaction-user-instructions.d.ts +5 -6
- package/dist/agent/context/compaction-user-instructions.js +156 -231
- package/dist/agent/context/compaction-user-instructions.js.map +1 -1
- package/dist/agent/context-manager.js +17 -8
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/durable-envelope.js +1 -1
- package/dist/agent/durable-envelope.js.map +1 -1
- package/dist/agent/events.d.ts +6 -0
- package/dist/agent/parser/dsml.d.ts +30 -0
- package/dist/agent/parser/dsml.js +233 -0
- package/dist/agent/parser/dsml.js.map +1 -0
- package/dist/agent/parser/vendor-protocols.d.ts +2 -5
- package/dist/agent/parser/vendor-protocols.js +4 -93
- package/dist/agent/parser/vendor-protocols.js.map +1 -1
- package/dist/agent/plan-implement-compact.js +1 -2
- package/dist/agent/plan-implement-compact.js.map +1 -1
- package/dist/agent/reliability-policy.d.ts +1 -0
- package/dist/agent/reliability-policy.js +14 -15
- package/dist/agent/reliability-policy.js.map +1 -1
- package/dist/agent/runner.js +12 -1
- package/dist/agent/runner.js.map +1 -1
- package/dist/agent/tool-call-parser.js +6 -8
- package/dist/agent/tool-call-parser.js.map +1 -1
- package/dist/agent/turn/event-emitter.js +2 -0
- package/dist/agent/turn/event-emitter.js.map +1 -1
- package/dist/agent/turn/loop/answer-path.js +3 -1
- package/dist/agent/turn/loop/answer-path.js.map +1 -1
- package/dist/agent/turn/loop/canonicalize-turn-call.js +5 -3
- package/dist/agent/turn/loop/canonicalize-turn-call.js.map +1 -1
- package/dist/agent/turn/loop/output-budget.d.ts +0 -1
- package/dist/agent/turn/loop/output-budget.js +5 -13
- package/dist/agent/turn/loop/output-budget.js.map +1 -1
- package/dist/agent/turn/loop/request-assembly.js +39 -33
- package/dist/agent/turn/loop/request-assembly.js.map +1 -1
- package/dist/agent/turn/loop/round-request.js +31 -18
- package/dist/agent/turn/loop/round-request.js.map +1 -1
- package/dist/agent/turn/loop/run-rounds.js +0 -2
- package/dist/agent/turn/loop/run-rounds.js.map +1 -1
- package/dist/agent/turn/loop/tool-call-recovery.d.ts +2 -0
- package/dist/agent/turn/loop/tool-call-recovery.js +26 -11
- package/dist/agent/turn/loop/tool-call-recovery.js.map +1 -1
- package/dist/agent/turn/mcp-agent-tools.d.ts +3 -0
- package/dist/agent/turn/mcp-agent-tools.js +11 -2
- package/dist/agent/turn/mcp-agent-tools.js.map +1 -1
- package/dist/agent/turn/prompt-sections.js +1 -0
- package/dist/agent/turn/prompt-sections.js.map +1 -1
- package/dist/agent/turn/scaffold-preflight.d.ts +6 -1
- package/dist/agent/turn/scaffold-preflight.js +10 -2
- package/dist/agent/turn/scaffold-preflight.js.map +1 -1
- package/dist/agent/turn/setup/mcp-agent-ports.d.ts +5 -1
- package/dist/agent/turn/setup/mcp-agent-ports.js +2 -0
- package/dist/agent/turn/setup/mcp-agent-ports.js.map +1 -1
- package/dist/agent/turn/system-sections.d.ts +2 -0
- package/dist/agent/turn/system-sections.js +12 -8
- package/dist/agent/turn/system-sections.js.map +1 -1
- package/dist/agent/turn/tool-execution/deps.d.ts +2 -0
- package/dist/agent/turn/tool-execution/result-framing.js +8 -6
- package/dist/agent/turn/tool-execution/result-framing.js.map +1 -1
- package/dist/agent/turn/tool-execution/single-tool.js +4 -1
- package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
- package/dist/agent/turn/turn-counters.d.ts +1 -0
- package/dist/agent/turn/turn-counters.js +2 -0
- package/dist/agent/turn/turn-counters.js.map +1 -1
- package/dist/agent/turn/workspace-setup.d.ts +7 -2
- package/dist/agent/turn/workspace-setup.js +45 -30
- package/dist/agent/turn/workspace-setup.js.map +1 -1
- package/dist/agent/workspace-orient.d.ts +4 -0
- package/dist/agent/workspace-orient.js +83 -37
- package/dist/agent/workspace-orient.js.map +1 -1
- package/dist/app/adapters/agent-event-adapter.d.ts +1 -0
- package/dist/app/adapters/agent-event-adapter.js +17 -2
- package/dist/app/adapters/agent-event-adapter.js.map +1 -1
- package/dist/app/adapters/current-agent-adapter.js +1 -0
- package/dist/app/adapters/current-agent-adapter.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +10 -3
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +13 -4
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/commands/registry.js +1 -1
- package/dist/app/commands/registry.js.map +1 -1
- package/dist/app/controllers/session-changes.d.ts +5 -0
- package/dist/app/controllers/session-changes.js +50 -20
- package/dist/app/controllers/session-changes.js.map +1 -1
- package/dist/app/controllers/session-compact-helper.js +2 -5
- package/dist/app/controllers/session-compact-helper.js.map +1 -1
- package/dist/app/controllers/session-controller.d.ts +8 -0
- package/dist/app/controllers/session-controller.js +97 -8
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/controllers/session-id.d.ts +1 -0
- package/dist/app/controllers/session-id.js +4 -0
- package/dist/app/controllers/session-id.js.map +1 -0
- package/dist/app/controllers/session-late-work.d.ts +27 -0
- package/dist/app/controllers/session-late-work.js +113 -0
- package/dist/app/controllers/session-late-work.js.map +1 -0
- package/dist/app/controllers/session-persistence.d.ts +5 -3
- package/dist/app/controllers/session-persistence.js +8 -5
- package/dist/app/controllers/session-persistence.js.map +1 -1
- package/dist/app/controllers/session-prompt-queue.d.ts +13 -1
- package/dist/app/controllers/session-prompt-queue.js +96 -24
- package/dist/app/controllers/session-prompt-queue.js.map +1 -1
- package/dist/app/controllers/turn-controller.d.ts +1 -0
- package/dist/app/controllers/turn-controller.js +14 -1
- package/dist/app/controllers/turn-controller.js.map +1 -1
- package/dist/app/events/app-event.d.ts +4 -0
- package/dist/app/events/app-event.js.map +1 -1
- package/dist/app/ports/agent-port.d.ts +1 -0
- package/dist/app/ports/persistence-port.d.ts +13 -1
- package/dist/app/ports/transcript-item.d.ts +2 -0
- package/dist/classic/app/app-wiring.d.ts +9 -4
- package/dist/classic/app/app-wiring.js +13 -5
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/paint-pacing.js +2 -2
- package/dist/classic/app/paint-pacing.js.map +1 -1
- package/dist/classic/app/use-feed.js +16 -11
- package/dist/classic/app/use-feed.js.map +1 -1
- package/dist/classic/app/wiring-disclosure.js +1 -1
- package/dist/classic/app/wiring-disclosure.js.map +1 -1
- package/dist/classic/app/wiring-feed-scroll.d.ts +5 -0
- package/dist/classic/app/wiring-feed-scroll.js +39 -0
- package/dist/classic/app/wiring-feed-scroll.js.map +1 -0
- package/dist/classic/app/wiring-interactions.d.ts +3 -5
- package/dist/classic/app/wiring-interactions.js +18 -32
- package/dist/classic/app/wiring-interactions.js.map +1 -1
- package/dist/classic/app/wiring-lifecycle.d.ts +1 -0
- package/dist/classic/app/wiring-lifecycle.js +20 -2
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/app/wiring-selection.js +46 -37
- package/dist/classic/app/wiring-selection.js.map +1 -1
- package/dist/classic/app/wiring-types.d.ts +9 -3
- package/dist/classic/blocks/intro-lines.js +1 -0
- package/dist/classic/blocks/intro-lines.js.map +1 -1
- package/dist/classic/blocks/thinking-lines.d.ts +6 -0
- package/dist/classic/blocks/thinking-lines.js +21 -7
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/blocks/tool-lines.js +1 -1
- package/dist/classic/blocks/tool-lines.js.map +1 -1
- package/dist/classic/blocks/turn-summary-lines.d.ts +1 -1
- package/dist/classic/blocks/turn-summary-lines.js +5 -3
- package/dist/classic/blocks/turn-summary-lines.js.map +1 -1
- package/dist/classic/bootstrap/renderer-handle.js +11 -3
- package/dist/classic/bootstrap/renderer-handle.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.js +8 -18
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/composer-mentions.js +2 -1
- package/dist/classic/chrome/composer-mentions.js.map +1 -1
- package/dist/classic/chrome/directory-row.js +5 -5
- package/dist/classic/chrome/directory-row.js.map +1 -1
- package/dist/classic/chrome/status-rows.d.ts +2 -1
- package/dist/classic/chrome/status-rows.js +18 -8
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/feed/background-layout.d.ts +26 -0
- package/dist/classic/feed/background-layout.js +77 -0
- package/dist/classic/feed/background-layout.js.map +1 -0
- package/dist/classic/feed/estimated-height.d.ts +2 -0
- package/dist/classic/feed/estimated-height.js +24 -0
- package/dist/classic/feed/estimated-height.js.map +1 -0
- package/dist/classic/feed/feed-blocks.d.ts +4 -1
- package/dist/classic/feed/feed-blocks.js +32 -10
- package/dist/classic/feed/feed-blocks.js.map +1 -1
- package/dist/classic/feed/transcript-selection.d.ts +2 -1
- package/dist/classic/feed/transcript-selection.js +15 -10
- package/dist/classic/feed/transcript-selection.js.map +1 -1
- package/dist/classic/feed/transcript-window.d.ts +1 -0
- package/dist/classic/feed/transcript-window.js +41 -15
- package/dist/classic/feed/transcript-window.js.map +1 -1
- package/dist/classic/panels/confirm-panel.js +1 -0
- package/dist/classic/panels/confirm-panel.js.map +1 -1
- package/dist/classic/panels/jobs-panel.js +1 -1
- package/dist/classic/panels/jobs-panel.js.map +1 -1
- package/dist/classic/panels/pager-panel.d.ts +11 -8
- package/dist/classic/panels/pager-panel.js +42 -28
- package/dist/classic/panels/pager-panel.js.map +1 -1
- package/dist/classic/panels/pager-region-paint.d.ts +3 -0
- package/dist/classic/panels/pager-region-paint.js +43 -0
- package/dist/classic/panels/pager-region-paint.js.map +1 -0
- package/dist/classic/panels/pager-search-paint.d.ts +3 -0
- package/dist/classic/panels/pager-search-paint.js +59 -0
- package/dist/classic/panels/pager-search-paint.js.map +1 -0
- package/dist/classic/panels/pager-source-controller.js +2 -0
- package/dist/classic/panels/pager-source-controller.js.map +1 -1
- package/dist/classic/panels/panel-controller.js +5 -6
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-host.js +2 -2
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-initial-states.d.ts +1 -0
- package/dist/classic/panels/panel-initial-states.js +1 -0
- package/dist/classic/panels/panel-initial-states.js.map +1 -1
- package/dist/classic/panels/panel-types.d.ts +1 -0
- package/dist/classic/panels/panel-wheel.js +2 -2
- package/dist/classic/panels/panel-wheel.js.map +1 -1
- package/dist/classic/panels/text-editor-panel.d.ts +2 -1
- package/dist/classic/panels/text-editor-panel.js +21 -12
- package/dist/classic/panels/text-editor-panel.js.map +1 -1
- package/dist/classic/render/ansi-text.js +49 -33
- package/dist/classic/render/ansi-text.js.map +1 -1
- package/dist/classic/render/ink-theme.js +1 -1
- package/dist/classic/render/ink-theme.js.map +1 -1
- package/dist/classic/render/measure.js +2 -3
- package/dist/classic/render/measure.js.map +1 -1
- package/dist/classic/render/shell-width.js +1 -1
- package/dist/classic/render/shell-width.js.map +1 -1
- package/dist/classic/render/widest-line.d.ts +1 -0
- package/dist/classic/render/widest-line.js +5 -0
- package/dist/classic/render/widest-line.js.map +1 -0
- package/dist/commands/current-version.d.ts +1 -0
- package/dist/commands/current-version.js +42 -0
- package/dist/commands/current-version.js.map +1 -0
- package/dist/commands/doctor.js +2 -1
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/update.d.ts +2 -1
- package/dist/commands/update.js +4 -41
- package/dist/commands/update.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +26 -16
- package/dist/index.js.map +1 -1
- package/dist/instructions/scaffold.js +2 -1
- package/dist/instructions/scaffold.js.map +1 -1
- package/dist/llm/agentrouter.js +6 -11
- package/dist/llm/agentrouter.js.map +1 -1
- package/dist/llm/anthropic.js +6 -8
- package/dist/llm/anthropic.js.map +1 -1
- package/dist/llm/bynara.js +6 -10
- package/dist/llm/bynara.js.map +1 -1
- package/dist/llm/capabilities.js +13 -6
- package/dist/llm/capabilities.js.map +1 -1
- package/dist/llm/capability/vision-patterns.js +1 -1
- package/dist/llm/capability/vision-patterns.js.map +1 -1
- package/dist/llm/cline.js +3 -2
- package/dist/llm/cline.js.map +1 -1
- package/dist/llm/codex-models.d.ts +1 -1
- package/dist/llm/codex-models.js +11 -6
- package/dist/llm/codex-models.js.map +1 -1
- package/dist/llm/codex.js +2 -1
- package/dist/llm/codex.js.map +1 -1
- package/dist/llm/constellation.js +5 -0
- package/dist/llm/constellation.js.map +1 -1
- package/dist/llm/context-windows.js +17 -13
- package/dist/llm/context-windows.js.map +1 -1
- package/dist/llm/copilot.js +19 -21
- package/dist/llm/copilot.js.map +1 -1
- package/dist/llm/custom-providers.d.ts +2 -1
- package/dist/llm/custom-providers.js +16 -10
- package/dist/llm/custom-providers.js.map +1 -1
- package/dist/llm/deepseek.js +6 -11
- package/dist/llm/deepseek.js.map +1 -1
- package/dist/llm/explabs.js +8 -9
- package/dist/llm/explabs.js.map +1 -1
- package/dist/llm/fireworks.js +9 -11
- package/dist/llm/fireworks.js.map +1 -1
- package/dist/llm/free-default-model.js +5 -3
- package/dist/llm/free-default-model.js.map +1 -1
- package/dist/llm/free-model-limits.js +2 -1
- package/dist/llm/free-model-limits.js.map +1 -1
- package/dist/llm/free.js +20 -23
- package/dist/llm/free.js.map +1 -1
- package/dist/llm/freebuff-agent-prompt.d.ts +1 -0
- package/dist/llm/freebuff-agent-prompt.js +46 -0
- package/dist/llm/freebuff-agent-prompt.js.map +1 -0
- package/dist/llm/freebuff-auth.js +15 -3
- package/dist/llm/freebuff-auth.js.map +1 -1
- package/dist/llm/freebuff-device-key.d.ts +39 -0
- package/dist/llm/freebuff-device-key.js +330 -0
- package/dist/llm/freebuff-device-key.js.map +1 -0
- package/dist/llm/freebuff-env-profile.d.ts +41 -0
- package/dist/llm/freebuff-env-profile.js +205 -0
- package/dist/llm/freebuff-env-profile.js.map +1 -0
- package/dist/llm/freebuff-fingerprint.d.ts +21 -0
- package/dist/llm/freebuff-fingerprint.js +137 -0
- package/dist/llm/freebuff-fingerprint.js.map +1 -0
- package/dist/llm/freebuff-models.d.ts +26 -5
- package/dist/llm/freebuff-models.js +146 -80
- package/dist/llm/freebuff-models.js.map +1 -1
- package/dist/llm/freebuff-run.d.ts +2 -0
- package/dist/llm/freebuff-run.js +77 -24
- package/dist/llm/freebuff-run.js.map +1 -1
- package/dist/llm/freebuff-session-api.d.ts +3 -1
- package/dist/llm/freebuff-session-api.js +26 -18
- package/dist/llm/freebuff-session-api.js.map +1 -1
- package/dist/llm/freebuff-session.d.ts +7 -1
- package/dist/llm/freebuff-session.js +81 -31
- package/dist/llm/freebuff-session.js.map +1 -1
- package/dist/llm/freebuff-wire.d.ts +8 -0
- package/dist/llm/freebuff-wire.js +42 -20
- package/dist/llm/freebuff-wire.js.map +1 -1
- package/dist/llm/freebuff.js +81 -10
- package/dist/llm/freebuff.js.map +1 -1
- package/dist/llm/generation-metrics.d.ts +11 -0
- package/dist/llm/generation-metrics.js +54 -0
- package/dist/llm/generation-metrics.js.map +1 -0
- package/dist/llm/generation-submission.d.ts +2 -0
- package/dist/llm/generation-submission.js +13 -0
- package/dist/llm/generation-submission.js.map +1 -0
- package/dist/llm/glm.js +6 -11
- package/dist/llm/glm.js.map +1 -1
- package/dist/llm/hetzner.js +9 -11
- package/dist/llm/hetzner.js.map +1 -1
- package/dist/llm/kimi.js +6 -11
- package/dist/llm/kimi.js.map +1 -1
- package/dist/llm/kiro.js +11 -10
- package/dist/llm/kiro.js.map +1 -1
- package/dist/llm/lightning.js +6 -10
- package/dist/llm/lightning.js.map +1 -1
- package/dist/llm/main-effort-discovery.d.ts +16 -0
- package/dist/llm/main-effort-discovery.js +71 -0
- package/dist/llm/main-effort-discovery.js.map +1 -0
- package/dist/llm/merge-gateway.js +9 -10
- package/dist/llm/merge-gateway.js.map +1 -1
- package/dist/llm/meta.js +6 -10
- package/dist/llm/meta.js.map +1 -1
- package/dist/llm/mimo.js +6 -11
- package/dist/llm/mimo.js.map +1 -1
- package/dist/llm/minimax.js +6 -11
- package/dist/llm/minimax.js.map +1 -1
- package/dist/llm/mistral.js +10 -5
- package/dist/llm/mistral.js.map +1 -1
- package/dist/llm/modal.js +6 -11
- package/dist/llm/modal.js.map +1 -1
- package/dist/llm/model-discovery.d.ts +4 -1
- package/dist/llm/model-discovery.js +5 -2
- package/dist/llm/model-discovery.js.map +1 -1
- package/dist/llm/model-limit-store.d.ts +2 -0
- package/dist/llm/model-limit-store.js +44 -12
- package/dist/llm/model-limit-store.js.map +1 -1
- package/dist/llm/model-list-cache.d.ts +15 -0
- package/dist/llm/model-list-cache.js +55 -0
- package/dist/llm/model-list-cache.js.map +1 -0
- package/dist/llm/nvidia.js +9 -10
- package/dist/llm/nvidia.js.map +1 -1
- package/dist/llm/ollama.js +4 -0
- package/dist/llm/ollama.js.map +1 -1
- package/dist/llm/omnirush-session-upload.d.ts +1 -0
- package/dist/llm/omnirush-session-upload.js +14 -1
- package/dist/llm/omnirush-session-upload.js.map +1 -1
- package/dist/llm/omnirush.js +10 -14
- package/dist/llm/omnirush.js.map +1 -1
- package/dist/llm/openrouter.js +6 -11
- package/dist/llm/openrouter.js.map +1 -1
- package/dist/llm/operation-usage.js +22 -5
- package/dist/llm/operation-usage.js.map +1 -1
- package/dist/llm/orcarouter.js +9 -13
- package/dist/llm/orcarouter.js.map +1 -1
- package/dist/llm/provider-info-text.js +2 -1
- package/dist/llm/provider-info-text.js.map +1 -1
- package/dist/llm/provider-model-layers.js +4 -0
- package/dist/llm/provider-model-layers.js.map +1 -1
- package/dist/llm/provider-profile-layers.js +2 -1
- package/dist/llm/provider-profile-layers.js.map +1 -1
- package/dist/llm/provider-profiles.d.ts +1 -0
- package/dist/llm/provider-profiles.js +32 -2
- package/dist/llm/provider-profiles.js.map +1 -1
- package/dist/llm/provider.js +2 -1
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/qoder/qoder.js +6 -10
- package/dist/llm/qoder/qoder.js.map +1 -1
- package/dist/llm/qwen-cloud.js +6 -9
- package/dist/llm/qwen-cloud.js.map +1 -1
- package/dist/llm/request-plan.js +17 -9
- package/dist/llm/request-plan.js.map +1 -1
- package/dist/llm/responses-request.js +8 -1
- package/dist/llm/responses-request.js.map +1 -1
- package/dist/llm/river-models.d.ts +1 -0
- package/dist/llm/river-models.js +6 -1
- package/dist/llm/river-models.js.map +1 -1
- package/dist/llm/routing/attempt-complete.js +6 -1
- package/dist/llm/routing/attempt-complete.js.map +1 -1
- package/dist/llm/routing/attempt-request.d.ts +3 -1
- package/dist/llm/routing/attempt-request.js +39 -5
- package/dist/llm/routing/attempt-request.js.map +1 -1
- package/dist/llm/routing/attempt-stream.js +8 -1
- package/dist/llm/routing/attempt-stream.js.map +1 -1
- package/dist/llm/routing/error-classification.d.ts +1 -0
- package/dist/llm/routing/error-classification.js +9 -1
- package/dist/llm/routing/error-classification.js.map +1 -1
- package/dist/llm/routing/request-option-fallback.d.ts +6 -0
- package/dist/llm/routing/request-option-fallback.js +63 -3
- package/dist/llm/routing/request-option-fallback.js.map +1 -1
- package/dist/llm/token-usage.js +7 -2
- package/dist/llm/token-usage.js.map +1 -1
- package/dist/llm/tokenharbor.js +10 -13
- package/dist/llm/tokenharbor.js.map +1 -1
- package/dist/llm/tokenrouter.js +10 -14
- package/dist/llm/tokenrouter.js.map +1 -1
- package/dist/llm/vercel.js +12 -12
- package/dist/llm/vercel.js.map +1 -1
- package/dist/llm/wire/chat-body.js +3 -1
- package/dist/llm/wire/chat-body.js.map +1 -1
- package/dist/llm/wire/effort-preflight.d.ts +4 -1
- package/dist/llm/wire/effort-preflight.js +49 -6
- package/dist/llm/wire/effort-preflight.js.map +1 -1
- package/dist/llm/wire/openai-complete.d.ts +1 -0
- package/dist/llm/wire/openai-complete.js +5 -1
- package/dist/llm/wire/openai-complete.js.map +1 -1
- package/dist/llm/wire/openai-stream.d.ts +1 -0
- package/dist/llm/wire/openai-stream.js +1 -0
- package/dist/llm/wire/openai-stream.js.map +1 -1
- package/dist/llm/wire/responses-first.js +3 -0
- package/dist/llm/wire/responses-first.js.map +1 -1
- package/dist/llm/zen-catalog.d.ts +3 -1
- package/dist/llm/zen-catalog.js +9 -3
- package/dist/llm/zen-catalog.js.map +1 -1
- package/dist/mcp/argument-hint.d.ts +9 -0
- package/dist/mcp/argument-hint.js +17 -0
- package/dist/mcp/argument-hint.js.map +1 -0
- package/dist/mcp/catalog.js +5 -5
- package/dist/mcp/catalog.js.map +1 -1
- package/dist/mcp/manager.d.ts +2 -0
- package/dist/mcp/manager.js +21 -1
- package/dist/mcp/manager.js.map +1 -1
- package/dist/mcp/runtime.d.ts +5 -1
- package/dist/mcp/runtime.js +33 -2
- package/dist/mcp/runtime.js.map +1 -1
- package/dist/noninteractive/stream-renderer.js +2 -0
- package/dist/noninteractive/stream-renderer.js.map +1 -1
- package/dist/os/ownership-repair.d.ts +5 -0
- package/dist/os/ownership-repair.js +62 -0
- package/dist/os/ownership-repair.js.map +1 -0
- package/dist/os/permissions.d.ts +7 -0
- package/dist/os/permissions.js +27 -22
- package/dist/os/permissions.js.map +1 -1
- package/dist/os/runtime-error.d.ts +2 -0
- package/dist/os/runtime-error.js +39 -0
- package/dist/os/runtime-error.js.map +1 -0
- package/dist/os/settle-within.d.ts +1 -0
- package/dist/os/settle-within.js +12 -0
- package/dist/os/settle-within.js.map +1 -0
- package/dist/os/user-environment.d.ts +1 -0
- package/dist/os/user-environment.js +3 -0
- package/dist/os/user-environment.js.map +1 -0
- package/dist/os/user-identity.d.ts +11 -0
- package/dist/os/user-identity.js +163 -0
- package/dist/os/user-identity.js.map +1 -0
- package/dist/prompts/embedded.js +1 -1
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.js +21 -18
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +10 -9
- package/dist/rea/availability.d.ts +22 -0
- package/dist/rea/availability.js +82 -0
- package/dist/rea/availability.js.map +1 -0
- package/dist/rea/connection.d.ts +8 -0
- package/dist/rea/connection.js +12 -0
- package/dist/rea/connection.js.map +1 -0
- package/dist/rea/distribution.d.ts +13 -0
- package/dist/rea/distribution.js +140 -0
- package/dist/rea/distribution.js.map +1 -0
- package/dist/rea/download.d.ts +22 -0
- package/dist/rea/download.js +198 -0
- package/dist/rea/download.js.map +1 -0
- package/dist/rea/engine-report.d.ts +4 -0
- package/dist/rea/engine-report.js +77 -0
- package/dist/rea/engine-report.js.map +1 -0
- package/dist/rea/engine-status.d.ts +24 -0
- package/dist/rea/engine-status.js +103 -0
- package/dist/rea/engine-status.js.map +1 -0
- package/dist/rea/engines.d.ts +43 -0
- package/dist/rea/engines.js +160 -0
- package/dist/rea/engines.js.map +1 -0
- package/dist/rea/ghidra.d.ts +83 -0
- package/dist/rea/ghidra.js +316 -0
- package/dist/rea/ghidra.js.map +1 -0
- package/dist/rea/guide.d.ts +14 -0
- package/dist/rea/guide.js +178 -0
- package/dist/rea/guide.js.map +1 -0
- package/dist/rea/hints.d.ts +3 -0
- package/dist/rea/hints.js +99 -0
- package/dist/rea/hints.js.map +1 -0
- package/dist/rea/install.d.ts +10 -0
- package/dist/rea/install.js +173 -0
- package/dist/rea/install.js.map +1 -0
- package/dist/rea/jdk.d.ts +50 -0
- package/dist/rea/jdk.js +171 -0
- package/dist/rea/jdk.js.map +1 -0
- package/dist/rea/node.d.ts +22 -0
- package/dist/rea/node.js +150 -0
- package/dist/rea/node.js.map +1 -0
- package/dist/rea/runtime.d.ts +11 -0
- package/dist/rea/runtime.js +186 -0
- package/dist/rea/runtime.js.map +1 -0
- package/dist/rea/tool-index.d.ts +7 -0
- package/dist/rea/tool-index.js +105 -0
- package/dist/rea/tool-index.js.map +1 -0
- package/dist/rea/types.d.ts +36 -0
- package/dist/rea/types.js +2 -0
- package/dist/rea/types.js.map +1 -0
- package/dist/rea/workflow.d.ts +14 -0
- package/dist/rea/workflow.js +60 -0
- package/dist/rea/workflow.js.map +1 -0
- package/dist/rea/zip.d.ts +19 -0
- package/dist/rea/zip.js +257 -0
- package/dist/rea/zip.js.map +1 -0
- package/dist/safety/tool-classification.js +12 -0
- package/dist/safety/tool-classification.js.map +1 -1
- package/dist/security/known-secrets.d.ts +5 -0
- package/dist/security/known-secrets.js +50 -0
- package/dist/security/known-secrets.js.map +1 -0
- package/dist/session-runtime/client.d.ts +1 -1
- package/dist/session-runtime/client.js +6 -3
- package/dist/session-runtime/client.js.map +1 -1
- package/dist/session-runtime/host.js +2 -0
- package/dist/session-runtime/host.js.map +1 -1
- package/dist/session-runtime/paths.js +14 -6
- package/dist/session-runtime/paths.js.map +1 -1
- package/dist/session-runtime/start-runtime.js +5 -8
- package/dist/session-runtime/start-runtime.js.map +1 -1
- package/dist/session-runtime/store.js +4 -1
- package/dist/session-runtime/store.js.map +1 -1
- package/dist/store/config/endpoints.js +3 -1
- package/dist/store/config/endpoints.js.map +1 -1
- package/dist/store/credentials/crypto.d.ts +7 -0
- package/dist/store/credentials/crypto.js +118 -0
- package/dist/store/credentials/crypto.js.map +1 -0
- package/dist/store/credentials.d.ts +21 -0
- package/dist/store/credentials.js +150 -0
- package/dist/store/credentials.js.map +1 -0
- package/dist/store/history/freshness.d.ts +2 -0
- package/dist/store/history/freshness.js +3 -2
- package/dist/store/history/freshness.js.map +1 -1
- package/dist/store/history/jsonl-backend.d.ts +0 -1
- package/dist/store/history/jsonl-backend.js +3 -122
- package/dist/store/history/jsonl-backend.js.map +1 -1
- package/dist/store/history/jsonl-lock.d.ts +1 -0
- package/dist/store/history/jsonl-lock.js +94 -71
- package/dist/store/history/jsonl-lock.js.map +1 -1
- package/dist/store/history/legacy-migration.d.ts +6 -0
- package/dist/store/history/legacy-migration.js +127 -0
- package/dist/store/history/legacy-migration.js.map +1 -0
- package/dist/store/history/lifecycle.js +11 -2
- package/dist/store/history/lifecycle.js.map +1 -1
- package/dist/store/history/recovery.d.ts +2 -0
- package/dist/store/history/recovery.js +6 -1
- package/dist/store/history/recovery.js.map +1 -1
- package/dist/store/history/session-frames.d.ts +74 -0
- package/dist/store/history/session-frames.js +234 -0
- package/dist/store/history/session-frames.js.map +1 -0
- package/dist/store/history/session-index.d.ts +13 -0
- package/dist/store/history/session-index.js +135 -0
- package/dist/store/history/session-index.js.map +1 -0
- package/dist/store/history/session-log.d.ts +44 -0
- package/dist/store/history/session-log.js +386 -0
- package/dist/store/history/session-log.js.map +1 -0
- package/dist/store/history/session-paths.d.ts +11 -0
- package/dist/store/history/session-paths.js +35 -0
- package/dist/store/history/session-paths.js.map +1 -0
- package/dist/store/history/session-queries.js +34 -19
- package/dist/store/history/session-queries.js.map +1 -1
- package/dist/store/history/session-store.d.ts +11 -0
- package/dist/store/history/session-store.js +202 -0
- package/dist/store/history/session-store.js.map +1 -0
- package/dist/store/history/sqlite-backend.js +2 -0
- package/dist/store/history/sqlite-backend.js.map +1 -1
- package/dist/store/history/transcript-merge.d.ts +2 -0
- package/dist/store/history/transcript-merge.js +46 -0
- package/dist/store/history/transcript-merge.js.map +1 -0
- package/dist/store/history-index.d.ts +2 -2
- package/dist/store/history-index.js +3 -18
- package/dist/store/history-index.js.map +1 -1
- package/dist/store/history.d.ts +4 -1
- package/dist/store/history.js +113 -61
- package/dist/store/history.js.map +1 -1
- package/dist/store/keys/secret-store.js +5 -2
- package/dist/store/keys/secret-store.js.map +1 -1
- package/dist/store/legacy-location.d.ts +1 -0
- package/dist/store/legacy-location.js +37 -0
- package/dist/store/legacy-location.js.map +1 -0
- package/dist/store/ownership.d.ts +3 -0
- package/dist/store/ownership.js +23 -0
- package/dist/store/ownership.js.map +1 -0
- package/dist/store/paths.js +3 -2
- package/dist/store/paths.js.map +1 -1
- package/dist/store/redaction-cache.d.ts +0 -5
- package/dist/store/redaction-cache.js +6 -5
- package/dist/store/redaction-cache.js.map +1 -1
- package/dist/store/scope.js +7 -2
- package/dist/store/scope.js.map +1 -1
- package/dist/store/session-prompts.d.ts +1 -0
- package/dist/store/session-prompts.js +34 -13
- package/dist/store/session-prompts.js.map +1 -1
- package/dist/store/session-queue.d.ts +4 -0
- package/dist/store/session-queue.js +62 -0
- package/dist/store/session-queue.js.map +1 -0
- package/dist/store/session-workspace-activity.d.ts +4 -0
- package/dist/store/session-workspace-activity.js +69 -0
- package/dist/store/session-workspace-activity.js.map +1 -0
- package/dist/store/session-workspace-cleanup.d.ts +4 -0
- package/dist/store/session-workspace-cleanup.js +246 -0
- package/dist/store/session-workspace-cleanup.js.map +1 -0
- package/dist/store/session-workspace.js +9 -0
- package/dist/store/session-workspace.js.map +1 -1
- package/dist/tools/credentials.d.ts +2 -0
- package/dist/tools/credentials.js +27 -0
- package/dist/tools/credentials.js.map +1 -0
- package/dist/tools/definitions/aggregate.js +10 -0
- package/dist/tools/definitions/aggregate.js.map +1 -1
- package/dist/tools/definitions/credentials.d.ts +1 -0
- package/dist/tools/definitions/credentials.js +15 -0
- package/dist/tools/definitions/credentials.js.map +1 -0
- package/dist/tools/definitions/files.js +4 -4
- package/dist/tools/definitions/files.js.map +1 -1
- package/dist/tools/definitions/fs-read.js +3 -2
- package/dist/tools/definitions/fs-read.js.map +1 -1
- package/dist/tools/definitions/shell.js +2 -2
- package/dist/tools/definitions/shell.js.map +1 -1
- package/dist/tools/definitions/terminal.js +2 -1
- package/dist/tools/definitions/terminal.js.map +1 -1
- package/dist/tools/definitions.js +2 -1
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/elevated-shell.js +11 -14
- package/dist/tools/elevated-shell.js.map +1 -1
- package/dist/tools/fs/mutations.js +1 -1
- package/dist/tools/fs/mutations.js.map +1 -1
- package/dist/tools/handlers/files-2.js +1 -1
- package/dist/tools/handlers/files-2.js.map +1 -1
- package/dist/tools/http/agents.d.ts +4 -5
- package/dist/tools/http/agents.js +4 -12
- package/dist/tools/http/agents.js.map +1 -1
- package/dist/tools/http/fetch.js +3 -10
- package/dist/tools/http/fetch.js.map +1 -1
- package/dist/tools/interactive-session-tools.js +20 -4
- package/dist/tools/interactive-session-tools.js.map +1 -1
- package/dist/tools/registry.d.ts +1 -0
- package/dist/tools/registry.js +5 -0
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/shell/artifact.d.ts +7 -0
- package/dist/tools/shell/artifact.js +85 -0
- package/dist/tools/shell/artifact.js.map +1 -0
- package/dist/tools/shell/capture.d.ts +1 -5
- package/dist/tools/shell/capture.js +1 -18
- package/dist/tools/shell/capture.js.map +1 -1
- package/dist/tools/shell/exec-attempt.js +9 -27
- package/dist/tools/shell/exec-attempt.js.map +1 -1
- package/dist/tools/shell/spawn-argv.js +7 -21
- package/dist/tools/shell/spawn-argv.js.map +1 -1
- package/dist/tools/sudo-session.d.ts +2 -1
- package/dist/tools/sudo-session.js +26 -9
- package/dist/tools/sudo-session.js.map +1 -1
- package/dist/tui-v2/app/App.js +11 -15
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/app/layout-widths.js +6 -5
- package/dist/tui-v2/app/layout-widths.js.map +1 -1
- package/dist/tui-v2/bootstrap/patch-opentui-selection.d.ts +6 -0
- package/dist/tui-v2/bootstrap/patch-opentui-selection.js +27 -0
- package/dist/tui-v2/bootstrap/patch-opentui-selection.js.map +1 -0
- package/dist/tui-v2/bootstrap/renderer-handle.d.ts +2 -0
- package/dist/tui-v2/bootstrap/renderer-handle.js +21 -10
- package/dist/tui-v2/bootstrap/renderer-handle.js.map +1 -1
- package/dist/tui-v2/bootstrap/runtime-view.js +2 -0
- package/dist/tui-v2/bootstrap/runtime-view.js.map +1 -1
- package/dist/tui-v2/bootstrap/start-tui-v2.js +19 -29
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/jobs/jobs-panel.js +1 -9
- package/dist/tui-v2/components/jobs/jobs-panel.js.map +1 -1
- package/dist/tui-v2/components/modal/confirm-modal.js +1 -0
- package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
- package/dist/tui-v2/components/modal/text-editor-modal.js +4 -0
- package/dist/tui-v2/components/modal/text-editor-modal.js.map +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js +1 -2
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-line.d.ts +1 -0
- package/dist/tui-v2/components/pager/pager-line.js +46 -27
- package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
- package/dist/tui-v2/components/pager/pager-rows.d.ts +3 -0
- package/dist/tui-v2/components/pager/pager-rows.js +18 -1
- package/dist/tui-v2/components/pager/pager-rows.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.d.ts +2 -0
- package/dist/tui-v2/components/pager/pager.js +12 -8
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-view.js +28 -6
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/status/context-limit-chip.js +2 -2
- package/dist/tui-v2/components/status/status-line.js +13 -12
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-anim.d.ts +6 -0
- package/dist/tui-v2/components/toast/toast-anim.js +17 -0
- package/dist/tui-v2/components/toast/toast-anim.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-host.js +15 -5
- package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/compacted-row.js +3 -1
- package/dist/tui-v2/components/transcript/compacted-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/intro-card.js +5 -8
- package/dist/tui-v2/components/transcript/intro-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/selection-snap.d.ts +43 -0
- package/dist/tui-v2/components/transcript/selection-snap.js +68 -0
- package/dist/tui-v2/components/transcript/selection-snap.js.map +1 -0
- package/dist/tui-v2/components/transcript/thinking-block.d.ts +2 -0
- package/dist/tui-v2/components/transcript/thinking-block.js +36 -19
- package/dist/tui-v2/components/transcript/thinking-block.js.map +1 -1
- package/dist/tui-v2/components/transcript/thinking-presentation.d.ts +0 -2
- package/dist/tui-v2/components/transcript/thinking-presentation.js +0 -52
- package/dist/tui-v2/components/transcript/thinking-presentation.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.js +5 -2
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-anchor.d.ts +20 -0
- package/dist/tui-v2/components/transcript/transcript-anchor.js +43 -0
- package/dist/tui-v2/components/transcript/transcript-anchor.js.map +1 -0
- package/dist/tui-v2/components/transcript/transcript-row.js +20 -6
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +2 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js +35 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +184 -147
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/components/transcript/user-message.js +31 -21
- package/dist/tui-v2/components/transcript/user-message.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +2 -4
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/composer/composer-highlight.js +2 -1
- package/dist/tui-v2/composer/composer-highlight.js.map +1 -1
- package/dist/tui-v2/composer/composer-wheel.d.ts +1 -1
- package/dist/tui-v2/composer/composer-wheel.js +4 -4
- package/dist/tui-v2/composer/composer-wheel.js.map +1 -1
- package/dist/tui-v2/rendering/ansi-to-styled.js +16 -20
- package/dist/tui-v2/rendering/ansi-to-styled.js.map +1 -1
- package/dist/tui-v2/rendering/pager-markdown.d.ts +3 -2
- package/dist/tui-v2/rendering/pager-markdown.js +15 -11
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/types.d.ts +5 -7
- package/dist/types.js.map +1 -1
- package/dist/ui/mentions/expand.js +4 -0
- package/dist/ui/mentions/expand.js.map +1 -1
- package/dist/ui-core/bootstrap/composition-root.js +23 -0
- package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
- package/dist/ui-core/bootstrap/fatal-diagnostics.d.ts +1 -0
- package/dist/ui-core/bootstrap/fatal-diagnostics.js +9 -0
- package/dist/ui-core/bootstrap/fatal-diagnostics.js.map +1 -0
- package/dist/ui-core/bootstrap/lifecycle.d.ts +5 -0
- package/dist/ui-core/bootstrap/lifecycle.js +33 -4
- package/dist/ui-core/bootstrap/lifecycle.js.map +1 -1
- package/dist/ui-core/bootstrap/resume-option.d.ts +11 -0
- package/dist/ui-core/bootstrap/resume-option.js +9 -0
- package/dist/ui-core/bootstrap/resume-option.js.map +1 -0
- package/dist/ui-core/bootstrap/session-merge.d.ts +4 -0
- package/dist/ui-core/bootstrap/session-merge.js +19 -0
- package/dist/ui-core/bootstrap/session-merge.js.map +1 -0
- package/dist/ui-core/bootstrap/session-resume.d.ts +2 -11
- package/dist/ui-core/bootstrap/session-resume.js +2 -8
- package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
- package/dist/ui-core/bootstrap/shutdown-services.d.ts +3 -0
- package/dist/ui-core/bootstrap/shutdown-services.js +24 -0
- package/dist/ui-core/bootstrap/shutdown-services.js.map +1 -0
- package/dist/ui-core/commands/change-commands.js +53 -15
- package/dist/ui-core/commands/change-commands.js.map +1 -1
- package/dist/ui-core/commands/command-handlers.js +4 -0
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/credential-commands.d.ts +7 -0
- package/dist/ui-core/commands/credential-commands.js +114 -0
- package/dist/ui-core/commands/credential-commands.js.map +1 -0
- package/dist/ui-core/commands/picker-commands.d.ts +6 -2
- package/dist/ui-core/commands/picker-commands.js +30 -17
- package/dist/ui-core/commands/picker-commands.js.map +1 -1
- package/dist/ui-core/commands/pickers/search-reasoning.js +14 -4
- package/dist/ui-core/commands/pickers/search-reasoning.js.map +1 -1
- package/dist/ui-core/commands/rea-commands.d.ts +3 -0
- package/dist/ui-core/commands/rea-commands.js +176 -0
- package/dist/ui-core/commands/rea-commands.js.map +1 -0
- package/dist/ui-core/commands/rea-engines-commands.d.ts +37 -0
- package/dist/ui-core/commands/rea-engines-commands.js +433 -0
- package/dist/ui-core/commands/rea-engines-commands.js.map +1 -0
- package/dist/ui-core/composer/completion.js +3 -0
- package/dist/ui-core/composer/completion.js.map +1 -1
- package/dist/ui-core/controllers/overlay-controller.d.ts +5 -2
- package/dist/ui-core/controllers/overlay-controller.js +3 -2
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/controllers/selection-controller.d.ts +2 -1
- package/dist/ui-core/controllers/selection-controller.js +27 -0
- package/dist/ui-core/controllers/selection-controller.js.map +1 -1
- package/dist/ui-core/layout/compute-layout.d.ts +3 -1
- package/dist/ui-core/layout/compute-layout.js +4 -2
- package/dist/ui-core/layout/compute-layout.js.map +1 -1
- package/dist/ui-core/motion/wheel-scroll.d.ts +7 -0
- package/dist/ui-core/motion/wheel-scroll.js +24 -0
- package/dist/ui-core/motion/wheel-scroll.js.map +1 -0
- package/dist/{classic/render/palette.js → ui-core/rendering/ansi-palette.js} +1 -1
- package/dist/ui-core/rendering/ansi-palette.js.map +1 -0
- package/dist/ui-core/rendering/artifact-pager-source.d.ts +1 -0
- package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/compaction-pager-source.d.ts +4 -0
- package/dist/ui-core/rendering/compaction-pager-source.js +65 -0
- package/dist/ui-core/rendering/compaction-pager-source.js.map +1 -0
- package/dist/ui-core/rendering/duration.d.ts +3 -1
- package/dist/ui-core/rendering/duration.js +12 -3
- package/dist/ui-core/rendering/duration.js.map +1 -1
- package/dist/ui-core/rendering/incremental-strip.js +4 -1
- package/dist/ui-core/rendering/incremental-strip.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.d.ts +3 -0
- package/dist/ui-core/rendering/intro-header.js +145 -161
- package/dist/ui-core/rendering/intro-header.js.map +1 -1
- package/dist/ui-core/rendering/job-tail-source.js +30 -2
- package/dist/ui-core/rendering/job-tail-source.js.map +1 -1
- package/dist/ui-core/rendering/markdown-diff-rows.d.ts +12 -0
- package/dist/ui-core/rendering/markdown-diff-rows.js +85 -0
- package/dist/ui-core/rendering/markdown-diff-rows.js.map +1 -0
- package/dist/ui-core/rendering/markdown.d.ts +1 -0
- package/dist/ui-core/rendering/markdown.js +12 -0
- package/dist/ui-core/rendering/markdown.js.map +1 -1
- package/dist/ui-core/rendering/open-tool-output.d.ts +1 -0
- package/dist/ui-core/rendering/open-tool-output.js +48 -14
- package/dist/ui-core/rendering/open-tool-output.js.map +1 -1
- package/dist/ui-core/rendering/pager-regions.d.ts +7 -0
- package/dist/ui-core/rendering/pager-regions.js +8 -0
- package/dist/ui-core/rendering/pager-regions.js.map +1 -0
- package/dist/ui-core/rendering/plan-view.js +5 -5
- package/dist/ui-core/rendering/plan-view.js.map +1 -1
- package/dist/ui-core/rendering/render-markdown-lines.d.ts +1 -0
- package/dist/ui-core/rendering/render-markdown-lines.js +5 -2
- package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
- package/dist/ui-core/rendering/session-change-diff.d.ts +2 -0
- package/dist/ui-core/rendering/session-change-diff.js +85 -0
- package/dist/ui-core/rendering/session-change-diff.js.map +1 -0
- package/dist/ui-core/rendering/session-prompts-pager-source.js +1 -1
- package/dist/ui-core/rendering/session-prompts-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/strip-tool-surfaces.js +7 -7
- package/dist/ui-core/rendering/strip-tool-surfaces.js.map +1 -1
- package/dist/ui-core/rendering/task-disclosure.js +3 -3
- package/dist/ui-core/rendering/task-disclosure.js.map +1 -1
- package/dist/ui-core/rendering/text-width.d.ts +2 -0
- package/dist/ui-core/rendering/text-width.js +100 -4
- package/dist/ui-core/rendering/text-width.js.map +1 -1
- package/dist/ui-core/rendering/thinking-tail.js +6 -2
- package/dist/ui-core/rendering/thinking-tail.js.map +1 -1
- package/dist/ui-core/rendering/tool-output-pager-source.d.ts +4 -0
- package/dist/ui-core/rendering/tool-output-pager-source.js +94 -0
- package/dist/ui-core/rendering/tool-output-pager-source.js.map +1 -0
- package/dist/ui-core/rendering/tool-presenter.d.ts +2 -0
- package/dist/ui-core/rendering/tool-presenter.js +53 -0
- package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
- package/dist/ui-core/state/hydrate/classic-transcript.js +2 -0
- package/dist/ui-core/state/hydrate/classic-transcript.js.map +1 -1
- package/dist/ui-core/state/pager-search.d.ts +8 -0
- package/dist/ui-core/state/pager-search.js +20 -0
- package/dist/ui-core/state/pager-search.js.map +1 -1
- package/dist/ui-core/state/semantic-document.d.ts +4 -0
- package/dist/ui-core/state/semantic-document.js.map +1 -1
- package/dist/ui-core/state/transcript/apply-app-event.js +1 -0
- package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
- package/dist/ui-core/state/transcript-hydrate.js +1 -0
- package/dist/ui-core/state/transcript-hydrate.js.map +1 -1
- package/dist/ui-core/state/transcript-store.d.ts +2 -1
- package/dist/ui-core/state/transcript-store.js +35 -0
- package/dist/ui-core/state/transcript-store.js.map +1 -1
- package/dist/ui-core/state/transcript-types.d.ts +2 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/ui-core/state/transcript-window.d.ts +11 -2
- package/dist/ui-core/state/transcript-window.js +11 -2
- package/dist/ui-core/state/transcript-window.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/dist/version.generated.js.map +1 -1
- package/package.json +5 -2
- package/dist/agent/context/compaction-work-history.d.ts +0 -13
- package/dist/agent/context/compaction-work-history.js +0 -150
- package/dist/agent/context/compaction-work-history.js.map +0 -1
- package/dist/classic/render/palette.js.map +0 -1
- package/dist/tui-v2/components/modal/prompt-actions-modal.d.ts +0 -10
- package/dist/tui-v2/components/modal/prompt-actions-modal.js +0 -101
- package/dist/tui-v2/components/modal/prompt-actions-modal.js.map +0 -1
- package/dist/tui-v2/components/transcript/transcript-scrollbar.d.ts +0 -29
- package/dist/tui-v2/components/transcript/transcript-scrollbar.js +0 -211
- package/dist/tui-v2/components/transcript/transcript-scrollbar.js.map +0 -1
- package/dist/ui-core/rendering/prompt-preview.d.ts +0 -5
- package/dist/ui-core/rendering/prompt-preview.js +0 -27
- package/dist/ui-core/rendering/prompt-preview.js.map +0 -1
- /package/dist/{classic/render/palette.d.ts → ui-core/rendering/ansi-palette.d.ts} +0 -0
|
@@ -10,6 +10,7 @@ export interface FileLineChanges extends LineChangeTotals {
|
|
|
10
10
|
export interface SessionChangesReport {
|
|
11
11
|
readonly totals: LineChangeTotals | undefined;
|
|
12
12
|
readonly files: readonly FileLineChanges[];
|
|
13
|
+
readonly changes: readonly FileChange[];
|
|
13
14
|
}
|
|
14
15
|
export declare function validLineChangeTotals(value: unknown): value is LineChangeTotals;
|
|
15
16
|
export declare function sumLineChanges(values: Iterable<LineChangeTotals>): LineChangeTotals | undefined;
|
|
@@ -17,8 +18,12 @@ export declare function fileLineChanges(changes: readonly FileChange[] | undefin
|
|
|
17
18
|
export declare class SessionChanges {
|
|
18
19
|
private readonly files;
|
|
19
20
|
private readonly recorded;
|
|
21
|
+
private readonly diffIds;
|
|
22
|
+
private diffs;
|
|
23
|
+
private report;
|
|
20
24
|
record(toolCallId: string, changes: readonly FileChange[] | undefined): void;
|
|
21
25
|
restore(saved?: readonly FileLineChanges[], transcript?: readonly TranscriptItem[]): void;
|
|
22
26
|
snapshot(): SessionChangesReport;
|
|
27
|
+
private recordDiffs;
|
|
23
28
|
private add;
|
|
24
29
|
}
|
|
@@ -15,16 +15,34 @@ export function sumLineChanges(values) {
|
|
|
15
15
|
}
|
|
16
16
|
return added || removed ? { added, removed } : undefined;
|
|
17
17
|
}
|
|
18
|
+
function countedFileChanges(changes) {
|
|
19
|
+
return (Array.isArray(changes) ? changes : []).filter((change) => change && typeof change.path === "string" && change.path && !change.binary && validLineChangeTotals(change.stats) &&
|
|
20
|
+
(change.stats.added > 0 || change.stats.removed > 0));
|
|
21
|
+
}
|
|
18
22
|
export function fileLineChanges(changes) {
|
|
19
|
-
return (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
+
return countedFileChanges(changes).map((change) => ({ path: change.path, added: change.stats.added, removed: change.stats.removed }));
|
|
24
|
+
}
|
|
25
|
+
function settledToolItems(transcript) {
|
|
26
|
+
const out = [];
|
|
27
|
+
const visit = (items) => {
|
|
28
|
+
for (const item of items) {
|
|
29
|
+
if (item.kind === "compacted" && Array.isArray(item.originalItems))
|
|
30
|
+
visit(item.originalItems);
|
|
31
|
+
else if (item.kind === "tool" && item.status !== "running" && item.status !== "blocked")
|
|
32
|
+
out.push(item);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
visit(transcript);
|
|
36
|
+
return out;
|
|
23
37
|
}
|
|
24
38
|
export class SessionChanges {
|
|
25
39
|
files = new Map();
|
|
26
40
|
recorded = new Set();
|
|
41
|
+
diffIds = new Set();
|
|
42
|
+
diffs = [];
|
|
43
|
+
report;
|
|
27
44
|
record(toolCallId, changes) {
|
|
45
|
+
this.recordDiffs(toolCallId, changes);
|
|
28
46
|
if (this.recorded.has(toolCallId))
|
|
29
47
|
return;
|
|
30
48
|
const files = fileLineChanges(changes);
|
|
@@ -37,33 +55,45 @@ export class SessionChanges {
|
|
|
37
55
|
restore(saved, transcript = []) {
|
|
38
56
|
this.files.clear();
|
|
39
57
|
this.recorded.clear();
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
58
|
+
this.diffIds.clear();
|
|
59
|
+
this.diffs = [];
|
|
60
|
+
this.report = undefined;
|
|
61
|
+
const tools = settledToolItems(transcript);
|
|
62
|
+
if (!Array.isArray(saved)) {
|
|
63
|
+
for (const item of tools)
|
|
64
|
+
this.record(item.id, item.fileChanges);
|
|
47
65
|
return;
|
|
48
66
|
}
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
else if (item.kind === "tool" && item.status !== "running" && item.status !== "blocked") {
|
|
56
|
-
this.record(item.id, item.fileChanges);
|
|
67
|
+
for (const item of tools)
|
|
68
|
+
this.recordDiffs(item.id, item.fileChanges);
|
|
69
|
+
for (const file of saved) {
|
|
70
|
+
const path = file?.path;
|
|
71
|
+
if (typeof path === "string" && path && validLineChangeTotals(file)) {
|
|
72
|
+
this.add({ path, added: file.added, removed: file.removed });
|
|
57
73
|
}
|
|
58
74
|
}
|
|
59
75
|
}
|
|
60
76
|
snapshot() {
|
|
77
|
+
if (this.report)
|
|
78
|
+
return this.report;
|
|
61
79
|
const files = [...this.files.values()].map((file) => ({ ...file })).sort((a, b) => a.path.localeCompare(b.path));
|
|
62
|
-
|
|
80
|
+
this.report = { files, totals: sumLineChanges(files), changes: [...this.diffs] };
|
|
81
|
+
return this.report;
|
|
82
|
+
}
|
|
83
|
+
recordDiffs(id, changes) {
|
|
84
|
+
if (this.diffIds.has(id))
|
|
85
|
+
return;
|
|
86
|
+
const recorded = countedFileChanges(changes);
|
|
87
|
+
if (!recorded.length)
|
|
88
|
+
return;
|
|
89
|
+
this.diffIds.add(id);
|
|
90
|
+
this.diffs.push(...recorded);
|
|
91
|
+
this.report = undefined;
|
|
63
92
|
}
|
|
64
93
|
add(file) {
|
|
65
94
|
if (file.added === 0 && file.removed === 0)
|
|
66
95
|
return;
|
|
96
|
+
this.report = undefined;
|
|
67
97
|
const previous = this.files.get(file.path);
|
|
68
98
|
this.files.set(file.path, {
|
|
69
99
|
path: file.path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-changes.js","sourceRoot":"","sources":["../../../src/app/controllers/session-changes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"session-changes.js","sourceRoot":"","sources":["../../../src/app/controllers/session-changes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { buildDirectCompactionPrompt, calibratedCompactionSinglePassInputBudget, COMPACTION_MAX_COMPLETION_TOKENS, COMPACTION_MAP_MAX_COMPLETION_TOKENS, } from "../../agent/compaction-summary.js";
|
|
1
|
+
import { buildDirectCompactionPrompt, calibratedCompactionSinglePassInputBudget, COMPACTION_MAX_COMPLETION_TOKENS, COMPACTION_MAP_MAX_COMPLETION_TOKENS, COMPACTION_SYSTEM_PROMPT, } from "../../agent/compaction-summary.js";
|
|
2
2
|
import { executeCompactionSummary, isCompactionOverLimitError, planCompactionReplay, } from "../../agent/compaction-executor.js";
|
|
3
3
|
import { compactMessagesWithSummary, estimateMessagesTokens, isCompactionMemoryMessage, } from "../../agent/context-manager.js";
|
|
4
4
|
import { projectToolHistory } from "../../agent/tool-history.js";
|
|
@@ -12,13 +12,10 @@ export async function summarizeForSessionCompact(prompt, opts) {
|
|
|
12
12
|
const maxTokens = opts.stage === "map"
|
|
13
13
|
? COMPACTION_MAP_MAX_COMPLETION_TOKENS
|
|
14
14
|
: COMPACTION_MAX_COMPLETION_TOKENS;
|
|
15
|
-
const systemContent = opts.purpose === "plan-implement"
|
|
16
|
-
? "Write concise, non-redundant research memory for an agent executing an approved plan. Do not add framing: the PLAN MODE HANDOFF wrapper and active plan are injected separately. For coding target 600–1000 tokens; preserve only verified state, reusable research/artifacts, decisions, blockers, and risks. Security handoffs may be longer to preserve findings and coverage. Never invent or cut a fact mid-token. You are summarizing, not continuing: never emit tool calls or fabricate tool results, file receipts, or transcript lines."
|
|
17
|
-
: "You compress conversation history into accurate continuation memory. You are SUMMARIZING the past session, not continuing it: do not answer the user, do not perform the next task, and never emit tool calls or fabricate tool results, file-write receipts (bytes/lines/sha256), exit codes, or 'TOOL:'/'[tools: …]' transcript lines. Describe what already happened in your own words.";
|
|
18
15
|
return executeCompactionSummary({
|
|
19
16
|
provider: opts.provider,
|
|
20
17
|
model: opts.model,
|
|
21
|
-
systemContent,
|
|
18
|
+
systemContent: COMPACTION_SYSTEM_PROMPT,
|
|
22
19
|
prompt,
|
|
23
20
|
maxTokens,
|
|
24
21
|
signal: opts.signal,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-compact-helper.js","sourceRoot":"","sources":["../../../src/app/controllers/session-compact-helper.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,EACzC,gCAAgC,EAChC,oCAAoC,
|
|
1
|
+
{"version":3,"file":"session-compact-helper.js","sourceRoot":"","sources":["../../../src/app/controllers/session-compact-helper.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,2BAA2B,EAC3B,yCAAyC,EACzC,gCAAgC,EAChC,oCAAoC,EACpC,wBAAwB,GACzB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAE1B,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAC;AAClF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,gCAAgC,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EACL,eAAe,EACf,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AAOvC,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,MAAc,EACd,IAcC;IAED,MAAM,SAAS,GACb,IAAI,CAAC,KAAK,KAAK,KAAK;QAClB,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,gCAAgC,CAAC;IACvC,OAAO,wBAAwB,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,aAAa,EAAE,wBAAwB;QACvC,MAAM;QACN,SAAS;QACT,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACvE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,CAAC,kBAAkB,KAAK,SAAS;YACvC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,EAAE;YACjD,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,kBAAkB,EAAE,KAAK;QACzB,iBAAiB,EAAE,KAAK;QACxB,4BAA4B,EAAE,KAAK;QACnC,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;AACL,CAAC;AAmCD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAoC;IAQpC,MAAM,IAAI,GAAG,CACX,IAAO,EACP,OAA4B,EACtB,EAAE;QACR,OAAO,CAAC,IAAI,CACV,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAgB,CACjE,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;IAC7D,MAAM,mBAAmB,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACpD,MAAM,aAAa,GAAG,iBAAiB;QACrC,CAAC,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,OAAO;YACtD,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,iBAAiB;QACrB,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,kBAAkB,GAAG,4BAA4B,CACrD,iBAAiB,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAC/C,iBAAiB,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,EACzC,OAAO,CAAC,kBAAkB,CAC3B,CAAC;IACF,MAAM,WAAW,GAAG,2BAA2B,CAAC;QAC9C,QAAQ,EAAE,OAAO;QACjB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACzD,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,aAAa;QAC9B,CAAC,CAAC,oBAAoB,CAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,OAAO;YACP,MAAM,EAAE,WAAW;YACnB,SAAS,EAAE,gCAAgC;YAC3C,kBAAkB;YAClB,MAAM,EAAE,IAAI;SACb,CAAC;QACJ,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,sBAAsB,GAAG,UAAU,EAAE,sBAAsB,CAAC;IAClE,MAAM,2BAA2B,GAC/B,OAAO,OAAO,CAAC,mBAAmB,KAAK,QAAQ;QAC/C,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC5C,OAAO,CAAC,mBAAmB,GAAG,CAAC;QAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,mBAAmB,CAAC;QACzC,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,yBAAyB,GAC7B,2BAA2B,KAAK,SAAS;QACzC,sBAAsB,KAAK,SAAS,CAAC;IACvC,MAAM,mBAAmB,GACvB,2BAA2B,IAAI,sBAAsB,EAAE,aAAa,CAAC;IACvE,MAAM,KAAK,GACT,mBAAmB,KAAK,SAAS;QAC/B,CAAC,CAAC,iBAAiB;QACnB,CAAC,CAAC,mBAAmB,CAAC;IAC1B,MAAM,mBAAmB,GAAG,iBAAiB,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;IAC5E,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;IACnE,MAAM,UAAU,GAAG,CAAC,MAAc,EAAU,EAAE,CAC5C,uBAAuB,CAAC,mBAAmB,EAAE,gBAAgB,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACtF,MAAM,YAAY,GAAG,mBAAmB,IAAI,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC5E,MAAM,WAAW,GAAG,CAAC,MAAqB,EAAsB,EAAE;QAChE,MAAM,qBAAqB,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,CAAC,eAAuB,EAAU,EAAE,CACzD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;QACjE,MAAM,WAAW,GACf,OAAO,CAAC,8BAA8B,IAAI,WAAW,CAAC;QACxD,MAAM,WAAW,GACf,yBAAyB,IAAI,sBAAsB;YACjD,CAAC,CAAC,qBAAqB;gBACrB,cAAc,CAAC,UAAU,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YACrE,CAAC,CAAC,mBAAmB,KAAK,SAAS;gBACjC,CAAC,CAAC,qBAAqB;gBACvB,CAAC,CAAC,qBAAqB,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACpE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC;IAC3D,CAAC,CAAC;IACF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,oBAAoB,EAAE;YACzB,YAAY,EAAE,OAAO,CAAC,YAAY;YAClC,YAAY;YACZ,GAAG,CAAC,OAAO,CAAC,8BAA8B,KAAK,mBAAmB;gBAChE,CAAC,CAAC,EAAE,WAAW,EAAE,mBAA4B,EAAE;gBAC/C,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAC;IACL,CAAC;IAED,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,SAAS,GAAG,IAAI,eAAe,CACnC,8BAA8B,CAAC,YAAY,CAAC,CAC7C,CAAC;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,gBAAyB,EAA0B,EAAE;YACpE,MAAM,MAAM,GACV,CAAC,gBAAgB,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS;gBACjE,CAAC,CAAC,aAAa;gBACf,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,eAAe,GAAG,iBAAiB,IAAI,OAAO,CAAC,eAAe,CAAC;YACrE,MAAM,eAAe,GAAG,eAAe,EAAE,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC;YACtE,MAAM,YAAY,GAAG,eAAe,EAAE,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC;YAC7D,OAAO,0BAA0B,CAC/B,OAAO,EACP,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAChB,0BAA0B,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE;gBACxD,QAAQ,EAAE,eAAe;gBACzB,KAAK,EAAE,YAAY;gBACnB,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,KAAK,EAAE,KAAK;gBACnB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,GAAG,CAAC,MAAM;oBACR,CAAC,CAAC;wBACE,WAAW,EAAE,MAAM;wBACnB,OAAO;qBACR;oBACH,CAAC,CAAC;wBACE,GAAG,CAAC,KAAK,EAAE,cAAc;4BACvB,CAAC,CAAC,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,EAAE;4BAC1C,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC;gBACN,kBAAkB;gBAClB,SAAS;gBACT,OAAO,EAAE,CAAC,UAAU,EAAE,EAAE;oBACtB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;wBAAE,OAAO;oBACjC,KAAK,MAAM,SAAS,IAAI,0BAA0B,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;wBAC9E,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,SAAS,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;oBACrH,CAAC;oBACD,IAAI,CAAC,UAAU,CAAC,KAAK;wBAAE,OAAO;oBAC9B,MAAM,OAAO,GAAG,gCAAgC,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;oBAC5E,IAAI,CAAC,aAAa,EAAE;wBAClB,GAAG,UAAU,CAAC,KAAK;wBACnB,QAAQ,EAAE,UAAU,CAAC,QAAQ;wBAC7B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAClD,GAAG,CAAC,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBACrD,SAAS,EAAE,IAAI;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,KAAK,EAAE,KAAK,KAAK,KAAK;oBAC3C,CAAC,CAAC;wBACE,OAAO,EAAE,CAAC,IAAY,EAAE,OAAiB,EAAE,EAAE;4BAC3C,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;gCACxB,IAAI,CAAC,kBAAkB,EAAE;oCACvB,YAAY,EAAE,OAAO,CAAC,YAAY;oCAClC,IAAI;oCACJ,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iCACtC,CAAC,CAAC;4BACL,CAAC;wBACH,CAAC;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,EACJ;gBACE,YAAY,EAAE,CAAC;gBACf,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAChF,eAAe,EAAE,IAAI;gBACrB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClD,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACvD,2BAA2B,EACzB,IAAI,CAAC,GAAG,CACN,CAAC,EACD,yCAAyC,CACvC,kBAAkB,EAClB,eAAe,EACf,YAAY,CACb,GAAG,qBAAqB,CAAC,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,CAAC,oBAAoB,CAC3E;aACJ,CACF,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,MAAqB,CAAC;QAC1B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,0BAA0B,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YACpD,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAAE,OAAO,MAAM,CAAC;QACxC,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACjC,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,OAAO,GACX,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;iBACjB,OAAO,EAAE;iBACT,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC,EAAE,OAAO;gBACjE,mBAAmB,CAAC;YACtB,IAAI,CAAC,sBAAsB,EAAE;gBAC3B,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO;gBACP,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,SAAS;oBACpC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE;oBACvC,CAAC,CAAC,EAAE,CAAC;gBACP,GAAG,CAAC,QAAQ,CAAC,WAAW,KAAK,mBAAmB;oBAC9C,CAAC,CAAC,EAAE,WAAW,EAAE,mBAA4B,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;gBACP,YAAY,EAAE,QAAQ,CAAC,KAAK;aAC7B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,mBAAmB,EAAE;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO,EAAE,yCAAyC;gBAClD,cAAc,EAAE,YAAY;gBAC5B,GAAG,CAAC,OAAO,CAAC,8BAA8B,KAAK,mBAAmB;oBAChE,CAAC,CAAC,EAAE,WAAW,EAAE,mBAA4B,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO,GAAG,IAAI,CAAC;QACpC,IAAI,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACzC,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAI,CAAC,mBAAmB,EAAE;gBACxB,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO;gBACzE,cAAc,EAAE,YAAY;gBAC5B,GAAG,CAAC,OAAO,CAAC,8BAA8B,KAAK,mBAAmB;oBAChE,CAAC,CAAC,EAAE,WAAW,EAAE,mBAA4B,EAAE;oBAC/C,CAAC,CAAC,EAAE,CAAC;aACR,CAAC,CAAC;QACL,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -64,6 +64,8 @@ export interface SessionControllerDeps {
|
|
|
64
64
|
readonly clock?: Clock | undefined;
|
|
65
65
|
readonly mintTurnId?: (() => TurnId) | undefined;
|
|
66
66
|
readonly getTranscriptSnapshot?: (() => ClassicTranscriptItem[] | undefined) | undefined;
|
|
67
|
+
readonly absorbPersistedTranscript?: ((incoming: readonly ClassicTranscriptItem[]) => readonly ClassicTranscriptItem[]) | undefined;
|
|
68
|
+
readonly lateWorkPollMs?: number | undefined;
|
|
67
69
|
readonly noHistory?: boolean | undefined;
|
|
68
70
|
readonly notifyResponderDelivery?: ((summary: string) => void) | undefined;
|
|
69
71
|
readonly titleCompleter?: ((messages: ChatMessage[]) => Promise<string>) | undefined;
|
|
@@ -108,10 +110,13 @@ export declare class SessionController implements Disposable {
|
|
|
108
110
|
private lastContextCompactionId;
|
|
109
111
|
private readonly usageLedger;
|
|
110
112
|
private readonly changeLedger;
|
|
113
|
+
private readonly lateWork;
|
|
111
114
|
private lifecycleGeneration;
|
|
112
115
|
private lastTurnResult;
|
|
113
116
|
private restoredPreviousTurn;
|
|
114
117
|
private activeTurnGeneration;
|
|
118
|
+
private closing;
|
|
119
|
+
private readonly settledWaiters;
|
|
115
120
|
private readonly projectContext;
|
|
116
121
|
constructor(deps: SessionControllerDeps);
|
|
117
122
|
get workspace(): SessionWorkspace | undefined;
|
|
@@ -154,6 +159,7 @@ export declare class SessionController implements Disposable {
|
|
|
154
159
|
model?: string | undefined;
|
|
155
160
|
transcript?: readonly ClassicTranscriptItem[] | undefined;
|
|
156
161
|
changes?: readonly FileLineChanges[] | undefined;
|
|
162
|
+
unsyncedItemIds?: readonly string[] | undefined;
|
|
157
163
|
}): void;
|
|
158
164
|
private applyRestoredModel;
|
|
159
165
|
notice(level: NoticeLevel, text: string): void;
|
|
@@ -180,7 +186,9 @@ export declare class SessionController implements Disposable {
|
|
|
180
186
|
private settlePersistedResponderResults;
|
|
181
187
|
private continuationCheckpoint;
|
|
182
188
|
canResumeFromHistory(): boolean;
|
|
189
|
+
shutdown(): Promise<void>;
|
|
183
190
|
persistNow(name?: string): Promise<void>;
|
|
191
|
+
private canAbsorbLateWork;
|
|
184
192
|
estimateContext(): {
|
|
185
193
|
messages: number;
|
|
186
194
|
tokens: number;
|
|
@@ -38,6 +38,7 @@ import { completeForSessionNaming, SessionNamer } from "./session-naming.js";
|
|
|
38
38
|
import { SessionPromptStore } from "../../store/session-prompts.js";
|
|
39
39
|
import { legacySessionPrompts } from "./session-prompt-history.js";
|
|
40
40
|
import { SessionChanges } from "./session-changes.js";
|
|
41
|
+
import { SessionLateWork } from "./session-late-work.js";
|
|
41
42
|
import { isInternalChatMessage } from "../../types.js";
|
|
42
43
|
export class SessionController {
|
|
43
44
|
deps;
|
|
@@ -77,16 +78,30 @@ export class SessionController {
|
|
|
77
78
|
lastContextCompactionId;
|
|
78
79
|
usageLedger = new SessionUsageLedger();
|
|
79
80
|
changeLedger = new SessionChanges();
|
|
81
|
+
lateWork;
|
|
80
82
|
lifecycleGeneration = 0;
|
|
81
83
|
lastTurnResult;
|
|
82
84
|
restoredPreviousTurn;
|
|
83
85
|
activeTurnGeneration;
|
|
86
|
+
closing = false;
|
|
87
|
+
settledWaiters = new Set();
|
|
84
88
|
projectContext = createContextProjector((snapshot) => formatContextChip(snapshot, { compact: false }));
|
|
85
89
|
constructor(deps) {
|
|
86
90
|
this.deps = deps;
|
|
87
91
|
this.sessionIdValue = asSessionId(deps.sessionId ?? mintSessionId());
|
|
88
92
|
this.promptHistoryValue = new SessionPromptStore(this.sessionIdValue);
|
|
89
93
|
this.persistence = new SessionPersistenceQueue(deps.persistence);
|
|
94
|
+
this.lateWork = new SessionLateWork({
|
|
95
|
+
persistence: this.persistence,
|
|
96
|
+
sessionId: () => this.sessionIdValue,
|
|
97
|
+
ready: () => this.canAbsorbLateWork(),
|
|
98
|
+
absorb: deps.absorbPersistedTranscript,
|
|
99
|
+
absorbed: () => {
|
|
100
|
+
this.notifyState();
|
|
101
|
+
void this.persistNow().catch(() => undefined);
|
|
102
|
+
},
|
|
103
|
+
pollMs: deps.lateWorkPollMs,
|
|
104
|
+
});
|
|
90
105
|
this.provider = deps.provider;
|
|
91
106
|
this.model = deps.model;
|
|
92
107
|
this.mode = deps.mode ?? "agent";
|
|
@@ -111,6 +126,27 @@ export class SessionController {
|
|
|
111
126
|
notifyState: () => this.notifyState(),
|
|
112
127
|
notice: (text) => this.notice("info", text),
|
|
113
128
|
runTurn: (prompt, options) => this.runTurn(prompt, options),
|
|
129
|
+
load: () => {
|
|
130
|
+
if (!this.isPromptHistoryEnabled())
|
|
131
|
+
return [];
|
|
132
|
+
try {
|
|
133
|
+
return deps.persistence.loadQueuedPrompts?.(this.sessionIdValue) ?? [];
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.notice("warn", `could not restore queued prompts: ${error instanceof Error ? error.message : String(error)}`);
|
|
137
|
+
return [];
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
save: (prompts) => {
|
|
141
|
+
if (!this.isPromptHistoryEnabled())
|
|
142
|
+
return;
|
|
143
|
+
try {
|
|
144
|
+
deps.persistence.saveQueuedPrompts?.(this.sessionIdValue, prompts);
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
this.notice("warn", `could not save queued prompts: ${error instanceof Error ? error.message : String(error)}`);
|
|
148
|
+
}
|
|
149
|
+
},
|
|
114
150
|
lastTurnResult: () => this.lastTurnResult,
|
|
115
151
|
});
|
|
116
152
|
this.loopRecovery = new SessionLoopRecovery({
|
|
@@ -166,6 +202,7 @@ export class SessionController {
|
|
|
166
202
|
else {
|
|
167
203
|
this.responder = undefined;
|
|
168
204
|
}
|
|
205
|
+
this.prompts.rebind();
|
|
169
206
|
}
|
|
170
207
|
get workspace() {
|
|
171
208
|
return getActiveSessionWorkspace();
|
|
@@ -373,7 +410,7 @@ export class SessionController {
|
|
|
373
410
|
repairToolProtocol(healed);
|
|
374
411
|
this.history = healed;
|
|
375
412
|
this.restoredPreviousTurn = options.previousTurn;
|
|
376
|
-
this.prompts.
|
|
413
|
+
this.prompts.detach();
|
|
377
414
|
this.spool.clear();
|
|
378
415
|
this.sessionTitle = options.title;
|
|
379
416
|
this.lastContextCompactionId = undefined;
|
|
@@ -396,8 +433,10 @@ export class SessionController {
|
|
|
396
433
|
this.persistence.rebind(options.persistenceRevision);
|
|
397
434
|
void this.deps.interactiveSessions?.activateOwner(this.sessionIdValue).catch(() => undefined);
|
|
398
435
|
}
|
|
436
|
+
this.prompts.rebind();
|
|
399
437
|
this.resetPromptHistory();
|
|
400
438
|
this.changeLedger.restore(options.changes, options.transcript);
|
|
439
|
+
this.lateWork.restore(options.unsyncedItemIds, options.transcript);
|
|
401
440
|
if (this.isPromptHistoryEnabled()) {
|
|
402
441
|
const generation = this.lifecycleGeneration;
|
|
403
442
|
this.legacyPromptSource = () => legacySessionPrompts(messages, options.transcript);
|
|
@@ -468,7 +507,10 @@ export class SessionController {
|
|
|
468
507
|
this.sequencer.rebind(this.sessionIdValue);
|
|
469
508
|
this.history = [];
|
|
470
509
|
this.restoredPreviousTurn = undefined;
|
|
471
|
-
|
|
510
|
+
if (options.mintNewId)
|
|
511
|
+
this.prompts.detach();
|
|
512
|
+
else
|
|
513
|
+
this.prompts.clear();
|
|
472
514
|
this.sessionTitle = undefined;
|
|
473
515
|
this.setContextSnapshot(undefined);
|
|
474
516
|
this.lastContextCompactionId = undefined;
|
|
@@ -488,6 +530,7 @@ export class SessionController {
|
|
|
488
530
|
}
|
|
489
531
|
this.resetPromptHistory();
|
|
490
532
|
this.changeLedger.restore();
|
|
533
|
+
this.lateWork.clear();
|
|
491
534
|
this.policy = createSessionPolicy(this.sessionIdValue);
|
|
492
535
|
this.replaceSubagents();
|
|
493
536
|
this.notifyState();
|
|
@@ -617,6 +660,25 @@ export class SessionController {
|
|
|
617
660
|
!getConfig().privateMode &&
|
|
618
661
|
hasPersistableHistory(this.history));
|
|
619
662
|
}
|
|
663
|
+
async shutdown() {
|
|
664
|
+
this.closing = true;
|
|
665
|
+
this.abort("session is closing");
|
|
666
|
+
this.prompts.detach();
|
|
667
|
+
if (this.unsettledTurns > 0) {
|
|
668
|
+
let finish = () => undefined;
|
|
669
|
+
const settled = new Promise((resolve) => { finish = resolve; });
|
|
670
|
+
this.settledWaiters.add(finish);
|
|
671
|
+
const timer = setTimeout(finish, 2_000);
|
|
672
|
+
try {
|
|
673
|
+
await settled;
|
|
674
|
+
}
|
|
675
|
+
finally {
|
|
676
|
+
clearTimeout(timer);
|
|
677
|
+
this.settledWaiters.delete(finish);
|
|
678
|
+
}
|
|
679
|
+
}
|
|
680
|
+
await this.persistNow();
|
|
681
|
+
}
|
|
620
682
|
async persistNow(name) {
|
|
621
683
|
if (this.deps.noHistory || getConfig().privateMode) {
|
|
622
684
|
this.settlePersistedResponderResults();
|
|
@@ -636,6 +698,7 @@ export class SessionController {
|
|
|
636
698
|
const persistedHistory = projectToolHistory(this.history).messages;
|
|
637
699
|
const workspace = getActiveSessionWorkspace();
|
|
638
700
|
const changes = this.changeLedger.snapshot().files;
|
|
701
|
+
const unsyncedItemIds = this.lateWork.unsyncedIds;
|
|
639
702
|
const saved = this.persistence.save(persistedHistory, {
|
|
640
703
|
sessionId: this.sessionIdValue,
|
|
641
704
|
name: name ?? this.sessionTitle,
|
|
@@ -650,10 +713,17 @@ export class SessionController {
|
|
|
650
713
|
...(workspace ? { workspaceFolder: workspace.folderName, workspaceCode: workspace.code } : {}),
|
|
651
714
|
},
|
|
652
715
|
...(contextUsage ? { contextUsage } : {}),
|
|
716
|
+
...(unsyncedItemIds.length > 0 ? { unsyncedItemIds } : {}),
|
|
653
717
|
});
|
|
654
|
-
await Promise.all([saved, this.promptHistoryValue.flush().catch(() => undefined)]);
|
|
655
|
-
if (generation
|
|
656
|
-
|
|
718
|
+
const [merge] = await Promise.all([saved, this.promptHistoryValue.flush().catch(() => undefined)]);
|
|
719
|
+
if (generation !== this.lifecycleGeneration)
|
|
720
|
+
return;
|
|
721
|
+
this.settlePersistedResponderResults();
|
|
722
|
+
this.lateWork.accept(merge);
|
|
723
|
+
}
|
|
724
|
+
canAbsorbLateWork() {
|
|
725
|
+
return !this.closing && !this.turn.running && !this.compactingFlag && !this.deps.noHistory &&
|
|
726
|
+
!getConfig().privateMode && hasPersistableHistory(this.history);
|
|
657
727
|
}
|
|
658
728
|
estimateContext() {
|
|
659
729
|
const snapshot = this.resolveContextSnapshot();
|
|
@@ -769,7 +839,14 @@ export class SessionController {
|
|
|
769
839
|
this.notice("info", built.fallbackReason);
|
|
770
840
|
for (const issue of built.imageIssues)
|
|
771
841
|
this.notice("warn", issue);
|
|
772
|
-
const
|
|
842
|
+
const lateWorkNote = this.lateWork.takeNote();
|
|
843
|
+
const request = lateWorkNote
|
|
844
|
+
? {
|
|
845
|
+
...built.request,
|
|
846
|
+
prompt: `${lateWorkNote}\n\n${built.request.prompt}`,
|
|
847
|
+
displayPrompt: built.request.displayPrompt !== undefined ? built.request.displayPrompt : built.request.prompt,
|
|
848
|
+
}
|
|
849
|
+
: built.request;
|
|
773
850
|
const turnGeneration = this.lifecycleGeneration;
|
|
774
851
|
const userPrompt = opts?.displayPrompt ?? prompt;
|
|
775
852
|
if (this.isPromptHistoryEnabled() && opts?.displayPrompt !== null && !opts?.internal &&
|
|
@@ -802,6 +879,10 @@ export class SessionController {
|
|
|
802
879
|
this.lastMainRequestSnapshot = snapshot;
|
|
803
880
|
},
|
|
804
881
|
onStarted: opts?.onStarted,
|
|
882
|
+
onSubmitted: () => {
|
|
883
|
+
if (turnGeneration === this.lifecycleGeneration)
|
|
884
|
+
opts?.onSubmitted?.();
|
|
885
|
+
},
|
|
805
886
|
});
|
|
806
887
|
this.notifyState();
|
|
807
888
|
const result = await pending;
|
|
@@ -814,7 +895,8 @@ export class SessionController {
|
|
|
814
895
|
if (sameGeneration) {
|
|
815
896
|
this.lastTurnResult = result;
|
|
816
897
|
this.restoredPreviousTurn = undefined;
|
|
817
|
-
this.
|
|
898
|
+
if (!this.closing)
|
|
899
|
+
this.loopRecovery.handle(result);
|
|
818
900
|
}
|
|
819
901
|
if (sameGeneration &&
|
|
820
902
|
(result.status === "completed" ||
|
|
@@ -824,12 +906,17 @@ export class SessionController {
|
|
|
824
906
|
}
|
|
825
907
|
for (const listener of this.turnEndListeners)
|
|
826
908
|
listener(result);
|
|
827
|
-
if (sameGeneration)
|
|
909
|
+
if (sameGeneration && !this.closing)
|
|
828
910
|
this.prompts.settle(result);
|
|
829
911
|
return result;
|
|
830
912
|
}
|
|
831
913
|
finally {
|
|
832
914
|
this.unsettledTurns -= 1;
|
|
915
|
+
if (this.unsettledTurns === 0) {
|
|
916
|
+
for (const finish of this.settledWaiters)
|
|
917
|
+
finish();
|
|
918
|
+
this.settledWaiters.clear();
|
|
919
|
+
}
|
|
833
920
|
this.responder?.scheduleWake();
|
|
834
921
|
this.subagentDelivery.scheduleWake();
|
|
835
922
|
}
|
|
@@ -905,12 +992,14 @@ export class SessionController {
|
|
|
905
992
|
}
|
|
906
993
|
dispose() {
|
|
907
994
|
this.beginLifecycleGeneration();
|
|
995
|
+
this.prompts.detach();
|
|
908
996
|
this.namer.reset();
|
|
909
997
|
this.subagentDelivery.dispose();
|
|
910
998
|
this.subagentsValue.dispose();
|
|
911
999
|
this.fenceInteractiveOwner(this.sessionIdValue);
|
|
912
1000
|
this.turnEndListeners.clear();
|
|
913
1001
|
this.stateListeners.clear();
|
|
1002
|
+
this.lateWork.dispose();
|
|
914
1003
|
this.disposables.dispose();
|
|
915
1004
|
}
|
|
916
1005
|
notifyState() {
|