@pentoshi/clai 4.14.4 → 4.15.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/CONTRIBUTING.md +4 -0
- package/PROVIDERS.md +2 -0
- package/README.md +41 -5
- package/dist/agent/compaction-summary.d.ts +6 -1
- package/dist/agent/compaction-summary.js +46 -20
- package/dist/agent/compaction-summary.js.map +1 -1
- package/dist/agent/confirm-port.d.ts +3 -8
- package/dist/agent/confirm-port.js +9 -7
- package/dist/agent/confirm-port.js.map +1 -1
- package/dist/agent/context/compact-with-summary.js +55 -14
- package/dist/agent/context/compact-with-summary.js.map +1 -1
- package/dist/agent/context/compaction-recent-history.js +4 -2
- package/dist/agent/context/compaction-recent-history.js.map +1 -1
- package/dist/agent/context/compaction-user-instructions.d.ts +12 -0
- package/dist/agent/context/compaction-user-instructions.js +264 -0
- package/dist/agent/context/compaction-user-instructions.js.map +1 -0
- package/dist/agent/context/compaction-work-history.d.ts +13 -0
- package/dist/agent/context/compaction-work-history.js +150 -0
- package/dist/agent/context/compaction-work-history.js.map +1 -0
- package/dist/agent/context-manager.js +19 -5
- package/dist/agent/context-manager.js.map +1 -1
- package/dist/agent/plan-implement-compact.js +2 -1
- package/dist/agent/plan-implement-compact.js.map +1 -1
- package/dist/agent/subagents/read-only-tools.js +2 -2
- package/dist/agent/subagents/read-only-tools.js.map +1 -1
- package/dist/agent/turn/loop/stream-session.js +33 -27
- package/dist/agent/turn/loop/stream-session.js.map +1 -1
- package/dist/agent/turn/tool-execution/authorization.js +1 -1
- package/dist/agent/turn/tool-execution/authorization.js.map +1 -1
- package/dist/app/adapters/current-store-adapter.js +2 -2
- package/dist/app/adapters/current-store-adapter.js.map +1 -1
- package/dist/app/adapters/current-updates-adapter.d.ts +1 -1
- package/dist/app/adapters/current-updates-adapter.js +4 -13
- package/dist/app/adapters/current-updates-adapter.js.map +1 -1
- package/dist/app/commands/catalog.js +1 -0
- package/dist/app/commands/catalog.js.map +1 -1
- package/dist/app/controllers/session-changes.d.ts +24 -0
- package/dist/app/controllers/session-changes.js +75 -0
- package/dist/app/controllers/session-changes.js.map +1 -0
- package/dist/app/controllers/session-controller.d.ts +9 -0
- package/dist/app/controllers/session-controller.js +67 -7
- package/dist/app/controllers/session-controller.js.map +1 -1
- package/dist/app/ports/confirm-port.d.ts +4 -1
- package/dist/app/ports/persistence-port.d.ts +2 -0
- package/dist/app/ports/transcript-item.d.ts +2 -0
- package/dist/app/ports/updates-port.d.ts +1 -1
- package/dist/classic/app/ClassicApp.js +42 -33
- package/dist/classic/app/ClassicApp.js.map +1 -1
- package/dist/classic/app/action-handlers.js +7 -0
- package/dist/classic/app/action-handlers.js.map +1 -1
- package/dist/classic/app/app-wiring.d.ts +8 -1
- package/dist/classic/app/app-wiring.js +23 -4
- package/dist/classic/app/app-wiring.js.map +1 -1
- package/dist/classic/app/paint-pacing.d.ts +3 -1
- package/dist/classic/app/paint-pacing.js +9 -1
- package/dist/classic/app/paint-pacing.js.map +1 -1
- package/dist/classic/app/use-feed.js +8 -3
- package/dist/classic/app/use-feed.js.map +1 -1
- package/dist/classic/app/wiring-composer-pointer.d.ts +3 -0
- package/dist/classic/app/wiring-composer-pointer.js +22 -0
- package/dist/classic/app/wiring-composer-pointer.js.map +1 -0
- package/dist/classic/app/wiring-disclosure.d.ts +3 -0
- package/dist/classic/app/wiring-disclosure.js +31 -0
- package/dist/classic/app/wiring-disclosure.js.map +1 -0
- package/dist/classic/app/wiring-interactions.d.ts +1 -0
- package/dist/classic/app/wiring-interactions.js +16 -16
- package/dist/classic/app/wiring-interactions.js.map +1 -1
- package/dist/classic/app/wiring-jump-to-latest.d.ts +3 -0
- package/dist/classic/app/wiring-jump-to-latest.js +38 -0
- package/dist/classic/app/wiring-jump-to-latest.js.map +1 -0
- package/dist/classic/app/wiring-lifecycle.d.ts +1 -1
- package/dist/classic/app/wiring-lifecycle.js +19 -10
- package/dist/classic/app/wiring-lifecycle.js.map +1 -1
- package/dist/classic/app/wiring-selection.d.ts +1 -0
- package/dist/classic/app/wiring-selection.js +10 -1
- package/dist/classic/app/wiring-selection.js.map +1 -1
- package/dist/classic/app/wiring-types.d.ts +12 -1
- package/dist/classic/blocks/assistant-lines.js +1 -1
- package/dist/classic/blocks/assistant-lines.js.map +1 -1
- package/dist/classic/blocks/batch-lines.d.ts +1 -1
- package/dist/classic/blocks/batch-lines.js +47 -59
- package/dist/classic/blocks/batch-lines.js.map +1 -1
- package/dist/classic/blocks/block-context.d.ts +8 -1
- package/dist/classic/blocks/block-context.js.map +1 -1
- package/dist/classic/blocks/compacted-lines.d.ts +0 -1
- package/dist/classic/blocks/compacted-lines.js +12 -44
- package/dist/classic/blocks/compacted-lines.js.map +1 -1
- package/dist/classic/blocks/diff-lines.d.ts +3 -5
- package/dist/classic/blocks/diff-lines.js +113 -152
- package/dist/classic/blocks/diff-lines.js.map +1 -1
- package/dist/classic/blocks/disclosure-lines.d.ts +16 -0
- package/dist/classic/blocks/disclosure-lines.js +20 -0
- package/dist/classic/blocks/disclosure-lines.js.map +1 -0
- package/dist/classic/blocks/intro-lines.js +2 -0
- package/dist/classic/blocks/intro-lines.js.map +1 -1
- package/dist/classic/blocks/notice-lines.js +4 -16
- package/dist/classic/blocks/notice-lines.js.map +1 -1
- package/dist/classic/blocks/output-lines.d.ts +10 -0
- package/dist/classic/blocks/output-lines.js +35 -0
- package/dist/classic/blocks/output-lines.js.map +1 -0
- package/dist/classic/blocks/thinking-lines.d.ts +0 -1
- package/dist/classic/blocks/thinking-lines.js +15 -32
- package/dist/classic/blocks/thinking-lines.js.map +1 -1
- package/dist/classic/blocks/tool-label.d.ts +2 -0
- package/dist/classic/blocks/tool-label.js +8 -0
- package/dist/classic/blocks/tool-label.js.map +1 -0
- package/dist/classic/blocks/tool-lines.d.ts +3 -5
- package/dist/classic/blocks/tool-lines.js +90 -150
- package/dist/classic/blocks/tool-lines.js.map +1 -1
- package/dist/classic/blocks/turn-summary-lines.js +7 -1
- package/dist/classic/blocks/turn-summary-lines.js.map +1 -1
- package/dist/classic/blocks/user-lines.js +9 -15
- package/dist/classic/blocks/user-lines.js.map +1 -1
- package/dist/classic/bootstrap/start-classic.js +2 -0
- package/dist/classic/bootstrap/start-classic.js.map +1 -1
- package/dist/classic/chrome/Composer.d.ts +4 -2
- package/dist/classic/chrome/Composer.js +12 -6
- package/dist/classic/chrome/Composer.js.map +1 -1
- package/dist/classic/chrome/composer-controller.d.ts +3 -0
- package/dist/classic/chrome/composer-controller.js +15 -22
- package/dist/classic/chrome/composer-controller.js.map +1 -1
- package/dist/classic/chrome/composer-frame.d.ts +1 -1
- package/dist/classic/chrome/composer-frame.js +2 -1
- package/dist/classic/chrome/composer-frame.js.map +1 -1
- package/dist/classic/chrome/composer-mentions.d.ts +2 -0
- package/dist/classic/chrome/composer-mentions.js +16 -0
- package/dist/classic/chrome/composer-mentions.js.map +1 -0
- package/dist/classic/chrome/composer-pointer.d.ts +13 -0
- package/dist/classic/chrome/composer-pointer.js +22 -0
- package/dist/classic/chrome/composer-pointer.js.map +1 -0
- package/dist/classic/chrome/directory-row.d.ts +20 -2
- package/dist/classic/chrome/directory-row.js +45 -1
- package/dist/classic/chrome/directory-row.js.map +1 -1
- package/dist/classic/chrome/editor-view.js +6 -1
- package/dist/classic/chrome/editor-view.js.map +1 -1
- package/dist/classic/chrome/queue-rows.d.ts +1 -0
- package/dist/classic/chrome/queue-rows.js +12 -2
- package/dist/classic/chrome/queue-rows.js.map +1 -1
- package/dist/classic/chrome/status-rows.d.ts +1 -0
- package/dist/classic/chrome/status-rows.js +5 -4
- package/dist/classic/chrome/status-rows.js.map +1 -1
- package/dist/classic/chrome/toast-rows.js +7 -6
- package/dist/classic/chrome/toast-rows.js.map +1 -1
- package/dist/classic/feed/LiveTail.d.ts +4 -3
- package/dist/classic/feed/LiveTail.js +26 -15
- package/dist/classic/feed/LiveTail.js.map +1 -1
- package/dist/classic/feed/feed-blocks.d.ts +2 -0
- package/dist/classic/feed/feed-blocks.js +4 -2
- package/dist/classic/feed/feed-blocks.js.map +1 -1
- package/dist/classic/feed/transcript-disclosure.d.ts +6 -0
- package/dist/classic/feed/transcript-disclosure.js +9 -0
- package/dist/classic/feed/transcript-disclosure.js.map +1 -0
- package/dist/classic/feed/transcript-resources.d.ts +23 -0
- package/dist/classic/feed/transcript-resources.js +140 -0
- package/dist/classic/feed/transcript-resources.js.map +1 -0
- package/dist/classic/feed/transcript-window.js +43 -18
- package/dist/classic/feed/transcript-window.js.map +1 -1
- package/dist/classic/input/input-router.d.ts +2 -0
- package/dist/classic/input/input-router.js +6 -0
- package/dist/classic/input/input-router.js.map +1 -1
- package/dist/classic/input/raw-decoder.js +3 -2
- package/dist/classic/input/raw-decoder.js.map +1 -1
- package/dist/classic/panels/confirm-panel.js +17 -10
- package/dist/classic/panels/confirm-panel.js.map +1 -1
- package/dist/classic/panels/pager-panel.d.ts +6 -2
- package/dist/classic/panels/pager-panel.js +11 -4
- package/dist/classic/panels/pager-panel.js.map +1 -1
- package/dist/classic/panels/panel-controller.js +4 -1
- package/dist/classic/panels/panel-controller.js.map +1 -1
- package/dist/classic/panels/panel-host.js +1 -1
- package/dist/classic/panels/panel-host.js.map +1 -1
- package/dist/classic/panels/panel-wheel.js +1 -1
- package/dist/classic/panels/panel-wheel.js.map +1 -1
- package/dist/classic/render/shell-width.d.ts +0 -2
- package/dist/classic/render/shell-width.js +0 -6
- package/dist/classic/render/shell-width.js.map +1 -1
- package/dist/commands/update/detection.d.ts +20 -0
- package/dist/commands/update/detection.js +207 -0
- package/dist/commands/update/detection.js.map +1 -0
- package/dist/commands/update/download.d.ts +3 -0
- package/dist/commands/update/download.js +63 -0
- package/dist/commands/update/download.js.map +1 -0
- package/dist/commands/update/installers.d.ts +16 -5
- package/dist/commands/update/installers.js +12 -513
- package/dist/commands/update/installers.js.map +1 -1
- package/dist/commands/update/lock.d.ts +6 -0
- package/dist/commands/update/lock.js +86 -0
- package/dist/commands/update/lock.js.map +1 -0
- package/dist/commands/update/metadata.d.ts +6 -0
- package/dist/commands/update/metadata.js +36 -0
- package/dist/commands/update/metadata.js.map +1 -0
- package/dist/commands/update/native.d.ts +3 -0
- package/dist/commands/update/native.js +179 -0
- package/dist/commands/update/native.js.map +1 -0
- package/dist/commands/update/package-managers.d.ts +4 -0
- package/dist/commands/update/package-managers.js +158 -0
- package/dist/commands/update/package-managers.js.map +1 -0
- package/dist/commands/update/process.d.ts +17 -0
- package/dist/commands/update/process.js +114 -0
- package/dist/commands/update/process.js.map +1 -0
- package/dist/commands/update/source-worker.d.ts +2 -0
- package/dist/commands/update/source-worker.js +71 -0
- package/dist/commands/update/source-worker.js.map +1 -0
- package/dist/commands/update/source.d.ts +2 -0
- package/dist/commands/update/source.js +79 -0
- package/dist/commands/update/source.js.map +1 -0
- package/dist/commands/update/verification.d.ts +7 -0
- package/dist/commands/update/verification.js +73 -0
- package/dist/commands/update/verification.js.map +1 -0
- package/dist/commands/update/windows-stage.d.ts +21 -0
- package/dist/commands/update/windows-stage.js +186 -0
- package/dist/commands/update/windows-stage.js.map +1 -0
- package/dist/commands/update-install.d.ts +4 -13
- package/dist/commands/update-install.js +20 -152
- package/dist/commands/update-install.js.map +1 -1
- package/dist/commands/update.d.ts +4 -9
- package/dist/commands/update.js +51 -103
- package/dist/commands/update.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/instructions/record.d.ts +1 -1
- package/dist/instructions/record.js +3 -3
- package/dist/llm/free-client.d.ts +2 -0
- package/dist/llm/free-client.js +52 -0
- package/dist/llm/free-client.js.map +1 -0
- package/dist/llm/free.d.ts +1 -0
- package/dist/llm/free.js +77 -176
- package/dist/llm/free.js.map +1 -1
- package/dist/llm/key-rotation.d.ts +1 -0
- package/dist/llm/key-rotation.js +13 -2
- package/dist/llm/key-rotation.js.map +1 -1
- package/dist/llm/reasoning-errors.js +1 -1
- package/dist/llm/reasoning-errors.js.map +1 -1
- package/dist/llm/responses-error.d.ts +3 -0
- package/dist/llm/responses-error.js +37 -0
- package/dist/llm/responses-error.js.map +1 -0
- package/dist/llm/responses-http.js +5 -2
- package/dist/llm/responses-http.js.map +1 -1
- package/dist/llm/responses-replay.d.ts +2 -0
- package/dist/llm/responses-replay.js +37 -1
- package/dist/llm/responses-replay.js.map +1 -1
- package/dist/llm/responses-stream-events.js +3 -20
- package/dist/llm/responses-stream-events.js.map +1 -1
- package/dist/llm/responses-stream.js +2 -0
- package/dist/llm/responses-stream.js.map +1 -1
- package/dist/llm/wire/reasoning-artifacts.js +1 -1
- package/dist/llm/wire/reasoning-artifacts.js.map +1 -1
- package/dist/noninteractive/stdio-confirm-port.js +4 -3
- package/dist/noninteractive/stdio-confirm-port.js.map +1 -1
- package/dist/os/bun-runtime.js +2 -1
- package/dist/os/bun-runtime.js.map +1 -1
- package/dist/os/update-origin.d.ts +7 -0
- package/dist/os/update-origin.js +30 -0
- package/dist/os/update-origin.js.map +1 -0
- package/dist/prompts/embedded.js +2 -2
- package/dist/prompts/embedded.js.map +1 -1
- package/dist/prompts/index.js +25 -22
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/system.agent.md +7 -1
- package/dist/prompts/system.ask.md +1 -1
- package/dist/safety/filesystem-permissions.d.ts +8 -0
- package/dist/safety/filesystem-permissions.js +38 -18
- package/dist/safety/filesystem-permissions.js.map +1 -1
- package/dist/safety/patterns.d.ts +1 -1
- package/dist/safety/patterns.js +7 -7
- package/dist/safety/patterns.js.map +1 -1
- package/dist/safety/permission-mode.js +1 -1
- package/dist/safety/permission-mode.js.map +1 -1
- package/dist/safety/shell-classification.js +1 -1
- package/dist/safety/shell-classification.js.map +1 -1
- package/dist/session-runtime/client.js +2 -1
- package/dist/session-runtime/client.js.map +1 -1
- package/dist/session-runtime/view-manager.js +1 -1
- package/dist/session-runtime/view-manager.js.map +1 -1
- package/dist/store/history/jsonl-lock.js +10 -7
- package/dist/store/history/jsonl-lock.js.map +1 -1
- package/dist/store/history/recovery.d.ts +1 -0
- package/dist/store/history/recovery.js +2 -1
- package/dist/store/history/recovery.js.map +1 -1
- package/dist/store/history/sqlite-backend.js +2 -0
- package/dist/store/history/sqlite-backend.js.map +1 -1
- package/dist/store/history.d.ts +2 -2
- package/dist/store/history.js +8 -4
- package/dist/store/history.js.map +1 -1
- package/dist/store/session-prompts.d.ts +5 -0
- package/dist/store/session-prompts.js +60 -1
- package/dist/store/session-prompts.js.map +1 -1
- package/dist/tools/definitions/aggregate.js +7 -2
- package/dist/tools/definitions/aggregate.js.map +1 -1
- package/dist/tools/definitions/fs-read.js +1 -1
- package/dist/tools/definitions/fs-read.js.map +1 -1
- package/dist/tools/fs/read-input.d.ts +1 -1
- package/dist/tools/fs/read-input.js +2 -2
- package/dist/tools/fs/read-input.js.map +1 -1
- package/dist/tools/instructions.js +8 -1
- package/dist/tools/instructions.js.map +1 -1
- package/dist/tui-v2/app/App.js +18 -7
- package/dist/tui-v2/app/App.js.map +1 -1
- package/dist/tui-v2/bootstrap/frame-pacing.d.ts +4 -0
- package/dist/tui-v2/bootstrap/frame-pacing.js +5 -0
- package/dist/tui-v2/bootstrap/frame-pacing.js.map +1 -0
- 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 +2 -0
- package/dist/tui-v2/bootstrap/start-tui-v2.js.map +1 -1
- package/dist/tui-v2/components/modal/confirm-modal.d.ts +2 -0
- package/dist/tui-v2/components/modal/confirm-modal.js +21 -35
- package/dist/tui-v2/components/modal/confirm-modal.js.map +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js +1 -1
- package/dist/tui-v2/components/overlay/overlay-host.js.map +1 -1
- package/dist/tui-v2/components/pager/pager.js +4 -1
- package/dist/tui-v2/components/pager/pager.js.map +1 -1
- package/dist/tui-v2/components/plan/plan-interaction.d.ts +11 -0
- package/dist/tui-v2/components/plan/plan-interaction.js +56 -0
- package/dist/tui-v2/components/plan/plan-interaction.js.map +1 -0
- package/dist/tui-v2/components/plan/plan-view.d.ts +7 -1
- package/dist/tui-v2/components/plan/plan-view.js +78 -175
- package/dist/tui-v2/components/plan/plan-view.js.map +1 -1
- package/dist/tui-v2/components/plan/task-title.d.ts +9 -0
- package/dist/tui-v2/components/plan/task-title.js +17 -0
- package/dist/tui-v2/components/plan/task-title.js.map +1 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.d.ts +25 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.js +125 -0
- package/dist/tui-v2/components/plan/use-task-disclosure.js.map +1 -0
- package/dist/tui-v2/components/queue/queue-panel.js +2 -7
- package/dist/tui-v2/components/queue/queue-panel.js.map +1 -1
- package/dist/tui-v2/components/status/jump-to-latest.d.ts +7 -0
- package/dist/tui-v2/components/status/jump-to-latest.js +16 -0
- package/dist/tui-v2/components/status/jump-to-latest.js.map +1 -0
- package/dist/tui-v2/components/status/status-line.d.ts +1 -0
- package/dist/tui-v2/components/status/status-line.js +14 -4
- package/dist/tui-v2/components/status/status-line.js.map +1 -1
- package/dist/tui-v2/components/toast/toast-host.js +4 -7
- package/dist/tui-v2/components/toast/toast-host.js.map +1 -1
- package/dist/tui-v2/components/transcript/file-diff-card.d.ts +1 -0
- package/dist/tui-v2/components/transcript/file-diff-card.js +25 -11
- package/dist/tui-v2/components/transcript/file-diff-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/tool-card.js +24 -20
- package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-row.js +6 -3
- package/dist/tui-v2/components/transcript/transcript-row.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-scroll-port.d.ts +1 -0
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js +3 -1
- package/dist/tui-v2/components/transcript/transcript-scroll-port.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-scrollbar.js +17 -11
- package/dist/tui-v2/components/transcript/transcript-scrollbar.js.map +1 -1
- package/dist/tui-v2/components/transcript/transcript-view.js +41 -21
- package/dist/tui-v2/components/transcript/transcript-view.js.map +1 -1
- package/dist/tui-v2/composer/composer-editor.js +17 -9
- package/dist/tui-v2/composer/composer-editor.js.map +1 -1
- package/dist/tui-v2/rendering/pager-markdown.d.ts +3 -0
- package/dist/tui-v2/rendering/pager-markdown.js +3 -0
- package/dist/tui-v2/rendering/pager-markdown.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.js.map +1 -1
- package/dist/ui/mentions/file-suggestions.js +17 -8
- package/dist/ui/mentions/file-suggestions.js.map +1 -1
- package/dist/ui-core/actions/action-id.d.ts +1 -1
- package/dist/ui-core/actions/action-id.js +7 -0
- package/dist/ui-core/actions/action-id.js.map +1 -1
- package/dist/ui-core/actions/format-shortcuts.js +9 -0
- package/dist/ui-core/actions/format-shortcuts.js.map +1 -1
- package/dist/ui-core/bootstrap/overlay-ports.js +8 -3
- package/dist/ui-core/bootstrap/overlay-ports.js.map +1 -1
- package/dist/ui-core/bootstrap/session-resume.js +1 -0
- package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
- package/dist/ui-core/commands/change-commands.d.ts +4 -0
- package/dist/ui-core/commands/change-commands.js +48 -0
- package/dist/ui-core/commands/change-commands.js.map +1 -0
- package/dist/ui-core/commands/command-handlers.js +2 -0
- package/dist/ui-core/commands/command-handlers.js.map +1 -1
- package/dist/ui-core/commands/config-commands.js +12 -6
- package/dist/ui-core/commands/config-commands.js.map +1 -1
- package/dist/ui-core/commands/prompt-commands.d.ts +1 -1
- package/dist/ui-core/commands/prompt-commands.js +12 -2
- package/dist/ui-core/commands/prompt-commands.js.map +1 -1
- package/dist/ui-core/composer/arrow-intent.js +2 -0
- package/dist/ui-core/composer/arrow-intent.js.map +1 -1
- package/dist/ui-core/composer/paste-placeholder.js +2 -2
- package/dist/ui-core/composer/paste-placeholder.js.map +1 -1
- package/dist/ui-core/composer/prompt-history.d.ts +12 -0
- package/dist/ui-core/composer/prompt-history.js +75 -1
- package/dist/ui-core/composer/prompt-history.js.map +1 -1
- package/dist/ui-core/composer/saved-prompt-history.d.ts +5 -0
- package/dist/ui-core/composer/saved-prompt-history.js +33 -0
- package/dist/ui-core/composer/saved-prompt-history.js.map +1 -0
- package/dist/ui-core/controllers/overlay-controller.d.ts +1 -0
- package/dist/ui-core/controllers/overlay-controller.js.map +1 -1
- package/dist/ui-core/controllers/toast-controller.js +4 -4
- package/dist/ui-core/controllers/toast-controller.js.map +1 -1
- package/dist/ui-core/react/use-transcript-store.js +4 -2
- package/dist/ui-core/react/use-transcript-store.js.map +1 -1
- package/dist/ui-core/rendering/artifact-pager-source.d.ts +3 -0
- package/dist/ui-core/rendering/artifact-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/batch-sections.d.ts +3 -2
- package/dist/ui-core/rendering/batch-sections.js +5 -5
- package/dist/ui-core/rendering/batch-sections.js.map +1 -1
- package/dist/ui-core/rendering/card-style.d.ts +2 -0
- package/dist/ui-core/rendering/card-style.js +3 -0
- package/dist/ui-core/rendering/card-style.js.map +1 -0
- package/dist/ui-core/rendering/confirmation-preview.d.ts +9 -0
- package/dist/ui-core/rendering/confirmation-preview.js +33 -0
- package/dist/ui-core/rendering/confirmation-preview.js.map +1 -0
- package/dist/ui-core/rendering/duration.d.ts +2 -1
- package/dist/ui-core/rendering/duration.js +4 -6
- package/dist/ui-core/rendering/duration.js.map +1 -1
- package/dist/ui-core/rendering/intro-header.d.ts +1 -0
- package/dist/ui-core/rendering/intro-header.js +19 -15
- package/dist/ui-core/rendering/intro-header.js.map +1 -1
- package/dist/ui-core/rendering/jump-to-latest.d.ts +1 -0
- package/dist/ui-core/rendering/jump-to-latest.js +7 -0
- package/dist/ui-core/rendering/jump-to-latest.js.map +1 -0
- package/dist/ui-core/rendering/line-change-labels.d.ts +6 -0
- package/dist/ui-core/rendering/line-change-labels.js +12 -0
- package/dist/ui-core/rendering/line-change-labels.js.map +1 -0
- package/dist/ui-core/rendering/markdown.d.ts +5 -1
- package/dist/ui-core/rendering/markdown.js +20 -5
- package/dist/ui-core/rendering/markdown.js.map +1 -1
- package/dist/ui-core/rendering/plan-view.js +24 -12
- package/dist/ui-core/rendering/plan-view.js.map +1 -1
- package/dist/ui-core/rendering/render-markdown-lines.d.ts +3 -0
- package/dist/ui-core/rendering/render-markdown-lines.js +6 -1
- package/dist/ui-core/rendering/render-markdown-lines.js.map +1 -1
- package/dist/ui-core/rendering/session-prompts-pager-source.js +2 -0
- package/dist/ui-core/rendering/session-prompts-pager-source.js.map +1 -1
- package/dist/ui-core/rendering/status-segments.js +10 -5
- package/dist/ui-core/rendering/status-segments.js.map +1 -1
- package/dist/ui-core/rendering/subagent-presentation.js +39 -11
- package/dist/ui-core/rendering/subagent-presentation.js.map +1 -1
- package/dist/ui-core/rendering/subagent-source.js +11 -48
- package/dist/ui-core/rendering/subagent-source.js.map +1 -1
- package/dist/ui-core/rendering/subagent-tool-usage.d.ts +5 -0
- package/dist/ui-core/rendering/subagent-tool-usage.js +42 -0
- package/dist/ui-core/rendering/subagent-tool-usage.js.map +1 -0
- package/dist/ui-core/rendering/task-disclosure.d.ts +19 -0
- package/dist/ui-core/rendering/task-disclosure.js +70 -0
- package/dist/ui-core/rendering/task-disclosure.js.map +1 -0
- package/dist/ui-core/rendering/tool-diff-preview.d.ts +21 -0
- package/dist/ui-core/rendering/tool-diff-preview.js +27 -0
- package/dist/ui-core/rendering/tool-diff-preview.js.map +1 -0
- package/dist/ui-core/rendering/tool-presenter.d.ts +4 -2
- package/dist/ui-core/rendering/tool-presenter.js +19 -4
- package/dist/ui-core/rendering/tool-presenter.js.map +1 -1
- package/dist/ui-core/rendering/tool-usage-label.d.ts +2 -0
- package/dist/ui-core/rendering/tool-usage-label.js +42 -0
- package/dist/ui-core/rendering/tool-usage-label.js.map +1 -0
- 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/transcript/apply-app-event.js +16 -5
- 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-types.d.ts +4 -0
- package/dist/ui-core/state/transcript-types.js.map +1 -1
- package/dist/version.generated.d.ts +2 -2
- package/dist/version.generated.js +2 -2
- package/package.json +1 -1
- package/dist/classic/feed/ScrollbarGutter.d.ts +0 -9
- package/dist/classic/feed/ScrollbarGutter.js +0 -41
- package/dist/classic/feed/ScrollbarGutter.js.map +0 -1
- package/dist/classic/feed/scrollbar-rows.d.ts +0 -5
- package/dist/classic/feed/scrollbar-rows.js +0 -17
- package/dist/classic/feed/scrollbar-rows.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type ChatMessage, type CompactedUserInstruction, type CompactedWorkstream } from "../../types.js";
|
|
2
|
+
export declare const WORK_HISTORY_HEADING = "## Session work history (preserved)";
|
|
3
|
+
export declare const WORK_HISTORY_CHAR_BUDGET = 12000;
|
|
4
|
+
export declare const WORK_HISTORY_INPUT_CHAR_BUDGET = 2000;
|
|
5
|
+
export interface WorkstreamMemory extends CompactedWorkstream {
|
|
6
|
+
readonly message?: ChatMessage | undefined;
|
|
7
|
+
}
|
|
8
|
+
export declare function withoutWorkHistory(summary: string): string;
|
|
9
|
+
export declare function collectWorkHistory(messages: readonly ChatMessage[]): WorkstreamMemory[];
|
|
10
|
+
export declare function reconcileWorkHistory(entries: readonly WorkstreamMemory[], previous: readonly CompactedUserInstruction[], current: readonly CompactedUserInstruction[]): WorkstreamMemory[];
|
|
11
|
+
export declare function compactionWorkHistoryAnchors(entries: readonly CompactedWorkstream[], budget?: number): string;
|
|
12
|
+
export declare function archivedWorkHistory(entries: readonly WorkstreamMemory[], retained: readonly ChatMessage[]): CompactedWorkstream[];
|
|
13
|
+
export declare function renderWorkHistory(entries: readonly CompactedWorkstream[], budget?: number): string;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { redactSecrets } from "../../llm/provider.js";
|
|
2
|
+
import { isInternalChatMessage } from "../../types.js";
|
|
3
|
+
import { stripThinking } from "../../ui/thinking.js";
|
|
4
|
+
import { parseCanonicalTextToolCalls } from "../tool-history-projection.js";
|
|
5
|
+
import { withoutRecentUserPrompts } from "./compaction-recent-history.js";
|
|
6
|
+
import { redactUserCredentialsFromMemory } from "./user-credentials.js";
|
|
7
|
+
import { withoutUserInstructionSections } from "./compaction-user-instructions.js";
|
|
8
|
+
export const WORK_HISTORY_HEADING = "## Session work history (preserved)";
|
|
9
|
+
export const WORK_HISTORY_CHAR_BUDGET = 12_000;
|
|
10
|
+
export const WORK_HISTORY_INPUT_CHAR_BUDGET = 2_000;
|
|
11
|
+
function repeatedPhraseEnd(words, start, size) {
|
|
12
|
+
let end = start + size;
|
|
13
|
+
while (end + size <= words.length) {
|
|
14
|
+
for (let offset = 0; offset < size; offset += 1) {
|
|
15
|
+
if (words[start + offset] !== words[end + offset])
|
|
16
|
+
return end;
|
|
17
|
+
}
|
|
18
|
+
end += size;
|
|
19
|
+
}
|
|
20
|
+
return end;
|
|
21
|
+
}
|
|
22
|
+
function collapseRepeatedMaterial(text) {
|
|
23
|
+
const words = text.split(" ");
|
|
24
|
+
const output = [];
|
|
25
|
+
let index = 0;
|
|
26
|
+
while (index < words.length) {
|
|
27
|
+
let repeated = false;
|
|
28
|
+
const maxSize = Math.min(12, Math.floor((words.length - index) / 4));
|
|
29
|
+
for (let size = 1; size <= maxSize; size += 1) {
|
|
30
|
+
const end = repeatedPhraseEnd(words, index, size);
|
|
31
|
+
if (end - index < size * 4)
|
|
32
|
+
continue;
|
|
33
|
+
output.push(...words.slice(index, index + size), "[repeated material omitted]");
|
|
34
|
+
index = end;
|
|
35
|
+
repeated = true;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
if (!repeated)
|
|
39
|
+
output.push(words[index++]);
|
|
40
|
+
}
|
|
41
|
+
return output.join(" ");
|
|
42
|
+
}
|
|
43
|
+
function excerpt(text, budget) {
|
|
44
|
+
const value = collapseRepeatedMaterial(redactSecrets(redactUserCredentialsFromMemory(text)).replace(/\s+/g, " ").trim());
|
|
45
|
+
if (value.length <= budget)
|
|
46
|
+
return value;
|
|
47
|
+
if (budget < 40)
|
|
48
|
+
return `${value.slice(0, Math.max(0, budget - 1))}…`;
|
|
49
|
+
const head = Math.floor((budget - 5) * 0.65);
|
|
50
|
+
return `${value.slice(0, head)} […] ${value.slice(-(budget - head - 5))}`;
|
|
51
|
+
}
|
|
52
|
+
export function withoutWorkHistory(summary) {
|
|
53
|
+
const lines = [];
|
|
54
|
+
let inHistory = false;
|
|
55
|
+
for (const line of summary.split("\n")) {
|
|
56
|
+
if (/^##\s/.test(line))
|
|
57
|
+
inHistory = line.trim().toLowerCase() === WORK_HISTORY_HEADING.toLowerCase();
|
|
58
|
+
if (!inHistory)
|
|
59
|
+
lines.push(line);
|
|
60
|
+
}
|
|
61
|
+
return lines.join("\n").trim();
|
|
62
|
+
}
|
|
63
|
+
function inheritedHistory(message) {
|
|
64
|
+
if (message.role !== "system")
|
|
65
|
+
return undefined;
|
|
66
|
+
if (message.compaction?.workHistory)
|
|
67
|
+
return message.compaction.workHistory.map((entry) => ({
|
|
68
|
+
request: excerpt(entry.request, 480),
|
|
69
|
+
...(entry.outcome ? { outcome: excerpt(entry.outcome, 1_200) } : {}),
|
|
70
|
+
...(entry.evidence ? { evidence: excerpt(entry.evidence, 480) } : {}),
|
|
71
|
+
}));
|
|
72
|
+
const body = message.content.replace(/^(?:Session memory from compacted earlier turns:|Earlier turns in this session, summarized[^\n]*|PLAN MODE HANDOFF:[^\n]*|Session memory from PLAN MODE research[^\n]*)\s*/, "");
|
|
73
|
+
if (body === message.content)
|
|
74
|
+
return undefined;
|
|
75
|
+
return [{ request: "Earlier compacted session work", outcome: excerpt(withoutUserInstructionSections(withoutRecentUserPrompts(body)), 1_200) }];
|
|
76
|
+
}
|
|
77
|
+
export function collectWorkHistory(messages) {
|
|
78
|
+
let entries = [];
|
|
79
|
+
let start = 0;
|
|
80
|
+
for (let index = 0; index < messages.length; index += 1) {
|
|
81
|
+
const inherited = inheritedHistory(messages[index]);
|
|
82
|
+
if (inherited === undefined)
|
|
83
|
+
continue;
|
|
84
|
+
entries = inherited;
|
|
85
|
+
start = index + 1;
|
|
86
|
+
}
|
|
87
|
+
let current;
|
|
88
|
+
for (const message of messages.slice(start)) {
|
|
89
|
+
if (message.role === "user" && !isInternalChatMessage(message)) {
|
|
90
|
+
current = { message, request: excerpt(message.content, 480) };
|
|
91
|
+
entries.push(current);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (!current)
|
|
95
|
+
continue;
|
|
96
|
+
if (message.role === "assistant" && !message.toolCalls?.length && !parseCanonicalTextToolCalls(message.content).length) {
|
|
97
|
+
const visible = stripThinking(message.content).visible.trim();
|
|
98
|
+
if (visible)
|
|
99
|
+
current.outcome = excerpt(visible, 1_200);
|
|
100
|
+
}
|
|
101
|
+
if (message.role === "tool") {
|
|
102
|
+
const label = message.name ?? "tool result";
|
|
103
|
+
const status = message.ok === undefined ? "observed" : message.ok ? "ok" : "failed";
|
|
104
|
+
current.evidence = excerpt(`${current.evidence ? `${current.evidence}; ` : ""}${label} (${status}): ${message.content}`, 480);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return entries;
|
|
108
|
+
}
|
|
109
|
+
export function reconcileWorkHistory(entries, previous, current) {
|
|
110
|
+
const rules = [...previous, ...current];
|
|
111
|
+
const scrub = (text) => rules.reduce((value, rule) => {
|
|
112
|
+
const active = current.some((item) => item.id === rule.id && item.text === rule.text);
|
|
113
|
+
const marker = active ? `[instruction ${rule.id} recorded separately]` : `[historical instruction ${rule.id} retired or superseded]`;
|
|
114
|
+
return value.replaceAll(rule.text.replace(/\s+/g, " ").trim(), marker).replaceAll(`[instruction ${rule.id} recorded separately]`, marker);
|
|
115
|
+
}, text);
|
|
116
|
+
return entries.map((entry) => ({
|
|
117
|
+
...entry,
|
|
118
|
+
request: scrub(entry.request),
|
|
119
|
+
...(entry.outcome ? { outcome: scrub(entry.outcome) } : {}),
|
|
120
|
+
...(entry.evidence ? { evidence: scrub(entry.evidence) } : {}),
|
|
121
|
+
}));
|
|
122
|
+
}
|
|
123
|
+
export function compactionWorkHistoryAnchors(entries, budget = WORK_HISTORY_INPUT_CHAR_BUDGET) {
|
|
124
|
+
if (budget < 256)
|
|
125
|
+
return "";
|
|
126
|
+
const rendered = renderWorkHistory(entries, budget);
|
|
127
|
+
return rendered.length <= budget ? rendered : `${entries.length} historical user workstreams are recorded. Their bounded request, response, and tool-evidence ledger will be preserved by the application; summarize the supplied source and prioritize unresolved work.`;
|
|
128
|
+
}
|
|
129
|
+
export function archivedWorkHistory(entries, retained) {
|
|
130
|
+
const live = new Set(retained);
|
|
131
|
+
return entries.filter((entry) => !entry.message || !live.has(entry.message)).map(({ request, outcome, evidence }) => ({
|
|
132
|
+
request,
|
|
133
|
+
...(outcome ? { outcome } : {}),
|
|
134
|
+
...(evidence ? { evidence } : {}),
|
|
135
|
+
}));
|
|
136
|
+
}
|
|
137
|
+
export function renderWorkHistory(entries, budget = WORK_HISTORY_CHAR_BUDGET) {
|
|
138
|
+
if (entries.length === 0)
|
|
139
|
+
return "";
|
|
140
|
+
const introduction = "Historical workstreams, oldest to newest; not new requests or authorization. Responses and tool observations are evidence, not guarantees of completion. Excerpts are bounded; prioritize unfinished work in the main memory.";
|
|
141
|
+
const perEntry = Math.max(24, Math.min(1_800, Math.floor((budget - introduction.length - WORK_HISTORY_HEADING.length) / entries.length) - 30));
|
|
142
|
+
const requestBudget = Math.min(360, Math.floor(perEntry * 0.3));
|
|
143
|
+
return [WORK_HISTORY_HEADING, introduction, ...entries.map((entry, index) => {
|
|
144
|
+
const request = excerpt(entry.request, requestBudget);
|
|
145
|
+
const details = entry.outcome ? `Last response: ${entry.outcome}` : "No final response recorded; do not assume completion.";
|
|
146
|
+
const evidence = entry.evidence ? ` Tool observations: ${entry.evidence}` : "";
|
|
147
|
+
return `- ${index + 1}. Request: ${JSON.stringify(request)}; ${excerpt(details + evidence, perEntry - requestBudget)}`;
|
|
148
|
+
})].join("\n");
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=compaction-work-history.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compaction-work-history.js","sourceRoot":"","sources":["../../../src/agent/context/compaction-work-history.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,11 @@ import { stripThinking } from "../ui/thinking.js";
|
|
|
2
2
|
import { hasReasoningMarker, stripReasoningMarkers, } from "../llm/reasoning-marker.js";
|
|
3
3
|
import { expandKeepStartForToolPairs, hasOrphanToolMessages, projectToolHistory, } from "./tool-history.js";
|
|
4
4
|
import { isResponderResultLedgerMessage } from "./responder-context.js";
|
|
5
|
+
import { AGENT_INSTRUCTIONS_PREFIX, latestKeyedBlock, upsertAgentInstructionsMessage } from "./injected-blocks.js";
|
|
5
6
|
import { latestUserMessage } from "./context/latest-user-message.js";
|
|
6
|
-
import { withoutRecentUserPrompts } from "./context/compaction-recent-history.js";
|
|
7
|
+
import { recentUserPrompts, withoutRecentUserPrompts } from "./context/compaction-recent-history.js";
|
|
8
|
+
import { archivedWorkHistory, collectWorkHistory, reconcileWorkHistory, renderWorkHistory, withoutWorkHistory } from "./context/compaction-work-history.js";
|
|
9
|
+
import { carriedUserInstructions, renderUserInstructions } from "./context/compaction-user-instructions.js";
|
|
7
10
|
import { estimateImageTokens, estimateMessagesTokens, estimateTextTokens as estimateTokens, } from "./request-accounting.js";
|
|
8
11
|
import { DEFAULT_KEEP_RECENT, MECHANICAL_MEMORY_PREFIX, isCompactionMemoryMessage } from "./context/compact-with-summary.js";
|
|
9
12
|
export { COMPACTION_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, POST_COMPACT_SOFT_UPPER_BAND_TOKENS, compactMessagesWithSummary, compactionMemoryPrefixForPurpose } from "./context/compact-with-summary.js";
|
|
@@ -65,10 +68,20 @@ export function compactMessages(messages, options = {}) {
|
|
|
65
68
|
bullets.push(`- tool result: ${oneLine(msg.content, 200)}`);
|
|
66
69
|
}
|
|
67
70
|
}
|
|
71
|
+
const userInstructions = carriedUserInstructions(messages);
|
|
72
|
+
const latestUser = latestUserMessage(messages);
|
|
73
|
+
const workHistory = reconcileWorkHistory(collectWorkHistory(messages), userInstructions, userInstructions);
|
|
68
74
|
const memo = {
|
|
69
75
|
role: "system",
|
|
70
76
|
content: `${MECHANICAL_MEMORY_PREFIX} to fit the context budget. Full artifacts (when produced) are saved on disk and can be expanded with /output.\n\n` +
|
|
71
|
-
bullets.join("\n"),
|
|
77
|
+
[renderUserInstructions(userInstructions), bullets.join("\n"), renderWorkHistory(workHistory)].filter(Boolean).join("\n\n"),
|
|
78
|
+
compaction: {
|
|
79
|
+
recentUserPrompts: recentUserPrompts(messages)
|
|
80
|
+
.filter((prompt) => !prompt.message || (!tail.includes(prompt.message) && prompt.message !== latestUser))
|
|
81
|
+
.map(({ content, truncated }) => ({ content, ...(truncated ? { truncated } : {}) })),
|
|
82
|
+
userInstructions,
|
|
83
|
+
workHistory: archivedWorkHistory(workHistory, latestUser ? [...tail, latestUser] : tail),
|
|
84
|
+
},
|
|
72
85
|
};
|
|
73
86
|
let ledger;
|
|
74
87
|
for (let index = messages.length - 1; index >= 0; index -= 1) {
|
|
@@ -78,9 +91,10 @@ export function compactMessages(messages, options = {}) {
|
|
|
78
91
|
}
|
|
79
92
|
}
|
|
80
93
|
const preservedLedger = ledger && !head.includes(ledger) && !tail.includes(ledger) ? [ledger] : [];
|
|
81
|
-
const latestUser = latestUserMessage(messages);
|
|
82
94
|
const preservedUser = latestUser && !tail.includes(latestUser) ? [latestUser] : [];
|
|
83
|
-
|
|
95
|
+
const compacted = [...head, memo, ...preservedUser, ...preservedLedger, ...tail];
|
|
96
|
+
upsertAgentInstructionsMessage(compacted, latestKeyedBlock(messages, AGENT_INSTRUCTIONS_PREFIX));
|
|
97
|
+
return compacted;
|
|
84
98
|
}
|
|
85
99
|
export function shouldApplyAutoCompact(input) {
|
|
86
100
|
if (!input.summarized)
|
|
@@ -89,7 +103,7 @@ export function shouldApplyAutoCompact(input) {
|
|
|
89
103
|
return false;
|
|
90
104
|
if (hasOrphanToolMessages([...input.afterMessages]))
|
|
91
105
|
return false;
|
|
92
|
-
const body = withoutRecentUserPrompts(input.summaryBody);
|
|
106
|
+
const body = withoutWorkHistory(withoutRecentUserPrompts(input.summaryBody));
|
|
93
107
|
if (!body)
|
|
94
108
|
return false;
|
|
95
109
|
if (input.beforeTokens >= AUTO_COMPACT_STUB_BEFORE_TOKENS &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EACL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"context-manager.js","sourceRoot":"","sources":["../../src/agent/context-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { hasOrphanToolMessages } from "./tool-history.js";
|
|
2
2
|
import { withoutRecentUserPrompts } from "./context/compaction-recent-history.js";
|
|
3
|
+
import { withoutWorkHistory } from "./context/compaction-work-history.js";
|
|
3
4
|
import { COMPACTION_MEMORY_PREFIX, PLAN_IMPLEMENT_MEMORY_PREFIX, } from "./context-manager.js";
|
|
4
5
|
export const CATASTROPHIC_SUMMARY_MIN_CHARS = 120;
|
|
5
6
|
const MEMORY_PREFIXES = [
|
|
@@ -21,7 +22,7 @@ export function acceptPlanImplementCompaction(input) {
|
|
|
21
22
|
if (!input.summarized) {
|
|
22
23
|
return { accept: false, reason: "compaction did not produce a summary" };
|
|
23
24
|
}
|
|
24
|
-
const body = withoutRecentUserPrompts(summaryBodyText(input.summaryBody));
|
|
25
|
+
const body = withoutWorkHistory(withoutRecentUserPrompts(summaryBodyText(input.summaryBody)));
|
|
25
26
|
if (!body) {
|
|
26
27
|
return { accept: false, reason: "empty compaction summary" };
|
|
27
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plan-implement-compact.js","sourceRoot":"","sources":["../../src/agent/plan-implement-compact.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAClF,OAAO,EACL,wBAAwB,EACxB,4BAA4B,GAC7B,MAAM,sBAAsB,CAAC;AAE9B,MAAM,CAAC,MAAM,8BAA8B,GAAG,GAAG,CAAC;AAElD,MAAM,eAAe,GAAG;IACtB,4BAA4B;IAC5B,wBAAwB;CAChB,CAAC;AACX,MAAM,CAAC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAc7C,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IACrB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,6BAA6B,CAC3C,KAAyC;IAEzC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,sCAAsC,EAAE,CAAC;IAC3E,CAAC;IAED,MAAM,IAAI,GAAG,wBAAwB,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"plan-implement-compact.js","sourceRoot":"","sources":["../../src/agent/plan-implement-compact.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isAbsolute, resolve } from "node:path";
|
|
2
2
|
import { TOOL_DEFINITIONS } from "../../tools/definitions.js";
|
|
3
|
-
import { FS_READ_OPTION_KEYS } from "../../tools/fs/read-input.js";
|
|
3
|
+
import { FS_READ_OPTION_KEYS, MAX_FS_READ_FILES } from "../../tools/fs/read-input.js";
|
|
4
4
|
import { boundFsReadOutput, isFsReadMultiOutput } from "../../tools/fs/read-sections.js";
|
|
5
5
|
export const TOOL_OUTPUT_LIMIT = 12_000;
|
|
6
6
|
const fields = {
|
|
@@ -16,7 +16,7 @@ const fields = {
|
|
|
16
16
|
"shell.exec": ["command", "cwd", "timeoutMs"],
|
|
17
17
|
};
|
|
18
18
|
const descriptions = {
|
|
19
|
-
"fs.read":
|
|
19
|
+
"fs.read": `Read one text file/directory: {"path":"src/app.ts","offset":1,"limit":80}. Optional 1–${MAX_FS_READ_FILES} necessary known files: {"files":[{"path":"src/app.ts","limit":80},{"path":"src/config.ts","pattern":"export","context":2}]}. Use exactly one of path or files; filters belong directly inside each file entry in files mode. Lines are 1-indexed; pattern is a non-empty JS regex. Follow each file’s status and hasMore/clipping; retry only needed failed/unfinished reads. Use a single path when sufficient.`,
|
|
20
20
|
"web.search": "Search the web for current information.",
|
|
21
21
|
"web.fetch": "Fetch a public URL as readable text.",
|
|
22
22
|
"http.fetch": "GET-only HTTP evidence for public targets.",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-only-tools.js","sourceRoot":"","sources":["../../../src/agent/subagents/read-only-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"read-only-tools.js","sourceRoot":"","sources":["../../../src/agent/subagents/read-only-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { createThinkingStreamParser } from "../../../ui/thinking.js";
|
|
|
2
2
|
import { parseAllToolCalls } from "../../tool-call-parser.js";
|
|
3
3
|
import { canonicalizeTurnCall } from "./canonicalize-turn-call.js";
|
|
4
4
|
import { fromWireName } from "../../../llm/tool-protocol.js";
|
|
5
|
-
import { isProviderFailureStatus } from "../../../llm/key-rotation.js";
|
|
5
|
+
import { isProviderFailureStatus, providerWaitLabel } from "../../../llm/key-rotation.js";
|
|
6
6
|
const HEARTBEAT_MS = 10_000;
|
|
7
7
|
const LARGE_ARGS_BYTES = 4096;
|
|
8
8
|
const streamPhase = (state) => {
|
|
@@ -43,6 +43,7 @@ const applyThinkingTransitions = (ports, state, token) => {
|
|
|
43
43
|
}
|
|
44
44
|
};
|
|
45
45
|
const applyReasoningDelta = (ports, state, text) => {
|
|
46
|
+
state.waitingForProvider = false;
|
|
46
47
|
state.streamedReasoningText += text;
|
|
47
48
|
state.typedReasoningOpen = true;
|
|
48
49
|
state.sawReasoning = true;
|
|
@@ -57,8 +58,31 @@ const applyReasoningDelta = (ports, state, text) => {
|
|
|
57
58
|
const toolCallDeltaStatus = (name, argumentsBytes) => argumentsBytes && argumentsBytes >= LARGE_ARGS_BYTES
|
|
58
59
|
? `${name} (${Math.round(argumentsBytes / 1024)}KB args)`
|
|
59
60
|
: name;
|
|
61
|
+
const routeProviderStatus = (ports, state, status) => {
|
|
62
|
+
const full = status.replace(/\s+/g, " ").trim();
|
|
63
|
+
if (!full)
|
|
64
|
+
return;
|
|
65
|
+
const waiting = providerWaitLabel(full);
|
|
66
|
+
if (waiting) {
|
|
67
|
+
state.waitingForProvider = true;
|
|
68
|
+
state.emittedThinkingStatus = false;
|
|
69
|
+
ports.writeStatus(waiting);
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const warning = !full.startsWith("ℹ") &&
|
|
73
|
+
(isProviderFailureStatus(full) || /\b(?:error|failed|exception)\b/i.test(full));
|
|
74
|
+
ports.notify(warning ? "warn" : "info", full);
|
|
75
|
+
};
|
|
76
|
+
const createSessionDeltaParser = (ports, state) => createThinkingStreamParser(ports.emitAssistantDelta, (text) => {
|
|
77
|
+
if (!state.emittedThinkingStatus) {
|
|
78
|
+
state.emittedThinkingStatus = true;
|
|
79
|
+
ports.emitStatus("thinking");
|
|
80
|
+
}
|
|
81
|
+
ports.emitThinkingDelta(text);
|
|
82
|
+
});
|
|
60
83
|
export const createStreamSession = (ports) => {
|
|
61
84
|
const state = {
|
|
85
|
+
waitingForProvider: false,
|
|
62
86
|
sawReasoning: false,
|
|
63
87
|
inThinking: false,
|
|
64
88
|
emittedThinkingStatus: false,
|
|
@@ -71,15 +95,10 @@ export const createStreamSession = (ports) => {
|
|
|
71
95
|
const deferredToolCalls = [];
|
|
72
96
|
const streamedNativeCallNames = new Map();
|
|
73
97
|
const callIds = [];
|
|
74
|
-
const deltaParser =
|
|
75
|
-
if (!state.emittedThinkingStatus) {
|
|
76
|
-
state.emittedThinkingStatus = true;
|
|
77
|
-
ports.emitStatus("thinking");
|
|
78
|
-
}
|
|
79
|
-
ports.emitThinkingDelta(text);
|
|
80
|
-
});
|
|
98
|
+
const deltaParser = createSessionDeltaParser(ports, state);
|
|
81
99
|
const heartbeat = setInterval(() => {
|
|
82
|
-
|
|
100
|
+
if (!state.waitingForProvider)
|
|
101
|
+
ports.emitStatus(streamPhase(state));
|
|
83
102
|
}, HEARTBEAT_MS);
|
|
84
103
|
heartbeat.unref?.();
|
|
85
104
|
return {
|
|
@@ -90,6 +109,9 @@ export const createStreamSession = (ports) => {
|
|
|
90
109
|
streamedNativeCallNames,
|
|
91
110
|
callIds,
|
|
92
111
|
onToken: (token) => {
|
|
112
|
+
if (!token)
|
|
113
|
+
return;
|
|
114
|
+
state.waitingForProvider = false;
|
|
93
115
|
deltaParser.push(token);
|
|
94
116
|
state.generatedTokens += 1;
|
|
95
117
|
state.accumulatedText += token;
|
|
@@ -98,24 +120,7 @@ export const createStreamSession = (ports) => {
|
|
|
98
120
|
}
|
|
99
121
|
applyThinkingTransitions(ports, state, token);
|
|
100
122
|
},
|
|
101
|
-
onStatus: (status) =>
|
|
102
|
-
const full = status.replace(/\s+/g, " ").trim();
|
|
103
|
-
if (!full)
|
|
104
|
-
return;
|
|
105
|
-
if (full.startsWith("ℹ")) {
|
|
106
|
-
ports.notify("info", full);
|
|
107
|
-
return;
|
|
108
|
-
}
|
|
109
|
-
if (isProviderFailureStatus(full)) {
|
|
110
|
-
ports.notify("warn", full);
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
if (full.length > 80 && /error|failed|exception/i.test(full)) {
|
|
114
|
-
ports.notify("warn", full);
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
ports.writeStatus(status);
|
|
118
|
-
},
|
|
123
|
+
onStatus: (status) => routeProviderStatus(ports, state, status),
|
|
119
124
|
onStreamEvent: (event) => {
|
|
120
125
|
if (event.type !== "reasoning_delta")
|
|
121
126
|
return;
|
|
@@ -124,6 +129,7 @@ export const createStreamSession = (ports) => {
|
|
|
124
129
|
onToolCallDelta: (delta) => {
|
|
125
130
|
if (!delta.name)
|
|
126
131
|
return;
|
|
132
|
+
state.waitingForProvider = false;
|
|
127
133
|
const name = fromWireName(delta.name) ?? delta.name;
|
|
128
134
|
streamedNativeCallNames.set(delta.index, name);
|
|
129
135
|
ports.emitStatus(toolCallDeltaStatus(name, delta.argumentsBytes));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stream-session.js","sourceRoot":"","sources":["../../../../src/agent/turn/loop/stream-session.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAA8B,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"stream-session.js","sourceRoot":"","sources":["../../../../src/agent/turn/loop/stream-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ const runPrompts = async (input, ports) => {
|
|
|
44
44
|
if ((input.level !== "confirm" && !forceConfirm) || (needsPentestAuth && !forceConfirm)) {
|
|
45
45
|
return { kind: "proceed", pentestJustConfirmed: needsPentestAuth };
|
|
46
46
|
}
|
|
47
|
-
const confirmed = await confirmToolExecution(input.call, forceConfirm ? false : ports.autoConfirm, ports.session, ports.confirmPort,
|
|
47
|
+
const confirmed = await confirmToolExecution(input.call, forceConfirm ? false : ports.autoConfirm, ports.session, ports.confirmPort, { forceConfirm, reason: input.reason });
|
|
48
48
|
restoreInteractiveStdin();
|
|
49
49
|
if (!confirmed)
|
|
50
50
|
return refused(input, ports, "Cancelled.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../../src/agent/turn/tool-execution/authorization.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"authorization.js","sourceRoot":"","sources":["../../../../src/agent/turn/tool-execution/authorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,10 +16,10 @@ export function createCurrentPersistencePort() {
|
|
|
16
16
|
}
|
|
17
17
|
: undefined;
|
|
18
18
|
if (options?.sessionId) {
|
|
19
|
-
await upsertSession(options.sessionId, list, options.name, transcript, contextUsage, options.revision, options.writerGeneration, options.previousTurn, sessionModel, options.location);
|
|
19
|
+
await upsertSession(options.sessionId, list, options.name, transcript, contextUsage, options.revision, options.writerGeneration, options.previousTurn, sessionModel, options.location, options.changes);
|
|
20
20
|
return;
|
|
21
21
|
}
|
|
22
|
-
await saveSession(list, options?.name, transcript, contextUsage, options?.revision, options?.writerGeneration, options?.previousTurn, sessionModel, options?.location);
|
|
22
|
+
await saveSession(list, options?.name, transcript, contextUsage, options?.revision, options?.writerGeneration, options?.previousTurn, sessionModel, options?.location, options?.changes);
|
|
23
23
|
},
|
|
24
24
|
loadPlan: (sessionId) => loadPlan(sessionId),
|
|
25
25
|
savePlan: (plan) => savePlan(plan),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"current-store-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-store-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIjF,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO;YACjC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU;gBACpC,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAsB;gBAC/C,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;YAC3C,MAAM,YAAY,GAChB,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,QAAQ;gBACtD,CAAC,CAAC;oBACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE;gBACH,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,MAAM,aAAa,CACjB,OAAO,CAAC,SAAS,EACjB,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,YAAY,EACpB,YAAY,EACZ,OAAO,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"current-store-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-store-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAIjF,MAAM,UAAU,4BAA4B;IAC1C,OAAO;QACL,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO;YACjC,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU;gBACpC,CAAC,CAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAsB;gBAC/C,CAAC,CAAC,SAAS,CAAC;YACd,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,CAAC;YAC3C,MAAM,YAAY,GAChB,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,KAAK,IAAI,OAAO,EAAE,QAAQ;gBACtD,CAAC,CAAC;oBACE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC3D,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBAClD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACnE;gBACH,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,MAAM,aAAa,CACjB,OAAO,CAAC,SAAS,EACjB,IAAI,EACJ,OAAO,CAAC,IAAI,EACZ,UAAU,EACV,YAAY,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,gBAAgB,EACxB,OAAO,CAAC,YAAY,EACpB,YAAY,EACZ,OAAO,CAAC,QAAQ,EAChB,OAAO,CAAC,OAAO,CAChB,CAAC;gBACF,OAAO;YACT,CAAC;YACD,MAAM,WAAW,CACf,IAAI,EACJ,OAAO,EAAE,IAAI,EACb,UAAU,EACV,YAAY,EACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,YAAY,EACrB,YAAY,EACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,OAAO,CACjB,CAAC;QACJ,CAAC;QACD,QAAQ,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC5C,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;QAClC,UAAU,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC;QAClE,UAAU,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;KACjD,CAAC;AACJ,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import type { UpdatesPort } from "../ports/updates-port.js";
|
|
2
|
-
export declare function createCurrentUpdatesPort(fetchLatest?: () => Promise<string | undefined>, disabledReason?: () => string | undefined): UpdatesPort;
|
|
2
|
+
export declare function createCurrentUpdatesPort(fetchLatest?: (signal?: AbortSignal) => Promise<string | undefined>, disabledReason?: () => string | undefined): UpdatesPort;
|
|
@@ -1,17 +1,8 @@
|
|
|
1
1
|
import { fetchLatestVersion, getCurrentVersion, updateCheckDisabledReason, } from "../../commands/update.js";
|
|
2
|
-
|
|
3
|
-
const pa = a.replace(/^v/, "").split(".").map((n) => Number(n) || 0);
|
|
4
|
-
const pb = b.replace(/^v/, "").split(".").map((n) => Number(n) || 0);
|
|
5
|
-
for (let i = 0; i < Math.max(pa.length, pb.length); i += 1) {
|
|
6
|
-
const diff = (pa[i] ?? 0) - (pb[i] ?? 0);
|
|
7
|
-
if (diff !== 0)
|
|
8
|
-
return diff < 0 ? -1 : 1;
|
|
9
|
-
}
|
|
10
|
-
return 0;
|
|
11
|
-
}
|
|
2
|
+
import { compareVersions, releaseVersion } from "../../commands/update/verification.js";
|
|
12
3
|
export function createCurrentUpdatesPort(fetchLatest = fetchLatestVersion, disabledReason = updateCheckDisabledReason) {
|
|
13
4
|
return {
|
|
14
|
-
async check() {
|
|
5
|
+
async check(signal) {
|
|
15
6
|
const currentVersion = getCurrentVersion();
|
|
16
7
|
const blocked = disabledReason();
|
|
17
8
|
if (blocked) {
|
|
@@ -24,7 +15,7 @@ export function createCurrentUpdatesPort(fetchLatest = fetchLatestVersion, disab
|
|
|
24
15
|
}
|
|
25
16
|
let latestVersion;
|
|
26
17
|
try {
|
|
27
|
-
latestVersion = await fetchLatest();
|
|
18
|
+
latestVersion = releaseVersion(await fetchLatest(signal));
|
|
28
19
|
}
|
|
29
20
|
catch (error) {
|
|
30
21
|
return {
|
|
@@ -42,7 +33,7 @@ export function createCurrentUpdatesPort(fetchLatest = fetchLatestVersion, disab
|
|
|
42
33
|
detail: "the release feed did not return a version",
|
|
43
34
|
};
|
|
44
35
|
}
|
|
45
|
-
const updateAvailable =
|
|
36
|
+
const updateAvailable = compareVersions(currentVersion, latestVersion) < 0;
|
|
46
37
|
return {
|
|
47
38
|
state: updateAvailable ? "update-available" : "current",
|
|
48
39
|
currentVersion,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"current-updates-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-updates-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAGlC,
|
|
1
|
+
{"version":3,"file":"current-updates-adapter.js","sourceRoot":"","sources":["../../../src/app/adapters/current-updates-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAExF,MAAM,UAAU,wBAAwB,CACtC,cAAqE,kBAAkB,EACvF,iBAA2C,yBAAyB;IAEpE,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,MAAoB;YAC9B,MAAM,cAAc,GAAG,iBAAiB,EAAE,CAAC;YAC3C,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;YACjC,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO;oBACL,KAAK,EAAE,SAAS;oBAChB,cAAc;oBACd,eAAe,EAAE,KAAK;oBACtB,MAAM,EAAE,OAAO;iBAChB,CAAC;YACJ,CAAC;YACD,IAAI,aAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,aAAa,GAAG,cAAc,CAAC,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;YAC5D,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,KAAK,EAAE,OAAO;oBACd,cAAc;oBACd,eAAe,EAAE,KAAK;oBACtB,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC/D,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,OAAO;oBACL,KAAK,EAAE,SAAS;oBAChB,cAAc;oBACd,eAAe,EAAE,KAAK;oBACtB,MAAM,EAAE,2CAA2C;iBACpD,CAAC;YACJ,CAAC;YACD,MAAM,eAAe,GAAG,eAAe,CAAC,cAAc,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;YAC3E,OAAO;gBACL,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;gBACvD,cAAc;gBACd,aAAa;gBACb,eAAe;aAChB,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -86,6 +86,7 @@ export const slashCommands = [
|
|
|
86
86
|
},
|
|
87
87
|
{ command: "/save", usage: "<name>", description: "save session" },
|
|
88
88
|
{ command: "/prompts", description: "browse this session's user prompts with timestamps, models, providers, and effort" },
|
|
89
|
+
{ command: "/changes", description: "show this session's total line additions and removals, grouped by file" },
|
|
89
90
|
{ command: "/reset", description: "clear all saved history" },
|
|
90
91
|
{ command: "/cwd", usage: "<path>", description: "change working directory" },
|
|
91
92
|
{
|