@ashx-j/lunr 0.2.26 → 0.2.28
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 +25 -1
- package/LICENSE +22 -0
- package/dist/builtin-extensions/ashxj-thinking.d.ts +1 -1
- package/dist/builtin-extensions/ashxj-thinking.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-thinking.js +1 -1
- package/dist/builtin-extensions/ashxj-thinking.js.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.d.ts +11 -1
- package/dist/builtin-extensions/ashxj-tui.d.ts.map +1 -1
- package/dist/builtin-extensions/ashxj-tui.js +6 -10
- package/dist/builtin-extensions/ashxj-tui.js.map +1 -1
- package/dist/builtin-extensions/lunr-cron.d.ts +4 -5
- package/dist/builtin-extensions/lunr-cron.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-cron.js +94 -108
- package/dist/builtin-extensions/lunr-cron.js.map +1 -1
- package/dist/builtin-extensions/lunr-local-providers/local-servers.d.ts.map +1 -1
- package/dist/builtin-extensions/lunr-local-providers/local-servers.js +3 -1
- package/dist/builtin-extensions/lunr-local-providers/local-servers.js.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.d.ts.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js +5 -2
- package/dist/builtin-extensions/narumiruna-pi-goal/src/accounting.js.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.d.ts.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js +2 -2
- package/dist/builtin-extensions/narumiruna-pi-goal/src/commands.js.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.d.ts.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/goal.js.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.d.ts.map +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js +1 -1
- package/dist/builtin-extensions/narumiruna-pi-goal/src/runtime.js.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-intercom/index.js +2 -2
- package/dist/builtin-extensions/pi-intercom/index.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/bemol-extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js +1 -15
- package/dist/builtin-extensions/pi-lsp-extension/src/index.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts +6 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js +187 -132
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-client.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts +8 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js +142 -112
- package/dist/builtin-extensions/pi-lsp-extension/src/lsp-manager.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts +12 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js +14 -7
- package/dist/builtin-extensions/pi-lsp-extension/src/tools/code-rewrite.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts +11 -3
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js +67 -41
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/rewrite-engine.js.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts +4 -2
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js +3 -0
- package/dist/builtin-extensions/pi-lsp-extension/src/tree-sitter/search-engine.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts +2 -1
- package/dist/builtin-extensions/pi-mcp-adapter/commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/commands.js +6 -6
- package/dist/builtin-extensions/pi-mcp-adapter/commands.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/config.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/config.js +11 -5
- package/dist/builtin-extensions/pi-mcp-adapter/config.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js +2 -2
- package/dist/builtin-extensions/pi-mcp-adapter/direct-tool-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/host-html-template.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/index.js +48 -40
- package/dist/builtin-extensions/pi-mcp-adapter/index.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/init.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/init.js +3 -1
- package/dist/builtin-extensions/pi-mcp-adapter/init.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts +12 -40
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js +166 -235
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-auth-flow.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts +5 -0
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js +43 -13
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-callback-server.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts +14 -3
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js +73 -21
- package/dist/builtin-extensions/pi-mcp-adapter/mcp-oauth-provider.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js +4 -4
- package/dist/builtin-extensions/pi-mcp-adapter/proxy-modes.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js +2 -2
- package/dist/builtin-extensions/pi-mcp-adapter/server-manager.js.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts +2 -0
- package/dist/builtin-extensions/pi-mcp-adapter/state.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-mcp-adapter/state.js.map +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/index.js +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/index.js.map +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts +11 -5
- package/dist/builtin-extensions/pi-ollama-cloud/models.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-ollama-cloud/models.js +12 -32
- package/dist/builtin-extensions/pi-ollama-cloud/models.js.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/index.js +5 -3
- package/dist/builtin-extensions/pi-prompt-template-model/index.js.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts +2 -1
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js +21 -12
- package/dist/builtin-extensions/pi-prompt-template-model/prompt-loader.js.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js +7 -24
- package/dist/builtin-extensions/pi-prompt-template-model/tool-manager.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js +39 -77
- package/dist/builtin-extensions/pi-subagents/src/extension/index.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts +4 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js +2 -0
- package/dist/builtin-extensions/pi-subagents/src/runs/background/chain-root-attachment.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts +6 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js +17 -31
- package/dist/builtin-extensions/pi-subagents/src/runs/background/notify.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js +7 -2
- package/dist/builtin-extensions/pi-subagents/src/runs/background/result-watcher.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts +5 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js +78 -42
- package/dist/builtin-extensions/pi-subagents/src/runs/background/subagent-runner.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js +8 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/chain-execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts +0 -3
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js +134 -28
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/execution.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js +26 -5
- package/dist/builtin-extensions/pi-subagents/src/runs/foreground/subagent-executor.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/model-fallback.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts +7 -8
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js +60 -32
- package/dist/builtin-extensions/pi-subagents/src/runs/shared/parallel-utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts +7 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js +70 -38
- package/dist/builtin-extensions/pi-subagents/src/shared/session-tokens.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts +9 -0
- package/dist/builtin-extensions/pi-subagents/src/shared/types.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/types.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.js +15 -5
- package/dist/builtin-extensions/pi-subagents/src/shared/utils.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js +4 -3
- package/dist/builtin-extensions/pi-subagents/src/slash/prompt-workflows.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js +13 -62
- package/dist/builtin-extensions/pi-subagents/src/slash/slash-commands.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js +18 -9
- package/dist/builtin-extensions/pi-subagents/src/tui/render.js.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js +3 -3
- package/dist/builtin-extensions/pi-subagents/src/watchdog/review.js.map +1 -1
- package/dist/builtin-extensions/pi-tps.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-tps.js +28 -17
- package/dist/builtin-extensions/pi-tps.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/activity.d.ts +1 -0
- package/dist/builtin-extensions/pi-web-access/activity.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/activity.js +27 -5
- package/dist/builtin-extensions/pi-web-access/activity.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts +3 -0
- package/dist/builtin-extensions/pi-web-access/bounded-body.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/bounded-body.js +43 -0
- package/dist/builtin-extensions/pi-web-access/bounded-body.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/content-page.d.ts +24 -0
- package/dist/builtin-extensions/pi-web-access/content-page.d.ts.map +1 -0
- package/dist/builtin-extensions/pi-web-access/content-page.js +57 -0
- package/dist/builtin-extensions/pi-web-access/content-page.js.map +1 -0
- package/dist/builtin-extensions/pi-web-access/extract.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/extract.js +7 -2
- package/dist/builtin-extensions/pi-web-access/extract.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/github-extract.d.ts +0 -1
- package/dist/builtin-extensions/pi-web-access/github-extract.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/github-extract.js +147 -36
- package/dist/builtin-extensions/pi-web-access/github-extract.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/index.js +48 -73
- package/dist/builtin-extensions/pi-web-access/index.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts +12 -4
- package/dist/builtin-extensions/pi-web-access/session-cleanup.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/session-cleanup.js +35 -12
- package/dist/builtin-extensions/pi-web-access/session-cleanup.js.map +1 -1
- package/dist/builtin-extensions/pi-web-access/storage.d.ts +9 -6
- package/dist/builtin-extensions/pi-web-access/storage.d.ts.map +1 -1
- package/dist/builtin-extensions/pi-web-access/storage.js +36 -24
- package/dist/builtin-extensions/pi-web-access/storage.js.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.d.ts +1 -1
- package/dist/builtin-extensions/simple-pi-memory.d.ts.map +1 -1
- package/dist/builtin-extensions/simple-pi-memory.js +1 -1
- package/dist/builtin-extensions/simple-pi-memory.js.map +1 -1
- package/dist/catalog/models.json +1 -1
- package/dist/catalog/providers/google-vertex.json +1 -1
- package/dist/catalog/providers/google.json +1 -1
- package/dist/catalog/publication.json +3 -3
- package/dist/cli/install-cli.d.ts.map +1 -1
- package/dist/cli/install-cli.js +38 -30
- package/dist/cli/install-cli.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +13 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +75 -11
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +46 -21
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +344 -126
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/browser/runtime.d.ts +2 -0
- package/dist/core/browser/runtime.d.ts.map +1 -1
- package/dist/core/browser/runtime.js +80 -45
- package/dist/core/browser/runtime.js.map +1 -1
- package/dist/core/browser/setup.d.ts.map +1 -1
- package/dist/core/browser/setup.js +12 -1
- package/dist/core/browser/setup.js.map +1 -1
- package/dist/core/cache-stats.d.ts +1 -1
- package/dist/core/cache-stats.d.ts.map +1 -1
- package/dist/core/cache-stats.js +1 -1
- package/dist/core/cache-stats.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +5 -11
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +38 -92
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/computer-use/adapter.d.ts.map +1 -1
- package/dist/core/computer-use/adapter.js +7 -2
- package/dist/core/computer-use/adapter.js.map +1 -1
- package/dist/core/computer-use/image.d.ts.map +1 -1
- package/dist/core/computer-use/image.js +17 -5
- package/dist/core/computer-use/image.js.map +1 -1
- package/dist/core/computer-use/schemas.d.ts.map +1 -1
- package/dist/core/computer-use/schemas.js +23 -6
- package/dist/core/computer-use/schemas.js.map +1 -1
- package/dist/core/computer-use/workflow.d.ts.map +1 -1
- package/dist/core/computer-use/workflow.js +459 -119
- package/dist/core/computer-use/workflow.js.map +1 -1
- package/dist/core/context-breakdown.d.ts +2 -2
- package/dist/core/context-breakdown.d.ts.map +1 -1
- package/dist/core/context-breakdown.js +22 -20
- package/dist/core/context-breakdown.js.map +1 -1
- package/dist/core/cron/jobs.d.ts +26 -8
- package/dist/core/cron/jobs.d.ts.map +1 -1
- package/dist/core/cron/jobs.js +357 -232
- package/dist/core/cron/jobs.js.map +1 -1
- package/dist/core/cron/origin-context.d.ts +1 -0
- package/dist/core/cron/origin-context.d.ts.map +1 -1
- package/dist/core/cron/origin-context.js.map +1 -1
- package/dist/core/cron/scheduler.d.ts +22 -17
- package/dist/core/cron/scheduler.d.ts.map +1 -1
- package/dist/core/cron/scheduler.js +153 -73
- package/dist/core/cron/scheduler.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +1 -0
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +8 -0
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +11 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +4 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +22 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/large-subagent-launch.d.ts +1 -1
- package/dist/core/large-subagent-launch.d.ts.map +1 -1
- package/dist/core/large-subagent-launch.js +7 -7
- package/dist/core/large-subagent-launch.js.map +1 -1
- package/dist/core/model-registry.d.ts +2 -0
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +5 -0
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-runtime.d.ts +4 -1
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +40 -4
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/permissions.d.ts +3 -3
- package/dist/core/permissions.d.ts.map +1 -1
- package/dist/core/permissions.js +11 -35
- package/dist/core/permissions.js.map +1 -1
- package/dist/core/plan-mode.d.ts +5 -13
- package/dist/core/plan-mode.d.ts.map +1 -1
- package/dist/core/plan-mode.js +126 -116
- package/dist/core/plan-mode.js.map +1 -1
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/prompt-resource-bridge.d.ts +12 -0
- package/dist/core/prompt-resource-bridge.d.ts.map +1 -0
- package/dist/core/prompt-resource-bridge.js +9 -0
- package/dist/core/prompt-resource-bridge.js.map +1 -0
- package/dist/core/protected-targets.d.ts +6 -0
- package/dist/core/protected-targets.d.ts.map +1 -0
- package/dist/core/protected-targets.js +45 -0
- package/dist/core/protected-targets.js.map +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +7 -0
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/rollback.d.ts +19 -3
- package/dist/core/rollback.d.ts.map +1 -1
- package/dist/core/rollback.js +172 -56
- package/dist/core/rollback.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +3 -0
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js +14 -1
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +1 -0
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +11 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +111 -33
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/session-ownership.d.ts.map +1 -1
- package/dist/core/session-ownership.js +8 -3
- package/dist/core/session-ownership.js.map +1 -1
- package/dist/core/session-retention.d.ts.map +1 -1
- package/dist/core/session-retention.js +18 -7
- package/dist/core/session-retention.js.map +1 -1
- package/dist/core/session-startup-settings.d.ts +10 -0
- package/dist/core/session-startup-settings.d.ts.map +1 -0
- package/dist/core/session-startup-settings.js +70 -0
- package/dist/core/session-startup-settings.js.map +1 -0
- package/dist/core/subscriptions.d.ts +16 -7
- package/dist/core/subscriptions.d.ts.map +1 -1
- package/dist/core/subscriptions.js +96 -55
- package/dist/core/subscriptions.js.map +1 -1
- package/dist/core/trust-manager.d.ts +2 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +6 -1
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/update-check.d.ts.map +1 -1
- package/dist/core/update-check.js.map +1 -1
- package/dist/core/usage-accounting.d.ts +47 -0
- package/dist/core/usage-accounting.d.ts.map +1 -0
- package/dist/core/usage-accounting.js +205 -0
- package/dist/core/usage-accounting.js.map +1 -0
- package/dist/core/usage-adapters/kimi-coding.d.ts +2 -2
- package/dist/core/usage-adapters/kimi-coding.d.ts.map +1 -1
- package/dist/core/usage-adapters/kimi-coding.js +2 -2
- package/dist/core/usage-adapters/kimi-coding.js.map +1 -1
- package/dist/core/usage-adapters/openai-codex.d.ts +3 -2
- package/dist/core/usage-adapters/openai-codex.d.ts.map +1 -1
- package/dist/core/usage-adapters/openai-codex.js +3 -3
- package/dist/core/usage-adapters/openai-codex.js.map +1 -1
- package/dist/core/usage-adapters/xai.d.ts +2 -2
- package/dist/core/usage-adapters/xai.d.ts.map +1 -1
- package/dist/core/usage-adapters/xai.js +3 -3
- package/dist/core/usage-adapters/xai.js.map +1 -1
- package/dist/core/usage-adapters/zai.d.ts +2 -2
- package/dist/core/usage-adapters/zai.d.ts.map +1 -1
- package/dist/core/usage-adapters/zai.js +2 -2
- package/dist/core/usage-adapters/zai.js.map +1 -1
- package/dist/core/usage-history.d.ts +1 -18
- package/dist/core/usage-history.d.ts.map +1 -1
- package/dist/core/usage-history.js +46 -114
- package/dist/core/usage-history.js.map +1 -1
- package/dist/core/usage-service.d.ts +9 -2
- package/dist/core/usage-service.d.ts.map +1 -1
- package/dist/core/usage-service.js +95 -50
- package/dist/core/usage-service.js.map +1 -1
- package/dist/gateway/agent-bridge.d.ts +9 -1
- package/dist/gateway/agent-bridge.d.ts.map +1 -1
- package/dist/gateway/agent-bridge.js +91 -37
- package/dist/gateway/agent-bridge.js.map +1 -1
- package/dist/gateway/buttons.d.ts +8 -1
- package/dist/gateway/buttons.d.ts.map +1 -1
- package/dist/gateway/buttons.js +76 -18
- package/dist/gateway/buttons.js.map +1 -1
- package/dist/gateway/commands.d.ts +1 -0
- package/dist/gateway/commands.d.ts.map +1 -1
- package/dist/gateway/commands.js +10 -4
- package/dist/gateway/commands.js.map +1 -1
- package/dist/gateway/cron.d.ts +12 -11
- package/dist/gateway/cron.d.ts.map +1 -1
- package/dist/gateway/cron.js +65 -56
- package/dist/gateway/cron.js.map +1 -1
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +2 -1
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/mobile-commands.d.ts +1 -0
- package/dist/gateway/mobile-commands.d.ts.map +1 -1
- package/dist/gateway/mobile-commands.js +69 -15
- package/dist/gateway/mobile-commands.js.map +1 -1
- package/dist/gateway/presenter.d.ts +12 -2
- package/dist/gateway/presenter.d.ts.map +1 -1
- package/dist/gateway/presenter.js +73 -38
- package/dist/gateway/presenter.js.map +1 -1
- package/dist/gateway/router.d.ts +2 -2
- package/dist/gateway/router.d.ts.map +1 -1
- package/dist/gateway/router.js +17 -2
- package/dist/gateway/router.js.map +1 -1
- package/dist/gateway/service.d.ts +2 -0
- package/dist/gateway/service.d.ts.map +1 -1
- package/dist/gateway/service.js +153 -0
- package/dist/gateway/service.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +86 -33
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +6 -4
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/context-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/context-view.js +2 -2
- package/dist/modes/interactive/components/context-view.js.map +1 -1
- package/dist/modes/interactive/components/copyable-text.d.ts.map +1 -1
- package/dist/modes/interactive/components/copyable-text.js +3 -2
- package/dist/modes/interactive/components/copyable-text.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +8 -12
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/usage-view.d.ts +5 -0
- package/dist/modes/interactive/components/usage-view.d.ts.map +1 -1
- package/dist/modes/interactive/components/usage-view.js +21 -6
- package/dist/modes/interactive/components/usage-view.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +3 -7
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +151 -131
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/smooth-streaming.d.ts.map +1 -1
- package/dist/modes/interactive/smooth-streaming.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +2 -1
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/node-runtime/{adapter-VFG7WNPX.js → adapter-247RTYLS.js} +4 -5
- package/dist/node-runtime/agent-session-services-RTUGP3XR.js +54 -0
- package/dist/node-runtime/{brave-UWDA3I22.js → brave-2AFFAXNN.js} +1 -1
- package/dist/node-runtime/{builtin-extensions-I2HIFEMY.js → builtin-extensions-N4EUD6SB.js} +8 -7
- package/dist/node-runtime/{chunk-QH6YL7VK.js → chunk-252ZVPPF.js} +3 -3
- package/dist/node-runtime/{chunk-PCEW76PM.js → chunk-2OIPYKLZ.js} +6 -6
- package/dist/node-runtime/{chunk-XBWPBZBN.js → chunk-2SWW7KMW.js} +1 -1
- package/dist/node-runtime/{chunk-UQUCFAJ3.js → chunk-2VIW3IMF.js} +40 -7
- package/dist/node-runtime/{chunk-UOEDI7RP.js → chunk-4KNKQGHM.js} +2 -2
- package/dist/node-runtime/chunk-4QRUZ64T.js +1203 -0
- package/dist/node-runtime/{chunk-FQMM2EZ2.js → chunk-64XTQNLA.js} +29 -7
- package/dist/node-runtime/{chunk-SPVDBUOS.js → chunk-6O3IW3IA.js} +2 -2
- package/dist/node-runtime/{chunk-5ZQXRPMC.js → chunk-6ZZHGUSA.js} +2 -2
- package/dist/node-runtime/{chunk-WIF24I7G.js → chunk-APVM5NEU.js} +149 -144
- package/dist/node-runtime/{chunk-LWYIVUGV.js → chunk-B2IBAXNX.js} +48 -31
- package/dist/node-runtime/{chunk-M3LZLQW2.js → chunk-BDRGN3L2.js} +1 -0
- package/dist/node-runtime/{chunk-LJTIVM7I.js → chunk-BMRXLQWQ.js} +464 -160
- package/dist/node-runtime/{chunk-GJ2RDBRL.js → chunk-BYC6RKCN.js} +4 -2
- package/dist/node-runtime/{chunk-T4DA4XE7.js → chunk-DFMPRAQQ.js} +162 -82
- package/dist/node-runtime/{chunk-SN2KSMPQ.js → chunk-DQSCFU7R.js} +13 -7
- package/dist/node-runtime/{chunk-UVWCDQYF.js → chunk-E5DQGNJI.js} +455 -278
- package/dist/node-runtime/{chunk-4SBQAI4T.js → chunk-EBLAZVSA.js} +2058 -73
- package/dist/node-runtime/{chunk-CSFI6YXL.js → chunk-ES6PBSIE.js} +1 -1
- package/dist/node-runtime/{chunk-IF24A3FH.js → chunk-EVM653DD.js} +4 -4
- package/dist/node-runtime/{chunk-HTFRRDSF.js → chunk-F2SMQ6ES.js} +3 -2
- package/dist/node-runtime/chunk-F2V2F4ZG.js +114 -0
- package/dist/node-runtime/{chunk-IKU6Y7DL.js → chunk-FE3WZI7F.js} +9 -6
- package/dist/node-runtime/{chunk-6VYZ5UFP.js → chunk-FLGEEH27.js} +1 -1
- package/dist/node-runtime/{chunk-5EFIU3OM.js → chunk-FTKEZL27.js} +1 -1
- package/dist/node-runtime/{chunk-RGQAEOM5.js → chunk-FYIFPFXE.js} +23 -6
- package/dist/node-runtime/{chunk-HMBGROQK.js → chunk-GLDXBBL6.js} +3 -3
- package/dist/node-runtime/{chunk-KWA4OC2J.js → chunk-H6YBCWKG.js} +1 -1
- package/dist/node-runtime/{chunk-2MI5OPMN.js → chunk-HNNHHJAB.js} +68 -50
- package/dist/node-runtime/{chunk-I74LN5JG.js → chunk-HUD2RFJW.js} +2 -2
- package/dist/node-runtime/{chunk-XHIRAZ26.js → chunk-IAZSK7KK.js} +1 -1
- package/dist/node-runtime/{chunk-GYIXXQAO.js → chunk-ICKGAKWX.js} +23 -59
- package/dist/node-runtime/{chunk-X3PGBLQ7.js → chunk-IHHTWSXN.js} +9 -9
- package/dist/node-runtime/{chunk-DAPBPCBP.js → chunk-IPP5BIV5.js} +25 -3
- package/dist/node-runtime/{chunk-QFWG2RVL.js → chunk-IXG6F4NT.js} +11 -0
- package/dist/node-runtime/{chunk-L24TPBS4.js → chunk-JEK35V2M.js} +45 -31
- package/dist/node-runtime/{chunk-RDDAZOMU.js → chunk-JL4HYQXK.js} +1 -1
- package/dist/node-runtime/{chunk-2HMIRK7W.js → chunk-LHV3V67B.js} +5 -5
- package/dist/node-runtime/{chunk-UAEOTO52.js → chunk-MNQXDFPV.js} +6 -2
- package/dist/node-runtime/{chunk-MPKSOJBT.js → chunk-NHATCSOI.js} +4 -7
- package/dist/node-runtime/{chunk-RMQZU2YU.js → chunk-NNNR3QIY.js} +1 -1
- package/dist/node-runtime/{chunk-2KIPT4HJ.js → chunk-PWHTSQC4.js} +83 -21
- package/dist/node-runtime/{chunk-RWTKOC3B.js → chunk-QBTJG3UM.js} +1 -1
- package/dist/node-runtime/{chunk-RCR3XAQY.js → chunk-QT3F6UEV.js} +233 -169
- package/dist/node-runtime/{chunk-GS42T6MX.js → chunk-QW3AAHWN.js} +1 -1
- package/dist/node-runtime/{chunk-DVQSHCVP.js → chunk-R4WSB2MQ.js} +5 -5
- package/dist/node-runtime/{chunk-B4HP6ZWM.js → chunk-RHCGYWO7.js} +1 -1
- package/dist/node-runtime/{chunk-2CFDTH5B.js → chunk-RLGY2QIL.js} +45 -59
- package/dist/node-runtime/{chunk-CDVHZOOK.js → chunk-RY3FJ6WI.js} +29 -27
- package/dist/node-runtime/{chunk-KKUTQQV7.js → chunk-RYRGL7P4.js} +1 -1
- package/dist/node-runtime/{chunk-I54LGHWM.js → chunk-STMX7W5I.js} +3 -3
- package/dist/node-runtime/chunk-SWWHZ2RI.js +158 -0
- package/dist/node-runtime/{chunk-5Q4A37RB.js → chunk-TCT6PCUR.js} +32 -11
- package/dist/node-runtime/{chunk-P7XBVXGT.js → chunk-U3YVZ6UC.js} +18 -14
- package/dist/node-runtime/{chunk-D5UCKPBQ.js → chunk-UBWW2PID.js} +1 -1
- package/dist/node-runtime/{chunk-E75WFZ33.js → chunk-UNUZICC4.js} +3 -3
- package/dist/node-runtime/{chunk-RAK2QA2B.js → chunk-UYRKUKFE.js} +4 -4
- package/dist/node-runtime/{chunk-LWJXTA6Z.js → chunk-VSUEAI7O.js} +1377 -45
- package/dist/node-runtime/{chunk-NAY6UUQZ.js → chunk-WDIVLMOH.js} +1 -1
- package/dist/node-runtime/{chunk-E24EO34J.js → chunk-WPXUR3HE.js} +1 -1
- package/dist/node-runtime/{chunk-SLVOAQOY.js → chunk-WXYNALHD.js} +113 -1
- package/dist/node-runtime/{chunk-KJ6DWS3K.js → chunk-XEOCUEUJ.js} +121 -60
- package/dist/node-runtime/chunk-YD3IZAZ7.js +47 -0
- package/dist/node-runtime/chunk-YSB6URMT.js +41 -0
- package/dist/node-runtime/{chunk-YWOJIGFY.js → chunk-ZEVFBFNF.js} +95 -142
- package/dist/node-runtime/{chunk-5B6VKFEV.js → chunk-ZIQUS5QO.js} +1 -1
- package/dist/node-runtime/cli-runtime.js +4 -4
- package/dist/node-runtime/{command-FSBU2EVZ.js → command-YRT7I2BW.js} +5 -5
- package/dist/node-runtime/{commands-NAAL7KNT.js → commands-2ETOWWRA.js} +16 -16
- package/dist/node-runtime/{commands-EMBQQVVT.js → commands-D6A6H4TS.js} +11 -18
- package/dist/node-runtime/{config-QDD5PUE2.js → config-CU7M7BTK.js} +1 -1
- package/dist/node-runtime/{config-D4QUPAHX.js → config-DS7XLMEM.js} +2 -2
- package/dist/node-runtime/{direct-tool-executor-4D7UXYU4.js → direct-tool-executor-2QJXVQD2.js} +6 -11
- package/dist/node-runtime/{exa-LL64QZR2.js → exa-6VBZNPGE.js} +1 -1
- package/dist/node-runtime/{export-html-VM4J2MNR.js → export-html-DBQRRMAY.js} +4 -4
- package/dist/node-runtime/{extension-input-E7BJZ35H.js → extension-input-VBBMX7YV.js} +5 -5
- package/dist/node-runtime/{extension-selector-WU42XDTU.js → extension-selector-T5AOG5XB.js} +5 -5
- package/dist/node-runtime/{extract-EQJE7FZZ.js → extract-BFX2N35A.js} +3 -3
- package/dist/node-runtime/{gateway-DQM333YV.js → gateway-V6K2CDWN.js} +51 -42
- package/dist/node-runtime/{gemini-search-35OCRFLN.js → gemini-search-C66QHDT6.js} +2 -2
- package/dist/node-runtime/{gemini-url-context-UQY3PHHW.js → gemini-url-context-T7DEK73R.js} +3 -3
- package/dist/node-runtime/{github-extract-F64RZOEA.js → github-extract-HOGE3D6F.js} +107 -38
- package/dist/node-runtime/{goal-NJEE5CTU.js → goal-J7TYMOBK.js} +14 -8
- package/dist/node-runtime/index.js +51 -48
- package/dist/node-runtime/{init-P5AUV77I.js → init-JBQJIPYI.js} +3 -6
- package/dist/node-runtime/{install-cli-NN4YAU44.js → install-cli-INGHIVBY.js} +30 -25
- package/dist/node-runtime/interactive-mode-ASZ7APYP.js +75 -0
- package/dist/node-runtime/{interactive-view-NGFAMHPW.js → interactive-view-K33PM4OS.js} +8 -8
- package/dist/node-runtime/{lsp-manager-3ASUSO4T.js → lsp-manager-S554V5HR.js} +240 -155
- package/dist/node-runtime/{lunr-browser-IR7TL3J7.js → lunr-browser-H4FDOR3C.js} +7 -7
- package/dist/node-runtime/{lunr-computer-use-Y23CCDIJ.js → lunr-computer-use-VDP2QNRQ.js} +9 -9
- package/dist/node-runtime/{lunr-cron-USHC4LXH.js → lunr-cron-WD3YH4CR.js} +93 -80
- package/dist/node-runtime/main.js +43 -41
- package/dist/node-runtime/{mobile-commands-O5LCHL32.js → mobile-commands-ICUXFW5V.js} +12 -12
- package/dist/node-runtime/{model-runtime-OO5HFLWE.js → model-runtime-MZ2JMDV4.js} +4 -4
- package/dist/node-runtime/{openai-search-B3MSNCQA.js → openai-search-K72LJDYN.js} +1 -1
- package/dist/node-runtime/{package-manager-cli-Q7BL6KZO.js → package-manager-cli-CYM262SI.js} +20 -20
- package/dist/node-runtime/{parallel-AI2MNSCU.js → parallel-X724NCNU.js} +1 -1
- package/dist/node-runtime/{perplexity-QVJW3I35.js → perplexity-RDHQHVMK.js} +2 -2
- package/dist/node-runtime/{pi-intercom-QM53RLTS.js → pi-intercom-NHHEPBMI.js} +2 -2
- package/dist/node-runtime/{pi-mcp-adapter-3PHF4KZ4.js → pi-mcp-adapter-PP3GQJQ2.js} +98 -94
- package/dist/node-runtime/{pi-ollama-cloud-2F3Y2QNM.js → pi-ollama-cloud-4MNWIMFN.js} +11 -24
- package/dist/node-runtime/{pi-prompt-template-model-QWTCGLJU.js → pi-prompt-template-model-FTGELLS5.js} +32 -36
- package/dist/node-runtime/{pi-subagents-7IBSSGEW.js → pi-subagents-QPU3OXE4.js} +114 -167
- package/dist/node-runtime/{pi-web-access-WTGMNZ32.js → pi-web-access-Z3LP246C.js} +144 -108
- package/dist/node-runtime/{print-mode-XQ76CYMT.js → print-mode-2XHN5SUA.js} +3 -3
- package/dist/node-runtime/{process-registry-4FAKZQOL.js → process-registry-Q4QWIU33.js} +3 -3
- package/dist/node-runtime/{proxy-modes-5FAPSZEZ.js → proxy-modes-VEGC6QG5.js} +8 -15
- package/dist/node-runtime/rpc-entry.js +43 -41
- package/dist/node-runtime/{rpc-mode-O3XV4SID.js → rpc-mode-32DHJPEJ.js} +4 -4
- package/dist/node-runtime/{runtime-4VA6JKNF.js → runtime-EDUUGAQD.js} +56 -46
- package/dist/node-runtime/{runtime-EFPPD2UW.js → runtime-UGXM4NPQ.js} +2 -2
- package/dist/node-runtime/{runtime-bridges-7WVCLI76.js → runtime-bridges-DNKMNJCF.js} +7 -7
- package/dist/node-runtime/{service-MDQIPQ26.js → service-IHLGFLBT.js} +6 -4
- package/dist/node-runtime/{session-handoff-GWARVEWT.js → session-handoff-LYH53ESV.js} +4 -4
- package/dist/node-runtime/{session-manager-JB5J6XBN.js → session-manager-ZJ3N5Q74.js} +3 -3
- package/dist/node-runtime/{session-selector-GIM4DHQ2.js → session-selector-I73U3EIO.js} +7 -7
- package/dist/node-runtime/{settings-manager-DJDM5AHM.js → settings-manager-P2TKGYTR.js} +5 -5
- package/dist/node-runtime/{setup-JBKOLJ6F.js → setup-H7CCELIL.js} +15 -1
- package/dist/node-runtime/{setup-PFBWRNUI.js → setup-OLQ4GXWS.js} +17 -17
- package/dist/node-runtime/{src-IVPNZ2BX.js → src-6RV4PXKJ.js} +64 -36
- package/dist/node-runtime/{subagent-executor-LPZ4BHWE.js → subagent-executor-UI6SHG3X.js} +412 -288
- package/dist/node-runtime/{tavily-WEZFVFP7.js → tavily-KZBFYQB6.js} +1 -1
- package/dist/node-runtime/{theme-UOO5RVFN.js → theme-YLVZKKZD.js} +2 -2
- package/dist/node-runtime/{trust-manager-MMISNCYO.js → trust-manager-ZCU76D23.js} +2 -2
- package/dist/node-runtime/{update-cli-HNMOTNGX.js → update-cli-F3XXJANQ.js} +6 -6
- package/dist/node-runtime/{usage-service-LFB2SWYV.js → usage-service-CPAGBED5.js} +1 -1
- package/dist/node-runtime/{video-extract-OOZHR7SU.js → video-extract-UPKYIBW3.js} +3 -3
- package/dist/node-runtime/{workflow-OHPBEFO4.js → workflow-ICDI4N3J.js} +208 -78
- package/dist/node-runtime/{youtube-extract-FNPAUNHU.js → youtube-extract-77NT7FWH.js} +4 -4
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js +25 -10
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js +2 -0
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/paths.d.ts +4 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +33 -2
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/sanitize-terminal-text.d.ts +7 -0
- package/dist/utils/sanitize-terminal-text.d.ts.map +1 -0
- package/dist/utils/sanitize-terminal-text.js +67 -0
- package/dist/utils/sanitize-terminal-text.js.map +1 -0
- package/docs/browser.md +1 -1
- package/docs/custom-provider.md +3 -3
- package/docs/extensions.md +8 -4
- package/docs/features.md +25 -7
- package/docs/keybindings.md +1 -1
- package/docs/models.md +5 -5
- package/docs/packages.md +1 -1
- package/docs/providers.md +2 -2
- package/docs/rpc.md +7 -7
- package/docs/security.md +10 -5
- package/docs/sessions.md +2 -2
- package/docs/skills.md +1 -1
- package/docs/terminal-setup.md +7 -7
- package/docs/themes.md +1 -1
- package/docs/usage.md +1 -1
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +1 -1
- package/examples/extensions/built-in-tool-renderer.ts +1 -1
- package/examples/extensions/claude-rules.ts +1 -1
- package/examples/extensions/commands.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-provider-anthropic/index.ts +3 -3
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/doom-overlay/index.ts +1 -1
- package/examples/extensions/git-merge-and-resolve.ts +2 -2
- package/examples/extensions/gondolin/index.ts +1 -1
- package/examples/extensions/gondolin/package-lock.json +2 -2
- package/examples/extensions/gondolin/package.json +1 -1
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +2 -2
- package/examples/extensions/input-transform-streaming.ts +2 -2
- package/examples/extensions/input-transform.ts +2 -2
- package/examples/extensions/interactive-shell.ts +1 -1
- package/examples/extensions/kimi-deferred-tools.ts +1 -1
- package/examples/extensions/mac-system-theme.ts +1 -1
- package/examples/extensions/minimal-mode.ts +1 -1
- package/examples/extensions/modal-editor.ts +1 -1
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/notify.ts +3 -3
- package/examples/extensions/overlay-qa-tests.ts +1 -1
- package/examples/extensions/overlay-test.ts +1 -1
- package/examples/extensions/pirate.ts +1 -1
- package/examples/extensions/preset.ts +3 -3
- package/examples/extensions/project-trust.ts +4 -4
- package/examples/extensions/prompt-customizer.ts +1 -1
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +7 -7
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/shutdown-command.ts +5 -5
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/subagent/README.md +3 -3
- package/examples/extensions/subagent/index.ts +2 -2
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/tool-override.ts +1 -1
- package/examples/extensions/tools.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +1 -1
- package/examples/extensions/working-message-test.ts +1 -1
- package/examples/sdk/01-minimal.ts +1 -1
- package/examples/sdk/03-custom-prompt.ts +1 -1
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/06-extensions.ts +2 -2
- package/examples/sdk/08-prompt-templates.ts +1 -1
- package/install-lock/package-lock.json +24 -24
- package/install-lock/package.json +2 -2
- package/npm-shrinkwrap.json +60 -24
- package/package.json +9 -9
- package/dist/modes/interactive/components/exit-card.d.ts +0 -22
- package/dist/modes/interactive/components/exit-card.d.ts.map +0 -1
- package/dist/modes/interactive/components/exit-card.js +0 -69
- package/dist/modes/interactive/components/exit-card.js.map +0 -1
- package/dist/node-runtime/agent-session-services-5YXS2PLF.js +0 -51
- package/dist/node-runtime/chunk-2IDTZAG5.js +0 -1415
- package/dist/node-runtime/chunk-3MISGG4S.js +0 -769
- package/dist/node-runtime/chunk-4HXHDDCF.js +0 -16
- package/dist/node-runtime/chunk-5B5QN3ZQ.js +0 -356
- package/dist/node-runtime/chunk-7IQGBKBJ.js +0 -2033
- package/dist/node-runtime/chunk-AUXVGBO4.js +0 -19
- package/dist/node-runtime/chunk-PTFBPO3C.js +0 -50
- package/dist/node-runtime/interactive-mode-YOHZVMKX.js +0 -74
- package/dist/node-runtime/mcp-auth-flow-QVLFVLEO.js +0 -33
|
@@ -2,13 +2,13 @@ import { createRequire as __lunrRequire } from "node:module"; const require = __
|
|
|
2
2
|
import {
|
|
3
3
|
checkForUpdate,
|
|
4
4
|
markUpdateNotified
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-H6YBCWKG.js";
|
|
6
6
|
import {
|
|
7
7
|
getSubagentSpinnerDefinition
|
|
8
8
|
} from "./chunk-US544NN6.js";
|
|
9
9
|
import {
|
|
10
10
|
computeContextBreakdown
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-RY3FJ6WI.js";
|
|
12
12
|
import {
|
|
13
13
|
copyToClipboard,
|
|
14
14
|
readClipboardText
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
BootScreenComponent,
|
|
22
22
|
registerPermissionModeBridge
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-QBTJG3UM.js";
|
|
24
24
|
import {
|
|
25
25
|
nextModeForGoal,
|
|
26
26
|
registerPermissionModeControlBridge
|
|
@@ -34,9 +34,12 @@ import {
|
|
|
34
34
|
beginTurn,
|
|
35
35
|
captureTreeChanges,
|
|
36
36
|
clearRollback,
|
|
37
|
+
commitRollbackTurn,
|
|
37
38
|
disableRollbackForSession,
|
|
38
39
|
enableRollbackForSession,
|
|
39
40
|
formatMissingSessionCwdPrompt,
|
|
41
|
+
getRollbackRecoveryBlockReason,
|
|
42
|
+
getRollbackTargetUserId,
|
|
40
43
|
initRollback,
|
|
41
44
|
isRollbackEnabled,
|
|
42
45
|
isRollbackSessionForceEnabled,
|
|
@@ -45,24 +48,19 @@ import {
|
|
|
45
48
|
peekRollbackTurnsConsumed,
|
|
46
49
|
rollbackLastTurn,
|
|
47
50
|
setRollbackWarningHandler
|
|
48
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-BMRXLQWQ.js";
|
|
49
52
|
import {
|
|
50
53
|
notifyTodosEnabledChanged
|
|
51
54
|
} from "./chunk-CCCN2UCX.js";
|
|
52
55
|
import {
|
|
53
56
|
parseGitUrl
|
|
54
|
-
} from "./chunk-
|
|
57
|
+
} from "./chunk-UYRKUKFE.js";
|
|
55
58
|
import {
|
|
56
59
|
createAllToolDefinitions,
|
|
57
60
|
ensureTool,
|
|
58
61
|
getToolPath,
|
|
59
62
|
truncateToVisualLines
|
|
60
|
-
} from "./chunk-
|
|
61
|
-
import {
|
|
62
|
-
DEFAULT_MAX_BYTES,
|
|
63
|
-
DEFAULT_MAX_LINES,
|
|
64
|
-
truncateTail
|
|
65
|
-
} from "./chunk-53YJI7JU.js";
|
|
63
|
+
} from "./chunk-ZEVFBFNF.js";
|
|
66
64
|
import {
|
|
67
65
|
formatGroupedCall,
|
|
68
66
|
getTextOutput,
|
|
@@ -70,17 +68,22 @@ import {
|
|
|
70
68
|
toolGroupRole,
|
|
71
69
|
toolGroupTree,
|
|
72
70
|
toolStatusDot
|
|
73
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-6ZZHGUSA.js";
|
|
72
|
+
import {
|
|
73
|
+
DEFAULT_MAX_BYTES,
|
|
74
|
+
DEFAULT_MAX_LINES,
|
|
75
|
+
truncateTail
|
|
76
|
+
} from "./chunk-53YJI7JU.js";
|
|
74
77
|
import {
|
|
75
78
|
convertToPng,
|
|
76
79
|
processImage
|
|
77
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-IAZSK7KK.js";
|
|
78
81
|
import {
|
|
79
82
|
formatCatalogRefreshSummary,
|
|
80
83
|
hasGrokCliXaiAuth,
|
|
81
84
|
refreshModelCandidatesForInit,
|
|
82
85
|
stripJsonComments
|
|
83
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-XEOCUEUJ.js";
|
|
84
87
|
import {
|
|
85
88
|
HTTP_IDLE_TIMEOUT_CHOICES,
|
|
86
89
|
SKILL_TAG_CHARACTERS,
|
|
@@ -88,38 +91,30 @@ import {
|
|
|
88
91
|
SUBAGENT_SPINNER_NAMES,
|
|
89
92
|
configureHttpDispatcher,
|
|
90
93
|
formatHttpIdleTimeoutMs
|
|
91
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-HUD2RFJW.js";
|
|
92
95
|
import {
|
|
93
96
|
ProjectTrustStore,
|
|
94
97
|
getProjectTrustOptions,
|
|
95
98
|
hasTrustRequiringProjectResources
|
|
96
|
-
} from "./chunk-
|
|
99
|
+
} from "./chunk-F2SMQ6ES.js";
|
|
97
100
|
import {
|
|
98
|
-
computeFileLists,
|
|
99
|
-
createFileOps,
|
|
100
101
|
defaultModelPerProvider,
|
|
101
|
-
extractFileOpsFromMessage,
|
|
102
102
|
findExactModelReferenceMatch,
|
|
103
103
|
resolveModelScope
|
|
104
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-ICKGAKWX.js";
|
|
105
105
|
import {
|
|
106
106
|
SubagentEscapeSequence,
|
|
107
107
|
getSubagentCancellation
|
|
108
108
|
} from "./chunk-BBUVIEZB.js";
|
|
109
109
|
import {
|
|
110
|
-
AUTO_MODE_ADDENDUM,
|
|
111
|
-
READ_ONLY_MODE_ADDENDUM,
|
|
112
|
-
getPermissionMode,
|
|
113
110
|
nextPermissionMode,
|
|
114
111
|
registerApprovalHandler,
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
setPermissionMode
|
|
118
|
-
} from "./chunk-WIF24I7G.js";
|
|
112
|
+
restorePermissionModeAfterPlan
|
|
113
|
+
} from "./chunk-APVM5NEU.js";
|
|
119
114
|
import {
|
|
120
115
|
getGlobalInstructionsPath,
|
|
121
116
|
getModelInstructionsPath
|
|
122
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-BDRGN3L2.js";
|
|
123
118
|
import {
|
|
124
119
|
clearRegistry,
|
|
125
120
|
isWindows,
|
|
@@ -129,21 +124,21 @@ import {
|
|
|
129
124
|
pause,
|
|
130
125
|
restart,
|
|
131
126
|
resume
|
|
132
|
-
} from "./chunk-
|
|
127
|
+
} from "./chunk-RYRGL7P4.js";
|
|
133
128
|
import {
|
|
134
129
|
killTrackedDetachedChildren
|
|
135
|
-
} from "./chunk-
|
|
130
|
+
} from "./chunk-ES6PBSIE.js";
|
|
136
131
|
import {
|
|
137
132
|
cancelSessionHandoff,
|
|
138
133
|
markSessionHandoff,
|
|
139
134
|
recordTuiActivity,
|
|
140
135
|
registerTransferHandler,
|
|
141
136
|
requestSessionTransfer
|
|
142
|
-
} from "./chunk-
|
|
137
|
+
} from "./chunk-STMX7W5I.js";
|
|
143
138
|
import {
|
|
144
139
|
SessionManager,
|
|
145
140
|
sessionEntryToContextMessages
|
|
146
|
-
} from "./chunk-
|
|
141
|
+
} from "./chunk-PWHTSQC4.js";
|
|
147
142
|
import {
|
|
148
143
|
createCompactionSummaryMessage
|
|
149
144
|
} from "./chunk-FVDOXRUD.js";
|
|
@@ -161,41 +156,46 @@ import {
|
|
|
161
156
|
import {
|
|
162
157
|
getAllPlanUsageResults,
|
|
163
158
|
getUsageServiceBridge
|
|
164
|
-
} from "./chunk-
|
|
159
|
+
} from "./chunk-HNNHHJAB.js";
|
|
165
160
|
import {
|
|
166
161
|
SessionSelectorComponent
|
|
167
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-2OIPYKLZ.js";
|
|
168
163
|
import {
|
|
169
164
|
CustomEditor
|
|
170
165
|
} from "./chunk-H2EOZYMP.js";
|
|
171
166
|
import {
|
|
172
167
|
KeybindingsManager
|
|
173
|
-
} from "./chunk-
|
|
168
|
+
} from "./chunk-FTKEZL27.js";
|
|
174
169
|
import {
|
|
175
170
|
time
|
|
176
171
|
} from "./chunk-PVCDKGR6.js";
|
|
172
|
+
import {
|
|
173
|
+
collectUsageRequests,
|
|
174
|
+
totalRequestUsage,
|
|
175
|
+
usageTokens
|
|
176
|
+
} from "./chunk-SWWHZ2RI.js";
|
|
177
177
|
import {
|
|
178
178
|
markStartupMilestone
|
|
179
179
|
} from "./chunk-CCZJ3PYY.js";
|
|
180
180
|
import {
|
|
181
181
|
ExtensionSelectorComponent
|
|
182
|
-
} from "./chunk-
|
|
182
|
+
} from "./chunk-252ZVPPF.js";
|
|
183
183
|
import {
|
|
184
184
|
ExtensionInputComponent
|
|
185
|
-
} from "./chunk-
|
|
185
|
+
} from "./chunk-GLDXBBL6.js";
|
|
186
186
|
import {
|
|
187
187
|
CountdownTimer
|
|
188
188
|
} from "./chunk-I6R76AG7.js";
|
|
189
189
|
import {
|
|
190
190
|
DynamicBorder
|
|
191
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-FLGEEH27.js";
|
|
192
192
|
import {
|
|
193
193
|
formatKeyText,
|
|
194
194
|
keyDisplayText,
|
|
195
195
|
keyHint,
|
|
196
196
|
keyText,
|
|
197
197
|
rawKeyHint
|
|
198
|
-
} from "./chunk-
|
|
198
|
+
} from "./chunk-QW3AAHWN.js";
|
|
199
199
|
import {
|
|
200
200
|
FS_WATCH_RETRY_DELAY_MS,
|
|
201
201
|
Theme,
|
|
@@ -221,7 +221,7 @@ import {
|
|
|
221
221
|
stopThemeWatcher,
|
|
222
222
|
theme,
|
|
223
223
|
watchWithErrorHandler
|
|
224
|
-
} from "./chunk-
|
|
224
|
+
} from "./chunk-JL4HYQXK.js";
|
|
225
225
|
import {
|
|
226
226
|
APP_NAME,
|
|
227
227
|
APP_TITLE,
|
|
@@ -235,7 +235,7 @@ import {
|
|
|
235
235
|
getDocsPath,
|
|
236
236
|
getShareViewerUrl,
|
|
237
237
|
normalizePath
|
|
238
|
-
} from "./chunk-
|
|
238
|
+
} from "./chunk-64XTQNLA.js";
|
|
239
239
|
|
|
240
240
|
// packages/coding-agent/dist/modes/interactive/interactive-mode.js
|
|
241
241
|
import * as crypto from "node:crypto";
|
|
@@ -244,7 +244,6 @@ import * as os2 from "node:os";
|
|
|
244
244
|
import * as path2 from "node:path";
|
|
245
245
|
import { getSupportedThinkingLevels } from "@ashx-j/lunr-ai/compat";
|
|
246
246
|
import { CombinedAutocompleteProvider, Container as Container19, collectImageMarkerIds, formatImageMarker, fuzzyFilter as fuzzyFilter5, isFocusable, Markdown as Markdown10, matchesKey as matchesKey2, ProcessTerminal, Spacer as Spacer19, setKeybindings, Text as Text21, TruncatedText as TruncatedText2, TUI, visibleWidth as visibleWidth6 } from "@ashx-j/lunr-tui";
|
|
247
|
-
import chalk from "chalk";
|
|
248
247
|
import { spawn as spawn3, spawnSync } from "child_process";
|
|
249
248
|
|
|
250
249
|
// packages/coding-agent/dist/core/cache-stats.js
|
|
@@ -421,6 +420,9 @@ function shouldPollGitHead(repoDir) {
|
|
|
421
420
|
var FooterDataProvider = class _FooterDataProvider {
|
|
422
421
|
cwd;
|
|
423
422
|
static WATCH_DEBOUNCE_MS = 500;
|
|
423
|
+
static DIFFSTAT_REFRESH_MS = 2e3;
|
|
424
|
+
diffstatTimer = null;
|
|
425
|
+
diffstatStale = !0;
|
|
424
426
|
extensionStatuses = /* @__PURE__ */ new Map();
|
|
425
427
|
cachedBranch = void 0;
|
|
426
428
|
cachedDiffstat = void 0;
|
|
@@ -447,7 +449,9 @@ var FooterDataProvider = class _FooterDataProvider {
|
|
|
447
449
|
}
|
|
448
450
|
/** Staged + unstaged added/removed vs HEAD. Null until the asynchronous lookup completes. */
|
|
449
451
|
getGitDiffstat() {
|
|
450
|
-
return this.
|
|
452
|
+
return this.diffstatStale && !this.refreshInFlight && this.refreshGitData(), !this.disposed && !this.diffstatTimer && (this.diffstatTimer = setTimeout(() => {
|
|
453
|
+
this.diffstatTimer = null, this.diffstatStale = !0, this.notifyBranchChange();
|
|
454
|
+
}, _FooterDataProvider.DIFFSTAT_REFRESH_MS), this.diffstatTimer.unref()), this.cachedDiffstat ?? null;
|
|
451
455
|
}
|
|
452
456
|
/** Extension status texts set via ctx.ui.setStatus() */
|
|
453
457
|
getExtensionStatuses() {
|
|
@@ -474,11 +478,14 @@ var FooterDataProvider = class _FooterDataProvider {
|
|
|
474
478
|
this.availableProviderCount = count;
|
|
475
479
|
}
|
|
476
480
|
setCwd(cwd) {
|
|
477
|
-
this.cwd !== cwd && (this.cwd = cwd, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.cachedBranch = void 0, this.cachedDiffstat = void 0, this.gitPaths = void 0, this.refreshInFlight && (this.refreshPending = !0), this.notifyBranchChange());
|
|
481
|
+
this.cwd !== cwd && (this.cwd = cwd, this.clearDiffstatTimer(), this.diffstatStale = !0, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.cachedBranch = void 0, this.cachedDiffstat = void 0, this.gitPaths = void 0, this.refreshInFlight && (this.refreshPending = !0), this.notifyBranchChange());
|
|
478
482
|
}
|
|
479
483
|
/** Internal: cleanup */
|
|
480
484
|
dispose() {
|
|
481
|
-
this.disposed = !0, this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.branchChangeCallbacks.clear();
|
|
485
|
+
this.disposed = !0, this.clearDiffstatTimer(), this.refreshTimer && (clearTimeout(this.refreshTimer), this.refreshTimer = null), this.clearGitWatchers(), this.branchChangeCallbacks.clear();
|
|
486
|
+
}
|
|
487
|
+
clearDiffstatTimer() {
|
|
488
|
+
this.diffstatTimer && clearTimeout(this.diffstatTimer), this.diffstatTimer = null;
|
|
482
489
|
}
|
|
483
490
|
notifyBranchChange() {
|
|
484
491
|
for (let cb of this.branchChangeCallbacks)
|
|
@@ -516,7 +523,7 @@ var FooterDataProvider = class _FooterDataProvider {
|
|
|
516
523
|
if (this.disposed || this.cwd !== cwd)
|
|
517
524
|
return;
|
|
518
525
|
let prevBranch = this.cachedBranch, prevDiff = this.cachedDiffstat, branchChanged = prevBranch !== nextBranch, diffChanged = prevDiff?.added !== nextDiff?.added || prevDiff?.removed !== nextDiff?.removed;
|
|
519
|
-
this.cachedBranch = nextBranch, this.cachedDiffstat = nextDiff, (branchChanged || diffChanged) && this.notifyBranchChange();
|
|
526
|
+
this.cachedBranch = nextBranch, this.cachedDiffstat = nextDiff, this.diffstatStale = !1, (branchChanged || diffChanged) && this.notifyBranchChange();
|
|
520
527
|
} finally {
|
|
521
528
|
this.refreshInFlight = !1, this.refreshPending && !this.disposed && (this.refreshPending = !1, this.scheduleRefresh());
|
|
522
529
|
}
|
|
@@ -1115,6 +1122,52 @@ var ArminComponent = class {
|
|
|
1115
1122
|
// packages/coding-agent/dist/modes/interactive/components/assistant-message.js
|
|
1116
1123
|
import { Container, Markdown as Markdown2, Spacer, Text } from "@ashx-j/lunr-tui";
|
|
1117
1124
|
|
|
1125
|
+
// packages/coding-agent/dist/utils/sanitize-terminal-text.js
|
|
1126
|
+
function sanitizeTerminalText(source) {
|
|
1127
|
+
if (!/[\x00-\x08\x0b-\x1f\x7f-\x9f]/.test(source))
|
|
1128
|
+
return source;
|
|
1129
|
+
let parts = [], index = 0, plainStart = 0;
|
|
1130
|
+
for (; index < source.length; ) {
|
|
1131
|
+
let code = source.charCodeAt(index);
|
|
1132
|
+
if (code === 9 || code === 10 || code >= 32 && (code < 127 || code > 159)) {
|
|
1133
|
+
index++;
|
|
1134
|
+
continue;
|
|
1135
|
+
}
|
|
1136
|
+
if (parts.push(source.slice(plainStart, index)), index++, code === 13)
|
|
1137
|
+
source.charCodeAt(index) === 10 && index++, parts.push(`
|
|
1138
|
+
`);
|
|
1139
|
+
else {
|
|
1140
|
+
let sequence = code;
|
|
1141
|
+
if (code === 27 && index < source.length) {
|
|
1142
|
+
let next = source.charCodeAt(index);
|
|
1143
|
+
if (next >= 64 && next <= 95)
|
|
1144
|
+
sequence = next + 64, index++;
|
|
1145
|
+
else {
|
|
1146
|
+
for (; source.charCodeAt(index) >= 32 && source.charCodeAt(index) <= 47; )
|
|
1147
|
+
index++;
|
|
1148
|
+
source.charCodeAt(index) >= 48 && source.charCodeAt(index) <= 126 && index++;
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
if (sequence === 155) {
|
|
1152
|
+
for (; source.charCodeAt(index) >= 32 && source.charCodeAt(index) <= 63; )
|
|
1153
|
+
index++;
|
|
1154
|
+
source.charCodeAt(index) >= 64 && source.charCodeAt(index) <= 126 && index++;
|
|
1155
|
+
} else if ([144, 152, 157, 158, 159].includes(sequence))
|
|
1156
|
+
for (; index < source.length; ) {
|
|
1157
|
+
let next = source.charCodeAt(index++);
|
|
1158
|
+
if (next === 156 || sequence === 157 && next === 7)
|
|
1159
|
+
break;
|
|
1160
|
+
if (next === 27 && source.charCodeAt(index) === 92) {
|
|
1161
|
+
index++;
|
|
1162
|
+
break;
|
|
1163
|
+
}
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
plainStart = index;
|
|
1167
|
+
}
|
|
1168
|
+
return parts.push(source.slice(plainStart)), parts.join("");
|
|
1169
|
+
}
|
|
1170
|
+
|
|
1118
1171
|
// packages/coding-agent/dist/modes/interactive/components/copyable-text.js
|
|
1119
1172
|
import { truncateToWidth, visibleWidth, wrapTextWithAnsi } from "@ashx-j/lunr-tui";
|
|
1120
1173
|
function sourceLines(source) {
|
|
@@ -1208,13 +1261,13 @@ var CopyableTextBlockComponent = class {
|
|
|
1208
1261
|
let horizontalPad = Math.min(this.outputPad, Math.max(0, width - 1)), pad = " ".repeat(horizontalPad), contentWidth = Math.max(1, width - horizontalPad * 2), paint = (content) => {
|
|
1209
1262
|
let line = truncateToWidth(`${pad}${content}`, width, "");
|
|
1210
1263
|
return theme.bg("userMessageBg", `${line}${" ".repeat(Math.max(0, width - visibleWidth(line)))}`);
|
|
1211
|
-
}, lines = [paint("")], payloadLines = this.payload.replace(/\t/g, " ").split(`
|
|
1264
|
+
}, lines = [paint("")], payloadLines = sanitizeTerminalText(this.payload).replace(/\t/g, " ").split(`
|
|
1212
1265
|
`);
|
|
1213
1266
|
for (let payloadLine of payloadLines)
|
|
1214
1267
|
for (let wrappedLine of wrapTextWithAnsi(payloadLine, contentWidth))
|
|
1215
1268
|
lines.push(paint(theme.fg("userMessageText", wrappedLine)));
|
|
1216
1269
|
if (typeof this.status == "object")
|
|
1217
|
-
for (let wrappedLine of wrapTextWithAnsi(`Copy failed: ${this.status.error}`, contentWidth))
|
|
1270
|
+
for (let wrappedLine of wrapTextWithAnsi(`Copy failed: ${sanitizeTerminalText(this.status.error)}`, contentWidth))
|
|
1218
1271
|
lines.push(paint(theme.fg("error", wrappedLine)));
|
|
1219
1272
|
return lines.push(paint("")), this.renderedRows = lines.length, lines;
|
|
1220
1273
|
}
|
|
@@ -1405,7 +1458,7 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
|
|
|
1405
1458
|
if (content.type === "text" && content.text.trim())
|
|
1406
1459
|
for (let segment of parseCopyableTextSegments(content.text)) {
|
|
1407
1460
|
if (segment.type === "markdown") {
|
|
1408
|
-
let trimmed = segment.text.trim();
|
|
1461
|
+
let trimmed = sanitizeTerminalText(segment.text).trim();
|
|
1409
1462
|
if (!trimmed)
|
|
1410
1463
|
continue;
|
|
1411
1464
|
let text = isFirstTextBlock ? `\u25CF ${trimmed}` : trimmed;
|
|
@@ -1430,7 +1483,7 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
|
|
|
1430
1483
|
if (i--, displayBlocks.length === 0 || this.hideThinkingBlock)
|
|
1431
1484
|
continue;
|
|
1432
1485
|
let sourceBlocks = sourceThinkingRuns[thinkingRunIndex] ?? [], fullyRevealed = displayBlocks.length === sourceBlocks.length && displayBlocks.every((block, index) => block === sourceBlocks[index]);
|
|
1433
|
-
this.renderThinkingRun(thinkingRunIndex, displayBlocks, message, i, fullyRevealed);
|
|
1486
|
+
this.renderThinkingRun(thinkingRunIndex, displayBlocks.map(sanitizeTerminalText), message, i, fullyRevealed);
|
|
1434
1487
|
}
|
|
1435
1488
|
}
|
|
1436
1489
|
let hasToolCalls = message.content.some((c) => c.type === "toolCall");
|
|
@@ -1439,10 +1492,10 @@ var OSC133_ZONE_START = "\x1B]133;A\x07", OSC133_ZONE_END = "\x1B]133;B\x07", OS
|
|
|
1439
1492
|
else if (!hasToolCalls) {
|
|
1440
1493
|
if (message.stopReason === "aborted") {
|
|
1441
1494
|
let abortMessage = message.errorMessage && message.errorMessage !== "Request was aborted" ? message.errorMessage : "Operation aborted";
|
|
1442
|
-
this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", abortMessage), this.outputPad, 0));
|
|
1495
|
+
this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", sanitizeTerminalText(abortMessage)), this.outputPad, 0));
|
|
1443
1496
|
} else if (message.stopReason === "error") {
|
|
1444
1497
|
let errorMsg = message.errorMessage || "Unknown error";
|
|
1445
|
-
this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", `Error: ${errorMsg}`), this.outputPad, 0));
|
|
1498
|
+
this.contentContainer.addChild(new Spacer(1)), this.contentContainer.addChild(new Text(theme.fg("error", `Error: ${sanitizeTerminalText(errorMsg)}`), this.outputPad, 0));
|
|
1446
1499
|
}
|
|
1447
1500
|
}
|
|
1448
1501
|
this.onThinkingAnimationChange?.(this.thinkingAnimationActive);
|
|
@@ -1735,14 +1788,13 @@ var FooterComponent = class {
|
|
|
1735
1788
|
dispose() {
|
|
1736
1789
|
}
|
|
1737
1790
|
render(width) {
|
|
1738
|
-
let state = this.session.state,
|
|
1791
|
+
let state = this.session.state, totals = totalRequestUsage(collectUsageRequests(this.session.sessionManager.getEntries())), { input: totalInput, output: totalOutput, cacheRead: totalCacheRead, cacheWrite: totalCacheWrite } = totals, totalCost = totals.cost, latestCacheHitRate;
|
|
1739
1792
|
for (let entry of this.session.sessionManager.getEntries())
|
|
1740
1793
|
if (entry.type === "message" && entry.message.role === "assistant") {
|
|
1741
|
-
totalInput += entry.message.usage.input, totalOutput += entry.message.usage.output, totalCacheRead += entry.message.usage.cacheRead, totalCacheWrite += entry.message.usage.cacheWrite, totalCost += entry.message.usage.cost.total;
|
|
1742
1794
|
let latestPromptTokens = entry.message.usage.input + entry.message.usage.cacheRead + entry.message.usage.cacheWrite;
|
|
1743
1795
|
latestCacheHitRate = latestPromptTokens > 0 ? entry.message.usage.cacheRead / latestPromptTokens * 100 : void 0;
|
|
1744
1796
|
}
|
|
1745
|
-
let contextUsage = this.session.getContextUsage(), contextWindow = contextUsage?.contextWindow ?? state.model?.contextWindow ?? 0, contextPercentValue = contextUsage?.percent ?? 0, contextPercent = contextUsage?.percent !== null ? contextPercentValue.toFixed(1) : "?", pwd = formatCwdForFooter(this.session.sessionManager.getCwd(), process.env.HOME || process.env.USERPROFILE), branch = this.footerData.getGitBranch();
|
|
1797
|
+
let contextUsage = this.session.getContextUsage(), contextWindow = contextUsage?.contextWindow ?? state.model?.contextWindow ?? 0, contextPercentValue = contextUsage?.percent ?? 0, contextPercent = contextUsage?.percent !== null ? `${contextUsage?.estimated ? "~" : ""}${contextPercentValue.toFixed(1)}` : "?", pwd = formatCwdForFooter(this.session.sessionManager.getCwd(), process.env.HOME || process.env.USERPROFILE), branch = this.footerData.getGitBranch();
|
|
1746
1798
|
branch && (pwd = `${pwd} (${branch})`);
|
|
1747
1799
|
let sessionName = this.session.sessionManager.getSessionName();
|
|
1748
1800
|
sessionName && (pwd = `${pwd} \u2022 ${sessionName}`);
|
|
@@ -1833,8 +1885,8 @@ function renderThemedBox(headerText, content, maxWidth) {
|
|
|
1833
1885
|
}
|
|
1834
1886
|
function renderUsageBox(data, maxWidth) {
|
|
1835
1887
|
let content = [];
|
|
1836
|
-
if (data.sessionTotals && data.sessionTotals.total > 0 && (content.push("
|
|
1837
|
-
content.length > 0 && content.push(""), content.push("Context"), content.push(theme.fg("dim", "Estimated
|
|
1888
|
+
if (data.sessionTotals && (data.sessionTotals.total > 0 || data.sessionTotals.requests || data.sessionTotals.unknownRequests || data.sessionTotals.partialRequests) && (content.push("Parent usage including auxiliary requests"), content.push(` input ${formatTokens(data.sessionTotals.input + (data.sessionTotals.cacheRead ?? 0) + (data.sessionTotals.cacheWrite ?? 0))} output ${formatTokens(data.sessionTotals.output)} total ${formatTokens(data.sessionTotals.total)}${formatCachedSuffix(data.sessionTotals.input, data.sessionTotals.cacheRead ?? 0, data.sessionTotals.cacheWrite ?? 0)}`)), data.sessionTotals?.unknownRequests && content.push(` Usage unavailable for ${data.sessionTotals.unknownRequests} request(s).`), data.sessionTotals?.partialRequests && content.push(` Usage incomplete for ${data.sessionTotals.partialRequests} request(s).`), (data.childTotals?.total || data.childTotals?.unknownRequests || data.childTotals?.partialRequests) && content.push(` children ${formatTokens(data.childTotals.total)} combined ${formatTokens(data.combinedTotals?.total ?? 0)}`), data.childTotals?.unknownRequests && content.push(` Child usage unavailable for ${data.childTotals.unknownRequests} request(s).`), data.childTotals?.partialRequests && content.push(` Child usage incomplete for ${data.childTotals.partialRequests} request(s).`), data.breakdown) {
|
|
1889
|
+
content.length > 0 && content.push(""), content.push("Context"), content.push(theme.fg("dim", "Estimated visible context. Tokenization, images and hidden reasoning may differ."));
|
|
1838
1890
|
let rows = [
|
|
1839
1891
|
{ label: "System prompt", tokens: data.breakdown.systemPrompt },
|
|
1840
1892
|
...data.breakdown.contextFiles.map((file) => ({ label: file.label, tokens: file.tokens })),
|
|
@@ -1842,7 +1894,7 @@ function renderUsageBox(data, maxWidth) {
|
|
|
1842
1894
|
{ label: "Tool definitions", tokens: data.breakdown.toolDefinitions },
|
|
1843
1895
|
{ label: "User messages", tokens: data.breakdown.user },
|
|
1844
1896
|
{ label: "Assistant text", tokens: data.breakdown.assistantText },
|
|
1845
|
-
{ label: "
|
|
1897
|
+
{ label: "Visible thinking", tokens: data.breakdown.thinking },
|
|
1846
1898
|
{ label: "Tool calls", tokens: data.breakdown.toolCalls },
|
|
1847
1899
|
{ label: "Tool results", tokens: data.breakdown.toolResults },
|
|
1848
1900
|
{ label: "Summaries", tokens: data.breakdown.summaries },
|
|
@@ -1865,7 +1917,7 @@ function renderUsageBox(data, maxWidth) {
|
|
|
1865
1917
|
continue;
|
|
1866
1918
|
content.length > 0 && content.push("");
|
|
1867
1919
|
let planName = plan.planLabel ? `${plan.provider} \xB7 ${plan.planLabel}` : plan.provider;
|
|
1868
|
-
content.push(`Plan usage (${planName})`);
|
|
1920
|
+
content.push(`Plan usage (${planName}, cached up to 60s)`);
|
|
1869
1921
|
let labelWidth = Math.max(...plan.windows.map((window) => window.label.length));
|
|
1870
1922
|
for (let window of plan.windows)
|
|
1871
1923
|
content.push(planWindowLine(window, labelWidth));
|
|
@@ -1882,7 +1934,7 @@ function rowLine(row, labelWidth) {
|
|
|
1882
1934
|
}
|
|
1883
1935
|
function renderContextBox(data, maxWidth) {
|
|
1884
1936
|
let { breakdown } = data, content = [];
|
|
1885
|
-
data.model && content.push(data.model), content.push(theme.fg("dim", "Estimated
|
|
1937
|
+
data.model && content.push(data.model), content.push(theme.fg("dim", "Estimated visible context, current session only. Actual tokens and hidden reasoning may differ.")), content.push("");
|
|
1886
1938
|
let rows = [
|
|
1887
1939
|
{ label: "System prompt", tokens: breakdown.systemPrompt },
|
|
1888
1940
|
...breakdown.contextFiles.map((file) => ({ label: file.label, tokens: file.tokens })),
|
|
@@ -1890,7 +1942,7 @@ function renderContextBox(data, maxWidth) {
|
|
|
1890
1942
|
{ label: "Tool definitions", tokens: breakdown.toolDefinitions },
|
|
1891
1943
|
{ label: "User messages", tokens: breakdown.user, count: breakdown.counts.user },
|
|
1892
1944
|
{ label: "Assistant text", tokens: breakdown.assistantText, count: breakdown.counts.assistantText },
|
|
1893
|
-
{ label: "
|
|
1945
|
+
{ label: "Visible thinking", tokens: breakdown.thinking, count: breakdown.counts.thinking },
|
|
1894
1946
|
{ label: "Tool calls", tokens: breakdown.toolCalls, count: breakdown.counts.toolCalls },
|
|
1895
1947
|
{ label: "Tool results", tokens: breakdown.toolResults, count: breakdown.counts.toolResults },
|
|
1896
1948
|
{ label: "Summaries", tokens: breakdown.summaries, count: breakdown.counts.summaries }
|
|
@@ -2059,36 +2111,6 @@ var DaxnutsComponent = class {
|
|
|
2059
2111
|
}
|
|
2060
2112
|
};
|
|
2061
2113
|
|
|
2062
|
-
// packages/coding-agent/dist/modes/interactive/components/boot-ascii.js
|
|
2063
|
-
var MOON_ASCII_SMALL = ["\u263E"];
|
|
2064
|
-
|
|
2065
|
-
// packages/coding-agent/dist/modes/interactive/components/exit-card.js
|
|
2066
|
-
function formatTokens2(count) {
|
|
2067
|
-
return count < 1e3 ? count.toString() : count < 1e4 ? `${(count / 1e3).toFixed(1)}k` : count < 1e6 ? `${Math.round(count / 1e3)}k` : count < 1e7 ? `${(count / 1e6).toFixed(1)}M` : `${Math.round(count / 1e6)}M`;
|
|
2068
|
-
}
|
|
2069
|
-
function computeExitCardStats(entries) {
|
|
2070
|
-
let turns = 0, tokens = 0, fileOps = createFileOps();
|
|
2071
|
-
for (let entry of entries) {
|
|
2072
|
-
if (entry.type !== "message")
|
|
2073
|
-
continue;
|
|
2074
|
-
let message = entry.message;
|
|
2075
|
-
if (message.role === "user")
|
|
2076
|
-
turns++;
|
|
2077
|
-
else if (message.role === "assistant") {
|
|
2078
|
-
let usage = message.usage;
|
|
2079
|
-
usage && (tokens += (usage.input ?? 0) + (usage.cacheRead ?? 0) + (usage.cacheWrite ?? 0) + (usage.output ?? 0)), extractFileOpsFromMessage(message, fileOps);
|
|
2080
|
-
}
|
|
2081
|
-
}
|
|
2082
|
-
let { modifiedFiles } = computeFileLists(fileOps);
|
|
2083
|
-
return { turns, tokens, filesChanged: modifiedFiles.length };
|
|
2084
|
-
}
|
|
2085
|
-
function buildExitCard(stats) {
|
|
2086
|
-
if (stats.turns === 0)
|
|
2087
|
-
return [];
|
|
2088
|
-
let line1 = `${MOON_ASCII_SMALL[0] ?? "\u263E"} ${stats.turns} turn${stats.turns === 1 ? "" : "s"} \xB7 ${formatTokens2(stats.tokens)} tok`, line2 = `${stats.filesChanged} file${stats.filesChanged === 1 ? "" : "s"} changed`, moonPad = " ", innerLeft = ` ${line1}`, innerRight = ` ${moonPad}${line2}`, innerWidth = Math.max(innerLeft.length, innerRight.length), pad = (s) => `${s}${" ".repeat(Math.max(0, innerWidth - s.length))}`, top = `\u256D${"\u2500".repeat(innerWidth + 2)}\u256E`, bottom = `\u2570${"\u2500".repeat(innerWidth + 2)}\u256F`, body1 = `\u2502 ${pad(innerLeft)} \u2502`, body2 = `\u2502 ${pad(innerRight)} \u2502`;
|
|
2089
|
-
return [top, body1, body2, bottom];
|
|
2090
|
-
}
|
|
2091
|
-
|
|
2092
2114
|
// packages/coding-agent/dist/modes/interactive/components/extension-editor.js
|
|
2093
2115
|
import { spawn } from "node:child_process";
|
|
2094
2116
|
import * as fs from "node:fs";
|
|
@@ -2140,7 +2162,7 @@ var ExtensionEditorComponent = class extends Container6 {
|
|
|
2140
2162
|
fs.writeFileSync(tmpFile, currentText, "utf-8"), this.tui.stop();
|
|
2141
2163
|
let [editor, ...editorArgs] = editorCmd.split(" ");
|
|
2142
2164
|
if (process.stdout.write(`Launching external editor: ${editorCmd}
|
|
2143
|
-
|
|
2165
|
+
lunR will resume when the editor exits.
|
|
2144
2166
|
`), await new Promise((resolve4) => {
|
|
2145
2167
|
let child = spawn(editor, [...editorArgs, tmpFile], {
|
|
2146
2168
|
stdio: "inherit",
|
|
@@ -5601,18 +5623,6 @@ function isAnthropicSubscriptionAuthKey(apiKey) {
|
|
|
5601
5623
|
function isUnknownModel(model) {
|
|
5602
5624
|
return !!model && model.provider === "unknown" && model.id === "unknown" && model.api === "unknown";
|
|
5603
5625
|
}
|
|
5604
|
-
function quoteIfNeeded(value) {
|
|
5605
|
-
return value.length > 0 && !/[^a-zA-Z0-9_\-./~:@]/.test(value) ? value : `'${value.replace(/'/g, "'\\''")}'`;
|
|
5606
|
-
}
|
|
5607
|
-
function formatResumeCommand(sessionManager) {
|
|
5608
|
-
if (!process.stdout.isTTY || !sessionManager.isPersisted())
|
|
5609
|
-
return;
|
|
5610
|
-
let sessionFile = sessionManager.getSessionFile();
|
|
5611
|
-
if (!sessionFile || !fs2.existsSync(sessionFile))
|
|
5612
|
-
return;
|
|
5613
|
-
let args = [APP_NAME];
|
|
5614
|
-
return sessionManager.usesDefaultSessionDir() || args.push("--session-dir", quoteIfNeeded(sessionManager.getSessionDir())), args.push("--session", sessionManager.getSessionId()), args.join(" ");
|
|
5615
|
-
}
|
|
5616
5626
|
function hasDefaultModelProvider(providerId) {
|
|
5617
5627
|
return providerId in defaultModelPerProvider;
|
|
5618
5628
|
}
|
|
@@ -5783,15 +5793,15 @@ var InteractiveMode = class _InteractiveMode {
|
|
|
5783
5793
|
}
|
|
5784
5794
|
constructor(runtimeHost, options = {}) {
|
|
5785
5795
|
this.runtimeHost = runtimeHost, this.options = options, this.autoTrustOnReloadCwd = options.autoTrustOnReloadCwd, this.runtimeHost.setBeforeSessionInvalidate((reason) => {
|
|
5786
|
-
this.resetExtensionUI(), this.previousPermissionMode = void 0, this.preGoalPermissionMode = void 0,
|
|
5796
|
+
this.stopPlanUsagePolling(), this.resetExtensionUI(), this.previousPermissionMode = void 0, this.preGoalPermissionMode = void 0, clearRegistry(), reason !== "fork" && clearRollback(this.sessionManager.getSessionId());
|
|
5787
5797
|
}), this.runtimeHost.setRebindSession(async () => {
|
|
5788
|
-
await this.rebindCurrentSession({ renderBeforeBind: !0 }), initRollback(this.settingsManager, this.sessionManager.getSessionId());
|
|
5789
|
-
let mode = this.
|
|
5790
|
-
|
|
5791
|
-
}), this.version = VERSION, this.ui = options.startupView?.ui ?? new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor()), this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink()), registerPermissionModeBridge(() =>
|
|
5798
|
+
await this.rebindCurrentSession({ renderBeforeBind: !0 }), this.startPlanUsagePolling(), initRollback(this.settingsManager, this.sessionManager.getSessionId());
|
|
5799
|
+
let mode = this.session.permissionMode;
|
|
5800
|
+
this.syncPermissionModeEffects(mode);
|
|
5801
|
+
}), this.version = VERSION, this.ui = options.startupView?.ui ?? new TUI(new ProcessTerminal(), this.settingsManager.getShowHardwareCursor()), this.ui.setClearOnShrink(this.settingsManager.getClearOnShrink()), registerPermissionModeBridge(() => this.session.permissionMode), registerPermissionModeControlBridge({
|
|
5792
5802
|
enterGoalAuto: () => this.enterGoalAuto(),
|
|
5793
5803
|
leaveGoalAuto: () => this.leaveGoalAuto()
|
|
5794
|
-
}),
|
|
5804
|
+
}), this.headerContainer = new Container19(), options.startupView && (this.headerContainer.addChild(new Spacer19(1)), this.headerContainer.addChild(options.startupView.header), this.customFooter = options.startupView.footer), this.loadedResourcesContainer = new Container19(), this.chatContainer = new Container19(), this.pendingMessagesContainer = new Container19(), this.statusContainer = options.startupView?.statusContainer ?? new Container19(), this.widgetContainerAbove = new Container19(), this.widgetContainerBelow = new Container19(), this.keybindings = options.startupView?.keybindings ?? KeybindingsManager.create(), setKeybindings(this.keybindings);
|
|
5795
5805
|
let editorPaddingX = this.settingsManager.getEditorPaddingX(), autocompleteMaxVisible = this.settingsManager.getAutocompleteMaxVisible();
|
|
5796
5806
|
this.defaultEditor = options.startupView?.editor ?? new CustomEditor(this.ui, getEditorTheme(), this.keybindings, {
|
|
5797
5807
|
paddingX: editorPaddingX,
|
|
@@ -5914,7 +5924,7 @@ var InteractiveMode = class _InteractiveMode {
|
|
|
5914
5924
|
return resp;
|
|
5915
5925
|
}
|
|
5916
5926
|
return "reject";
|
|
5917
|
-
}), initRollback(this.settingsManager, this.sessionManager.getSessionId()), setRollbackWarningHandler((msg) => this.showStatus(msg)), this.syncPermissionModeEffects(this.
|
|
5927
|
+
}), initRollback(this.settingsManager, this.sessionManager.getSessionId()), setRollbackWarningHandler((msg) => this.showStatus(msg)), this.syncPermissionModeEffects(this.session.permissionMode), await this.themeController.applyFromSettings(), this.headerContainer.clear(), this.options.verbose || !this.settingsManager.getQuietStartup()) {
|
|
5918
5928
|
let header = theme.bold(theme.fg("accent", APP_NAME)) + theme.fg("dim", ` v${this.version}`);
|
|
5919
5929
|
this.builtInHeader = new BootScreenComponent(header, this.buildBootRows()), this.headerContainer.addChild(new Spacer19(1)), this.headerContainer.addChild(this.builtInHeader);
|
|
5920
5930
|
} else
|
|
@@ -5957,17 +5967,22 @@ var InteractiveMode = class _InteractiveMode {
|
|
|
5957
5967
|
this.deferredBuiltinAttachPromise && await this.deferredBuiltinAttachPromise;
|
|
5958
5968
|
}
|
|
5959
5969
|
planUsageTimer;
|
|
5970
|
+
planUsageBridge;
|
|
5960
5971
|
startPlanUsagePolling() {
|
|
5961
|
-
|
|
5972
|
+
this.stopPlanUsagePolling();
|
|
5973
|
+
let bridge = getUsageServiceBridge(this.session.modelRuntime);
|
|
5962
5974
|
if (!bridge)
|
|
5963
5975
|
return;
|
|
5964
|
-
bridge.setOnUpdate(() => this.ui.requestRender());
|
|
5976
|
+
this.planUsageBridge = bridge, bridge.setOnUpdate(() => this.ui.requestRender());
|
|
5965
5977
|
let tick = () => {
|
|
5966
5978
|
let provider = this.session.model?.provider;
|
|
5967
5979
|
provider && bridge.prefetch(provider);
|
|
5968
5980
|
};
|
|
5969
5981
|
tick(), this.planUsageTimer = setInterval(tick, 6e4), this.planUsageTimer.unref?.();
|
|
5970
5982
|
}
|
|
5983
|
+
stopPlanUsagePolling() {
|
|
5984
|
+
this.planUsageTimer && (clearInterval(this.planUsageTimer), this.planUsageTimer = void 0), this.planUsageBridge?.setOnUpdate(void 0), this.planUsageBridge = void 0;
|
|
5985
|
+
}
|
|
5971
5986
|
/** Background npm version check. Never blocks first paint. Workspace installs skip. */
|
|
5972
5987
|
async maybeNotifyCliUpdate() {
|
|
5973
5988
|
try {
|
|
@@ -6049,7 +6064,7 @@ var InteractiveMode = class _InteractiveMode {
|
|
|
6049
6064
|
if (extendedKeys !== "on" && extendedKeys !== "always")
|
|
6050
6065
|
return "tmux extended-keys is off. Modified Enter keys may not work. Add `set -g extended-keys on` to ~/.tmux.conf and restart tmux.";
|
|
6051
6066
|
if (extendedKeysFormat === "xterm")
|
|
6052
|
-
return "tmux extended-keys-format is xterm.
|
|
6067
|
+
return "tmux extended-keys-format is xterm. lunR works best with csi-u. Add `set -g extended-keys-format csi-u` to ~/.tmux.conf and restart tmux.";
|
|
6053
6068
|
}
|
|
6054
6069
|
}
|
|
6055
6070
|
getMarkdownThemeWithSettings() {
|
|
@@ -7344,7 +7359,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7344
7359
|
break;
|
|
7345
7360
|
}
|
|
7346
7361
|
case "agent_end":
|
|
7347
|
-
this.session.refreshModelFromRegistry(), this.
|
|
7362
|
+
this.session.refreshModelFromRegistry(), this.ui.terminal.setProgress(!1), this.clearStatusIndicator("working"), this.stopSmoothStreaming(), this.streamingComponent && (this.chatContainer.removeChild(this.streamingComponent), this.streamingComponent = void 0, this.streamingMessage = void 0), this.pendingTools.clear(), this.browserActivityComponent = void 0, this.maybeAutoNameSession(), captureTreeChanges(this.sessionManager.getCwd(), this.sessionManager.getSessionId()), this.ui.requestRender();
|
|
7348
7363
|
break;
|
|
7349
7364
|
case "agent_settled":
|
|
7350
7365
|
if (this.pendingCompactionRender) {
|
|
@@ -7360,7 +7375,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7360
7375
|
break;
|
|
7361
7376
|
}
|
|
7362
7377
|
case "compaction_end": {
|
|
7363
|
-
this.
|
|
7378
|
+
this.ui.terminal.setProgress(!1), this.autoCompactionEscapeHandler && (this.defaultEditor.onEscape = this.autoCompactionEscapeHandler, this.autoCompactionEscapeHandler = void 0), this.clearStatusIndicator("compaction"), event.aborted ? event.reason === "manual" ? this.showError("Compaction cancelled") : this.showStatus("Auto-compaction cancelled") : event.result ? this.session.isIdle ? this.renderCompactionResult(event.result) : this.pendingCompactionRender = event.result : event.errorMessage && (event.reason === "manual" ? this.showError(event.errorMessage) : (this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(theme.fg("error", event.errorMessage), 1, 0)))), this.flushCompactionQueue({ willRetry: event.willRetry }), this.ui.requestRender();
|
|
7364
7379
|
break;
|
|
7365
7380
|
}
|
|
7366
7381
|
case "auto_retry_start": {
|
|
@@ -7534,7 +7549,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7534
7549
|
}
|
|
7535
7550
|
/**
|
|
7536
7551
|
* Show a transcript notice when a completed assistant message paid for a
|
|
7537
|
-
* significant cache miss.
|
|
7552
|
+
* significant cache miss. The overlap estimate cannot establish identical prompt content. It also shows
|
|
7538
7553
|
* a model switch, or an idle gap past the cache TTL.
|
|
7539
7554
|
*/
|
|
7540
7555
|
maybeShowCacheMissNotice(message) {
|
|
@@ -7546,8 +7561,8 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7546
7561
|
addCacheMissNotice(miss) {
|
|
7547
7562
|
if (miss.missedTokens < 2e4 && miss.missedCost < 0.1)
|
|
7548
7563
|
return;
|
|
7549
|
-
let cost = miss.missedCost >= 0.01 ? ` (~$${miss.missedCost.toFixed(2)})` : "", reBilled =
|
|
7550
|
-
miss.modelChanged ? label = "
|
|
7564
|
+
let cost = miss.missedCost >= 0.01 ? ` (~$${miss.missedCost.toFixed(2)})` : "", reBilled = `~${formatTokens(miss.missedTokens)} tokens may have missed cache${cost}`, label = "Estimated cache miss";
|
|
7565
|
+
miss.modelChanged ? label = "Estimated cache miss after model switch" : miss.idleMs >= 3e5 && (label = `Cache miss after ${Math.round(miss.idleMs / 6e4)}m idle`);
|
|
7551
7566
|
let text = theme.fg("warning", `${label}: ${reBilled}`);
|
|
7552
7567
|
this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(text, 1, 0));
|
|
7553
7568
|
}
|
|
@@ -7596,7 +7611,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7596
7611
|
async shutdown(options) {
|
|
7597
7612
|
if (this.isShuttingDown)
|
|
7598
7613
|
return;
|
|
7599
|
-
if (this.isShuttingDown = !0, this.
|
|
7614
|
+
if (this.isShuttingDown = !0, this.session.stopAdmission(), this.unregisterSessionTransfer?.(), this.stopSmoothStreaming(), this.stopPlanUsagePolling(), options?.fromSignal) {
|
|
7600
7615
|
await this.runtimeHost.dispose(), this.themeController.disableAutoSync(), await this.ui.terminal.drainInput(1e3);
|
|
7601
7616
|
try {
|
|
7602
7617
|
killAll();
|
|
@@ -7607,14 +7622,7 @@ ${message}`, ["Yes", "No"], opts) === "Yes";
|
|
|
7607
7622
|
this.themeController.disableAutoSync(), await this.ui.terminal.drainInput(1e3);
|
|
7608
7623
|
let tracked = list().filter((p) => p.status !== "exited");
|
|
7609
7624
|
tracked.length > 0 && await this.confirmDisclaimerWithLabels("Session processes still running", `${tracked.length} process(es) started during this session are still alive.
|
|
7610
|
-
Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispose();
|
|
7611
|
-
let entries = this.sessionManager?.getEntries?.(), exitStats = entries ? computeExitCardStats(entries) : { turns: 0, tokens: 0, filesChanged: 0 }, cardLines = buildExitCard(exitStats);
|
|
7612
|
-
cardLines.length > 0 && process.stdout.write(`${chalk.dim(cardLines.join(`
|
|
7613
|
-
`))}
|
|
7614
|
-
`);
|
|
7615
|
-
let resumeCommand = this.sessionManager && typeof this.sessionManager.isPersisted == "function" ? formatResumeCommand(this.sessionManager) : void 0;
|
|
7616
|
-
resumeCommand && process.stdout.write(`${chalk.dim("To resume this session:")} ${resumeCommand}
|
|
7617
|
-
`), process.exit(0);
|
|
7625
|
+
Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispose(), process.exit(0);
|
|
7618
7626
|
}
|
|
7619
7627
|
emergencyTerminalExit() {
|
|
7620
7628
|
this.isShuttingDown = !0, this.unregisterSignalHandlers(), killTrackedDetachedChildren();
|
|
@@ -7740,7 +7748,7 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
|
|
|
7740
7748
|
recordTuiActivity(this.sessionManager, this.runtimeHost.services.agentDir), this.session.cycleThinkingLevel() === void 0 ? this.showStatus("Current model does not support thinking") : (this.footer.invalidate(), this.updateEditorBorderColor());
|
|
7741
7749
|
}
|
|
7742
7750
|
cyclePermissionMode() {
|
|
7743
|
-
this.applyPermissionMode(nextPermissionMode(
|
|
7751
|
+
this.applyPermissionMode(nextPermissionMode(this.session.permissionMode), { silent: !0 });
|
|
7744
7752
|
}
|
|
7745
7753
|
async cycleModel(direction) {
|
|
7746
7754
|
if (!(this.runtimeHost.isDetached || this.transferInProgress)) {
|
|
@@ -7816,7 +7824,7 @@ Kill them before exit?`) && killAll(), this.stop(), await this.runtimeHost.dispo
|
|
|
7816
7824
|
fs2.writeFileSync(tmpFile, currentText, "utf-8"), this.ui.stop();
|
|
7817
7825
|
let [editor, ...editorArgs] = editorCmd.split(" ");
|
|
7818
7826
|
if (process.stdout.write(`Launching external editor: ${editorCmd}
|
|
7819
|
-
|
|
7827
|
+
lunR will resume when the editor exits.
|
|
7820
7828
|
`), await new Promise((resolve4) => {
|
|
7821
7829
|
let child = spawn3(editor, [...editorArgs, tmpFile], {
|
|
7822
7830
|
stdio: "inherit",
|
|
@@ -8153,7 +8161,7 @@ Pi will resume when the editor exits.
|
|
|
8153
8161
|
this.settingsManager.setClearOnShrink(enabled), this.ui.setClearOnShrink(enabled), !enabled && !this.activeStatusIndicator && this.statusContainer.clear();
|
|
8154
8162
|
},
|
|
8155
8163
|
onShowTerminalProgressChange: (enabled) => {
|
|
8156
|
-
this.settingsManager.setShowTerminalProgress(enabled);
|
|
8164
|
+
this.settingsManager.setShowTerminalProgress(enabled), enabled || this.ui.terminal.setProgress(!1);
|
|
8157
8165
|
},
|
|
8158
8166
|
onModelTiersEnabledChange: (enabled) => {
|
|
8159
8167
|
this.settingsManager.setModelTiersEnabled(enabled), getModelTiersBridge()?.refreshToolDescription();
|
|
@@ -8245,7 +8253,7 @@ Pi will resume when the editor exits.
|
|
|
8245
8253
|
return;
|
|
8246
8254
|
}
|
|
8247
8255
|
if (action === "status") {
|
|
8248
|
-
this.showStatus((await import("./service-
|
|
8256
|
+
this.showStatus((await import("./service-IHLGFLBT.js")).serviceStatusText());
|
|
8249
8257
|
return;
|
|
8250
8258
|
}
|
|
8251
8259
|
this.ui.stop();
|
|
@@ -8260,7 +8268,7 @@ Pi will resume when the editor exits.
|
|
|
8260
8268
|
} finally {
|
|
8261
8269
|
this.ui.start(), this.ui.requestRender(!0);
|
|
8262
8270
|
}
|
|
8263
|
-
this.showStatus((await import("./service-
|
|
8271
|
+
this.showStatus((await import("./service-IHLGFLBT.js")).serviceStatusText());
|
|
8264
8272
|
})().catch((error) => this.showStatus(error instanceof Error ? error.message : String(error)));
|
|
8265
8273
|
},
|
|
8266
8274
|
onDefaultPermissionModeChange: (mode) => {
|
|
@@ -8336,7 +8344,14 @@ Pi will resume when the editor exits.
|
|
|
8336
8344
|
let extraDefaults = result.incomplete.length, asked = [], ollama, runner = this.session.extensionRunner, cloudRefresh = globalThis[/* @__PURE__ */ Symbol.for("@lunr/ollama-cloud-refresh")];
|
|
8337
8345
|
if (cloudRefresh && allowNetwork)
|
|
8338
8346
|
try {
|
|
8339
|
-
|
|
8347
|
+
let resolution = await runtime.getAuth("ollama-cloud");
|
|
8348
|
+
await cloudRefresh({
|
|
8349
|
+
ui: runner.createCommandContext().ui,
|
|
8350
|
+
auth: resolution ? {
|
|
8351
|
+
apiKey: resolution.auth.apiKey,
|
|
8352
|
+
headers: Object.fromEntries(Object.entries(resolution.auth.headers ?? {}).filter((entry) => entry[1] !== null))
|
|
8353
|
+
} : void 0
|
|
8354
|
+
});
|
|
8340
8355
|
} catch (error) {
|
|
8341
8356
|
ollama = `ollama-cloud refresh failed: ${error instanceof Error ? error.message : String(error)}`;
|
|
8342
8357
|
}
|
|
@@ -9517,9 +9532,22 @@ Gist: ${gistUrl}`);
|
|
|
9517
9532
|
let prompt = `Generate a title of at most 6 words summarizing this request. Reply with the title only \u2014 no quotes, no trailing punctuation, no prefix.
|
|
9518
9533
|
|
|
9519
9534
|
Request:
|
|
9520
|
-
${firstUserText.slice(0, 2e3)}`,
|
|
9535
|
+
${firstUserText.slice(0, 2e3)}`, requestSessionId = this.sessionManager.getSessionId(), requestSessionFile = this.sessionManager.getSessionFile(), response = await this.session.modelRuntime.complete(model, {
|
|
9521
9536
|
messages: [{ role: "user", content: [{ type: "text", text: prompt }], timestamp: Date.now() }]
|
|
9522
|
-
})
|
|
9537
|
+
});
|
|
9538
|
+
if (this.sessionManager.getSessionId() !== requestSessionId) {
|
|
9539
|
+
if (requestSessionFile) {
|
|
9540
|
+
let target = SessionManager.open(requestSessionFile);
|
|
9541
|
+
try {
|
|
9542
|
+
target.appendRequestUsage("title", response);
|
|
9543
|
+
} finally {
|
|
9544
|
+
target.dispose();
|
|
9545
|
+
}
|
|
9546
|
+
}
|
|
9547
|
+
return;
|
|
9548
|
+
}
|
|
9549
|
+
this.sessionManager.appendRequestUsage("title", response);
|
|
9550
|
+
let title = response.content.filter((c) => c.type === "text").map((c) => c.text).join(" ").replace(/\s+/g, " ").trim();
|
|
9523
9551
|
if (title = title.replace(/^["'`]+|["'`.!?]+$/g, "").trim(), !title || this.sessionManager.getSessionName())
|
|
9524
9552
|
return;
|
|
9525
9553
|
this.session.setSessionName(title);
|
|
@@ -9529,11 +9557,9 @@ ${firstUserText.slice(0, 2e3)}`, title = (await this.session.modelRuntime.comple
|
|
|
9529
9557
|
}
|
|
9530
9558
|
handleSessionCommand() {
|
|
9531
9559
|
let stats = this.session.getSessionStats(), sessionName = this.sessionManager.getSessionName(), entries = this.sessionManager.getEntries(), cacheWaste = computeCacheWaste(entries, this.session.modelRuntime), perModelMap = /* @__PURE__ */ new Map();
|
|
9532
|
-
for (let
|
|
9533
|
-
|
|
9534
|
-
|
|
9535
|
-
let message = entry.message, usage = message.usage, key = `${message.provider}/${message.responseModel ?? message.model}`, bucket = perModelMap.get(key);
|
|
9536
|
-
bucket || (bucket = { key, cost: 0, tokens: 0 }, perModelMap.set(key, bucket)), bucket.cost += usage.cost.total, bucket.tokens += usage.input + usage.output + usage.cacheRead + usage.cacheWrite;
|
|
9560
|
+
for (let request of collectUsageRequests(entries)) {
|
|
9561
|
+
let key = `${request.provider}/${request.model}`, bucket = perModelMap.get(key) ?? { key, cost: 0, tokens: 0 };
|
|
9562
|
+
bucket.cost += request.usage.cost.total, bucket.tokens += usageTokens(request.usage), perModelMap.set(key, bucket);
|
|
9537
9563
|
}
|
|
9538
9564
|
let perModel = Array.from(perModelMap.values()).sort((a, b) => b.cost - a.cost), info = `${theme.bold("Session Info")}
|
|
9539
9565
|
|
|
@@ -9548,7 +9574,7 @@ ${firstUserText.slice(0, 2e3)}`, title = (await this.session.modelRuntime.comple
|
|
|
9548
9574
|
`, info += `${theme.fg("dim", "Assistant:")} ${stats.assistantMessages}
|
|
9549
9575
|
`, info += `${theme.fg("dim", "Tools:")} ${stats.toolCalls} calls, ${stats.toolResults} results
|
|
9550
9576
|
|
|
9551
|
-
`, info += `${theme.bold("
|
|
9577
|
+
`, info += `${theme.bold("Parent tokens including auxiliary requests")}
|
|
9552
9578
|
`;
|
|
9553
9579
|
let { input, cacheRead, cacheWrite } = stats.tokens, promptTokens = input + cacheRead + cacheWrite;
|
|
9554
9580
|
if (info += `${theme.fg("dim", "Input:")} ${promptTokens.toLocaleString()}
|
|
@@ -9562,6 +9588,12 @@ ${firstUserText.slice(0, 2e3)}`, title = (await this.session.modelRuntime.comple
|
|
|
9562
9588
|
}
|
|
9563
9589
|
if (info += `${theme.fg("dim", "Output:")} ${stats.tokens.output.toLocaleString()}
|
|
9564
9590
|
`, info += `${theme.fg("dim", "Total:")} ${stats.tokens.total.toLocaleString()}
|
|
9591
|
+
`, stats.childUsage?.total && (info += `Children: ${stats.childUsage.total.toLocaleString()} tokens, $${stats.childUsage.cost.toFixed(3)}
|
|
9592
|
+
`, info += `Combined: ${stats.combinedUsage?.total.toLocaleString()} tokens, $${stats.combinedUsage?.cost.toFixed(3)}
|
|
9593
|
+
`), stats.parentUsage?.unknownRequests && (info += `Usage unavailable for ${stats.parentUsage.unknownRequests} request(s).
|
|
9594
|
+
`), stats.parentUsage?.partialRequests && (info += `Usage incomplete for ${stats.parentUsage.partialRequests} request(s).
|
|
9595
|
+
`), stats.parentUsage?.unknownCosts && (info += `Pricing unavailable for ${stats.parentUsage.unknownCosts} request(s).
|
|
9596
|
+
`), info += `Costs use catalog estimates unless the provider reports its account charge.
|
|
9565
9597
|
`, stats.cost > 0 || cacheWaste.missedTokens > 0) {
|
|
9566
9598
|
if (info += `
|
|
9567
9599
|
${theme.bold("Cost")}
|
|
@@ -9572,8 +9604,8 @@ ${theme.bold("Cost")}
|
|
|
9572
9604
|
if (cacheWaste.missedTokens > 0) {
|
|
9573
9605
|
let missLabel = cacheWaste.missCount === 1 ? "1 miss" : `${cacheWaste.missCount} misses`, detail = `${cacheWaste.missedTokens.toLocaleString()} tokens, ${missLabel}`;
|
|
9574
9606
|
info += cacheWaste.missedCost >= 1e-4 ? `
|
|
9575
|
-
${theme.fg("dim", "
|
|
9576
|
-
${theme.fg("dim", "
|
|
9607
|
+
${theme.fg("dim", "Estimated cache misses:")} $${cacheWaste.missedCost.toFixed(3)} ${theme.fg("dim", `(${detail})`)}` : `
|
|
9608
|
+
${theme.fg("dim", "Estimated cache misses:")} ${detail}`;
|
|
9577
9609
|
}
|
|
9578
9610
|
}
|
|
9579
9611
|
this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(info, 1, 0)), this.ui.requestRender();
|
|
@@ -9612,13 +9644,23 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
|
9612
9644
|
// lunr: /usage — current session only: token totals, live context split,
|
|
9613
9645
|
// context-window bar, and subscription plan usage.
|
|
9614
9646
|
async handleUsageCommand() {
|
|
9615
|
-
let stats = this.session.getSessionStats(), sessionTotals = stats.tokens.total > 0 ? {
|
|
9647
|
+
let stats = this.session.getSessionStats(), sessionTotals = stats.tokens.total > 0 || stats.parentUsage?.requests || stats.parentUsage?.unknownRequests || stats.parentUsage?.partialRequests ? {
|
|
9616
9648
|
input: stats.tokens.input,
|
|
9617
9649
|
output: stats.tokens.output,
|
|
9618
9650
|
cacheRead: stats.tokens.cacheRead,
|
|
9619
9651
|
cacheWrite: stats.tokens.cacheWrite,
|
|
9620
|
-
total: stats.tokens.total
|
|
9621
|
-
|
|
9652
|
+
total: stats.tokens.total,
|
|
9653
|
+
requests: stats.parentUsage?.requests,
|
|
9654
|
+
unknownRequests: stats.parentUsage?.unknownRequests,
|
|
9655
|
+
partialRequests: stats.parentUsage?.partialRequests
|
|
9656
|
+
} : void 0, context = this.session.getContextUsage(), provider = this.session.model?.provider, planResult = await getAllPlanUsageResults(provider, this.session.modelRuntime), breakdown = this.collectUsageBreakdown(), lines = renderUsageBox({
|
|
9657
|
+
sessionTotals,
|
|
9658
|
+
childTotals: stats.childUsage,
|
|
9659
|
+
combinedTotals: stats.combinedUsage,
|
|
9660
|
+
context,
|
|
9661
|
+
plan: planResult.usages,
|
|
9662
|
+
breakdown
|
|
9663
|
+
}, this.ui.terminal.columns);
|
|
9622
9664
|
this.chatContainer.addChild(new Spacer19(1)), this.chatContainer.addChild(new Text21(lines.join(`
|
|
9623
9665
|
`), 1, 0)), planResult.errors.length > 0 && this.showStatus(planResult.errors.join(`
|
|
9624
9666
|
`)), this.ui.requestRender();
|
|
@@ -9644,9 +9686,9 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
|
9644
9686
|
}
|
|
9645
9687
|
// /plan is a shortcut into read-only mode for planning.
|
|
9646
9688
|
async handlePlanCommand(args) {
|
|
9647
|
-
let sub = args.toLowerCase(), inReadOnly =
|
|
9689
|
+
let sub = args.toLowerCase(), inReadOnly = this.session.permissionMode === "read-only";
|
|
9648
9690
|
if (sub === "status") {
|
|
9649
|
-
this.showStatus(inReadOnly ? "Read mode is active. /plan off to leave it." : `Permission mode: ${
|
|
9691
|
+
this.showStatus(inReadOnly ? "Read mode is active. /plan off to leave it." : `Permission mode: ${this.session.permissionMode}.`);
|
|
9650
9692
|
return;
|
|
9651
9693
|
}
|
|
9652
9694
|
if (sub !== "" && sub !== "on" && sub !== "off") {
|
|
@@ -9663,7 +9705,7 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
|
9663
9705
|
handleModeCommand(args) {
|
|
9664
9706
|
let sub = args.toLowerCase();
|
|
9665
9707
|
if (sub === "status") {
|
|
9666
|
-
this.showStatus(`Permission mode: ${
|
|
9708
|
+
this.showStatus(`Permission mode: ${this.session.permissionMode === "read-only" ? "read" : this.session.permissionMode}`);
|
|
9667
9709
|
return;
|
|
9668
9710
|
}
|
|
9669
9711
|
if (sub === "yolo" || sub === "auto" || sub === "read-only" || sub === "read") {
|
|
@@ -9689,23 +9731,23 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
|
9689
9731
|
}
|
|
9690
9732
|
/** Apply addendum + auto-rollback for a mode without a status toast. */
|
|
9691
9733
|
syncPermissionModeEffects(mode) {
|
|
9692
|
-
this.runtimeHost.isDetached || this.transferInProgress || (this.
|
|
9734
|
+
this.runtimeHost.isDetached || this.transferInProgress || (this.session.setPermissionMode(mode), mode === "auto" && enableRollbackForSession(this.sessionManager.getSessionId()));
|
|
9693
9735
|
}
|
|
9694
9736
|
// lunr: `/goal` forces session auto without writing settings.
|
|
9695
9737
|
enterGoalAuto() {
|
|
9696
|
-
let next = nextModeForGoal(
|
|
9697
|
-
this.preGoalPermissionMode = next.saved, next.mode !==
|
|
9738
|
+
let next = nextModeForGoal(this.session.permissionMode, "enter", this.preGoalPermissionMode);
|
|
9739
|
+
this.preGoalPermissionMode = next.saved, next.mode !== this.session.permissionMode && this.applyPermissionMode(next.mode, { silent: !0 });
|
|
9698
9740
|
}
|
|
9699
9741
|
leaveGoalAuto() {
|
|
9700
|
-
let next = nextModeForGoal(
|
|
9701
|
-
this.preGoalPermissionMode = next.saved, next.mode !==
|
|
9742
|
+
let next = nextModeForGoal(this.session.permissionMode, "leave", this.preGoalPermissionMode);
|
|
9743
|
+
this.preGoalPermissionMode = next.saved, next.mode !== this.session.permissionMode && this.applyPermissionMode(next.mode, { silent: !0 });
|
|
9702
9744
|
}
|
|
9703
9745
|
applyPermissionMode(mode, opts) {
|
|
9704
9746
|
if (this.runtimeHost.isDetached || this.transferInProgress)
|
|
9705
9747
|
return;
|
|
9706
|
-
|
|
9707
|
-
let prev =
|
|
9708
|
-
mode === "read-only" && prev !== "read-only" && (this.previousPermissionMode = prev), setPermissionMode(mode), this.ui.requestRender(), mode === "
|
|
9748
|
+
recordTuiActivity(this.sessionManager, this.runtimeHost.services.agentDir);
|
|
9749
|
+
let prev = this.session.permissionMode;
|
|
9750
|
+
mode === "read-only" && prev !== "read-only" && (this.previousPermissionMode = prev), this.session.setPermissionMode(mode), this.ui.requestRender(), mode === "auto" && prev !== "auto" ? enableRollbackForSession(this.sessionManager.getSessionId()) : mode !== "auto" && prev === "auto" && disableRollbackForSession(this.sessionManager.getSessionId()), !opts?.silent && (mode === "auto" && prev !== "auto" ? this.showStatus("Auto mode active \u2014 fully autonomous. Rollback enabled for this session.") : mode === "read-only" ? this.showStatus("Read mode active. Changes are blocked.") : this.showStatus(`Permission mode: ${mode}`));
|
|
9709
9751
|
}
|
|
9710
9752
|
// Approval dialog for one subagent call launching more than two children.
|
|
9711
9753
|
// "Reject with feedback" collects a one-line
|
|
@@ -9764,37 +9806,60 @@ ${theme.fg("dim", "Cache Re-billed:")} ${detail}`;
|
|
|
9764
9806
|
this.showWarning("Wait for the current response to finish before running /rollback.");
|
|
9765
9807
|
return;
|
|
9766
9808
|
}
|
|
9767
|
-
if (!isRollbackEnabled()) {
|
|
9809
|
+
if (!isRollbackEnabled(this.sessionManager.getSessionId())) {
|
|
9768
9810
|
this.showStatus("Rollback is disabled \u2014 enable it in /settings \u2192 Rollback");
|
|
9769
9811
|
return;
|
|
9770
9812
|
}
|
|
9771
|
-
let
|
|
9772
|
-
|
|
9813
|
+
let recoveryBlocked = getRollbackRecoveryBlockReason(this.sessionManager.getSessionId());
|
|
9814
|
+
if (recoveryBlocked) {
|
|
9815
|
+
this.showWarning(recoveryBlocked);
|
|
9816
|
+
return;
|
|
9817
|
+
}
|
|
9818
|
+
let turnsToConsume = Math.max(1, peekRollbackTurnsConsumed(this.sessionManager.getSessionId())), branch = this.sessionManager.getBranch(), targetUserId = getRollbackTargetUserId(this.sessionManager.getSessionId());
|
|
9819
|
+
if (targetUserId && !branch.some((entry) => entry.id === targetUserId)) {
|
|
9820
|
+
this.showWarning("Rollback recovery belongs to another chat branch. Return to that branch to retry.");
|
|
9821
|
+
return;
|
|
9822
|
+
}
|
|
9823
|
+
let userMessagesSeen = 0, fallbackUserId;
|
|
9824
|
+
for (let i = branch.length - 1; !targetUserId && i >= 0; i--) {
|
|
9773
9825
|
let entry = branch[i];
|
|
9774
|
-
if (entry.type === "message" && entry.message.role === "user" && (userMessagesSeen++,
|
|
9826
|
+
if (entry.type === "message" && entry.message.role === "user" && (userMessagesSeen++, fallbackUserId = entry.id, userMessagesSeen >= turnsToConsume))
|
|
9775
9827
|
break;
|
|
9776
9828
|
}
|
|
9777
|
-
if (!targetUserId) {
|
|
9829
|
+
if (targetUserId ??= fallbackUserId, !targetUserId) {
|
|
9778
9830
|
this.showStatus("Nothing to roll back");
|
|
9779
9831
|
return;
|
|
9780
9832
|
}
|
|
9781
9833
|
let result;
|
|
9834
|
+
try {
|
|
9835
|
+
result = rollbackLastTurn(this.sessionManager.getSessionId(), { deferCommit: !0, targetUserId });
|
|
9836
|
+
} catch (error) {
|
|
9837
|
+
this.showError(`Rollback could not prepare recovery: ${error instanceof Error ? error.message : String(error)}`);
|
|
9838
|
+
return;
|
|
9839
|
+
}
|
|
9840
|
+
if (!result.complete) {
|
|
9841
|
+
let failures = result.failed.slice(0, 3).map(({ path: file, error }) => `${path2.basename(file)}: ${error}`).join("; ");
|
|
9842
|
+
this.showWarning(`Rollback incomplete. ${result.restored.length} file(s) restored, ${result.deleted.length} deleted, ${result.failed.length} failed. ${failures}. Chat unchanged. /rollback retries this turn's unfinished recovery.`);
|
|
9843
|
+
return;
|
|
9844
|
+
}
|
|
9845
|
+
let chatRewound = !1;
|
|
9782
9846
|
try {
|
|
9783
9847
|
let oldSid = this.sessionManager.getSessionId(), forkResult = await this.runtimeHost.fork(targetUserId, { position: "before" });
|
|
9784
9848
|
if (forkResult.cancelled) {
|
|
9785
|
-
this.
|
|
9849
|
+
this.showWarning("File recovery complete. Chat rewind cancelled. /rollback retries the same turn without restoring completed files again.");
|
|
9786
9850
|
return;
|
|
9787
9851
|
}
|
|
9788
|
-
migrateRollbackSession(oldSid, this.sessionManager.getSessionId()), result
|
|
9852
|
+
chatRewound = !0, migrateRollbackSession(oldSid, this.sessionManager.getSessionId()), result.turnIndex !== void 0 && commitRollbackTurn(this.sessionManager.getSessionId(), result.turnIndex), this.redoStack.length = 0, forkResult.selectedText && !this.editor.getText().trim() && this.editor.setText(forkResult.selectedText);
|
|
9789
9853
|
} catch (error) {
|
|
9790
|
-
|
|
9854
|
+
let message = error instanceof Error ? error.message : String(error);
|
|
9855
|
+
this.showError(chatRewound ? `Chat rewound, but finishing rollback failed: ${message}` : `File recovery complete; chat rewind failed: ${message}. /rollback retries the same turn.`);
|
|
9791
9856
|
return;
|
|
9792
9857
|
}
|
|
9793
9858
|
let names = (paths) => {
|
|
9794
9859
|
let base = paths.slice(0, 3).map((p) => path2.basename(p)).join(", ");
|
|
9795
9860
|
return paths.length > 3 ? `${base}, \u2026` : base;
|
|
9796
9861
|
}, parts = [];
|
|
9797
|
-
result.restored.length > 0 && parts.push(`${result.restored.length} file(s) restored (${names(result.restored)})`), result.deleted.length > 0 && parts.push(`${result.deleted.length} file(s) deleted (${names(result.deleted)})`), parts.length === 0 && parts.push("no file changes to restore"), this.showStatus(`Rollback complete \u2014 ${parts.join("; ")}.`);
|
|
9862
|
+
result.restored.length > 0 && parts.push(`${result.restored.length} file(s) restored (${names(result.restored)})`), result.deleted.length > 0 && parts.push(`${result.deleted.length} file(s) deleted (${names(result.deleted)})`), parts.length === 0 && parts.push(result.turnIndex === void 0 ? "no file changes to restore" : "file recovery complete"), this.showStatus(`Rollback complete \u2014 ${parts.join("; ")}.`);
|
|
9798
9863
|
}
|
|
9799
9864
|
/**
|
|
9800
9865
|
* Get capitalized display string for an app keybinding action.
|
|
@@ -9949,7 +10014,7 @@ ${theme.fg("muted", debugLogPath)}`, 1, 1)), this.ui.requestRender();
|
|
|
9949
10014
|
}
|
|
9950
10015
|
}
|
|
9951
10016
|
stop() {
|
|
9952
|
-
this.setThinkingAnimation(!1), this.stopCatalogRefresh?.(), this.stopCatalogRefresh = void 0, this.
|
|
10017
|
+
this.setThinkingAnimation(!1), this.stopCatalogRefresh?.(), this.stopCatalogRefresh = void 0, this.ui.terminal.setProgress(!1), this.clearStatusIndicator(), this.themeController.disableAutoSync(), this.clearExtensionTerminalInputListeners(), this.footer.dispose(), this.footerDataProvider.dispose(), this.disposeChatToolComponents(), this.unsubscribe && this.unsubscribe(), this.isInitialized && (this.ui.stop(), this.isInitialized = !1), this.unregisterSignalHandlers();
|
|
9953
10018
|
}
|
|
9954
10019
|
};
|
|
9955
10020
|
|
|
@@ -9972,7 +10037,6 @@ export {
|
|
|
9972
10037
|
TreeSelectorComponent,
|
|
9973
10038
|
UserMessageComponent,
|
|
9974
10039
|
UserMessageSelectorComponent,
|
|
9975
|
-
formatResumeCommand,
|
|
9976
10040
|
startInteractiveToolInstalls,
|
|
9977
10041
|
InteractiveMode
|
|
9978
10042
|
};
|