@bastani/atomic 0.9.16-alpha.3 → 0.9.16-alpha.5
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 +62 -0
- package/README.md +11 -6
- package/dist/builtin/intercom/CHANGELOG.md +15 -0
- package/dist/builtin/intercom/README.md +6 -4
- package/dist/builtin/intercom/broker/broker.ts +34 -8
- package/dist/builtin/intercom/broker/client.ts +13 -0
- package/dist/builtin/intercom/broker/pending-question-index.ts +50 -0
- package/dist/builtin/intercom/broker/send-handler.ts +8 -0
- package/dist/builtin/intercom/index.bundle.mjs +2359 -1466
- package/dist/builtin/intercom/package.json +2 -2
- package/dist/builtin/intercom/skills/intercom/SKILL.md +20 -19
- package/dist/builtin/mcp/index.bundle.mjs +2132 -1321
- package/dist/builtin/mcp/package.json +2 -2
- package/dist/builtin/subagents/CHANGELOG.md +11 -0
- package/dist/builtin/subagents/README.md +3 -3
- package/dist/builtin/subagents/package.json +3 -3
- package/dist/builtin/subagents/skills/subagent/SKILL.md +4 -4
- package/dist/builtin/subagents/src/extension/index.bundle.mjs +3059 -1861
- package/dist/builtin/web-access/index.bundle.mjs +2113 -1302
- package/dist/builtin/web-access/package.json +2 -2
- package/dist/builtin/workflows/CHANGELOG.md +20 -0
- package/dist/builtin/workflows/README.md +1 -1
- package/dist/builtin/workflows/builtin/goal-ledger.ts +54 -10
- package/dist/builtin/workflows/builtin/goal-runner.ts +57 -12
- package/dist/builtin/workflows/package.json +2 -2
- package/dist/builtin/workflows/src/extension/index.bundle.mjs +13948 -12304
- package/dist/builtin/workflows/src/index.bundle.mjs +2642 -1526
- package/dist/bun/split-loader.js +2 -1
- package/dist/bun/split-loader.js.map +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +6 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js +2 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/config-package-identity.d.ts +22 -0
- package/dist/config-package-identity.d.ts.map +1 -0
- package/dist/config-package-identity.js +74 -0
- package/dist/config-package-identity.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -11
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-auto-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-auto-compaction.js +64 -28
- package/dist/core/agent-session-auto-compaction.js.map +1 -1
- package/dist/core/agent-session-compaction.d.ts +2 -0
- package/dist/core/agent-session-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-compaction.js +25 -5
- package/dist/core/agent-session-compaction.js.map +1 -1
- package/dist/core/agent-session-custom-message-commit.d.ts.map +1 -1
- package/dist/core/agent-session-custom-message-commit.js +12 -0
- package/dist/core/agent-session-custom-message-commit.js.map +1 -1
- package/dist/core/agent-session-events.d.ts.map +1 -1
- package/dist/core/agent-session-events.js +2 -0
- package/dist/core/agent-session-events.js.map +1 -1
- package/dist/core/agent-session-export.d.ts +3 -1
- package/dist/core/agent-session-export.d.ts.map +1 -1
- package/dist/core/agent-session-export.js +22 -2
- package/dist/core/agent-session-export.js.map +1 -1
- package/dist/core/agent-session-message-queue.d.ts +3 -0
- package/dist/core/agent-session-message-queue.d.ts.map +1 -1
- package/dist/core/agent-session-message-queue.js +10 -0
- package/dist/core/agent-session-message-queue.js.map +1 -1
- package/dist/core/agent-session-methods.d.ts +15 -9
- package/dist/core/agent-session-methods.d.ts.map +1 -1
- package/dist/core/agent-session-methods.js.map +1 -1
- package/dist/core/agent-session-models.d.ts +8 -13
- package/dist/core/agent-session-models.d.ts.map +1 -1
- package/dist/core/agent-session-models.js +53 -19
- package/dist/core/agent-session-models.js.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.d.ts.map +1 -1
- package/dist/core/agent-session-post-tool-compaction.js +12 -0
- package/dist/core/agent-session-post-tool-compaction.js.map +1 -1
- package/dist/core/agent-session-prompt.d.ts.map +1 -1
- package/dist/core/agent-session-prompt.js +3 -1
- package/dist/core/agent-session-prompt.js.map +1 -1
- package/dist/core/agent-session-tool-registry.js +3 -3
- package/dist/core/agent-session-tool-registry.js.map +1 -1
- package/dist/core/agent-session-transfer.d.ts.map +1 -1
- package/dist/core/agent-session-transfer.js +1 -0
- package/dist/core/agent-session-transfer.js.map +1 -1
- package/dist/core/agent-session-tree.d.ts.map +1 -1
- package/dist/core/agent-session-tree.js +1 -1
- package/dist/core/agent-session-tree.js.map +1 -1
- package/dist/core/agent-session-types.d.ts +3 -0
- package/dist/core/agent-session-types.d.ts.map +1 -1
- package/dist/core/agent-session-types.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -0
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +2 -0
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage-backends.d.ts.map +1 -1
- package/dist/core/auth-storage-backends.js +10 -6
- package/dist/core/auth-storage-backends.js.map +1 -1
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -3
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/builtin-packages.d.ts.map +1 -1
- package/dist/core/builtin-packages.js +2 -1
- package/dist/core/builtin-packages.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +6 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction-runner.d.ts +3 -1
- package/dist/core/compaction/compaction-runner.d.ts.map +1 -1
- package/dist/core/compaction/compaction-runner.js +30 -4
- package/dist/core/compaction/compaction-runner.js.map +1 -1
- package/dist/core/compaction/compaction-types.d.ts +3 -1
- package/dist/core/compaction/compaction-types.d.ts.map +1 -1
- package/dist/core/compaction/compaction-types.js.map +1 -1
- package/dist/core/compaction/range-planner.d.ts +3 -1
- package/dist/core/compaction/range-planner.d.ts.map +1 -1
- package/dist/core/compaction/range-planner.js +11 -1
- package/dist/core/compaction/range-planner.js.map +1 -1
- package/dist/core/compaction/session-summarization.d.ts.map +1 -1
- package/dist/core/compaction/session-summarization.js +6 -0
- package/dist/core/compaction/session-summarization.js.map +1 -1
- package/dist/core/extensions/api-types.d.ts +8 -3
- package/dist/core/extensions/api-types.d.ts.map +1 -1
- package/dist/core/extensions/api-types.js.map +1 -1
- package/dist/core/extensions/index.d.ts +2 -2
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader-api.d.ts +5 -1
- package/dist/core/extensions/loader-api.d.ts.map +1 -1
- package/dist/core/extensions/loader-api.js +124 -36
- package/dist/core/extensions/loader-api.js.map +1 -1
- package/dist/core/extensions/loader-core.d.ts.map +1 -1
- package/dist/core/extensions/loader-core.js +18 -4
- package/dist/core/extensions/loader-core.js.map +1 -1
- package/dist/core/extensions/loader-runtime.d.ts.map +1 -1
- package/dist/core/extensions/loader-runtime.js +10 -2
- package/dist/core/extensions/loader-runtime.js.map +1 -1
- package/dist/core/extensions/session-events.d.ts +11 -2
- package/dist/core/extensions/session-events.d.ts.map +1 -1
- package/dist/core/extensions/session-events.js.map +1 -1
- package/dist/core/extensions/tool-events.d.ts +13 -3
- package/dist/core/extensions/tool-events.d.ts.map +1 -1
- package/dist/core/extensions/tool-events.js +3 -0
- package/dist/core/extensions/tool-events.js.map +1 -1
- package/dist/core/extensions/types.d.ts +1 -1
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/ui-types.d.ts +2 -2
- package/dist/core/extensions/ui-types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/keybindings.d.ts +17 -16
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +23 -6
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +2 -1
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-resolver-initial.d.ts +1 -0
- package/dist/core/model-resolver-initial.d.ts.map +1 -1
- package/dist/core/model-resolver-initial.js +9 -5
- package/dist/core/model-resolver-initial.js.map +1 -1
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +2 -1
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/package-manager-git.d.ts.map +1 -1
- package/dist/core/package-manager-git.js +2 -1
- package/dist/core/package-manager-git.js.map +1 -1
- package/dist/core/package-manager-manifest.d.ts.map +1 -1
- package/dist/core/package-manager-manifest.js +2 -1
- package/dist/core/package-manager-manifest.js.map +1 -1
- package/dist/core/package-manager-npm.d.ts.map +1 -1
- package/dist/core/package-manager-npm.js +4 -3
- package/dist/core/package-manager-npm.js.map +1 -1
- package/dist/core/package-manager-operations.d.ts.map +1 -1
- package/dist/core/package-manager-operations.js +2 -1
- package/dist/core/package-manager-operations.js.map +1 -1
- package/dist/core/package-manager-resource-collector.d.ts.map +1 -1
- package/dist/core/package-manager-resource-collector.js +2 -1
- package/dist/core/package-manager-resource-collector.js.map +1 -1
- package/dist/core/package-manager-resource-files.d.ts.map +1 -1
- package/dist/core/package-manager-resource-files.js +7 -2
- package/dist/core/package-manager-resource-files.js.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +2 -1
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resource-loader-context-files.d.ts.map +1 -1
- package/dist/core/resource-loader-context-files.js +3 -2
- package/dist/core/resource-loader-context-files.js.map +1 -1
- package/dist/core/sdk-exports.d.ts +5 -3
- package/dist/core/sdk-exports.d.ts.map +1 -1
- package/dist/core/sdk-exports.js +4 -2
- package/dist/core/sdk-exports.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +7 -3
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager-core.d.ts +2 -2
- package/dist/core/session-manager-core.d.ts.map +1 -1
- package/dist/core/session-manager-core.js +4 -4
- package/dist/core/session-manager-core.js.map +1 -1
- package/dist/core/session-manager-entries.d.ts +2 -2
- package/dist/core/session-manager-entries.d.ts.map +1 -1
- package/dist/core/session-manager-entries.js +4 -3
- package/dist/core/session-manager-entries.js.map +1 -1
- package/dist/core/session-manager-storage.d.ts.map +1 -1
- package/dist/core/session-manager-storage.js +4 -2
- package/dist/core/session-manager-storage.js.map +1 -1
- package/dist/core/session-manager-types.d.ts +2 -0
- package/dist/core/session-manager-types.d.ts.map +1 -1
- package/dist/core/session-manager-types.js.map +1 -1
- package/dist/core/settings-diagnostics.d.ts +4 -0
- package/dist/core/settings-diagnostics.d.ts.map +1 -0
- package/dist/core/settings-diagnostics.js +12 -0
- package/dist/core/settings-diagnostics.js.map +1 -0
- package/dist/core/settings-manager-basic-accessors.d.ts +4 -0
- package/dist/core/settings-manager-basic-accessors.d.ts.map +1 -1
- package/dist/core/settings-manager-basic-accessors.js +23 -0
- package/dist/core/settings-manager-basic-accessors.js.map +1 -1
- package/dist/core/settings-manager-core.d.ts.map +1 -1
- package/dist/core/settings-manager-core.js +10 -2
- package/dist/core/settings-manager-core.js.map +1 -1
- package/dist/core/settings-storage.d.ts.map +1 -1
- package/dist/core/settings-storage.js +10 -3
- package/dist/core/settings-storage.js.map +1 -1
- package/dist/core/settings-types.d.ts +2 -0
- package/dist/core/settings-types.d.ts.map +1 -1
- package/dist/core/settings-types.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +51 -33
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +3 -2
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js +11 -2
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/tools/ask-user-question/config.d.ts.map +1 -1
- package/dist/core/tools/ask-user-question/config.js +2 -1
- package/dist/core/tools/ask-user-question/config.js.map +1 -1
- package/dist/core/tools/bash.d.ts +13 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +9 -5
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/index.d.ts +21 -5
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js +45 -13
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/powershell.d.ts +83 -0
- package/dist/core/tools/powershell.d.ts.map +1 -0
- package/dist/core/tools/powershell.js +89 -0
- package/dist/core/tools/powershell.js.map +1 -0
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js +2 -1
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/extensions/llama/client.d.ts +6 -0
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js +12 -0
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +2 -0
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts +3 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +25 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/index-extensions.d.ts +2 -2
- package/dist/index-extensions.d.ts.map +1 -1
- package/dist/index-extensions.js +1 -1
- package/dist/index-extensions.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/dist/main-stdio.d.ts.map +1 -1
- package/dist/main-stdio.js +4 -2
- package/dist/main-stdio.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +10 -3
- package/dist/main.js.map +1 -1
- package/dist/migrations-config-values.d.ts.map +1 -1
- package/dist/migrations-config-values.js +2 -1
- package/dist/migrations-config-values.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +5 -4
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +27 -16
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-items.js +67 -14
- package/dist/modes/interactive/components/settings-selector-items.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts +7 -1
- package/dist/modes/interactive/components/settings-selector-submenus.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-submenus.js +38 -3
- package/dist/modes/interactive/components/settings-selector-submenus.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts +5 -1
- package/dist/modes/interactive/components/settings-selector-types.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector-types.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +15 -6
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +65 -27
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +2 -1
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-agent-events.js +2 -0
- package/dist/modes/interactive/interactive-agent-events.js.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.d.ts +1 -1
- package/dist/modes/interactive/interactive-auth-login.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-auth-login.js +9 -1
- package/dist/modes/interactive/interactive-auth-login.js.map +1 -1
- package/dist/modes/interactive/interactive-autocomplete.js +9 -0
- package/dist/modes/interactive/interactive-autocomplete.js.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-deferred-startup.js +2 -0
- package/dist/modes/interactive/interactive-deferred-startup.js.map +1 -1
- package/dist/modes/interactive/interactive-editor-actions.js +11 -10
- package/dist/modes/interactive/interactive-editor-actions.js.map +1 -1
- package/dist/modes/interactive/interactive-input-handling.js +6 -0
- package/dist/modes/interactive/interactive-input-handling.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.d.ts +1 -0
- package/dist/modes/interactive/interactive-mode-deps.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-deps.js +1 -0
- package/dist/modes/interactive/interactive-mode-deps.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.d.ts +7 -0
- package/dist/modes/interactive/interactive-mode-surface.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-surface.js +0 -1
- package/dist/modes/interactive/interactive-mode-surface.js.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.d.ts +3 -0
- package/dist/modes/interactive/interactive-mode-types.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode-types.js.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts +16 -1
- package/dist/modes/interactive/interactive-model-routing.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-model-routing.js +62 -3
- package/dist/modes/interactive/interactive-model-routing.js.map +1 -1
- package/dist/modes/interactive/interactive-render-chat.js +18 -0
- package/dist/modes/interactive/interactive-render-chat.js.map +1 -1
- package/dist/modes/interactive/interactive-selectors.js +10 -8
- package/dist/modes/interactive/interactive-selectors.js.map +1 -1
- package/dist/modes/interactive/interactive-slash-commands.js +6 -5
- package/dist/modes/interactive/interactive-slash-commands.js.map +1 -1
- package/dist/modes/interactive/interactive-startup.js +9 -1
- package/dist/modes/interactive/interactive-startup.js.map +1 -1
- package/dist/modes/interactive/theme/theme-parse.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-parse.js +2 -1
- package/dist/modes/interactive/theme/theme-parse.js.map +1 -1
- package/dist/modes/json-event.d.ts +15 -18
- package/dist/modes/json-event.d.ts.map +1 -1
- package/dist/modes/json-event.js +21 -17
- package/dist/modes/json-event.js.map +1 -1
- package/dist/modes/rpc/rpc-client-api.d.ts +4 -0
- package/dist/modes/rpc/rpc-client-api.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client-api.js +3 -0
- package/dist/modes/rpc/rpc-client-api.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js +2 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/management-http.d.ts +2 -0
- package/dist/utils/management-http.d.ts.map +1 -1
- package/dist/utils/management-http.js +11 -7
- package/dist/utils/management-http.js.map +1 -1
- package/dist/utils/shell.d.ts +3 -0
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js +41 -10
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts +1 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js +61 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/text.d.ts +8 -0
- package/dist/utils/text.d.ts.map +1 -0
- package/dist/utils/text.js +9 -0
- package/dist/utils/text.js.map +1 -0
- package/docs/changelog.mdx +1 -1
- package/docs/compaction.md +16 -3
- package/docs/containerization.md +17 -0
- package/docs/custom-provider.md +1 -1
- package/docs/environment-variables.md +3 -3
- package/docs/extensions.md +22 -5
- package/docs/index.md +12 -10
- package/docs/intercom.md +5 -3
- package/docs/keybindings.md +1 -1
- package/docs/llama-cpp.md +1 -1
- package/docs/models.md +2 -0
- package/docs/quickstart.md +80 -9
- package/docs/rpc.md +24 -1
- package/docs/sdk.md +11 -0
- package/docs/settings.md +16 -7
- package/docs/skills.md +3 -2
- package/docs/subagents.md +7 -0
- package/docs/termux.md +1 -1
- package/docs/usage.md +4 -3
- package/docs/windows.md +33 -3
- package/docs/workflows.md +20 -10
- package/examples/extensions/border-status-editor.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/notify.ts +1 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/README.md +1 -1
- package/npm-shrinkwrap.json +73 -65
- package/package.json +11 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-deferred-startup.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype Container,\n\tfindInitialModel,\n\tformatNoModelsAvailableMessage,\n\trecordTimeSinceReset,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n\tsetRegisteredThemes,\n} from \"./interactive-mode-deps.ts\";\nimport { releaseStartupChatOutput } from \"./interactive-startup-chat-container.ts\";\n\nexport interface DeferredStartupMode {\n\tdeferredStartupPending: boolean;\n\tdeferredStartupPromise: Promise<void> | undefined;\n\tcompleteDeferredStartup(): Promise<void>;\n}\n\nexport async function ensureDeferredStartupComplete(mode: DeferredStartupMode): Promise<void> {\n\tif (!mode.deferredStartupPending && !mode.deferredStartupPromise) return;\n\tconst startupPromise = mode.deferredStartupPromise ?? Promise.resolve().then(() => mode.completeDeferredStartup());\n\tmode.deferredStartupPromise = startupPromise;\n\ttry {\n\t\tawait startupPromise;\n\t} catch {\n\t\tmode.deferredStartupPending = false;\n\t} finally {\n\t\tif (mode.deferredStartupPromise === startupPromise && !mode.deferredStartupPending) {\n\t\t\tmode.deferredStartupPromise = undefined;\n\t\t}\n\t}\n}\n\nInteractiveModeBase.prototype.ensureDeferredStartupComplete = async function (\n\tthis: InteractiveModeBase,\n): Promise<void> {\n\tawait ensureDeferredStartupComplete(this);\n};\n\n/**\n * Finishes a startup where extension loading was deferred so the TUI could\n * paint immediately. Loads extension code via session.reload(), then applies\n * the same post-load UI wiring as /reload and discloses loaded resources.\n */\nInteractiveModeBase.prototype.completeDeferredStartup = async function (this: InteractiveModeBase): Promise<void> {\n\ttry {\n\t\tawait this.bindCurrentSessionExtensions();\n\t\tawait this.session.reload({ reason: \"startup\" });\n\t\t// Initial transcript rows precede deferred extension loading, so rebuild them\n\t\t// against the new extension registry before releasing startup output.\n\t\tthis.rebuildChatFromMessages();\n\n\t\t// A prompt turn keeps its own working loader mounted from submit until\n\t\t// `agent_start` or `compaction_start` takes over; tearing it down here\n\t\t// would leave the rest of startup and prompt preflight with no indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\trecordTimeSinceReset(\"deferred-extension-load\");\n\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tawait this.themeController.applyFromSettings();\n\t\tthis.setupAutocompleteProvider();\n\t\tthis.setupExtensionShortcuts(this.session.extensionRunner);\n\t\tawait applyDeferredModelScope(this);\n\t\tawait this.retryDeferredModelRestore(this.startupNoticesContainer);\n\t\tthis.showLoadedResources({\n\t\t\tforce: true,\n\t\t\tshowDiagnosticsWhenQuiet: true,\n\t\t\ttargetContainer: this.resourceDisclosureContainer,\n\t\t});\n\t\t// Keep the subscription warning after the RESOURCES disclosure.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t\tthis.showStartupNoticesIfNeeded(this.startupNoticesContainer);\n\t\tconst modelsJsonError = this.session.modelRuntime.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\t\tvoid this.updateAvailableProviderCount().catch(() => {});\n\t\tthis.updateEditorBorderColor();\n\t\tthis.ui.requestRender();\n\t} catch (error) {\n\t\t// Same ownership rule as the success path: this catch swallows the error,\n\t\t// so prompt preflight continues and must keep its indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\tthis.showError(`Extension loading failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t// The RESOURCES disclosure will not render; surface the held warning.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t} finally {\n\t\t// Extension loading has either produced the disclosure or definitively\n\t\t// failed, so startup ordering is resolved before any prompt can run.\n\t\treleaseStartupChatOutput(this);\n\t}\n};\n\nexport async function applyDeferredModelScope(mode: InteractiveModeBase): Promise<void> {\n\tconst patterns = mode.options.deferredModelScopePatterns;\n\tif (!patterns || patterns.length === 0) {\n\t\treturn;\n\t}\n\n\tconst { scopedModels, diagnostics } = await resolveModelScopeWithDiagnostics(patterns, mode.session.modelRuntime);\n\tfor (const diagnostic of diagnostics) {\n\t\tmode.showWarning(diagnostic.message);\n\t}\n\tmode.session.setScopedModels(scopedModels);\n\n\tif (mode.sessionManager.buildSessionContext().messages.length > 0 || scopedModels.length === 0) {\n\t\treturn;\n\t}\n\n\tconst currentModel = mode.session.model;\n\tif (currentModel && scopedModels.some((scoped) => modelsAreEqual(scoped.model, currentModel))) {\n\t\treturn;\n\t}\n\n\tconst savedProvider = mode.settingsManager.getDefaultProvider();\n\tconst savedModelId = mode.settingsManager.getDefaultModel();\n\tconst savedModel =\n\t\tsavedProvider && savedModelId ? mode.session.modelRuntime.getModel(savedProvider, savedModelId) : undefined;\n\tconst preferred = savedModel ? scopedModels.find((scoped) => modelsAreEqual(scoped.model, savedModel)) : undefined;\n\tconst nextScopedModel = preferred ?? scopedModels[0];\n\tif (mode.session.modelRuntime.hasConfiguredAuth(nextScopedModel.model.provider)) {\n\t\tawait mode.session.setModel(nextScopedModel.model);\n\t\tif (nextScopedModel.thinkingLevel && !mode.options.deferredModelScopePreserveThinking) {\n\t\t\tmode.session.setThinkingLevel(nextScopedModel.thinkingLevel);\n\t\t}\n\t}\n}\n\n/**\n * Session-restored models and complete settings defaults may depend on an\n * extension provider. Re-evaluate them after deferred registration finishes,\n * then surface only the final warning state.\n */\nInteractiveModeBase.prototype.retryDeferredModelRestore = async function (\n\tthis: InteractiveModeBase,\n\ttargetContainer?: Container,\n): Promise<void> {\n\tconst preliminaryFallbackMessage = this.options.modelFallbackMessage;\n\tif (!preliminaryFallbackMessage) return;\n\n\tconst savedModel = this.sessionManager.buildSessionContext().model;\n\tif (!savedModel && this.session.model && this.session.modelRuntime.hasConfiguredAuth(this.session.model.provider)) {\n\t\treturn;\n\t}\n\tif (savedModel) {\n\t\tconst restoredModel = await resolveRestoredModelReference(\n\t\t\tsavedModel.provider,\n\t\t\tsavedModel.modelId,\n\t\t\tthis.session.modelRuntime,\n\t\t);\n\t\tif (restoredModel && this.session.modelRuntime.hasConfiguredAuth(restoredModel.provider)) {\n\t\t\tawait this.session.setModel(restoredModel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n\t\treturn;\n\t}\n\n\tconst defaultProvider = this.settingsManager.getDefaultProvider();\n\tconst defaultModelId = this.settingsManager.getDefaultModel();\n\tif (defaultProvider && defaultModelId) {\n\t\tconst result = await findInitialModel({\n\t\t\tscopedModels: [],\n\t\t\tisContinuing: false,\n\t\t\tdefaultProvider,\n\t\t\tdefaultModelId,\n\t\t\tdefaultThinkingLevel: this.settingsManager.getDefaultThinkingLevel(),\n\t\t\tmodelRuntime: this.session.modelRuntime,\n\t\t});\n\t\tif (result.model) {\n\t\t\tawait this.session.setModel(result.model);\n\t\t\tthis.session.setThinkingLevel(result.thinkingLevel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(result.fallbackMessage ?? formatNoModelsAvailableMessage(), targetContainer);\n\t\treturn;\n\t}\n\n\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n};\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-deferred-startup.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-deferred-startup.ts"],"names":[],"mappings":"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","sourcesContent":["import { modelsAreEqual } from \"@bastani/pi-ai/compat\";\nimport { loadAllHighlightLanguages } from \"../../utils/syntax-highlight.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\ttype Container,\n\tfindInitialModel,\n\tformatNoModelsAvailableMessage,\n\trecordTimeSinceReset,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n\tsetRegisteredThemes,\n} from \"./interactive-mode-deps.ts\";\nimport { releaseStartupChatOutput } from \"./interactive-startup-chat-container.ts\";\n\nexport interface DeferredStartupMode {\n\tdeferredStartupPending: boolean;\n\tdeferredStartupPromise: Promise<void> | undefined;\n\tcompleteDeferredStartup(): Promise<void>;\n}\n\nexport async function ensureDeferredStartupComplete(mode: DeferredStartupMode): Promise<void> {\n\tif (!mode.deferredStartupPending && !mode.deferredStartupPromise) return;\n\tconst startupPromise = mode.deferredStartupPromise ?? Promise.resolve().then(() => mode.completeDeferredStartup());\n\tmode.deferredStartupPromise = startupPromise;\n\ttry {\n\t\tawait startupPromise;\n\t} catch {\n\t\tmode.deferredStartupPending = false;\n\t} finally {\n\t\tif (mode.deferredStartupPromise === startupPromise && !mode.deferredStartupPending) {\n\t\t\tmode.deferredStartupPromise = undefined;\n\t\t}\n\t}\n}\n\nInteractiveModeBase.prototype.ensureDeferredStartupComplete = async function (\n\tthis: InteractiveModeBase,\n): Promise<void> {\n\tawait ensureDeferredStartupComplete(this);\n};\n\n/**\n * Finishes a startup where extension loading was deferred so the TUI could\n * paint immediately. Loads extension code via session.reload(), then applies\n * the same post-load UI wiring as /reload and discloses loaded resources.\n */\nInteractiveModeBase.prototype.completeDeferredStartup = async function (this: InteractiveModeBase): Promise<void> {\n\ttry {\n\t\tawait this.bindCurrentSessionExtensions();\n\t\tawait this.session.reload({ reason: \"startup\" });\n\t\t// Initial transcript rows precede deferred extension loading, so rebuild them\n\t\t// against the new extension registry before releasing startup output.\n\t\tthis.rebuildChatFromMessages();\n\n\t\t// A prompt turn keeps its own working loader mounted from submit until\n\t\t// `agent_start` or `compaction_start` takes over; tearing it down here\n\t\t// would leave the rest of startup and prompt preflight with no indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\trecordTimeSinceReset(\"deferred-extension-load\");\n\n\t\tsetRegisteredThemes(this.session.resourceLoader.getThemes().themes);\n\t\tawait this.themeController.applyFromSettings();\n\t\tthis.setupAutocompleteProvider();\n\t\tthis.setupExtensionShortcuts(this.session.extensionRunner);\n\t\tawait applyDeferredModelScope(this);\n\t\tawait this.retryDeferredModelRestore(this.startupNoticesContainer);\n\t\tthis.showLoadedResources({\n\t\t\tforce: true,\n\t\t\tshowDiagnosticsWhenQuiet: true,\n\t\t\ttargetContainer: this.resourceDisclosureContainer,\n\t\t});\n\t\t// Keep the subscription warning after the RESOURCES disclosure.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t\tthis.showStartupNoticesIfNeeded(this.startupNoticesContainer);\n\t\tconst modelsJsonError = this.session.modelRuntime.getError();\n\t\tif (modelsJsonError) {\n\t\t\tthis.showError(`models.json error: ${modelsJsonError}`);\n\t\t}\n\t\tvoid this.updateAvailableProviderCount().catch(() => {});\n\t\tthis.updateEditorBorderColor();\n\t\tthis.ui.requestRender();\n\t\tvoid loadAllHighlightLanguages().then(() => this.ui.requestRender());\n\t} catch (error) {\n\t\t// Same ownership rule as the success path: this catch swallows the error,\n\t\t// so prompt preflight continues and must keep its indicator.\n\t\tif (!this.promptTurnWorkingLoaderActive) {\n\t\t\tthis.stopWorkingLoader();\n\t\t}\n\t\tthis.deferredStartupPending = false;\n\t\tthis.showError(`Extension loading failed: ${error instanceof Error ? error.message : String(error)}`);\n\t\t// The RESOURCES disclosure will not render; surface the held warning.\n\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(undefined, this.startupNoticesContainer);\n\t} finally {\n\t\t// Extension loading has either produced the disclosure or definitively\n\t\t// failed, so startup ordering is resolved before any prompt can run.\n\t\treleaseStartupChatOutput(this);\n\t}\n};\n\nexport async function applyDeferredModelScope(mode: InteractiveModeBase): Promise<void> {\n\tconst patterns = mode.options.deferredModelScopePatterns;\n\tif (!patterns || patterns.length === 0) {\n\t\treturn;\n\t}\n\n\tconst { scopedModels, diagnostics } = await resolveModelScopeWithDiagnostics(patterns, mode.session.modelRuntime);\n\tfor (const diagnostic of diagnostics) {\n\t\tmode.showWarning(diagnostic.message);\n\t}\n\tmode.session.setScopedModels(scopedModels);\n\n\tif (mode.sessionManager.buildSessionContext().messages.length > 0 || scopedModels.length === 0) {\n\t\treturn;\n\t}\n\n\tconst currentModel = mode.session.model;\n\tif (currentModel && scopedModels.some((scoped) => modelsAreEqual(scoped.model, currentModel))) {\n\t\treturn;\n\t}\n\n\tconst savedProvider = mode.settingsManager.getDefaultProvider();\n\tconst savedModelId = mode.settingsManager.getDefaultModel();\n\tconst savedModel =\n\t\tsavedProvider && savedModelId ? mode.session.modelRuntime.getModel(savedProvider, savedModelId) : undefined;\n\tconst preferred = savedModel ? scopedModels.find((scoped) => modelsAreEqual(scoped.model, savedModel)) : undefined;\n\tconst nextScopedModel = preferred ?? scopedModels[0];\n\tif (mode.session.modelRuntime.hasConfiguredAuth(nextScopedModel.model.provider)) {\n\t\tawait mode.session.setModel(nextScopedModel.model);\n\t\tif (nextScopedModel.thinkingLevel && !mode.options.deferredModelScopePreserveThinking) {\n\t\t\tmode.session.setThinkingLevel(nextScopedModel.thinkingLevel);\n\t\t}\n\t}\n}\n\n/**\n * Session-restored models and complete settings defaults may depend on an\n * extension provider. Re-evaluate them after deferred registration finishes,\n * then surface only the final warning state.\n */\nInteractiveModeBase.prototype.retryDeferredModelRestore = async function (\n\tthis: InteractiveModeBase,\n\ttargetContainer?: Container,\n): Promise<void> {\n\tconst preliminaryFallbackMessage = this.options.modelFallbackMessage;\n\tif (!preliminaryFallbackMessage) return;\n\n\tconst savedModel = this.sessionManager.buildSessionContext().model;\n\tif (!savedModel && this.session.model && this.session.modelRuntime.hasConfiguredAuth(this.session.model.provider)) {\n\t\treturn;\n\t}\n\tif (savedModel) {\n\t\tconst restoredModel = await resolveRestoredModelReference(\n\t\t\tsavedModel.provider,\n\t\t\tsavedModel.modelId,\n\t\t\tthis.session.modelRuntime,\n\t\t);\n\t\tif (restoredModel && this.session.modelRuntime.hasConfiguredAuth(restoredModel.provider)) {\n\t\t\tawait this.session.setModel(restoredModel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n\t\treturn;\n\t}\n\n\tconst defaultProvider = this.settingsManager.getDefaultProvider();\n\tconst defaultModelId = this.settingsManager.getDefaultModel();\n\tif (defaultProvider && defaultModelId) {\n\t\tconst result = await findInitialModel({\n\t\t\tscopedModels: [],\n\t\t\tisContinuing: false,\n\t\t\tdefaultProvider,\n\t\t\tdefaultModelId,\n\t\t\tdefaultThinkingLevel: this.settingsManager.getDefaultThinkingLevel(),\n\t\t\tmodelRuntime: this.session.modelRuntime,\n\t\t});\n\t\tif (result.model) {\n\t\t\tawait this.session.setModel(result.model);\n\t\t\tthis.session.setThinkingLevel(result.thinkingLevel);\n\t\t\treturn;\n\t\t}\n\t\tthis.showWarning(result.fallbackMessage ?? formatNoModelsAvailableMessage(), targetContainer);\n\t\treturn;\n\t}\n\n\tthis.showWarning(preliminaryFallbackMessage, targetContainer);\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { StartupIdentityComponent } from "./components/startup-identity.js";
|
|
2
2
|
import { InteractiveModeBase } from "./interactive-mode-base.js";
|
|
3
|
-
import { APP_NAME, CHANGELOG_URL, DynamicBorder, getCapabilities, hyperlink, openExternalEditorForText, Spacer, Text, theme, } from "./interactive-mode-deps.js";
|
|
3
|
+
import { APP_NAME, AssistantMessageComponent, CHANGELOG_URL, DynamicBorder, getCapabilities, hyperlink, openExternalEditorForText, Spacer, Text, theme, } from "./interactive-mode-deps.js";
|
|
4
4
|
import { ExpandableText, isExpandable } from "./interactive-mode-helpers.js";
|
|
5
5
|
InteractiveModeBase.prototype.refreshBuiltInHeader = function () {
|
|
6
6
|
if (this.builtInHeader instanceof ExpandableText || this.builtInHeader instanceof StartupIdentityComponent) {
|
|
@@ -66,18 +66,19 @@ InteractiveModeBase.prototype.setToolsExpanded = function (expanded) {
|
|
|
66
66
|
// The rendered chat is the feedback; a status line restating it only adds noise.
|
|
67
67
|
this.ui.requestRender();
|
|
68
68
|
};
|
|
69
|
+
/** Update rendered assistant messages without rebuilding live tool components. */
|
|
70
|
+
InteractiveModeBase.prototype.updateThinkingBlockVisibility = function () {
|
|
71
|
+
for (const child of this.chatContainer.children) {
|
|
72
|
+
if (child instanceof AssistantMessageComponent) {
|
|
73
|
+
child.setHideThinkingBlock(this.hideThinkingBlock);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
this.ui.requestRender();
|
|
77
|
+
};
|
|
69
78
|
InteractiveModeBase.prototype.toggleThinkingBlockVisibility = function () {
|
|
70
79
|
this.hideThinkingBlock = !this.hideThinkingBlock;
|
|
71
80
|
this.settingsManager.setHideThinkingBlock(this.hideThinkingBlock);
|
|
72
|
-
|
|
73
|
-
this.chatContainer.clear();
|
|
74
|
-
this.rebuildChatFromMessages();
|
|
75
|
-
// If streaming, re-add the streaming component with updated visibility and re-render
|
|
76
|
-
if (this.streamingComponent && this.streamingMessage) {
|
|
77
|
-
this.streamingComponent.setHideThinkingBlock(this.hideThinkingBlock);
|
|
78
|
-
this.streamingComponent.updateContent(this.streamingMessage);
|
|
79
|
-
this.chatContainer.addChild(this.streamingComponent);
|
|
80
|
-
}
|
|
81
|
+
this.updateThinkingBlockVisibility();
|
|
81
82
|
this.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? "hidden" : "visible"}`);
|
|
82
83
|
};
|
|
83
84
|
InteractiveModeBase.prototype.openExternalEditor = async function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-editor-actions.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-editor-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\tAPP_NAME,\n\tCHANGELOG_URL,\n\tDynamicBorder,\n\tgetCapabilities,\n\thyperlink,\n\topenExternalEditorForText,\n\tSpacer,\n\tText,\n\ttheme,\n} from \"./interactive-mode-deps.ts\";\nimport { ExpandableText, isExpandable } from \"./interactive-mode-helpers.ts\";\n\nInteractiveModeBase.prototype.refreshBuiltInHeader = function (this: InteractiveModeBase): void {\n\tif (this.builtInHeader instanceof ExpandableText || this.builtInHeader instanceof StartupIdentityComponent) {\n\t\tthis.builtInHeader.refresh();\n\t}\n};\n\nInteractiveModeBase.prototype.updateEditorBorderColor = function (this: InteractiveModeBase): void {\n\tif (this.isBashMode) {\n\t\tthis.editor.borderColor = theme.getBashModeBorderColor();\n\t} else {\n\t\tconst level = this.session.thinkingLevel || \"off\";\n\t\tthis.editor.borderColor = theme.getThinkingBorderColor(level);\n\t}\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.cycleThinkingLevel = function (this: InteractiveModeBase): void {\n\tconst newLevel = this.session.cycleThinkingLevel();\n\tif (newLevel === undefined) {\n\t\tthis.showStatus(\"Current model does not support thinking\");\n\t} else {\n\t\tthis.footer.invalidate();\n\t\tthis.updateEditorBorderColor();\n\t\tthis.showStatus(`Thinking level: ${newLevel}`);\n\t}\n};\n\nInteractiveModeBase.prototype.cycleModel = async function (\n\tthis: InteractiveModeBase,\n\tdirection: \"forward\" | \"backward\",\n): Promise<void> {\n\ttry {\n\t\tconst result = await this.session.cycleModel(direction);\n\t\tif (result === undefined) {\n\t\t\tconst msg = this.session.scopedModels.length > 0 ? \"Only one model in scope\" : \"Only one model available\";\n\t\t\tthis.showStatus(msg);\n\t\t} else {\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tconst thinkingStr =\n\t\t\t\tresult.model.reasoning && result.thinkingLevel !== \"off\" ? ` (thinking: ${result.thinkingLevel})` : \"\";\n\t\t\tthis.showStatus(`Switched to ${result.model.name || result.model.id}${thinkingStr}`);\n\t\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(result.model);\n\t\t}\n\t} catch (error) {\n\t\tthis.showError(error instanceof Error ? error.message : String(error));\n\t}\n};\n\nInteractiveModeBase.prototype.toggleToolOutputExpansion = function (this: InteractiveModeBase): void {\n\tthis.setToolsExpanded(!this.toolOutputExpanded);\n};\n\nInteractiveModeBase.prototype.setToolsExpanded = function (this: InteractiveModeBase, expanded: boolean): void {\n\tif (expanded === this.toolOutputExpanded) return;\n\tthis.toolOutputExpanded = expanded;\n\tconst activeHeader = this.customHeader ?? this.builtInHeader;\n\tif (isExpandable(activeHeader)) {\n\t\tactiveHeader.setExpanded(expanded);\n\t}\n\tfor (const child of this.chatContainer.children) {\n\t\tif (isExpandable(child)) {\n\t\t\tchild.setExpanded(expanded);\n\t\t}\n\t}\n\t// The rendered chat is the feedback; a status line restating it only adds noise.\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.toggleThinkingBlockVisibility = function (this: InteractiveModeBase): void {\n\tthis.hideThinkingBlock = !this.hideThinkingBlock;\n\tthis.settingsManager.setHideThinkingBlock(this.hideThinkingBlock);\n\n\t// Rebuild chat from session messages\n\tthis.chatContainer.clear();\n\tthis.rebuildChatFromMessages();\n\n\t// If streaming, re-add the streaming component with updated visibility and re-render\n\tif (this.streamingComponent && this.streamingMessage) {\n\t\tthis.streamingComponent.setHideThinkingBlock(this.hideThinkingBlock);\n\t\tthis.streamingComponent.updateContent(this.streamingMessage);\n\t\tthis.chatContainer.addChild(this.streamingComponent);\n\t}\n\n\tthis.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? \"hidden\" : \"visible\"}`);\n};\n\nInteractiveModeBase.prototype.openExternalEditor = async function (this: InteractiveModeBase): Promise<void> {\n\tconst currentText = this.editor.getExpandedText?.() ?? this.editor.getText();\n\tconst updated = await openExternalEditorForText(currentText, this.ui, {\n\t\teditorCommand: this.settingsManager.getExternalEditorCommand(),\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n\tif (updated !== undefined) this.editor.setText(updated);\n};\n\nInteractiveModeBase.prototype.clearEditor = function (this: InteractiveModeBase): void {\n\tthis.editor.setText(\"\");\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showError = function (this: InteractiveModeBase, errorMessage: string): void {\n\tthis.chatContainer.addChild(new Spacer(1));\n\tthis.chatContainer.addChild(new Text(theme.fg(\"error\", `Error: ${errorMessage}`), 1, 0));\n\tthis.chatContainer.addChild(new Spacer(1));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showWarning = function (\n\tthis: InteractiveModeBase,\n\twarningMessage: string,\n\ttargetContainer = this.chatContainer,\n): void {\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new Text(theme.fg(\"warning\", `Warning: ${warningMessage}`), 1, 0));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showNewVersionNotification = function (\n\tthis: InteractiveModeBase,\n\tnewVersion: string,\n\ttargetContainer = this.chatContainer,\n): void {\n\tconst action = theme.fg(\"accent\", `${APP_NAME} update`);\n\tconst updateInstruction = theme.fg(\"muted\", `New version ${newVersion} is available. Run `) + action;\n\tconst changelogLine = CHANGELOG_URL\n\t\t? `\\n${theme.fg(\"muted\", \"Changelog: \")}${\n\t\t\t\tgetCapabilities().hyperlinks\n\t\t\t\t\t? hyperlink(theme.fg(\"accent\", \"open changelog\"), CHANGELOG_URL)\n\t\t\t\t\t: theme.fg(\"accent\", CHANGELOG_URL)\n\t\t\t}`\n\t\t: \"\";\n\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\ttargetContainer.addChild(\n\t\tnew Text(`${theme.bold(theme.fg(\"warning\", \"Update Available\"))}\\n${updateInstruction}${changelogLine}`, 1, 0),\n\t);\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showPackageUpdateNotification = function (\n\tthis: InteractiveModeBase,\n\tpackages: string[],\n\ttargetContainer = this.chatContainer,\n): void {\n\tconst action = theme.fg(\"accent\", `${APP_NAME} update --extensions`);\n\tconst updateInstruction = theme.fg(\"muted\", \"Package updates are available. Run \") + action;\n\tconst packageLines = packages.map((pkg) => `- ${pkg}`).join(\"\\n\");\n\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\ttargetContainer.addChild(\n\t\tnew Text(\n\t\t\t`${theme.bold(theme.fg(\"warning\", \"Package Updates Available\"))}\\n${updateInstruction}\\n${theme.fg(\"muted\", \"Packages:\")}\\n${packageLines}`,\n\t\t\t1,\n\t\t\t0,\n\t\t),\n\t);\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\tthis.ui.requestRender();\n};\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-editor-actions.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-editor-actions.ts"],"names":[],"mappings":"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","sourcesContent":["import { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { InteractiveModeBase } from \"./interactive-mode-base.ts\";\nimport {\n\tAPP_NAME,\n\tAssistantMessageComponent,\n\tCHANGELOG_URL,\n\tDynamicBorder,\n\tgetCapabilities,\n\thyperlink,\n\topenExternalEditorForText,\n\tSpacer,\n\tText,\n\ttheme,\n} from \"./interactive-mode-deps.ts\";\nimport { ExpandableText, isExpandable } from \"./interactive-mode-helpers.ts\";\n\nInteractiveModeBase.prototype.refreshBuiltInHeader = function (this: InteractiveModeBase): void {\n\tif (this.builtInHeader instanceof ExpandableText || this.builtInHeader instanceof StartupIdentityComponent) {\n\t\tthis.builtInHeader.refresh();\n\t}\n};\n\nInteractiveModeBase.prototype.updateEditorBorderColor = function (this: InteractiveModeBase): void {\n\tif (this.isBashMode) {\n\t\tthis.editor.borderColor = theme.getBashModeBorderColor();\n\t} else {\n\t\tconst level = this.session.thinkingLevel || \"off\";\n\t\tthis.editor.borderColor = theme.getThinkingBorderColor(level);\n\t}\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.cycleThinkingLevel = function (this: InteractiveModeBase): void {\n\tconst newLevel = this.session.cycleThinkingLevel();\n\tif (newLevel === undefined) {\n\t\tthis.showStatus(\"Current model does not support thinking\");\n\t} else {\n\t\tthis.footer.invalidate();\n\t\tthis.updateEditorBorderColor();\n\t\tthis.showStatus(`Thinking level: ${newLevel}`);\n\t}\n};\n\nInteractiveModeBase.prototype.cycleModel = async function (\n\tthis: InteractiveModeBase,\n\tdirection: \"forward\" | \"backward\",\n): Promise<void> {\n\ttry {\n\t\tconst result = await this.session.cycleModel(direction);\n\t\tif (result === undefined) {\n\t\t\tconst msg = this.session.scopedModels.length > 0 ? \"Only one model in scope\" : \"Only one model available\";\n\t\t\tthis.showStatus(msg);\n\t\t} else {\n\t\t\tthis.footer.invalidate();\n\t\t\tthis.updateEditorBorderColor();\n\t\t\tconst thinkingStr =\n\t\t\t\tresult.model.reasoning && result.thinkingLevel !== \"off\" ? ` (thinking: ${result.thinkingLevel})` : \"\";\n\t\t\tthis.showStatus(`Switched to ${result.model.name || result.model.id}${thinkingStr}`);\n\t\t\tvoid this.maybeWarnAboutAnthropicSubscriptionAuth(result.model);\n\t\t}\n\t} catch (error) {\n\t\tthis.showError(error instanceof Error ? error.message : String(error));\n\t}\n};\n\nInteractiveModeBase.prototype.toggleToolOutputExpansion = function (this: InteractiveModeBase): void {\n\tthis.setToolsExpanded(!this.toolOutputExpanded);\n};\n\nInteractiveModeBase.prototype.setToolsExpanded = function (this: InteractiveModeBase, expanded: boolean): void {\n\tif (expanded === this.toolOutputExpanded) return;\n\tthis.toolOutputExpanded = expanded;\n\tconst activeHeader = this.customHeader ?? this.builtInHeader;\n\tif (isExpandable(activeHeader)) {\n\t\tactiveHeader.setExpanded(expanded);\n\t}\n\tfor (const child of this.chatContainer.children) {\n\t\tif (isExpandable(child)) {\n\t\t\tchild.setExpanded(expanded);\n\t\t}\n\t}\n\t// The rendered chat is the feedback; a status line restating it only adds noise.\n\tthis.ui.requestRender();\n};\n\n/** Update rendered assistant messages without rebuilding live tool components. */\nInteractiveModeBase.prototype.updateThinkingBlockVisibility = function (this: InteractiveModeBase): void {\n\tfor (const child of this.chatContainer.children) {\n\t\tif (child instanceof AssistantMessageComponent) {\n\t\t\tchild.setHideThinkingBlock(this.hideThinkingBlock);\n\t\t}\n\t}\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.toggleThinkingBlockVisibility = function (this: InteractiveModeBase): void {\n\tthis.hideThinkingBlock = !this.hideThinkingBlock;\n\tthis.settingsManager.setHideThinkingBlock(this.hideThinkingBlock);\n\tthis.updateThinkingBlockVisibility();\n\tthis.showStatus(`Thinking blocks: ${this.hideThinkingBlock ? \"hidden\" : \"visible\"}`);\n};\n\nInteractiveModeBase.prototype.openExternalEditor = async function (this: InteractiveModeBase): Promise<void> {\n\tconst currentText = this.editor.getExpandedText?.() ?? this.editor.getText();\n\tconst updated = await openExternalEditorForText(currentText, this.ui, {\n\t\teditorCommand: this.settingsManager.getExternalEditorCommand(),\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n\tif (updated !== undefined) this.editor.setText(updated);\n};\n\nInteractiveModeBase.prototype.clearEditor = function (this: InteractiveModeBase): void {\n\tthis.editor.setText(\"\");\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showError = function (this: InteractiveModeBase, errorMessage: string): void {\n\tthis.chatContainer.addChild(new Spacer(1));\n\tthis.chatContainer.addChild(new Text(theme.fg(\"error\", `Error: ${errorMessage}`), 1, 0));\n\tthis.chatContainer.addChild(new Spacer(1));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showWarning = function (\n\tthis: InteractiveModeBase,\n\twarningMessage: string,\n\ttargetContainer = this.chatContainer,\n): void {\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new Text(theme.fg(\"warning\", `Warning: ${warningMessage}`), 1, 0));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showNewVersionNotification = function (\n\tthis: InteractiveModeBase,\n\tnewVersion: string,\n\ttargetContainer = this.chatContainer,\n): void {\n\tconst action = theme.fg(\"accent\", `${APP_NAME} update`);\n\tconst updateInstruction = theme.fg(\"muted\", `New version ${newVersion} is available. Run `) + action;\n\tconst changelogLine = CHANGELOG_URL\n\t\t? `\\n${theme.fg(\"muted\", \"Changelog: \")}${\n\t\t\t\tgetCapabilities().hyperlinks\n\t\t\t\t\t? hyperlink(theme.fg(\"accent\", \"open changelog\"), CHANGELOG_URL)\n\t\t\t\t\t: theme.fg(\"accent\", CHANGELOG_URL)\n\t\t\t}`\n\t\t: \"\";\n\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\ttargetContainer.addChild(\n\t\tnew Text(`${theme.bold(theme.fg(\"warning\", \"Update Available\"))}\\n${updateInstruction}${changelogLine}`, 1, 0),\n\t);\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\tthis.ui.requestRender();\n};\n\nInteractiveModeBase.prototype.showPackageUpdateNotification = function (\n\tthis: InteractiveModeBase,\n\tpackages: string[],\n\ttargetContainer = this.chatContainer,\n): void {\n\tconst action = theme.fg(\"accent\", `${APP_NAME} update --extensions`);\n\tconst updateInstruction = theme.fg(\"muted\", \"Package updates are available. Run \") + action;\n\tconst packageLines = packages.map((pkg) => `- ${pkg}`).join(\"\\n\");\n\n\ttargetContainer.addChild(new Spacer(1));\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\ttargetContainer.addChild(\n\t\tnew Text(\n\t\t\t`${theme.bold(theme.fg(\"warning\", \"Package Updates Available\"))}\\n${updateInstruction}\\n${theme.fg(\"muted\", \"Packages:\")}\\n${packageLines}`,\n\t\t\t1,\n\t\t\t0,\n\t\t),\n\t);\n\ttargetContainer.addChild(new DynamicBorder((text) => theme.fg(\"warning\", text)));\n\tthis.ui.requestRender();\n};\n"]}
|
|
@@ -266,6 +266,12 @@ InteractiveModeBase.prototype.setupEditorSubmitHandler = function () {
|
|
|
266
266
|
await this.handleModelCommand(searchTerm);
|
|
267
267
|
return;
|
|
268
268
|
}
|
|
269
|
+
if (text === "/thinking" || text.startsWith("/thinking ")) {
|
|
270
|
+
this.editor.setText("");
|
|
271
|
+
await this.ensureDeferredStartupComplete();
|
|
272
|
+
this.handleThinkingCommand(text.startsWith("/thinking ") ? text.slice(10).trim() : undefined);
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
269
275
|
if (text === "/export" || text.startsWith("/export ")) {
|
|
270
276
|
await this.handleExportCommand(text);
|
|
271
277
|
this.editor.setText("");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-input-handling.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-input-handling.ts"],"names":[],"mappings":"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","sourcesContent":["import { yieldToEventLoop } from \"../../utils/event-loop.ts\";\nimport {\n\tinteractiveEngineNeedsExplicitTermination,\n\tinterruptBlockedInteractiveEngine,\n\tterminateInteractiveEngine,\n} from \"../interactive-engine/extension-ui-bridge.ts\";\nimport {\n\tdismissRemoteProxy,\n\tremoteEngineProxyOwner,\n\tremoteProxyHandlesCtrlC,\n} from \"../interactive-engine/remote-input-ownership.ts\";\nimport { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { COMPACTION_ALREADY_IN_PROGRESS_WARNING } from \"./interactive-bash-compact.ts\";\nimport { routeGlobalClearInput } from \"./interactive-global-clear.ts\";\nimport { isPhysicalCtrlC, isPhysicalEscape, isSafetyKeyRelease } from \"./interactive-key-identity.ts\";\nimport { InteractiveModeBase, seedStartupInput } from \"./interactive-mode-base.ts\";\nimport { pasteClipboardImageToEditor, recordTimeSinceReset } from \"./interactive-mode-deps.ts\";\nimport { pauseAndAbortInteractiveSession } from \"./interactive-pause.ts\";\nimport { restoreFailedSubmissionDraft } from \"./interactive-prompt-restore.ts\";\n\nexport function registerStartupInputListeners(mode: InteractiveModeBase): void {\n\tmode.addTuiInputListener(() =>\n\t\tmode.builtInHeader instanceof StartupIdentityComponent ? void mode.builtInHeader.settle() : undefined,\n\t);\n\tmode.addTuiInputListener((data) =>\n\t\trouteGlobalClearInput(data, {\n\t\t\t// Physical identity first: safety routing must survive an `app.clear` remap.\n\t\t\tmatchesCtrlC: isPhysicalCtrlC,\n\t\t\tmatchesEscape: isPhysicalEscape,\n\t\t\tisSafetyKeyRelease,\n\t\t\tmatchesClear: (candidate) => mode.keybindings.matches(candidate, \"app.clear\"),\n\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\tblockingInlineCustomUiActive: () => mode.blockingInlineCustomUiDepth > 0,\n\t\t\teditorOwnsInput: () => mode.editorContainer.children.includes(mode.editor),\n\t\t\tremoteEngineProxyOwner: () =>\n\t\t\t\tremoteEngineProxyOwner(mode.runtimeHost, {\n\t\t\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\t\t\tinlineComponents: () => mode.editorContainer.children,\n\t\t\t\t}),\n\t\t\tremoteProxyHandlesCtrlC: (owner) => remoteProxyHandlesCtrlC(mode.runtimeHost, owner),\n\t\t\tonRemoteProxyDismiss: (owner) => {\n\t\t\t\tdismissRemoteProxy(mode.runtimeHost, owner);\n\t\t\t},\n\t\t\tengineNeedsExplicitTermination: () => interactiveEngineNeedsExplicitTermination(mode.runtimeHost),\n\t\t\tonEngineTerminate: () => {\n\t\t\t\tterminateInteractiveEngine(mode.runtimeHost);\n\t\t\t},\n\t\t\tonClear: () => mode.handleCtrlC(),\n\t\t\trequestRender: () => mode.ui.requestRender(),\n\t\t}),\n\t);\n}\n\nInteractiveModeBase.prototype.setupKeyHandlers = function (this: InteractiveModeBase): void {\n\tregisterStartupInputListeners(this);\n\t// Set up handlers on defaultEditor - they use this.editor for text access\n\t// so they work correctly regardless of which editor is active\n\tthis.defaultEditor.onEscape = () => {\n\t\tif (!this.session.isStreaming && interruptBlockedInteractiveEngine(this.runtimeHost)) return;\n\t\tif (this.session.isStreaming || this.session.agent.hasQueuedMessages() || this.session.queuedMessagesPaused) {\n\t\t\tpauseAndAbortInteractiveSession(this, { restoreQueuedMessages: true });\n\t\t} else if (this.session.isBashRunning) {\n\t\t\tthis.session.abortBash();\n\t\t} else if (this.isBashMode) {\n\t\t\tthis.editor.setText(\"\");\n\t\t\tthis.isBashMode = false;\n\t\t\tthis.updateEditorBorderColor();\n\t\t} else if (!this.editor.getText().trim()) {\n\t\t\t// Double-escape with empty editor triggers /tree, /fork, or nothing based on setting\n\t\t\tconst action = this.settingsManager.getDoubleEscapeAction();\n\t\t\tif (action !== \"none\") {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tif (now - this.lastEscapeTime < 500) {\n\t\t\t\t\tif (action === \"tree\") {\n\t\t\t\t\t\tthis.showTreeSelector();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastEscapeTime = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastEscapeTime = now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Register app action handlers\n\tthis.defaultEditor.onAction(\"app.clear\", () => this.handleCtrlC());\n\tthis.defaultEditor.onCtrlD = () => this.handleCtrlD();\n\tthis.defaultEditor.onAction(\"app.suspend\", () => this.handleCtrlZ());\n\tthis.defaultEditor.onAction(\"app.thinking.cycle\", () => this.cycleThinkingLevel());\n\tthis.defaultEditor.onAction(\"app.model.cycleForward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"forward\");\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.model.cycleBackward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"backward\");\n\t\t})();\n\t});\n\n\t// Global debug handler on TUI (works regardless of focus)\n\tthis.ui.onDebug = () => this.handleDebugCommand();\n\tthis.defaultEditor.onAction(\"app.model.select\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tthis.showModelSelector();\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.tools.expand\", () => this.toggleToolOutputExpansion());\n\tthis.defaultEditor.onAction(\"app.thinking.toggle\", () => this.toggleThinkingBlockVisibility());\n\tthis.defaultEditor.onAction(\"app.editor.external\", () => {\n\t\tvoid this.openExternalEditor();\n\t});\n\tthis.defaultEditor.onAction(\"app.message.followUp\", () => this.handleFollowUp());\n\tthis.defaultEditor.onAction(\"app.message.dequeue\", () => this.handleDequeue());\n\tthis.defaultEditor.onAction(\"app.session.new\", () => this.handleClearCommand());\n\tthis.defaultEditor.onAction(\"app.session.tree\", () => this.showTreeSelector());\n\tthis.defaultEditor.onAction(\"app.session.fork\", () => this.showUserMessageSelector());\n\tthis.defaultEditor.onAction(\"app.session.resume\", () => this.showSessionSelector());\n\n\tthis.defaultEditor.onChange = (text: string) => {\n\t\tconst wasBashMode = this.isBashMode;\n\t\tthis.isBashMode = text.trimStart().startsWith(\"!\");\n\t\tif (wasBashMode !== this.isBashMode) {\n\t\t\tthis.updateEditorBorderColor();\n\t\t}\n\t};\n\n\t// Handle clipboard image paste (triggered on Ctrl+V)\n\tthis.defaultEditor.onPasteImage = () => {\n\t\tthis.handleClipboardImagePaste();\n\t};\n};\n\nInteractiveModeBase.prototype.handleClipboardImagePaste = async function (this: InteractiveModeBase): Promise<void> {\n\tawait pasteClipboardImageToEditor(this.editor, () => this.ui.requestRender(), {\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n};\n\nInteractiveModeBase.prototype.deliverStartupReplayPrompt = function (this: InteractiveModeBase, text: string): void {\n\tif (this.onInputCallback) {\n\t\tif (!text.startsWith(\"/\")) {\n\t\t\tthis.renderDeferredUserInput(text);\n\t\t}\n\t\tconst callback = this.onInputCallback;\n\t\tthis.onInputCallback = undefined;\n\t\tcallback({ text, draft: text });\n\t} else {\n\t\tthis.pendingUserInputs.push({ text, draft: text });\n\t}\n};\n\nInteractiveModeBase.prototype.recoverCookedStartupInput = function (this: InteractiveModeBase): boolean {\n\tif (this.startupCookedInputRecovered || this.pendingUserInputs.length > 0) return true;\n\tconst text = this.editor.getText();\n\tconst cookedLines = text\n\t\t.split(/\\r?\\n/)\n\t\t.map((line) => line.trim())\n\t\t.filter(Boolean);\n\tconst isCommandLike = (line: string | undefined) =>\n\t\tline !== undefined && (line.startsWith(\"/\") || line.startsWith(\"!\"));\n\t// A raw startup capture distinguishes drafts from Enter-terminated submissions.\n\t// Never reinterpret its visible command-like draft (including a bare \"/\") as\n\t// submitted merely because header/chat initialization is now draining input.\n\tconst singleCommandLike =\n\t\tthis.options.startupInputCapture === undefined && cookedLines.length === 1 && isCommandLike(cookedLines[0]);\n\tif (cookedLines.length < 2 && !singleCommandLike) return false;\n\n\tthis.startupCookedInputRecovered = true;\n\tconst activeInput = this.startupReplayActiveInput?.trim();\n\tlet draftText = \"\";\n\tlet submissions = cookedLines;\n\tif (\n\t\tactiveInput === undefined &&\n\t\tcookedLines.length > 1 &&\n\t\t!isCommandLike(cookedLines[cookedLines.length - 1]) &&\n\t\t(!isCommandLike(cookedLines[0]) || cookedLines.length > 2)\n\t) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t} else if (activeInput && cookedLines.length > 1 && !isCommandLike(cookedLines[cookedLines.length - 1])) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t}\n\tif (submissions.length === 0) return true;\n\n\tif (activeInput) {\n\t\tconst queuedSubmissions = submissions[0] === activeInput ? submissions.slice(1) : submissions;\n\t\tthis.editor.setText(draftText);\n\t\tthis.startupReplayInputs.push(...queuedSubmissions);\n\t\treturn true;\n\t}\n\n\tthis.editor.setText(\"\");\n\tseedStartupInput(\n\t\tthis.pendingUserInputs,\n\t\tthis.editor,\n\t\t{ text: draftText, submissions },\n\t\tthis.startupReplayInputs,\n\t\t(draft) => {\n\t\t\tthis.startupDraftText = draft;\n\t\t},\n\t\t(active) => {\n\t\t\tthis.startupReplayActiveInput = active;\n\t\t},\n\t);\n\treturn true;\n};\n\nInteractiveModeBase.prototype.drainStartupReplayCommands = async function (this: InteractiveModeBase): Promise<void> {\n\twhile (this.pendingUserInputs.length === 0 && this.startupReplayActiveInput) {\n\t\tconst activeInput = this.startupReplayActiveInput;\n\t\tawait this.defaultEditor.onSubmit?.(activeInput);\n\t\tif (this.editor.getText().trim() === activeInput.trim()) {\n\t\t\tthis.editor.setText(\"\");\n\t\t}\n\t\tif (this.startupReplayActiveInput?.trim() === activeInput.trim()) break;\n\t}\n};\n\nInteractiveModeBase.prototype.advanceStartupInputReplay = function (\n\tthis: InteractiveModeBase,\n\tsubmittedText: string,\n): void {\n\tif (this.startupReplayActiveInput?.trim() !== submittedText.trim()) return;\n\tthis.startupReplayActiveInput = undefined;\n\n\twhile (this.startupReplayInputs.length > 0) {\n\t\tconst nextInput = this.startupReplayInputs.shift();\n\t\tif (nextInput === undefined) break;\n\t\tconst trimmed = nextInput.trimStart();\n\t\tif (trimmed.startsWith(\"/\") || trimmed.startsWith(\"!\")) {\n\t\t\tthis.startupReplayActiveInput = nextInput.trim();\n\t\t\tthis.editor.setText(this.startupReplayActiveInput);\n\t\t\tthis.ui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tthis.deliverStartupReplayPrompt(nextInput);\n\t}\n\n\tif (this.startupDraftText !== undefined) {\n\t\tthis.editor.setText(this.startupDraftText);\n\t\tthis.startupDraftText = undefined;\n\t\tthis.ui.requestRender();\n\t}\n};\n\nInteractiveModeBase.prototype.setupEditorSubmitHandler = function (this: InteractiveModeBase): void {\n\tthis.defaultEditor.onSubmit = async (text: string) => {\n\t\tif (!this.firstSubmitRecorded) {\n\t\t\tthis.firstSubmitRecorded = true;\n\t\t\trecordTimeSinceReset(\"interactive-first-submit\");\n\t\t}\n\t\t// pi-tui trims, expands pastes, and clears the editor before it calls\n\t\t// onSubmit, so the callback argument is already reduced. Prefer the buffer\n\t\t// CustomEditor snapshotted for this very dispatch, which is what the user\n\t\t// actually had, and fall back to the argument for other editors and for\n\t\t// tests that invoke onSubmit directly.\n\t\tconst submittedDraft = this.defaultEditor.takeSubmittedDraft?.() ?? text;\n\t\ttext = text.trim();\n\t\tif (!text) return;\n\n\t\tif (this.startupReplayActiveInput && this.startupReplayActiveInput.trim() !== text.trim()) {\n\t\t\tthis.startupReplayInputs.push(text);\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t\tthis.editor.setText(\"\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\t// Handle commands\n\t\t\tif (text === \"/settings\") {\n\t\t\t\tthis.showSettingsSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fast\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.showFastModeSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/scoped-models\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.showModelsSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/model\" || text.startsWith(\"/model \")) {\n\t\t\t\tconst searchTerm = text.startsWith(\"/model \") ? text.slice(7).trim() : undefined;\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleModelCommand(searchTerm);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/export\" || text.startsWith(\"/export \")) {\n\t\t\t\tawait this.handleExportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/import\" || text.startsWith(\"/import \")) {\n\t\t\t\tawait this.handleImportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/share\") {\n\t\t\t\tawait this.handleShareCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/copy\") {\n\t\t\t\tawait this.handleCopyCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/name\" || text.startsWith(\"/name \")) {\n\t\t\t\tthis.handleNameCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/session\") {\n\t\t\t\tthis.handleSessionCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/changelog\") {\n\t\t\t\tthis.handleChangelogCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/atomic\" || text.startsWith(\"/atomic \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/hotkeys\") {\n\t\t\t\tthis.handleHotkeysCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fork\") {\n\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/clone\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleCloneCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/tree\") {\n\t\t\t\tthis.showTreeSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/trust\") {\n\t\t\t\tthis.showTrustSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/login(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleLoginCommand(text.slice(\"/login\".length).trim() || undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/logout\") {\n\t\t\t\tthis.showOAuthSelector(\"logout\");\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/new\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleClearCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/compact(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tif (text !== \"/compact\") {\n\t\t\t\t\tthis.showWarning(\"Usage: /compact\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// A manual request can take over automatic compaction, but a second manual\n\t\t\t\t// compaction or branch summary still has no safe independent owner.\n\t\t\t\tconst automaticCompaction =\n\t\t\t\t\tthis.session.compactionReason === \"threshold\" || this.session.compactionReason === \"overflow\";\n\t\t\t\tif (this.manualCompactionTakeoverPending || (this.compactionActive && !automaticCompaction)) {\n\t\t\t\t\tthis.showWarning(COMPACTION_ALREADY_IN_PROGRESS_WARNING);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.handleCompactCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/reload\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleReloadCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/debug\") {\n\t\t\t\tthis.handleDebugCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/arminsayshi\") {\n\t\t\t\tthis.handleArminSaysHi();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/dementedelves\") {\n\t\t\t\tthis.handleDementedDelves();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/resume\") {\n\t\t\t\tthis.showSessionSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/quit\" || text === \"/exit\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.shutdown();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (text.startsWith(\"/\") && this.deferredStartupPending) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\tawait yieldToEventLoop();\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Handle bash command (! for normal, !! for excluded from context)\n\t\t\tif (text.startsWith(\"!\")) {\n\t\t\t\tconst isExcluded = text.startsWith(\"!!\");\n\t\t\t\tconst command = isExcluded ? text.slice(2).trim() : text.slice(1).trim();\n\t\t\t\tif (command) {\n\t\t\t\t\tif (this.session.isBashRunning) {\n\t\t\t\t\t\tthis.showWarning(\"A bash command is already running. esc cancel first.\");\n\t\t\t\t\t\tthis.editor.setText(text);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tawait this.handleBashCommand(command, isExcluded);\n\t\t\t\t\tthis.isBashMode = false;\n\t\t\t\t\tthis.updateEditorBorderColor();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Queue input during compaction (extension commands execute immediately)\n\t\t\tif (this.compactionActive) {\n\t\t\t\tif (this.isExtensionCommand(text)) {\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\t\tawait this.session.prompt(text);\n\t\t\t\t} else {\n\t\t\t\t\tthis.queueCompactionMessage(text, \"steer\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If streaming, use prompt() with steer behavior\n\t\t\t// This handles extension commands (execute immediately), prompt template expansion, and queueing\n\t\t\tif (this.session.isStreaming && !this.session.queuedMessagesPaused) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text, { streamingBehavior: \"steer\" });\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Normal message submission\n\t\t\t// First, move any pending bash components to chat\n\t\t\tthis.flushPendingBashComponents();\n\t\t\t// The draft travels with this submission, never through shared state: a\n\t\t\t// later submission whose trimmed text is identical must not be able to\n\t\t\t// claim, or clear, this one's exact buffer.\n\t\t\tconst submission = { text, draft: submittedDraft };\n\n\t\t\tif (this.onInputCallback) {\n\t\t\t\tif (!text.startsWith(\"/\")) {\n\t\t\t\t\tthis.renderDeferredUserInput(text);\n\t\t\t\t}\n\t\t\t\tthis.onInputCallback(submission);\n\t\t\t} else {\n\t\t\t\tthis.pendingUserInputs.push(submission);\n\t\t\t}\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t} catch (error) {\n\t\t\t// Direct dispatch branches above hand text straight to the engine and\n\t\t\t// never reach runUserPromptTurn(), so this is the only place their send\n\t\t\t// failures can put the draft back. Anything else is not ours to absorb.\n\t\t\tif (!restoreFailedSubmissionDraft(this, error, submittedDraft)) throw error;\n\t\t} finally {\n\t\t\tthis.advanceStartupInputReplay?.(text);\n\t\t}\n\t};\n};\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-input-handling.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-input-handling.ts"],"names":[],"mappings":"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","sourcesContent":["import { yieldToEventLoop } from \"../../utils/event-loop.ts\";\nimport {\n\tinteractiveEngineNeedsExplicitTermination,\n\tinterruptBlockedInteractiveEngine,\n\tterminateInteractiveEngine,\n} from \"../interactive-engine/extension-ui-bridge.ts\";\nimport {\n\tdismissRemoteProxy,\n\tremoteEngineProxyOwner,\n\tremoteProxyHandlesCtrlC,\n} from \"../interactive-engine/remote-input-ownership.ts\";\nimport { StartupIdentityComponent } from \"./components/startup-identity.ts\";\nimport { COMPACTION_ALREADY_IN_PROGRESS_WARNING } from \"./interactive-bash-compact.ts\";\nimport { routeGlobalClearInput } from \"./interactive-global-clear.ts\";\nimport { isPhysicalCtrlC, isPhysicalEscape, isSafetyKeyRelease } from \"./interactive-key-identity.ts\";\nimport { InteractiveModeBase, seedStartupInput } from \"./interactive-mode-base.ts\";\nimport { pasteClipboardImageToEditor, recordTimeSinceReset } from \"./interactive-mode-deps.ts\";\nimport { pauseAndAbortInteractiveSession } from \"./interactive-pause.ts\";\nimport { restoreFailedSubmissionDraft } from \"./interactive-prompt-restore.ts\";\n\nexport function registerStartupInputListeners(mode: InteractiveModeBase): void {\n\tmode.addTuiInputListener(() =>\n\t\tmode.builtInHeader instanceof StartupIdentityComponent ? void mode.builtInHeader.settle() : undefined,\n\t);\n\tmode.addTuiInputListener((data) =>\n\t\trouteGlobalClearInput(data, {\n\t\t\t// Physical identity first: safety routing must survive an `app.clear` remap.\n\t\t\tmatchesCtrlC: isPhysicalCtrlC,\n\t\t\tmatchesEscape: isPhysicalEscape,\n\t\t\tisSafetyKeyRelease,\n\t\t\tmatchesClear: (candidate) => mode.keybindings.matches(candidate, \"app.clear\"),\n\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\tblockingInlineCustomUiActive: () => mode.blockingInlineCustomUiDepth > 0,\n\t\t\teditorOwnsInput: () => mode.editorContainer.children.includes(mode.editor),\n\t\t\tremoteEngineProxyOwner: () =>\n\t\t\t\tremoteEngineProxyOwner(mode.runtimeHost, {\n\t\t\t\t\thasOverlay: () => mode.ui.hasOverlay(),\n\t\t\t\t\tinlineComponents: () => mode.editorContainer.children,\n\t\t\t\t}),\n\t\t\tremoteProxyHandlesCtrlC: (owner) => remoteProxyHandlesCtrlC(mode.runtimeHost, owner),\n\t\t\tonRemoteProxyDismiss: (owner) => {\n\t\t\t\tdismissRemoteProxy(mode.runtimeHost, owner);\n\t\t\t},\n\t\t\tengineNeedsExplicitTermination: () => interactiveEngineNeedsExplicitTermination(mode.runtimeHost),\n\t\t\tonEngineTerminate: () => {\n\t\t\t\tterminateInteractiveEngine(mode.runtimeHost);\n\t\t\t},\n\t\t\tonClear: () => mode.handleCtrlC(),\n\t\t\trequestRender: () => mode.ui.requestRender(),\n\t\t}),\n\t);\n}\n\nInteractiveModeBase.prototype.setupKeyHandlers = function (this: InteractiveModeBase): void {\n\tregisterStartupInputListeners(this);\n\t// Set up handlers on defaultEditor - they use this.editor for text access\n\t// so they work correctly regardless of which editor is active\n\tthis.defaultEditor.onEscape = () => {\n\t\tif (!this.session.isStreaming && interruptBlockedInteractiveEngine(this.runtimeHost)) return;\n\t\tif (this.session.isStreaming || this.session.agent.hasQueuedMessages() || this.session.queuedMessagesPaused) {\n\t\t\tpauseAndAbortInteractiveSession(this, { restoreQueuedMessages: true });\n\t\t} else if (this.session.isBashRunning) {\n\t\t\tthis.session.abortBash();\n\t\t} else if (this.isBashMode) {\n\t\t\tthis.editor.setText(\"\");\n\t\t\tthis.isBashMode = false;\n\t\t\tthis.updateEditorBorderColor();\n\t\t} else if (!this.editor.getText().trim()) {\n\t\t\t// Double-escape with empty editor triggers /tree, /fork, or nothing based on setting\n\t\t\tconst action = this.settingsManager.getDoubleEscapeAction();\n\t\t\tif (action !== \"none\") {\n\t\t\t\tconst now = Date.now();\n\t\t\t\tif (now - this.lastEscapeTime < 500) {\n\t\t\t\t\tif (action === \"tree\") {\n\t\t\t\t\t\tthis.showTreeSelector();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\t\t}\n\t\t\t\t\tthis.lastEscapeTime = 0;\n\t\t\t\t} else {\n\t\t\t\t\tthis.lastEscapeTime = now;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\t// Register app action handlers\n\tthis.defaultEditor.onAction(\"app.clear\", () => this.handleCtrlC());\n\tthis.defaultEditor.onCtrlD = () => this.handleCtrlD();\n\tthis.defaultEditor.onAction(\"app.suspend\", () => this.handleCtrlZ());\n\tthis.defaultEditor.onAction(\"app.thinking.cycle\", () => this.cycleThinkingLevel());\n\tthis.defaultEditor.onAction(\"app.model.cycleForward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"forward\");\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.model.cycleBackward\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tawait this.cycleModel(\"backward\");\n\t\t})();\n\t});\n\n\t// Global debug handler on TUI (works regardless of focus)\n\tthis.ui.onDebug = () => this.handleDebugCommand();\n\tthis.defaultEditor.onAction(\"app.model.select\", () => {\n\t\tvoid (async () => {\n\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\tthis.showModelSelector();\n\t\t})();\n\t});\n\tthis.defaultEditor.onAction(\"app.tools.expand\", () => this.toggleToolOutputExpansion());\n\tthis.defaultEditor.onAction(\"app.thinking.toggle\", () => this.toggleThinkingBlockVisibility());\n\tthis.defaultEditor.onAction(\"app.editor.external\", () => {\n\t\tvoid this.openExternalEditor();\n\t});\n\tthis.defaultEditor.onAction(\"app.message.followUp\", () => this.handleFollowUp());\n\tthis.defaultEditor.onAction(\"app.message.dequeue\", () => this.handleDequeue());\n\tthis.defaultEditor.onAction(\"app.session.new\", () => this.handleClearCommand());\n\tthis.defaultEditor.onAction(\"app.session.tree\", () => this.showTreeSelector());\n\tthis.defaultEditor.onAction(\"app.session.fork\", () => this.showUserMessageSelector());\n\tthis.defaultEditor.onAction(\"app.session.resume\", () => this.showSessionSelector());\n\n\tthis.defaultEditor.onChange = (text: string) => {\n\t\tconst wasBashMode = this.isBashMode;\n\t\tthis.isBashMode = text.trimStart().startsWith(\"!\");\n\t\tif (wasBashMode !== this.isBashMode) {\n\t\t\tthis.updateEditorBorderColor();\n\t\t}\n\t};\n\n\t// Handle clipboard image paste (triggered on Ctrl+V)\n\tthis.defaultEditor.onPasteImage = () => {\n\t\tthis.handleClipboardImagePaste();\n\t};\n};\n\nInteractiveModeBase.prototype.handleClipboardImagePaste = async function (this: InteractiveModeBase): Promise<void> {\n\tawait pasteClipboardImageToEditor(this.editor, () => this.ui.requestRender(), {\n\t\tshowWarning: (message) => this.showWarning(message),\n\t});\n};\n\nInteractiveModeBase.prototype.deliverStartupReplayPrompt = function (this: InteractiveModeBase, text: string): void {\n\tif (this.onInputCallback) {\n\t\tif (!text.startsWith(\"/\")) {\n\t\t\tthis.renderDeferredUserInput(text);\n\t\t}\n\t\tconst callback = this.onInputCallback;\n\t\tthis.onInputCallback = undefined;\n\t\tcallback({ text, draft: text });\n\t} else {\n\t\tthis.pendingUserInputs.push({ text, draft: text });\n\t}\n};\n\nInteractiveModeBase.prototype.recoverCookedStartupInput = function (this: InteractiveModeBase): boolean {\n\tif (this.startupCookedInputRecovered || this.pendingUserInputs.length > 0) return true;\n\tconst text = this.editor.getText();\n\tconst cookedLines = text\n\t\t.split(/\\r?\\n/)\n\t\t.map((line) => line.trim())\n\t\t.filter(Boolean);\n\tconst isCommandLike = (line: string | undefined) =>\n\t\tline !== undefined && (line.startsWith(\"/\") || line.startsWith(\"!\"));\n\t// A raw startup capture distinguishes drafts from Enter-terminated submissions.\n\t// Never reinterpret its visible command-like draft (including a bare \"/\") as\n\t// submitted merely because header/chat initialization is now draining input.\n\tconst singleCommandLike =\n\t\tthis.options.startupInputCapture === undefined && cookedLines.length === 1 && isCommandLike(cookedLines[0]);\n\tif (cookedLines.length < 2 && !singleCommandLike) return false;\n\n\tthis.startupCookedInputRecovered = true;\n\tconst activeInput = this.startupReplayActiveInput?.trim();\n\tlet draftText = \"\";\n\tlet submissions = cookedLines;\n\tif (\n\t\tactiveInput === undefined &&\n\t\tcookedLines.length > 1 &&\n\t\t!isCommandLike(cookedLines[cookedLines.length - 1]) &&\n\t\t(!isCommandLike(cookedLines[0]) || cookedLines.length > 2)\n\t) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t} else if (activeInput && cookedLines.length > 1 && !isCommandLike(cookedLines[cookedLines.length - 1])) {\n\t\tdraftText = cookedLines[cookedLines.length - 1] ?? \"\";\n\t\tsubmissions = cookedLines.slice(0, -1);\n\t}\n\tif (submissions.length === 0) return true;\n\n\tif (activeInput) {\n\t\tconst queuedSubmissions = submissions[0] === activeInput ? submissions.slice(1) : submissions;\n\t\tthis.editor.setText(draftText);\n\t\tthis.startupReplayInputs.push(...queuedSubmissions);\n\t\treturn true;\n\t}\n\n\tthis.editor.setText(\"\");\n\tseedStartupInput(\n\t\tthis.pendingUserInputs,\n\t\tthis.editor,\n\t\t{ text: draftText, submissions },\n\t\tthis.startupReplayInputs,\n\t\t(draft) => {\n\t\t\tthis.startupDraftText = draft;\n\t\t},\n\t\t(active) => {\n\t\t\tthis.startupReplayActiveInput = active;\n\t\t},\n\t);\n\treturn true;\n};\n\nInteractiveModeBase.prototype.drainStartupReplayCommands = async function (this: InteractiveModeBase): Promise<void> {\n\twhile (this.pendingUserInputs.length === 0 && this.startupReplayActiveInput) {\n\t\tconst activeInput = this.startupReplayActiveInput;\n\t\tawait this.defaultEditor.onSubmit?.(activeInput);\n\t\tif (this.editor.getText().trim() === activeInput.trim()) {\n\t\t\tthis.editor.setText(\"\");\n\t\t}\n\t\tif (this.startupReplayActiveInput?.trim() === activeInput.trim()) break;\n\t}\n};\n\nInteractiveModeBase.prototype.advanceStartupInputReplay = function (\n\tthis: InteractiveModeBase,\n\tsubmittedText: string,\n): void {\n\tif (this.startupReplayActiveInput?.trim() !== submittedText.trim()) return;\n\tthis.startupReplayActiveInput = undefined;\n\n\twhile (this.startupReplayInputs.length > 0) {\n\t\tconst nextInput = this.startupReplayInputs.shift();\n\t\tif (nextInput === undefined) break;\n\t\tconst trimmed = nextInput.trimStart();\n\t\tif (trimmed.startsWith(\"/\") || trimmed.startsWith(\"!\")) {\n\t\t\tthis.startupReplayActiveInput = nextInput.trim();\n\t\t\tthis.editor.setText(this.startupReplayActiveInput);\n\t\t\tthis.ui.requestRender();\n\t\t\treturn;\n\t\t}\n\t\tthis.deliverStartupReplayPrompt(nextInput);\n\t}\n\n\tif (this.startupDraftText !== undefined) {\n\t\tthis.editor.setText(this.startupDraftText);\n\t\tthis.startupDraftText = undefined;\n\t\tthis.ui.requestRender();\n\t}\n};\n\nInteractiveModeBase.prototype.setupEditorSubmitHandler = function (this: InteractiveModeBase): void {\n\tthis.defaultEditor.onSubmit = async (text: string) => {\n\t\tif (!this.firstSubmitRecorded) {\n\t\t\tthis.firstSubmitRecorded = true;\n\t\t\trecordTimeSinceReset(\"interactive-first-submit\");\n\t\t}\n\t\t// pi-tui trims, expands pastes, and clears the editor before it calls\n\t\t// onSubmit, so the callback argument is already reduced. Prefer the buffer\n\t\t// CustomEditor snapshotted for this very dispatch, which is what the user\n\t\t// actually had, and fall back to the argument for other editors and for\n\t\t// tests that invoke onSubmit directly.\n\t\tconst submittedDraft = this.defaultEditor.takeSubmittedDraft?.() ?? text;\n\t\ttext = text.trim();\n\t\tif (!text) return;\n\n\t\tif (this.startupReplayActiveInput && this.startupReplayActiveInput.trim() !== text.trim()) {\n\t\t\tthis.startupReplayInputs.push(text);\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t\tthis.editor.setText(\"\");\n\t\t\treturn;\n\t\t}\n\t\ttry {\n\t\t\t// Handle commands\n\t\t\tif (text === \"/settings\") {\n\t\t\t\tthis.showSettingsSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fast\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.showFastModeSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/scoped-models\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.showModelsSelector();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/model\" || text.startsWith(\"/model \")) {\n\t\t\t\tconst searchTerm = text.startsWith(\"/model \") ? text.slice(7).trim() : undefined;\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleModelCommand(searchTerm);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/thinking\" || text.startsWith(\"/thinking \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tthis.handleThinkingCommand(text.startsWith(\"/thinking \") ? text.slice(10).trim() : undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/export\" || text.startsWith(\"/export \")) {\n\t\t\t\tawait this.handleExportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/import\" || text.startsWith(\"/import \")) {\n\t\t\t\tawait this.handleImportCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/share\") {\n\t\t\t\tawait this.handleShareCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/copy\") {\n\t\t\t\tawait this.handleCopyCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/name\" || text.startsWith(\"/name \")) {\n\t\t\t\tthis.handleNameCommand(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/session\") {\n\t\t\t\tthis.handleSessionCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/changelog\") {\n\t\t\t\tthis.handleChangelogCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/atomic\" || text.startsWith(\"/atomic \")) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/hotkeys\") {\n\t\t\t\tthis.handleHotkeysCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/fork\") {\n\t\t\t\tthis.showUserMessageSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/clone\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleCloneCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/tree\") {\n\t\t\t\tthis.showTreeSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/trust\") {\n\t\t\t\tthis.showTrustSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/login(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleLoginCommand(text.slice(\"/login\".length).trim() || undefined);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/logout\") {\n\t\t\t\tthis.showOAuthSelector(\"logout\");\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/new\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.handleClearCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (/^\\/compact(?:\\s|$)/.test(text)) {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tif (text !== \"/compact\") {\n\t\t\t\t\tthis.showWarning(\"Usage: /compact\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// A manual request can take over automatic compaction, but a second manual\n\t\t\t\t// compaction or branch summary still has no safe independent owner.\n\t\t\t\tconst automaticCompaction =\n\t\t\t\t\tthis.session.compactionReason === \"threshold\" || this.session.compactionReason === \"overflow\";\n\t\t\t\tif (this.manualCompactionTakeoverPending || (this.compactionActive && !automaticCompaction)) {\n\t\t\t\t\tthis.showWarning(COMPACTION_ALREADY_IN_PROGRESS_WARNING);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tawait this.handleCompactCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/reload\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.handleReloadCommand();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/debug\") {\n\t\t\t\tthis.handleDebugCommand();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/arminsayshi\") {\n\t\t\t\tthis.handleArminSaysHi();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/dementedelves\") {\n\t\t\t\tthis.handleDementedDelves();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/resume\") {\n\t\t\t\tthis.showSessionSelector();\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (text === \"/quit\" || text === \"/exit\") {\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.shutdown();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (text.startsWith(\"/\") && this.deferredStartupPending) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\tawait yieldToEventLoop();\n\t\t\t\tawait this.ensureDeferredStartupComplete();\n\t\t\t\tawait this.session.prompt(text);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Handle bash command (! for normal, !! for excluded from context)\n\t\t\tif (text.startsWith(\"!\")) {\n\t\t\t\tconst isExcluded = text.startsWith(\"!!\");\n\t\t\t\tconst command = isExcluded ? text.slice(2).trim() : text.slice(1).trim();\n\t\t\t\tif (command) {\n\t\t\t\t\tif (this.session.isBashRunning) {\n\t\t\t\t\t\tthis.showWarning(\"A bash command is already running. esc cancel first.\");\n\t\t\t\t\t\tthis.editor.setText(text);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tawait this.handleBashCommand(command, isExcluded);\n\t\t\t\t\tthis.isBashMode = false;\n\t\t\t\t\tthis.updateEditorBorderColor();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Queue input during compaction (extension commands execute immediately)\n\t\t\tif (this.compactionActive) {\n\t\t\t\tif (this.isExtensionCommand(text)) {\n\t\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\t\tawait this.session.prompt(text);\n\t\t\t\t} else {\n\t\t\t\t\tthis.queueCompactionMessage(text, \"steer\");\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If streaming, use prompt() with steer behavior\n\t\t\t// This handles extension commands (execute immediately), prompt template expansion, and queueing\n\t\t\tif (this.session.isStreaming && !this.session.queuedMessagesPaused) {\n\t\t\t\tthis.editor.addToHistory?.(text);\n\t\t\t\tthis.editor.setText(\"\");\n\t\t\t\tawait this.session.prompt(text, { streamingBehavior: \"steer\" });\n\t\t\t\tthis.updatePendingMessagesDisplay();\n\t\t\t\tthis.ui.requestRender();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Normal message submission\n\t\t\t// First, move any pending bash components to chat\n\t\t\tthis.flushPendingBashComponents();\n\t\t\t// The draft travels with this submission, never through shared state: a\n\t\t\t// later submission whose trimmed text is identical must not be able to\n\t\t\t// claim, or clear, this one's exact buffer.\n\t\t\tconst submission = { text, draft: submittedDraft };\n\n\t\t\tif (this.onInputCallback) {\n\t\t\t\tif (!text.startsWith(\"/\")) {\n\t\t\t\t\tthis.renderDeferredUserInput(text);\n\t\t\t\t}\n\t\t\t\tthis.onInputCallback(submission);\n\t\t\t} else {\n\t\t\t\tthis.pendingUserInputs.push(submission);\n\t\t\t}\n\t\t\tthis.editor.addToHistory?.(text);\n\t\t} catch (error) {\n\t\t\t// Direct dispatch branches above hand text straight to the engine and\n\t\t\t// never reach runUserPromptTurn(), so this is the only place their send\n\t\t\t// failures can put the draft back. Anything else is not ours to absorb.\n\t\t\tif (!restoreFailedSubmissionDraft(this, error, submittedDraft)) throw error;\n\t\t} finally {\n\t\t\tthis.advanceStartupInputReplay?.(text);\n\t\t}\n\t};\n};\n"]}
|
|
@@ -68,6 +68,7 @@ export { ScopedModelsSelectorComponent } from "./components/scoped-models-select
|
|
|
68
68
|
export { SessionSelectorComponent } from "./components/session-selector.ts";
|
|
69
69
|
export { SettingsSelectorComponent } from "./components/settings-selector.ts";
|
|
70
70
|
export { SkillInvocationMessageComponent } from "./components/skill-invocation-message.ts";
|
|
71
|
+
export { ThinkingSelectorComponent } from "./components/thinking-selector.ts";
|
|
71
72
|
export { ToolExecutionComponent } from "./components/tool-execution.ts";
|
|
72
73
|
export { TreeSelectorComponent } from "./components/tree-selector.ts";
|
|
73
74
|
export { TrustSelectorComponent } from "./components/trust-selector.ts";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode-deps.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-deps.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interactive-mode-deps.d.ts","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,6 +60,7 @@ export { ScopedModelsSelectorComponent } from "./components/scoped-models-select
|
|
|
60
60
|
export { SessionSelectorComponent } from "./components/session-selector.js";
|
|
61
61
|
export { SettingsSelectorComponent } from "./components/settings-selector.js";
|
|
62
62
|
export { SkillInvocationMessageComponent } from "./components/skill-invocation-message.js";
|
|
63
|
+
export { ThinkingSelectorComponent } from "./components/thinking-selector.js";
|
|
63
64
|
export { ToolExecutionComponent } from "./components/tool-execution.js";
|
|
64
65
|
export { TreeSelectorComponent } from "./components/tree-selector.js";
|
|
65
66
|
export { TrustSelectorComponent } from "./components/trust-selector.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactive-mode-deps.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-deps.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nexport {\n\ttype Api,\n\ttype AssistantMessage,\n\tgetProviders,\n\ttype ImageContent,\n\ttype Message,\n\ttype Model,\n\ttype OAuthSelectPrompt,\n} from \"@bastani/pi-ai/compat\";\nexport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nexport { default as chalk } from \"chalk\";\nexport { fs, os, path };\nexport type OAuthProviderId = string;\nexport type {\n\tAutocompleteItem,\n\tAutocompleteProvider,\n\tAutocompleteSuggestions,\n\tEditorComponent,\n\tKeybinding,\n\tKeyId,\n\tMarkdownTheme,\n\tOverlayHandle,\n\tOverlayOptions,\n\tSlashCommand,\n} from \"@earendil-works/pi-tui\";\nexport {\n\tCombinedAutocompleteProvider,\n\ttype Component,\n\tContainer,\n\tfuzzyFilter,\n\tgetCapabilities,\n\thyperlink,\n\tLoader,\n\ttype LoaderIndicatorOptions,\n\tMarkdown,\n\tmatchesKey,\n\tProcessTerminal,\n\tSpacer,\n\tsetKeybindings,\n\tText,\n\tTruncatedText,\n\ttype TUI,\n\tTuiMainScreen,\n\tvisibleWidth,\n} from \"@earendil-works/pi-tui\";\nexport { spawn, spawnSync } from \"child_process\";\nexport {\n\tAPP_NAME,\n\tAPP_TITLE,\n\tCHANGELOG_URL,\n\tENV_OFFLINE,\n\tgetAgentDir,\n\tgetAuthPath,\n\tgetDebugLogPath,\n\tgetDocsPath,\n\tgetEnvValue,\n\tgetShareViewerUrl,\n\tsetCodexFastModeEnvironmentSettings,\n\tVERSION,\n} from \"../../config.ts\";\nexport { type AgentSession, type AgentSessionEvent, parseSkillBlock } from \"../../core/agent-session.ts\";\nexport { type AgentSessionRuntime, SessionImportFileNotFoundError } from \"../../core/agent-session-runtime.ts\";\nexport { formatNoModelsAvailableMessage } from \"../../core/auth-guidance.ts\";\nexport {\n\tformatCodexFastModeModelLabel,\n\thasSupportedCodexFastModeModel,\n\tshouldApplyCodexFastMode,\n} from \"../../core/codex-fast-mode.ts\";\nexport type { VerbatimCompactionResult } from \"../../core/compaction/index.ts\";\nexport type {\n\tAutocompleteProviderFactory,\n\tEditorFactory,\n\tExtensionCommandContext,\n\tExtensionContext,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tHostCustomUiState,\n\tHostCustomUiStateListener,\n\tProjectTrustContext,\n} from \"../../core/extensions/index.ts\";\nexport { FooterDataProvider, type ReadonlyFooterDataProvider } from \"../../core/footer-data-provider.ts\";\nexport { configureHttpDispatcher } from \"../../core/http-dispatcher.ts\";\nexport { type AppKeybinding, KeybindingsManager } from \"../../core/keybindings.ts\";\nexport {\n\tdefaultModelPerProvider,\n\tfindExactModelReferenceMatch,\n\tfindInitialModel,\n\tresolveModelScope,\n\tresolveModelScopeFromModels,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n} from \"../../core/model-resolver.ts\";\nexport { DefaultPackageManager } from \"../../core/package-manager.ts\";\nexport { BUILT_IN_PROVIDER_DISPLAY_NAMES } from \"../../core/provider-display-names.ts\";\nexport type { ResourceDiagnostic } from \"../../core/resource-loader.ts\";\nexport { formatMissingSessionCwdPrompt, MissingSessionCwdError } from \"../../core/session-cwd.ts\";\nexport { type SessionContext, SessionManager } from \"../../core/session-manager.ts\";\nexport { BUILTIN_SLASH_COMMANDS, BUNDLED_EXTENSION_SLASH_COMMANDS } from \"../../core/slash-commands.ts\";\nexport type { SourceInfo } from \"../../core/source-info.ts\";\nexport { isInstallTelemetryEnabled } from \"../../core/telemetry.ts\";\nexport { recordTimeSinceReset } from \"../../core/timings.ts\";\nexport type { TruncationResult } from \"../../core/tools/truncate.ts\";\nexport {\n\thasProjectConfigDir,\n\thasProjectTrustInputs,\n\thasTrustRequiringProjectResources,\n\tProjectTrustStore,\n} from \"../../core/trust-manager.ts\";\nexport {\n\tgetChangelogPath,\n\tgetEntriesForVersion,\n\tgetNewEntries,\n\tnormalizeChangelogLinks,\n\tparseChangelog,\n} from \"../../utils/changelog.ts\";\nexport { copyToClipboard } from \"../../utils/clipboard.ts\";\nexport { parseGitUrl } from \"../../utils/git.ts\";\nexport { getCwdRelativePath } from \"../../utils/paths.ts\";\nexport { getPiUserAgent } from \"../../utils/pi-user-agent.ts\";\nexport { killTrackedDetachedChildren } from \"../../utils/shell.ts\";\nexport { ensureTool } from \"../../utils/tools-manager.ts\";\nexport { checkForNewPiVersion } from \"../../utils/version-check.ts\";\nexport {\n\tcombineQueuedMessagesForEditor,\n\topenExternalEditorForText,\n\tpasteClipboardImageToEditor,\n} from \"./chat-input-actions.ts\";\nexport { ArminComponent } from \"./components/armin.ts\";\nexport { AssistantMessageComponent } from \"./components/assistant-message.ts\";\nexport { composeStartupIdentity, renderAtomicAnsiBanner } from \"./components/atomic-banner.ts\";\nexport { BashExecutionComponent } from \"./components/bash-execution.ts\";\nexport { BorderedLoader } from \"./components/bordered-loader.ts\";\nexport { BranchSummaryMessageComponent } from \"./components/branch-summary-message.ts\";\nexport {\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\tchatEntriesFromAgentMessages,\n\trenderChatMessageEntry,\n} from \"./components/chat-message-renderer.ts\";\nexport { addChatTranscriptEntry } from \"./components/chat-transcript.ts\";\nexport { CompactionBoundaryMessageComponent } from \"./components/compaction-boundary-message.ts\";\nexport { CountdownTimer } from \"./components/countdown-timer.ts\";\nexport { CustomEditor } from \"./components/custom-editor.ts\";\nexport { CustomMessageComponent } from \"./components/custom-message.ts\";\nexport { DaxnutsComponent } from \"./components/daxnuts.ts\";\nexport { DynamicBorder } from \"./components/dynamic-border.ts\";\nexport { EarendilAnnouncementComponent } from \"./components/earendil-announcement.ts\";\nexport { ExtensionEditorComponent } from \"./components/extension-editor.ts\";\nexport { ExtensionInputComponent } from \"./components/extension-input.ts\";\nexport { ExtensionSelectorComponent } from \"./components/extension-selector.ts\";\nexport { FastModeSelectorComponent } from \"./components/fast-mode-selector.ts\";\nexport { FooterComponent, UsageMeterComponent } from \"./components/footer.ts\";\nexport { formatKeyText, keyDisplayText, keyHintIfBound, keyText } from \"./components/keybinding-hints.ts\";\nexport { LoginDialogComponent } from \"./components/login-dialog.ts\";\nexport { ModelSelectorComponent } from \"./components/model-selector.ts\";\nexport { type AuthSelectorProvider, OAuthSelectorComponent } from \"./components/oauth-selector.ts\";\nexport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.ts\";\nexport { SessionSelectorComponent } from \"./components/session-selector.ts\";\nexport { SettingsSelectorComponent } from \"./components/settings-selector.ts\";\nexport { SkillInvocationMessageComponent } from \"./components/skill-invocation-message.ts\";\nexport { ToolExecutionComponent } from \"./components/tool-execution.ts\";\nexport { TreeSelectorComponent } from \"./components/tree-selector.ts\";\nexport { TrustSelectorComponent } from \"./components/trust-selector.ts\";\nexport { UserMessageComponent } from \"./components/user-message.ts\";\nexport { UserMessageSelectorComponent } from \"./components/user-message-selector.ts\";\nexport { getModelSearchText } from \"./model-search.ts\";\nexport {\n\tgetAvailableThemes,\n\tgetAvailableThemesWithPaths,\n\tgetEditorTheme,\n\tgetMarkdownTheme,\n\tgetThemeByName,\n\tonThemeChange,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n\tTheme,\n\ttheme,\n} from \"./theme/theme.ts\";\nexport { InteractiveThemeController } from \"./theme/theme-controller.ts\";\nexport { pickWhimsicalWorkingMessage } from \"./whimsical-messages.ts\";\n"]}
|
|
1
|
+
{"version":3,"file":"interactive-mode-deps.js","sourceRoot":"","sources":["../../../src/modes/interactive/interactive-mode-deps.ts"],"names":[],"mappings":"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","sourcesContent":["import * as fs from \"node:fs\";\nimport * as os from \"node:os\";\nimport * as path from \"node:path\";\n\nexport {\n\ttype Api,\n\ttype AssistantMessage,\n\tgetProviders,\n\ttype ImageContent,\n\ttype Message,\n\ttype Model,\n\ttype OAuthSelectPrompt,\n} from \"@bastani/pi-ai/compat\";\nexport type { AgentMessage } from \"@earendil-works/pi-agent-core\";\nexport { default as chalk } from \"chalk\";\nexport { fs, os, path };\nexport type OAuthProviderId = string;\nexport type {\n\tAutocompleteItem,\n\tAutocompleteProvider,\n\tAutocompleteSuggestions,\n\tEditorComponent,\n\tKeybinding,\n\tKeyId,\n\tMarkdownTheme,\n\tOverlayHandle,\n\tOverlayOptions,\n\tSlashCommand,\n} from \"@earendil-works/pi-tui\";\nexport {\n\tCombinedAutocompleteProvider,\n\ttype Component,\n\tContainer,\n\tfuzzyFilter,\n\tgetCapabilities,\n\thyperlink,\n\tLoader,\n\ttype LoaderIndicatorOptions,\n\tMarkdown,\n\tmatchesKey,\n\tProcessTerminal,\n\tSpacer,\n\tsetKeybindings,\n\tText,\n\tTruncatedText,\n\ttype TUI,\n\tTuiMainScreen,\n\tvisibleWidth,\n} from \"@earendil-works/pi-tui\";\nexport { spawn, spawnSync } from \"child_process\";\nexport {\n\tAPP_NAME,\n\tAPP_TITLE,\n\tCHANGELOG_URL,\n\tENV_OFFLINE,\n\tgetAgentDir,\n\tgetAuthPath,\n\tgetDebugLogPath,\n\tgetDocsPath,\n\tgetEnvValue,\n\tgetShareViewerUrl,\n\tsetCodexFastModeEnvironmentSettings,\n\tVERSION,\n} from \"../../config.ts\";\nexport { type AgentSession, type AgentSessionEvent, parseSkillBlock } from \"../../core/agent-session.ts\";\nexport { type AgentSessionRuntime, SessionImportFileNotFoundError } from \"../../core/agent-session-runtime.ts\";\nexport { formatNoModelsAvailableMessage } from \"../../core/auth-guidance.ts\";\nexport {\n\tformatCodexFastModeModelLabel,\n\thasSupportedCodexFastModeModel,\n\tshouldApplyCodexFastMode,\n} from \"../../core/codex-fast-mode.ts\";\nexport type { VerbatimCompactionResult } from \"../../core/compaction/index.ts\";\nexport type {\n\tAutocompleteProviderFactory,\n\tEditorFactory,\n\tExtensionCommandContext,\n\tExtensionContext,\n\tExtensionRunner,\n\tExtensionUIContext,\n\tExtensionUIDialogOptions,\n\tExtensionWidgetOptions,\n\tHostCustomUiState,\n\tHostCustomUiStateListener,\n\tProjectTrustContext,\n} from \"../../core/extensions/index.ts\";\nexport { FooterDataProvider, type ReadonlyFooterDataProvider } from \"../../core/footer-data-provider.ts\";\nexport { configureHttpDispatcher } from \"../../core/http-dispatcher.ts\";\nexport { type AppKeybinding, KeybindingsManager } from \"../../core/keybindings.ts\";\nexport {\n\tdefaultModelPerProvider,\n\tfindExactModelReferenceMatch,\n\tfindInitialModel,\n\tresolveModelScope,\n\tresolveModelScopeFromModels,\n\tresolveModelScopeWithDiagnostics,\n\tresolveRestoredModelReference,\n} from \"../../core/model-resolver.ts\";\nexport { DefaultPackageManager } from \"../../core/package-manager.ts\";\nexport { BUILT_IN_PROVIDER_DISPLAY_NAMES } from \"../../core/provider-display-names.ts\";\nexport type { ResourceDiagnostic } from \"../../core/resource-loader.ts\";\nexport { formatMissingSessionCwdPrompt, MissingSessionCwdError } from \"../../core/session-cwd.ts\";\nexport { type SessionContext, SessionManager } from \"../../core/session-manager.ts\";\nexport { BUILTIN_SLASH_COMMANDS, BUNDLED_EXTENSION_SLASH_COMMANDS } from \"../../core/slash-commands.ts\";\nexport type { SourceInfo } from \"../../core/source-info.ts\";\nexport { isInstallTelemetryEnabled } from \"../../core/telemetry.ts\";\nexport { recordTimeSinceReset } from \"../../core/timings.ts\";\nexport type { TruncationResult } from \"../../core/tools/truncate.ts\";\nexport {\n\thasProjectConfigDir,\n\thasProjectTrustInputs,\n\thasTrustRequiringProjectResources,\n\tProjectTrustStore,\n} from \"../../core/trust-manager.ts\";\nexport {\n\tgetChangelogPath,\n\tgetEntriesForVersion,\n\tgetNewEntries,\n\tnormalizeChangelogLinks,\n\tparseChangelog,\n} from \"../../utils/changelog.ts\";\nexport { copyToClipboard } from \"../../utils/clipboard.ts\";\nexport { parseGitUrl } from \"../../utils/git.ts\";\nexport { getCwdRelativePath } from \"../../utils/paths.ts\";\nexport { getPiUserAgent } from \"../../utils/pi-user-agent.ts\";\nexport { killTrackedDetachedChildren } from \"../../utils/shell.ts\";\nexport { ensureTool } from \"../../utils/tools-manager.ts\";\nexport { checkForNewPiVersion } from \"../../utils/version-check.ts\";\nexport {\n\tcombineQueuedMessagesForEditor,\n\topenExternalEditorForText,\n\tpasteClipboardImageToEditor,\n} from \"./chat-input-actions.ts\";\nexport { ArminComponent } from \"./components/armin.ts\";\nexport { AssistantMessageComponent } from \"./components/assistant-message.ts\";\nexport { composeStartupIdentity, renderAtomicAnsiBanner } from \"./components/atomic-banner.ts\";\nexport { BashExecutionComponent } from \"./components/bash-execution.ts\";\nexport { BorderedLoader } from \"./components/bordered-loader.ts\";\nexport { BranchSummaryMessageComponent } from \"./components/branch-summary-message.ts\";\nexport {\n\ttype ChatMessageEntry,\n\ttype ChatMessageRenderOptions,\n\tchatEntriesFromAgentMessages,\n\trenderChatMessageEntry,\n} from \"./components/chat-message-renderer.ts\";\nexport { addChatTranscriptEntry } from \"./components/chat-transcript.ts\";\nexport { CompactionBoundaryMessageComponent } from \"./components/compaction-boundary-message.ts\";\nexport { CountdownTimer } from \"./components/countdown-timer.ts\";\nexport { CustomEditor } from \"./components/custom-editor.ts\";\nexport { CustomMessageComponent } from \"./components/custom-message.ts\";\nexport { DaxnutsComponent } from \"./components/daxnuts.ts\";\nexport { DynamicBorder } from \"./components/dynamic-border.ts\";\nexport { EarendilAnnouncementComponent } from \"./components/earendil-announcement.ts\";\nexport { ExtensionEditorComponent } from \"./components/extension-editor.ts\";\nexport { ExtensionInputComponent } from \"./components/extension-input.ts\";\nexport { ExtensionSelectorComponent } from \"./components/extension-selector.ts\";\nexport { FastModeSelectorComponent } from \"./components/fast-mode-selector.ts\";\nexport { FooterComponent, UsageMeterComponent } from \"./components/footer.ts\";\nexport { formatKeyText, keyDisplayText, keyHintIfBound, keyText } from \"./components/keybinding-hints.ts\";\nexport { LoginDialogComponent } from \"./components/login-dialog.ts\";\nexport { ModelSelectorComponent } from \"./components/model-selector.ts\";\nexport { type AuthSelectorProvider, OAuthSelectorComponent } from \"./components/oauth-selector.ts\";\nexport { ScopedModelsSelectorComponent } from \"./components/scoped-models-selector.ts\";\nexport { SessionSelectorComponent } from \"./components/session-selector.ts\";\nexport { SettingsSelectorComponent } from \"./components/settings-selector.ts\";\nexport { SkillInvocationMessageComponent } from \"./components/skill-invocation-message.ts\";\nexport { ThinkingSelectorComponent } from \"./components/thinking-selector.ts\";\nexport { ToolExecutionComponent } from \"./components/tool-execution.ts\";\nexport { TreeSelectorComponent } from \"./components/tree-selector.ts\";\nexport { TrustSelectorComponent } from \"./components/trust-selector.ts\";\nexport { UserMessageComponent } from \"./components/user-message.ts\";\nexport { UserMessageSelectorComponent } from \"./components/user-message-selector.ts\";\nexport { getModelSearchText } from \"./model-search.ts\";\nexport {\n\tgetAvailableThemes,\n\tgetAvailableThemesWithPaths,\n\tgetEditorTheme,\n\tgetMarkdownTheme,\n\tgetThemeByName,\n\tonThemeChange,\n\tsetRegisteredThemes,\n\tstopThemeWatcher,\n\tTheme,\n\ttheme,\n} from \"./theme/theme.ts\";\nexport { InteractiveThemeController } from \"./theme/theme-controller.ts\";\nexport { pickWhimsicalWorkingMessage } from \"./whimsical-messages.ts\";\n"]}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { Usage } from "@bastani/pi-ai/compat";
|
|
2
|
+
import type { ThinkingLevel } from "@earendil-works/pi-agent-core";
|
|
1
3
|
/** Method surface installed onto InteractiveModeBase by sibling modules. */
|
|
2
4
|
import type { MarkdownTransformer } from "../../core/extensions/types.ts";
|
|
3
5
|
import type { CustomEntry, SessionEntry } from "../../core/session-manager.ts";
|
|
@@ -227,6 +229,7 @@ declare module "./interactive-mode-base.ts" {
|
|
|
227
229
|
chatMessageRenderOptions(): ChatMessageRenderOptions;
|
|
228
230
|
addRenderedChatEntry(entry: ChatMessageEntry): Component;
|
|
229
231
|
addCompactionBoundaryToChat(result: VerbatimCompactionResult): void;
|
|
232
|
+
addCompactionCostNotice(kind: "compaction" | "branch_summary", usage: Usage): void;
|
|
230
233
|
addMessageToChat(message: AgentMessage, options?: {
|
|
231
234
|
populateHistory?: boolean;
|
|
232
235
|
}): void;
|
|
@@ -275,6 +278,7 @@ declare module "./interactive-mode-base.ts" {
|
|
|
275
278
|
toggleToolOutputExpansion(): void;
|
|
276
279
|
setToolsExpanded(expanded: boolean): void;
|
|
277
280
|
toggleThinkingBlockVisibility(): void;
|
|
281
|
+
updateThinkingBlockVisibility(): void;
|
|
278
282
|
openExternalEditor(): Promise<void>;
|
|
279
283
|
clearEditor(): void;
|
|
280
284
|
showError(errorMessage: string): void;
|
|
@@ -311,6 +315,9 @@ declare module "./interactive-mode-base.ts" {
|
|
|
311
315
|
showFastModeSelector(): void;
|
|
312
316
|
showSettingsSelector(): void;
|
|
313
317
|
handleModelCommand(searchTerm?: string): Promise<void>;
|
|
318
|
+
handleThinkingCommand(searchTerm?: string): void;
|
|
319
|
+
selectThinkingLevel(level: ThinkingLevel, persist: boolean): void;
|
|
320
|
+
showThinkingSelector(): void;
|
|
314
321
|
findExactModelMatch(searchTerm: string): Promise<Model<Api> | undefined>;
|
|
315
322
|
getModelCandidates(): Promise<Model<Api>[]>;
|
|
316
323
|
updateAvailableProviderCount(): Promise<void>;
|