@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}}
|
|
1
|
+
{"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-vertex","provider":"google-vertex","baseUrl":"https://{location}-aiplatform.googleapis.com","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"deep-research-max-preview-04-2026":{"id":"deep-research-max-preview-04-2026","name":"Deep Research Max Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deep-research-preview-04-2026":{"id":"deep-research-preview-04-2026","name":"Deep Research Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-computer-use-preview-10-2025":{"id":"gemini-2.5-computer-use-preview-10-2025","name":"Gemini 2.5 Computer Use Preview 10-2025","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-image":{"id":"gemini-3.1-flash-lite-image","name":"Nano Banana 2 Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":65536,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-live-preview":{"id":"gemini-3.1-flash-live-preview","name":"Gemini 3.1 Flash Live Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemma-4-26b-a4b-it":{"id":"gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}}}
|
|
1
|
+
{"deep-research-max-preview-04-2026":{"id":"deep-research-max-preview-04-2026","name":"Deep Research Max Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"deep-research-preview-04-2026":{"id":"deep-research-preview-04-2026","name":"Deep Research Preview (Apr-21-2026)","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-computer-use-preview-10-2025":{"id":"gemini-2.5-computer-use-preview-10-2025","name":"Gemini 2.5 Computer Use Preview 10-2025","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536},"gemini-2.5-flash":{"id":"gemini-2.5-flash","name":"Gemini 2.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-flash-lite":{"id":"gemini-2.5-flash-lite","name":"Gemini 2.5 Flash-Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.1,"output":0.4,"cacheRead":0.01,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536},"gemini-2.5-pro":{"id":"gemini-2.5-pro","name":"Gemini 2.5 Pro","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.25,"output":10,"cacheRead":0.125,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":2.5,"output":15,"cacheRead":0.25,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536},"gemini-3-flash-preview":{"id":"gemini-3-flash-preview","name":"Gemini 3 Flash Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.5,"output":3,"cacheRead":0.05,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite":{"id":"gemini-3.1-flash-lite","name":"Gemini 3.1 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-image":{"id":"gemini-3.1-flash-lite-image","name":"Nano Banana 2 Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":30,"cacheRead":0,"cacheWrite":0},"contextWindow":65536,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-lite-preview":{"id":"gemini-3.1-flash-lite-preview","name":"Gemini 3.1 Flash Lite Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-flash-live-preview":{"id":"gemini-3.1-flash-live-preview","name":"Gemini 3.1 Flash Live Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":4.5,"cacheRead":0,"cacheWrite":0},"contextWindow":131072,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.1-pro-preview":{"id":"gemini-3.1-pro-preview","name":"Gemini 3.1 Pro Preview","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.1-pro-preview-customtools":{"id":"gemini-3.1-pro-preview-customtools","name":"Gemini 3.1 Pro Preview Custom Tools","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":2,"output":12,"cacheRead":0.2,"cacheWrite":0,"tiers":[{"inputTokensAbove":200000,"input":4,"output":18,"cacheRead":0.4,"cacheWrite":0}]},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null,"minimal":null,"low":"LOW","medium":null,"high":"HIGH"}},"gemini-3.5-flash":{"id":"gemini-3.5-flash","name":"Gemini 3.5 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.5-flash-lite":{"id":"gemini-3.5-flash-lite","name":"Gemini 3.5 Flash Lite","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.3,"output":2.5,"cacheRead":0.03,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.6-flash":{"id":"gemini-3.6-flash","name":"Gemini 3.6 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.7-flash":{"id":"gemini-3.7-flash","name":"Gemini 3.7 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-3.8-flash":{"id":"gemini-3.8-flash","name":"Gemini 3.8 Flash","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.75,"output":3.75,"cacheRead":0.075,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-latest":{"id":"gemini-flash-latest","name":"Gemini Flash Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":1.5,"output":9,"cacheRead":0.15,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemini-flash-lite-latest":{"id":"gemini-flash-lite-latest","name":"Gemini Flash-Lite Latest","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0.25,"output":1.5,"cacheRead":0.025,"cacheWrite":0},"contextWindow":1048576,"maxTokens":65536,"thinkingLevelMap":{"off":null}},"gemma-4-26b-a4b-it":{"id":"gemma-4-26b-a4b-it","name":"Gemma 4 26B A4B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}},"gemma-4-31b-it":{"id":"gemma-4-31b-it","name":"Gemma 4 31B IT","api":"google-generative-ai","provider":"google","baseUrl":"https://generativelanguage.googleapis.com/v1beta","reasoning":true,"input":["text","image"],"cost":{"input":0,"output":0,"cacheRead":0,"cacheWrite":0},"contextWindow":262144,"maxTokens":32768,"thinkingLevelMap":{"off":null,"minimal":"MINIMAL","low":null,"medium":null,"high":"HIGH"}}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 2,
|
|
3
|
-
"revision": "sha256-
|
|
3
|
+
"revision": "sha256-f836e374f4e0a775d0735c47b4ed016c2651d4d5755702b6ba23bbd2001db653",
|
|
4
4
|
"providers": [
|
|
5
5
|
"amazon-bedrock",
|
|
6
6
|
"ant-ling",
|
|
@@ -53,8 +53,8 @@
|
|
|
53
53
|
"deepseek": "ca5d7ba4befdf2a01f93ef0aefecf05ae3c1c3af2851814fa909bd49e035e17f",
|
|
54
54
|
"fireworks": "703747604b788f393b8c62ef914f80f0546a0a7de3cb2127fa42eb27d8a2946a",
|
|
55
55
|
"github-copilot": "c4f8891a3b5e8f36bdcd0dfb6f96cf623d0c22e46ef070564d3208cd2b981063",
|
|
56
|
-
"google": "
|
|
57
|
-
"google-vertex": "
|
|
56
|
+
"google": "978be2f38bd45cba977ec2e3b3288f955976ed4cbd3a528a0d06ef0e7156bd30",
|
|
57
|
+
"google-vertex": "74efed28abbb59e67338379317e18393e149cd15a6b274fae6103e3265ae391c",
|
|
58
58
|
"groq": "570718dc81117da906dfd3e0ac63e6edbc3f24e7c78159d64b4a698cb5aa1805",
|
|
59
59
|
"huggingface": "3f34d7ca275d1e1bd7bf7c8737d54f5bf1f7a0a0d2eba773099d5af83ad1224d",
|
|
60
60
|
"kimi-coding": "90920ef2a2fd2ea0b56364c44b9ac5011e2b286f19bce86d5dd3253e8685d738",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-cli.d.ts","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAON,KAAK,mBAAmB,EAKxB,MAAM,6BAA6B,CAAC;AA4RrC;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBvE;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tlet next = current;\n\n\tif (parsed.yes) {\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tnext = applied.next;\n\t\tfor (const id of applied.enabledIds) {\n\t\t\tconst prev = current.features[id];\n\t\t\tconst state = next.features[id];\n\t\t\tif (state) {\n\t\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\t\tprevious: prev,\n\t\t\t\t\tnext: state,\n\t\t\t\t\tsecrets: applied.secrets,\n\t\t\t\t\tnonInteractive: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfor (const id of applied.disabledIds) {\n\t\t\tawait FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t\t}\n\t} else {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\treturn 0;\n\t}\n\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tappendInstallLog(`uninstall npm purge=${purge}`);\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmSync(prefix, { recursive: true, force: true });\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tappendInstallLog(`uninstall purge=${purge}`);\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
|
|
1
|
+
{"version":3,"file":"install-cli.d.ts","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,EAON,KAAK,mBAAmB,EAKxB,MAAM,6BAA6B,CAAC;AA6RrC;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAyBvE;AAED,YAAY,EAAE,mBAAmB,EAAE,CAAC","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmdirSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tconst applied = applyFeatureFlags(current, parsed);\n\tif (!applied.ok) {\n\t\tconsole.error(applied.error);\n\t\treturn applied.exitCode;\n\t}\n\tconst explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tlet next = applied.next;\n\tif (!parsed.yes && !explicitFeatures) {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\t// Gateway setup persists its own feature choices. Do not overwrite them.\n\t\tnext = loadInstallFeatures();\n\t} else {\n\t\tconst enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);\n\t\tfor (const id of enabled) {\n\t\t\tif (!id) continue;\n\t\t\tconst state = next.features[id];\n\t\t\tif (!state) continue;\n\t\t\tif (!parsed.yes) await collectSecretsForFeature(id, applied.secrets);\n\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets: applied.secrets,\n\t\t\t\tnonInteractive: parsed.yes,\n\t\t\t});\n\t\t}\n\t\tfor (const id of applied.disabledIds) await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t}\n\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tif (!purge) appendInstallLog(\"uninstall npm purge=false\");\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmdirSync(prefix);\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tif (!purge) appendInstallLog(\"uninstall purge=false\");\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
|
package/dist/cli/install-cli.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Intercepted before handlePackageCommand so `lunr uninstall` (no source)
|
|
4
4
|
* is product uninstall and `lunr uninstall <source>` stays package-remove.
|
|
5
5
|
*/
|
|
6
|
-
import { existsSync, rmSync } from "node:fs";
|
|
6
|
+
import { existsSync, rmdirSync, rmSync } from "node:fs";
|
|
7
7
|
import { join } from "node:path";
|
|
8
8
|
import { createInterface } from "node:readline";
|
|
9
9
|
import { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from "../config.js";
|
|
@@ -80,36 +80,40 @@ async function runSetup(argv) {
|
|
|
80
80
|
return 2;
|
|
81
81
|
}
|
|
82
82
|
const current = loadInstallFeatures();
|
|
83
|
-
|
|
84
|
-
if (
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
83
|
+
const applied = applyFeatureFlags(current, parsed);
|
|
84
|
+
if (!applied.ok) {
|
|
85
|
+
console.error(applied.error);
|
|
86
|
+
return applied.exitCode;
|
|
87
|
+
}
|
|
88
|
+
const explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;
|
|
89
|
+
const { installBrowser } = await import("../core/browser/setup.js");
|
|
90
|
+
await installBrowser(false);
|
|
91
|
+
let next = applied.next;
|
|
92
|
+
if (!parsed.yes && !explicitFeatures) {
|
|
93
|
+
await (await import("../gateway/setup.js")).setupGateway();
|
|
94
|
+
// Gateway setup persists its own feature choices. Do not overwrite them.
|
|
95
|
+
next = loadInstallFeatures();
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
const enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);
|
|
99
|
+
for (const id of enabled) {
|
|
100
|
+
if (!id)
|
|
101
|
+
continue;
|
|
93
102
|
const state = next.features[id];
|
|
94
|
-
if (state)
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
103
|
+
if (!state)
|
|
104
|
+
continue;
|
|
105
|
+
if (!parsed.yes)
|
|
106
|
+
await collectSecretsForFeature(id, applied.secrets);
|
|
107
|
+
await FEATURE_HANDLERS[id].apply({
|
|
108
|
+
previous: current.features[id],
|
|
109
|
+
next: state,
|
|
110
|
+
secrets: applied.secrets,
|
|
111
|
+
nonInteractive: parsed.yes,
|
|
112
|
+
});
|
|
102
113
|
}
|
|
103
|
-
for (const id of applied.disabledIds)
|
|
114
|
+
for (const id of applied.disabledIds)
|
|
104
115
|
await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });
|
|
105
|
-
}
|
|
106
116
|
}
|
|
107
|
-
else {
|
|
108
|
-
await (await import("../gateway/setup.js")).setupGateway();
|
|
109
|
-
return 0;
|
|
110
|
-
}
|
|
111
|
-
const { installBrowser } = await import("../core/browser/setup.js");
|
|
112
|
-
await installBrowser(false);
|
|
113
117
|
saveInstallFeatures(next);
|
|
114
118
|
appendInstallLog(`setup installerVersion=${VERSION}`);
|
|
115
119
|
console.log(`Writing ${getAgentDir()}/install-features.json`);
|
|
@@ -238,6 +242,7 @@ async function runProductUninstall(argv) {
|
|
|
238
242
|
return 1;
|
|
239
243
|
}
|
|
240
244
|
}
|
|
245
|
+
await (await import("../gateway/service.js")).teardownGatewayService();
|
|
241
246
|
if (existsSync(agentDir))
|
|
242
247
|
rmSync(agentDir, { recursive: true, force: true });
|
|
243
248
|
console.log(`purged ${agentDir}`);
|
|
@@ -246,7 +251,8 @@ async function runProductUninstall(argv) {
|
|
|
246
251
|
console.log(`sessions, auth, and gateway config kept in ${agentDir}`);
|
|
247
252
|
console.log(`Add --purge to delete that directory.`);
|
|
248
253
|
}
|
|
249
|
-
|
|
254
|
+
if (!purge)
|
|
255
|
+
appendInstallLog("uninstall npm purge=false");
|
|
250
256
|
return 0;
|
|
251
257
|
}
|
|
252
258
|
const prefix = resolveInstallPrefix();
|
|
@@ -261,6 +267,7 @@ async function runProductUninstall(argv) {
|
|
|
261
267
|
return 1;
|
|
262
268
|
}
|
|
263
269
|
}
|
|
270
|
+
await (await import("../gateway/service.js")).teardownGatewayService();
|
|
264
271
|
const versions = join(prefix, "versions");
|
|
265
272
|
const bin = join(prefix, "bin");
|
|
266
273
|
if (existsSync(versions))
|
|
@@ -273,7 +280,7 @@ async function runProductUninstall(argv) {
|
|
|
273
280
|
rmSync(agentDir, { recursive: true, force: true });
|
|
274
281
|
if (existsSync(prefix)) {
|
|
275
282
|
try {
|
|
276
|
-
|
|
283
|
+
rmdirSync(prefix);
|
|
277
284
|
}
|
|
278
285
|
catch {
|
|
279
286
|
// prefix may still hold unrelated files
|
|
@@ -285,7 +292,8 @@ async function runProductUninstall(argv) {
|
|
|
285
292
|
console.log(`sessions, auth, and gateway config kept in ${agentDir}`);
|
|
286
293
|
}
|
|
287
294
|
console.log("Remove the PATH line from your shell profile if you added one.");
|
|
288
|
-
|
|
295
|
+
if (!purge)
|
|
296
|
+
appendInstallLog("uninstall purge=false");
|
|
289
297
|
return 0;
|
|
290
298
|
}
|
|
291
299
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-cli.js","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tlet next = current;\n\n\tif (parsed.yes) {\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tnext = applied.next;\n\t\tfor (const id of applied.enabledIds) {\n\t\t\tconst prev = current.features[id];\n\t\t\tconst state = next.features[id];\n\t\t\tif (state) {\n\t\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\t\tprevious: prev,\n\t\t\t\t\tnext: state,\n\t\t\t\t\tsecrets: applied.secrets,\n\t\t\t\t\tnonInteractive: true,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\tfor (const id of applied.disabledIds) {\n\t\t\tawait FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t\t}\n\t} else {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\treturn 0;\n\t}\n\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tappendInstallLog(`uninstall npm purge=${purge}`);\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmSync(prefix, { recursive: true, force: true });\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tappendInstallLog(`uninstall purge=${purge}`);\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
|
|
1
|
+
{"version":3,"file":"install-cli.js","sourceRoot":"","sources":["../../src/cli/install-cli.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Product install CLI: setup / features / uninstall (no source).\n * Intercepted before handlePackageCommand so `lunr uninstall` (no source)\n * is product uninstall and `lunr uninstall <source>` stays package-remove.\n */\n\nimport { existsSync, rmdirSync, rmSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { createInterface } from \"node:readline\";\nimport { APP_NAME, getAgentDir, NPM_CLI_PACKAGE, VERSION } from \"../config.ts\";\nimport {\n\tappendInstallLog,\n\tapplyFeatureFlags,\n\tFEATURE_CATALOG,\n\tFEATURE_HANDLERS,\n\ttype FeatureId,\n\tgetFeatureSpec,\n\ttype InstallFeaturesFile,\n\tisProductUninstallArgv,\n\tloadInstallFeatures,\n\tparseFeatureFlags,\n\tsaveInstallFeatures,\n} from \"../core/install-features.ts\";\nimport { loadInstallLayout, resolveInstallPrefix } from \"../core/install-layout.ts\";\nimport { loadGatewayConfig } from \"../gateway/config.ts\";\nimport { readSecret } from \"./read-secret.ts\";\n\nfunction printSetupHelp(): void {\n\tconsole.log(`${APP_NAME} setup [--yes] [--feature <id>] [--no-feature <id>] [--set <id.option>=<value>] [--reconfigure]\n\nFirst-run / reconfigure optional features.\n\n${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n${APP_NAME} uninstall [--purge] [--yes] Remove this ${APP_NAME} install (keeps agent dir unless --purge)\n${APP_NAME} uninstall <source> [-l] Remove an extension package (alias for remove)\n`);\n}\n\nfunction printFeaturesHelp(): void {\n\tconsole.log(`${APP_NAME} features list\n${APP_NAME} features enable <id> [--set <id.option>=<value>]...\n${APP_NAME} features disable <id> [--purge-secrets]\n`);\n}\n\nasync function askYesNo(prompt: string, defaultYes: boolean): Promise<boolean> {\n\tif (!process.stdin.isTTY) return defaultYes;\n\tconst rl = createInterface({ input: process.stdin, output: process.stdout });\n\tconst suffix = defaultYes ? \"[Y/n]\" : \"[y/N]\";\n\tconst answer = await new Promise<string>((resolve) => {\n\t\trl.question(`${prompt} ${suffix} `, resolve);\n\t});\n\trl.close();\n\tconst trimmed = answer.trim().toLowerCase();\n\tif (trimmed === \"\") return defaultYes;\n\treturn trimmed === \"y\" || trimmed === \"yes\";\n}\n\nfunction fileTokenAlreadySet(optionId: string): boolean {\n\tconst cfg = loadGatewayConfig();\n\tif (optionId === \"telegram-token\") return Boolean(cfg.telegram.token);\n\tif (optionId === \"discord-token\") return Boolean(cfg.discord.token);\n\treturn false;\n}\n\nasync function collectSecretsForFeature(id: FeatureId, secrets: Record<string, string>): Promise<void> {\n\tconst spec = getFeatureSpec(id);\n\tif (!spec) return;\n\tfor (const option of spec.options) {\n\t\tif (option.type !== \"secret\") continue;\n\t\tif (fileTokenAlreadySet(option.id)) {\n\t\t\tconsole.log(` ${option.id}: token already set`);\n\t\t\tcontinue;\n\t\t}\n\t\tconst value = await readSecret(option.prompt);\n\t\tif (value) secrets[option.id] = value;\n\t}\n}\n\nasync function runSetup(argv: string[]): Promise<number> {\n\tconst parsed = parseFeatureFlags(argv);\n\tif (!parsed.ok) {\n\t\tconsole.error(parsed.error);\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\tif (!parsed.yes && !process.stdin.isTTY) {\n\t\tconsole.error(\"non-interactive setup requires --yes\");\n\t\tprintSetupHelp();\n\t\treturn 2;\n\t}\n\n\tconst current = loadInstallFeatures();\n\tconst applied = applyFeatureFlags(current, parsed);\n\tif (!applied.ok) {\n\t\tconsole.error(applied.error);\n\t\treturn applied.exitCode;\n\t}\n\tconst explicitFeatures = parsed.features.length > 0 || parsed.noFeatures.length > 0 || parsed.sets.length > 0;\n\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\tawait installBrowser(false);\n\tlet next = applied.next;\n\tif (!parsed.yes && !explicitFeatures) {\n\t\tawait (await import(\"../gateway/setup.ts\")).setupGateway();\n\t\t// Gateway setup persists its own feature choices. Do not overwrite them.\n\t\tnext = loadInstallFeatures();\n\t} else {\n\t\tconst enabled = new Set([...applied.enabledIds, ...parsed.sets.map((set) => getFeatureSpec(set.id)?.id)]);\n\t\tfor (const id of enabled) {\n\t\t\tif (!id) continue;\n\t\t\tconst state = next.features[id];\n\t\t\tif (!state) continue;\n\t\t\tif (!parsed.yes) await collectSecretsForFeature(id, applied.secrets);\n\t\t\tawait FEATURE_HANDLERS[id].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets: applied.secrets,\n\t\t\t\tnonInteractive: parsed.yes,\n\t\t\t});\n\t\t}\n\t\tfor (const id of applied.disabledIds) await FEATURE_HANDLERS[id].disable({ purgeSecrets: false });\n\t}\n\n\tsaveInstallFeatures(next);\n\tappendInstallLog(`setup installerVersion=${VERSION}`);\n\tconsole.log(`Writing ${getAgentDir()}/install-features.json`);\n\tconsole.log(\"\\nNext:\");\n\tconsole.log(` 1. Restart this shell (or add ${resolveInstallPrefix()}/bin to PATH)`);\n\tconsole.log(` 2. Run: ${APP_NAME}`);\n\tconsole.log(\" 3. In the TUI: /login\");\n\treturn 0;\n}\n\nasync function runFeatures(argv: string[]): Promise<number> {\n\tconst [sub, ...rest] = argv;\n\tif (!sub || sub === \"list\") {\n\t\tconst file = loadInstallFeatures();\n\t\tfor (const spec of FEATURE_CATALOG) {\n\t\t\tconst enabled = file.features[spec.id]?.enabled ?? spec.defaultEnabled;\n\t\t\tconsole.log(`${spec.id}: ${enabled ? \"enabled\" : \"disabled\"} — ${spec.summary}`);\n\t\t}\n\t\treturn 0;\n\t}\n\tif (sub === \"enable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features enable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst flagArgv = [\"--feature\", id, ...rest.slice(1)];\n\t\tconst parsed = parseFeatureFlags(flagArgv);\n\t\tif (!parsed.ok) {\n\t\t\tconsole.error(parsed.error);\n\t\t\treturn 2;\n\t\t}\n\t\tif (!parsed.yes && !process.stdin.isTTY && rest.slice(1).length === 0) {\n\t\t\t// --yes not required: enable with catalog defaults when non-interactive\n\t\t}\n\t\tconst current = loadInstallFeatures();\n\t\tconst applied = applyFeatureFlags(current, parsed);\n\t\tif (!applied.ok) {\n\t\t\tconsole.error(applied.error);\n\t\t\treturn applied.exitCode;\n\t\t}\n\t\tconst secrets: Record<string, string> = { ...applied.secrets };\n\t\tif (process.stdin.isTTY && !parsed.yes) {\n\t\t\tconst spec = getFeatureSpec(id);\n\t\t\tif (spec) {\n\t\t\t\tfor (const option of spec.options) {\n\t\t\t\t\tif (option.type !== \"boolean\") continue;\n\t\t\t\t\tif (applied.next.features[id]?.options[option.id] !== undefined) continue;\n\t\t\t\t\tconst currentBool =\n\t\t\t\t\t\ttypeof current.features[id]?.options[option.id] === \"boolean\"\n\t\t\t\t\t\t\t? (current.features[id].options[option.id] as boolean)\n\t\t\t\t\t\t\t: (option.default ?? false);\n\t\t\t\t\tconst value = await askYesNo(` ${option.prompt}`, currentBool);\n\t\t\t\t\tconst state = applied.next.features[id] ?? { enabled: true, options: {} };\n\t\t\t\t\tstate.options[option.id] = value;\n\t\t\t\t\tapplied.next.features[id] = state;\n\t\t\t\t}\n\t\t\t\tawait collectSecretsForFeature(id as FeatureId, secrets);\n\t\t\t}\n\t\t}\n\t\tconst state = applied.next.features[id];\n\t\tif (state) {\n\t\t\tawait FEATURE_HANDLERS[id as FeatureId].apply({\n\t\t\t\tprevious: current.features[id],\n\t\t\t\tnext: state,\n\t\t\t\tsecrets,\n\t\t\t\tnonInteractive: parsed.yes || !process.stdin.isTTY,\n\t\t\t});\n\t\t}\n\t\tsaveInstallFeatures(applied.next);\n\t\tappendInstallLog(`features enable ${id}`);\n\t\tconsole.log(`enabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"disable\") {\n\t\tconst id = rest[0];\n\t\tif (!id || !getFeatureSpec(id)) {\n\t\t\tconsole.error(id ? `unknown feature ${id}` : \"features disable requires an id\");\n\t\t\tprintFeaturesHelp();\n\t\t\treturn 2;\n\t\t}\n\t\tconst purgeSecrets = rest.includes(\"--purge-secrets\");\n\t\tconst current = loadInstallFeatures();\n\t\tconst prev = current.features[id];\n\t\tcurrent.features[id] = { enabled: false, options: { ...prev?.options } };\n\t\tcurrent.updatedAt = new Date().toISOString();\n\t\tawait FEATURE_HANDLERS[id as FeatureId].disable({ purgeSecrets });\n\t\tsaveInstallFeatures(current);\n\t\tappendInstallLog(`features disable ${id}`);\n\t\tconsole.log(`disabled ${id}`);\n\t\treturn 0;\n\t}\n\tif (sub === \"--help\" || sub === \"-h\") {\n\t\tprintFeaturesHelp();\n\t\treturn 0;\n\t}\n\tconsole.error(`unknown features subcommand ${sub}`);\n\tprintFeaturesHelp();\n\treturn 2;\n}\n\nfunction parseUninstallFlags(argv: string[]): { purge: boolean; yes: boolean } {\n\treturn {\n\t\tpurge: argv.includes(\"--purge\"),\n\t\tyes: argv.includes(\"--yes\") || argv.includes(\"-y\"),\n\t};\n}\n\nfunction isBinaryLayoutInstall(): boolean {\n\treturn loadInstallLayout() !== undefined;\n}\n\nasync function runProductUninstall(argv: string[]): Promise<number> {\n\tconst { purge, yes } = parseUninstallFlags(argv);\n\tconst agentDir = getAgentDir();\n\n\tif (!isBinaryLayoutInstall()) {\n\t\tconsole.log(`This looks like an npm install. Remove the CLI with:`);\n\t\tconsole.log(` npm rm -g ${NPM_CLI_PACKAGE}`);\n\t\tif (purge) {\n\t\t\tif (!yes && !process.stdin.isTTY) {\n\t\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\t\treturn 2;\n\t\t\t}\n\t\t\tif (!yes) {\n\t\t\t\tconst ok = await askYesNo(`Also delete ${agentDir}? This cannot be undone.`, false);\n\t\t\t\tif (!ok) {\n\t\t\t\t\tconsole.log(\"aborted\");\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\t\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\t\tconsole.log(`purged ${agentDir}`);\n\t\t} else {\n\t\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t\t\tconsole.log(`Add --purge to delete that directory.`);\n\t\t}\n\t\tif (!purge) appendInstallLog(\"uninstall npm purge=false\");\n\t\treturn 0;\n\t}\n\n\tconst prefix = resolveInstallPrefix();\n\n\tif (purge && !yes) {\n\t\tif (!process.stdin.isTTY) {\n\t\t\tconsole.error(\"non-interactive --purge requires --yes\");\n\t\t\treturn 2;\n\t\t}\n\t\tconst ok = await askYesNo(`Delete ${prefix} and ${agentDir}? This cannot be undone.`, false);\n\t\tif (!ok) {\n\t\t\tconsole.log(\"aborted\");\n\t\t\treturn 1;\n\t\t}\n\t}\n\n\tawait (await import(\"../gateway/service.ts\")).teardownGatewayService();\n\tconst versions = join(prefix, \"versions\");\n\tconst bin = join(prefix, \"bin\");\n\tif (existsSync(versions)) rmSync(versions, { recursive: true, force: true });\n\tif (existsSync(bin)) rmSync(bin, { recursive: true, force: true });\n\tconsole.log(`removed ${versions} and ${bin}`);\n\n\tif (purge) {\n\t\tif (existsSync(agentDir)) rmSync(agentDir, { recursive: true, force: true });\n\t\tif (existsSync(prefix)) {\n\t\t\ttry {\n\t\t\t\trmdirSync(prefix);\n\t\t\t} catch {\n\t\t\t\t// prefix may still hold unrelated files\n\t\t\t}\n\t\t}\n\t\tconsole.log(`purged ${agentDir}`);\n\t} else {\n\t\tconsole.log(`sessions, auth, and gateway config kept in ${agentDir}`);\n\t}\n\tconsole.log(\"Remove the PATH line from your shell profile if you added one.\");\n\tif (!purge) appendInstallLog(\"uninstall purge=false\");\n\treturn 0;\n}\n\n/**\n * Returns true when this argv was an install-cli verb that we handled.\n * `uninstall <source>` and package-manager flags are not claimed.\n */\nexport async function handleInstallCli(args: string[]): Promise<boolean> {\n\tconst [verb, ...rest] = args;\n\tif (verb === \"browser\") {\n\t\tif (rest.length !== 1 || rest[0] !== \"install\") {\n\t\t\tconsole.error(\"Usage: lunr browser install. Browser on/off is in /settings.\");\n\t\t\tprocess.exitCode = 2;\n\t\t} else {\n\t\t\tconst { installBrowser } = await import(\"../core/browser/setup.ts\");\n\t\t\tawait installBrowser();\n\t\t}\n\t\treturn true;\n\t}\n\tif (verb === \"setup\") {\n\t\tprocess.exitCode = await runSetup(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"features\") {\n\t\tprocess.exitCode = await runFeatures(rest);\n\t\treturn true;\n\t}\n\tif (verb === \"uninstall\" && isProductUninstallArgv(rest)) {\n\t\tprocess.exitCode = await runProductUninstall(rest);\n\t\treturn true;\n\t}\n\treturn false;\n}\n\nexport type { InstallFeaturesFile };\n"]}
|
|
@@ -54,11 +54,20 @@ export declare class AgentSessionRuntime {
|
|
|
54
54
|
private _modelFallbackMessage?;
|
|
55
55
|
private detached;
|
|
56
56
|
private transferring;
|
|
57
|
+
private replacement?;
|
|
58
|
+
private teardown?;
|
|
59
|
+
private closing;
|
|
60
|
+
private withReplacement;
|
|
57
61
|
get isDetached(): boolean;
|
|
62
|
+
/** Correlated prompt entry for scheduled hosts; never queues across a lifecycle change. */
|
|
63
|
+
promptWithCompletion(text: string, options?: Parameters<AgentSession["promptWithCompletion"]>[1]): Promise<{
|
|
64
|
+
messages: import("@ashx-j/lunr-agent").AgentMessage[];
|
|
65
|
+
}>;
|
|
58
66
|
releaseForTransfer(options?: {
|
|
59
67
|
stop?: boolean;
|
|
60
68
|
signal?: AbortSignal;
|
|
61
69
|
}): Promise<void>;
|
|
70
|
+
private releaseForTransferOwned;
|
|
62
71
|
constructor(_session: AgentSession, _services: AgentSessionServices, createRuntime: CreateAgentSessionRuntimeFactory, _diagnostics?: AgentSessionRuntimeDiagnostic[], _modelFallbackMessage?: string, onRuntimeApplied?: AgentSessionRuntimeApplied);
|
|
63
72
|
private createOwnedRuntime;
|
|
64
73
|
get services(): AgentSessionServices;
|
|
@@ -89,6 +98,7 @@ export declare class AgentSessionRuntime {
|
|
|
89
98
|
}): Promise<{
|
|
90
99
|
cancelled: boolean;
|
|
91
100
|
}>;
|
|
101
|
+
private switchSessionOwned;
|
|
92
102
|
newSession(options?: {
|
|
93
103
|
parentSession?: string;
|
|
94
104
|
setup?: (sessionManager: SessionManager) => Promise<void>;
|
|
@@ -96,6 +106,7 @@ export declare class AgentSessionRuntime {
|
|
|
96
106
|
}): Promise<{
|
|
97
107
|
cancelled: boolean;
|
|
98
108
|
}>;
|
|
109
|
+
private newSessionOwned;
|
|
99
110
|
fork(entryId: string, options?: {
|
|
100
111
|
position?: "before" | "at";
|
|
101
112
|
withSession?: (ctx: ReplacedSessionContext) => Promise<void>;
|
|
@@ -103,6 +114,7 @@ export declare class AgentSessionRuntime {
|
|
|
103
114
|
cancelled: boolean;
|
|
104
115
|
selectedText?: string;
|
|
105
116
|
}>;
|
|
117
|
+
private forkOwned;
|
|
106
118
|
/**
|
|
107
119
|
* Import a session JSONL file and switch runtime state to the imported session.
|
|
108
120
|
*
|
|
@@ -113,6 +125,7 @@ export declare class AgentSessionRuntime {
|
|
|
113
125
|
importFromJsonl(inputPath: string, cwdOverride?: string): Promise<{
|
|
114
126
|
cancelled: boolean;
|
|
115
127
|
}>;
|
|
128
|
+
private importFromJsonlOwned;
|
|
116
129
|
dispose(): Promise<void>;
|
|
117
130
|
}
|
|
118
131
|
/**
|