lsd-pi 1.2.4 → 1.3.6
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/README.md +22 -16
- package/dist/app-paths.d.ts +4 -0
- package/dist/app-paths.js +4 -0
- package/dist/bedrock-auth.d.ts +4 -0
- package/dist/bedrock-auth.js +4 -0
- package/dist/bundled-extension-paths.d.ts +4 -0
- package/dist/bundled-extension-paths.js +4 -0
- package/dist/cli-theme.d.ts +2 -2
- package/dist/cli-theme.js +13 -14
- package/dist/cli.js +43 -3
- package/dist/codex-rotate-settings.d.ts +4 -0
- package/dist/codex-rotate-settings.js +4 -0
- package/dist/help-text.d.ts +4 -0
- package/dist/help-text.js +4 -0
- package/dist/lsd-brand.d.ts +4 -0
- package/dist/lsd-brand.js +4 -0
- package/dist/onboarding-llm.d.ts +5 -0
- package/dist/onboarding-llm.js +5 -0
- package/dist/project-sessions.d.ts +4 -0
- package/dist/project-sessions.js +4 -0
- package/dist/resources/agents/generic.md +1 -0
- package/dist/resources/agents/scout.md +8 -1
- package/dist/resources/agents/worker.md +1 -0
- package/dist/resources/extensions/ask-user-questions.js +70 -0
- package/dist/resources/extensions/bg-shell/bg-shell-tool.js +6 -16
- package/dist/resources/extensions/browser-tools/tools/codegen.js +5 -5
- package/dist/resources/extensions/browser-tools/tools/navigation.js +107 -178
- package/dist/resources/extensions/browser-tools/tools/network-mock.js +112 -167
- package/dist/resources/extensions/browser-tools/tools/pages.js +182 -234
- package/dist/resources/extensions/browser-tools/tools/refs.js +202 -461
- package/dist/resources/extensions/browser-tools/tools/session.js +176 -323
- package/dist/resources/extensions/browser-tools/tools/state-persistence.js +91 -154
- package/dist/resources/extensions/browser-tools/utils.js +1 -1
- package/dist/resources/extensions/mac-tools/index.js +19 -34
- package/dist/resources/extensions/memory/index.js +20 -2
- package/dist/resources/extensions/shared/interview-ui.js +103 -20
- package/dist/resources/extensions/slash-commands/extension-manifest.json +2 -2
- package/dist/resources/extensions/slash-commands/fast.js +73 -0
- package/dist/resources/extensions/slash-commands/index.js +2 -0
- package/dist/resources/extensions/slash-commands/plan.js +54 -28
- package/dist/resources/extensions/slash-commands/tools.js +40 -4
- package/dist/resources/extensions/subagent/agent-switcher-component.js +208 -0
- package/dist/resources/extensions/subagent/agent-switcher-model.js +107 -0
- package/dist/resources/extensions/subagent/background-job-manager.js +24 -6
- package/dist/resources/extensions/subagent/background-runner.js +4 -0
- package/dist/resources/extensions/subagent/in-process-runner.js +387 -0
- package/dist/resources/extensions/subagent/index.js +715 -370
- package/dist/resources/extensions/subagent/launch-helpers.js +19 -5
- package/dist/resources/extensions/subagent/legacy-runner.js +503 -0
- package/dist/resources/extensions/voice/index.js +96 -36
- package/dist/resources/extensions/voice/push-to-talk.js +26 -0
- package/dist/shared-paths.d.ts +4 -0
- package/dist/shared-paths.js +4 -0
- package/dist/shared-preferences.d.ts +4 -0
- package/dist/shared-preferences.js +4 -0
- package/dist/startup-model-validation.d.ts +1 -1
- package/dist/startup-timings.d.ts +4 -0
- package/dist/startup-timings.js +4 -0
- package/dist/update-check.d.ts +4 -0
- package/dist/update-check.js +4 -0
- package/dist/update-cmd.d.ts +4 -0
- package/dist/update-cmd.js +4 -0
- package/dist/welcome-screen.js +4 -4
- package/dist/wizard.d.ts +4 -0
- package/dist/wizard.js +4 -0
- package/package.json +1 -1
- package/packages/pi-agent-core/dist/agent.d.ts +28 -0
- package/packages/pi-agent-core/dist/agent.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/agent.js +105 -5
- package/packages/pi-agent-core/dist/agent.js.map +1 -1
- package/packages/pi-agent-core/dist/types.d.ts +13 -2
- package/packages/pi-agent-core/dist/types.d.ts.map +1 -1
- package/packages/pi-agent-core/dist/types.js.map +1 -1
- package/packages/pi-agent-core/src/agent.ts +142 -6
- package/packages/pi-agent-core/src/types.ts +12 -3
- package/packages/pi-ai/dist/adaptive/classifier.d.ts +29 -0
- package/packages/pi-ai/dist/adaptive/classifier.d.ts.map +1 -0
- package/packages/pi-ai/dist/adaptive/classifier.js +72 -0
- package/packages/pi-ai/dist/adaptive/classifier.js.map +1 -0
- package/packages/pi-ai/dist/adaptive/classifier.test.d.ts +2 -0
- package/packages/pi-ai/dist/adaptive/classifier.test.d.ts.map +1 -0
- package/packages/pi-ai/dist/adaptive/classifier.test.js +32 -0
- package/packages/pi-ai/dist/adaptive/classifier.test.js.map +1 -0
- package/packages/pi-ai/dist/index.d.ts +1 -0
- package/packages/pi-ai/dist/index.d.ts.map +1 -1
- package/packages/pi-ai/dist/index.js +1 -0
- package/packages/pi-ai/dist/index.js.map +1 -1
- package/packages/pi-ai/dist/providers/amazon-bedrock.js +0 -2
- package/packages/pi-ai/dist/providers/amazon-bedrock.js.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/anthropic-shared.js +0 -2
- package/packages/pi-ai/dist/providers/anthropic-shared.js.map +1 -1
- package/packages/pi-ai/dist/providers/azure-openai-responses.d.ts +1 -1
- package/packages/pi-ai/dist/providers/azure-openai-responses.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/azure-openai-responses.js.map +1 -1
- package/packages/pi-ai/dist/providers/google-gemini-cli.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/google-gemini-cli.js +0 -4
- package/packages/pi-ai/dist/providers/google-gemini-cli.js.map +1 -1
- package/packages/pi-ai/dist/providers/google-vertex.js +0 -5
- package/packages/pi-ai/dist/providers/google-vertex.js.map +1 -1
- package/packages/pi-ai/dist/providers/google.js +0 -5
- package/packages/pi-ai/dist/providers/google.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-codex-responses.d.ts +35 -2
- package/packages/pi-ai/dist/providers/openai-codex-responses.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-codex-responses.js +32 -6
- package/packages/pi-ai/dist/providers/openai-codex-responses.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-codex-responses.test.js +127 -16
- package/packages/pi-ai/dist/providers/openai-codex-responses.test.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-completions.d.ts +1 -1
- package/packages/pi-ai/dist/providers/openai-completions.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-completions.js +0 -1
- package/packages/pi-ai/dist/providers/openai-completions.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-responses.d.ts +9 -2
- package/packages/pi-ai/dist/providers/openai-responses.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.d.ts +2 -0
- package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.d.ts.map +1 -0
- package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.js +67 -0
- package/packages/pi-ai/dist/providers/openai-responses.fast-mode.test.js.map +1 -0
- package/packages/pi-ai/dist/providers/openai-responses.js +21 -3
- package/packages/pi-ai/dist/providers/openai-responses.js.map +1 -1
- package/packages/pi-ai/dist/providers/openai-shared.d.ts +0 -1
- package/packages/pi-ai/dist/providers/openai-shared.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/openai-shared.js +0 -4
- package/packages/pi-ai/dist/providers/openai-shared.js.map +1 -1
- package/packages/pi-ai/dist/providers/simple-options.d.ts.map +1 -1
- package/packages/pi-ai/dist/providers/simple-options.js +2 -1
- package/packages/pi-ai/dist/providers/simple-options.js.map +1 -1
- package/packages/pi-ai/dist/types.d.ts +6 -2
- package/packages/pi-ai/dist/types.d.ts.map +1 -1
- package/packages/pi-ai/dist/types.js.map +1 -1
- package/packages/pi-ai/src/adaptive/classifier.test.ts +38 -0
- package/packages/pi-ai/src/adaptive/classifier.ts +107 -0
- package/packages/pi-ai/src/index.ts +1 -0
- package/packages/pi-ai/src/providers/amazon-bedrock.ts +0 -2
- package/packages/pi-ai/src/providers/anthropic-shared.ts +0 -2
- package/packages/pi-ai/src/providers/azure-openai-responses.ts +1 -1
- package/packages/pi-ai/src/providers/google-gemini-cli.ts +0 -4
- package/packages/pi-ai/src/providers/google-vertex.ts +0 -5
- package/packages/pi-ai/src/providers/google.ts +0 -5
- package/packages/pi-ai/src/providers/openai-codex-responses.test.ts +143 -20
- package/packages/pi-ai/src/providers/openai-codex-responses.ts +48 -7
- package/packages/pi-ai/src/providers/openai-completions.ts +1 -2
- package/packages/pi-ai/src/providers/openai-responses.fast-mode.test.ts +73 -0
- package/packages/pi-ai/src/providers/openai-responses.ts +27 -4
- package/packages/pi-ai/src/providers/openai-shared.ts +0 -3
- package/packages/pi-ai/src/providers/simple-options.ts +2 -1
- package/packages/pi-ai/src/types.ts +6 -2
- package/packages/pi-coding-agent/dist/cli/args.js +2 -2
- package/packages/pi-coding-agent/dist/cli/args.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts +7 -2
- package/packages/pi-coding-agent/dist/core/agent-session.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/agent-session.js +53 -20
- package/packages/pi-coding-agent/dist/core/agent-session.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/keybindings.d.ts +1 -1
- package/packages/pi-coding-agent/dist/core/keybindings.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/keybindings.js +2 -0
- package/packages/pi-coding-agent/dist/core/keybindings.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/lsp/lsp.md +3 -1
- package/packages/pi-coding-agent/dist/core/sdk.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk.js +36 -8
- package/packages/pi-coding-agent/dist/core/sdk.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/sdk.test.js +37 -0
- package/packages/pi-coding-agent/dist/core/sdk.test.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/session-manager.d.ts +8 -0
- package/packages/pi-coding-agent/dist/core/session-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/session-manager.js +4 -0
- package/packages/pi-coding-agent/dist/core/session-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +18 -7
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.js +35 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.fast-mode.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.js +32 -2
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/skills.js +4 -1
- package/packages/pi-coding-agent/dist/core/skills.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/slash-commands.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/slash-commands.js +2 -1
- package/packages/pi-coding-agent/dist/core/slash-commands.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.js +12 -3
- package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tool-priority.d.ts +4 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.js +18 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.test.js +27 -0
- package/packages/pi-coding-agent/dist/core/tool-priority.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/core/tools/grep.js +1 -1
- package/packages/pi-coding-agent/dist/core/tools/grep.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/index.d.ts +2 -0
- package/packages/pi-coding-agent/dist/core/tools/index.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/index.js +2 -0
- package/packages/pi-coding-agent/dist/core/tools/index.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/pty.d.ts +10 -1
- package/packages/pi-coding-agent/dist/core/tools/pty.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/tools/pty.js +29 -3
- package/packages/pi-coding-agent/dist/core/tools/pty.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.js +26 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/__tests__/tool-summary-line.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.d.ts +45 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.js +314 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.js +122 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/btw-overlay.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/embedded-terminal.js +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/embedded-terminal.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js +19 -2
- package/packages/pi-coding-agent/dist/modes/interactive/components/footer.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts +11 -2
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js +49 -6
- package/packages/pi-coding-agent/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js +1 -2
- package/packages/pi-coding-agent/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts +6 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js +18 -4
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.d.ts +13 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.js +49 -0
- package/packages/pi-coding-agent/dist/modes/interactive/components/tool-summary-line.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.d.ts +2 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.d.ts.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.js +197 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.js.map +1 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js +106 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/chat-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js +7 -0
- package/packages/pi-coding-agent/dist/modes/interactive/controllers/input-controller.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts +3 -0
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode-state.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts +4 -0
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +88 -2
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js +41 -0
- package/packages/pi-coding-agent/dist/modes/interactive/slash-command-handlers.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js +10 -6
- package/packages/pi-coding-agent/dist/modes/interactive/theme/theme.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/theme/themes.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/print-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/print-mode.js +6 -0
- package/packages/pi-coding-agent/dist/modes/print-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js +20 -0
- package/packages/pi-coding-agent/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/packages/pi-coding-agent/dist/tests/path-display.test.js +15 -0
- package/packages/pi-coding-agent/dist/tests/path-display.test.js.map +1 -1
- package/packages/pi-coding-agent/package.json +1 -1
- package/packages/pi-coding-agent/src/cli/args.ts +2 -2
- package/packages/pi-coding-agent/src/core/agent-session.ts +58 -21
- package/packages/pi-coding-agent/src/core/keybindings.ts +4 -1
- package/packages/pi-coding-agent/src/core/lsp/lsp.md +3 -1
- package/packages/pi-coding-agent/src/core/sdk.test.ts +45 -0
- package/packages/pi-coding-agent/src/core/sdk.ts +39 -8
- package/packages/pi-coding-agent/src/core/session-manager.ts +12 -0
- package/packages/pi-coding-agent/src/core/settings-manager.fast-mode.test.ts +46 -0
- package/packages/pi-coding-agent/src/core/settings-manager.ts +50 -9
- package/packages/pi-coding-agent/src/core/skills.ts +4 -1
- package/packages/pi-coding-agent/src/core/slash-commands.ts +2 -1
- package/packages/pi-coding-agent/src/core/system-prompt.ts +14 -3
- package/packages/pi-coding-agent/src/core/tool-priority.test.ts +30 -0
- package/packages/pi-coding-agent/src/core/tool-priority.ts +17 -0
- package/packages/pi-coding-agent/src/core/tools/grep.ts +1 -1
- package/packages/pi-coding-agent/src/core/tools/index.ts +3 -0
- package/packages/pi-coding-agent/src/core/tools/pty.ts +45 -6
- package/packages/pi-coding-agent/src/modes/interactive/components/__tests__/tool-summary-line.test.ts +31 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/btw-overlay.test.ts +172 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/btw-overlay.ts +402 -0
- package/packages/pi-coding-agent/src/modes/interactive/components/embedded-terminal.ts +1 -1
- package/packages/pi-coding-agent/src/modes/interactive/components/footer.ts +18 -2
- package/packages/pi-coding-agent/src/modes/interactive/components/settings-selector.ts +63 -9
- package/packages/pi-coding-agent/src/modes/interactive/components/thinking-selector.ts +1 -2
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-execution.ts +1154 -1136
- package/packages/pi-coding-agent/src/modes/interactive/components/tool-summary-line.ts +64 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/__tests__/chat-controller.collapsed-tool-summary.test.ts +228 -0
- package/packages/pi-coding-agent/src/modes/interactive/controllers/chat-controller.ts +494 -389
- package/packages/pi-coding-agent/src/modes/interactive/controllers/input-controller.ts +7 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode-state.ts +3 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +103 -3
- package/packages/pi-coding-agent/src/modes/interactive/slash-command-handlers.ts +60 -1
- package/packages/pi-coding-agent/src/modes/interactive/theme/theme.ts +11 -7
- package/packages/pi-coding-agent/src/modes/interactive/theme/themes.ts +1 -1
- package/packages/pi-coding-agent/src/modes/print-mode.ts +6 -0
- package/packages/pi-coding-agent/src/modes/rpc/rpc-mode.ts +29 -0
- package/packages/pi-coding-agent/src/tests/path-display.test.ts +17 -0
- package/packages/pi-tui/dist/components/loader.d.ts +5 -2
- package/packages/pi-tui/dist/components/loader.d.ts.map +1 -1
- package/packages/pi-tui/dist/components/loader.js +33 -3
- package/packages/pi-tui/dist/components/loader.js.map +1 -1
- package/packages/pi-tui/src/components/loader.ts +31 -3
- package/packages/rpc-client/src/index.ts +1 -1
- package/packages/rpc-client/src/rpc-client.ts +29 -0
- package/packages/rpc-client/src/rpc-types.ts +1 -1
- package/pkg/dist/modes/interactive/theme/theme.d.ts +2 -2
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/pkg/dist/modes/interactive/theme/theme.js +10 -6
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -1
- package/pkg/dist/modes/interactive/theme/themes.js +1 -1
- package/pkg/dist/modes/interactive/theme/themes.js.map +1 -1
- package/pkg/package.json +1 -1
- package/src/resources/agents/generic.md +1 -0
- package/src/resources/agents/scout.md +8 -1
- package/src/resources/agents/worker.md +1 -0
- package/src/resources/extensions/ask-user-questions.ts +88 -0
- package/src/resources/extensions/bg-shell/bg-shell-tool.ts +6 -16
- package/src/resources/extensions/browser-tools/tools/codegen.ts +5 -5
- package/src/resources/extensions/browser-tools/tools/navigation.ts +118 -196
- package/src/resources/extensions/browser-tools/tools/network-mock.ts +114 -205
- package/src/resources/extensions/browser-tools/tools/pages.ts +183 -237
- package/src/resources/extensions/browser-tools/tools/refs.ts +193 -507
- package/src/resources/extensions/browser-tools/tools/session.ts +182 -321
- package/src/resources/extensions/browser-tools/tools/state-persistence.ts +94 -172
- package/src/resources/extensions/browser-tools/utils.ts +1 -1
- package/src/resources/extensions/mac-tools/index.ts +19 -34
- package/src/resources/extensions/memory/index.ts +22 -2
- package/src/resources/extensions/shared/interview-ui.ts +108 -15
- package/src/resources/extensions/shared/tests/ask-user-freetext.test.ts +61 -0
- package/src/resources/extensions/shared/tests/custom-ui-fallbacks.test.ts +46 -0
- package/src/resources/extensions/slash-commands/extension-manifest.json +2 -2
- package/src/resources/extensions/slash-commands/fast.ts +89 -0
- package/src/resources/extensions/slash-commands/index.ts +2 -0
- package/src/resources/extensions/slash-commands/plan.ts +59 -30
- package/src/resources/extensions/slash-commands/tools.ts +43 -4
- package/src/resources/extensions/subagent/agent-switcher-component.ts +228 -0
- package/src/resources/extensions/subagent/agent-switcher-model.ts +160 -0
- package/src/resources/extensions/subagent/background-job-manager.ts +57 -6
- package/src/resources/extensions/subagent/background-runner.ts +8 -0
- package/src/resources/extensions/subagent/background-types.ts +4 -0
- package/src/resources/extensions/subagent/in-process-runner.ts +534 -0
- package/src/resources/extensions/subagent/index.ts +998 -493
- package/src/resources/extensions/subagent/launch-helpers.ts +15 -4
- package/src/resources/extensions/subagent/legacy-runner.ts +607 -0
- package/src/resources/extensions/voice/index.ts +308 -238
- package/src/resources/extensions/voice/push-to-talk.ts +42 -0
- package/src/resources/extensions/voice/tests/push-to-talk.test.ts +109 -0
|
@@ -16,8 +16,7 @@ import { DynamicBorder } from "./dynamic-border.js";
|
|
|
16
16
|
|
|
17
17
|
export const THINKING_DESCRIPTIONS: Record<ThinkingLevel, string> = {
|
|
18
18
|
off: "No reasoning",
|
|
19
|
-
adaptive: "
|
|
20
|
-
minimal: "Very brief reasoning (~1k tokens)",
|
|
19
|
+
adaptive: "Automatically adapt per turn (client or provider resolved)",
|
|
21
20
|
low: "Light reasoning (~2k tokens)",
|
|
22
21
|
medium: "Moderate reasoning (~8k tokens)",
|
|
23
22
|
high: "Deep reasoning (~16k tokens)",
|
|
@@ -29,6 +28,7 @@ export interface SettingsConfig {
|
|
|
29
28
|
autoCompactThresholdPercent: number;
|
|
30
29
|
defaultModel: string;
|
|
31
30
|
classifierModel: string;
|
|
31
|
+
adaptiveClassifierModel: string;
|
|
32
32
|
budgetSubagentModel: string;
|
|
33
33
|
planModeReasoningModel: string;
|
|
34
34
|
planModeReviewModel: string;
|
|
@@ -39,8 +39,9 @@ export interface SettingsConfig {
|
|
|
39
39
|
autoResizeImages: boolean;
|
|
40
40
|
blockImages: boolean;
|
|
41
41
|
enableSkillCommands: boolean;
|
|
42
|
-
toolProfile: "balanced" | "full";
|
|
42
|
+
toolProfile: "balanced" | "standard" | "full";
|
|
43
43
|
codexRotate: boolean;
|
|
44
|
+
fastMode: boolean;
|
|
44
45
|
cacheTimer: boolean;
|
|
45
46
|
pinLastPrompt: boolean;
|
|
46
47
|
steeringMode: "all" | "one-at-a-time";
|
|
@@ -48,6 +49,7 @@ export interface SettingsConfig {
|
|
|
48
49
|
transport: Transport;
|
|
49
50
|
thinkingLevel: ThinkingLevel;
|
|
50
51
|
anthropicAdaptiveByDefault: boolean;
|
|
52
|
+
clientAdaptiveByDefault: boolean;
|
|
51
53
|
availableThinkingLevels: ThinkingLevel[];
|
|
52
54
|
currentTheme: string;
|
|
53
55
|
availableThemes: string[];
|
|
@@ -69,11 +71,13 @@ export interface SettingsConfig {
|
|
|
69
71
|
editorScheme: "auto" | "vscode" | "cursor" | "zed" | "jetbrains" | "sublime" | "file";
|
|
70
72
|
autoDream: boolean;
|
|
71
73
|
autoMemory: boolean;
|
|
74
|
+
notificationSound: boolean;
|
|
72
75
|
telegramLiveRelayAutoConnect: boolean;
|
|
73
76
|
sandboxEnabled?: boolean;
|
|
74
77
|
sandboxNetworkMode?: "allow" | "ask" | "deny";
|
|
75
78
|
defaultModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
76
79
|
classifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
80
|
+
adaptiveClassifierModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
77
81
|
budgetSubagentModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
78
82
|
planModeReasoningModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
79
83
|
planModeReviewModelSubmenu?: (currentValue: string, done: (selectedValue?: string) => void) => Component;
|
|
@@ -85,6 +89,7 @@ export interface SettingsCallbacks {
|
|
|
85
89
|
onAutoCompactThresholdPercentChange: (percent: number) => void;
|
|
86
90
|
onDefaultModelChange: (modelRef: string) => void;
|
|
87
91
|
onClassifierModelChange: (modelRef: string) => void;
|
|
92
|
+
onAdaptiveClassifierModelChange: (modelRef: string) => void;
|
|
88
93
|
onBudgetSubagentModelChange: (modelRef: string) => void;
|
|
89
94
|
onPlanModeReasoningModelChange: (modelRef: string) => void;
|
|
90
95
|
onPlanModeReviewModelChange: (modelRef: string) => void;
|
|
@@ -93,6 +98,7 @@ export interface SettingsCallbacks {
|
|
|
93
98
|
onAutoSwitchPlanModelChange: (enabled: boolean) => void;
|
|
94
99
|
onAutoDreamChange: (enabled: boolean) => void;
|
|
95
100
|
onAutoMemoryChange: (enabled: boolean) => void;
|
|
101
|
+
onNotificationSoundChange: (enabled: boolean) => void;
|
|
96
102
|
onTelegramLiveRelayAutoConnectChange: (enabled: boolean) => void;
|
|
97
103
|
onSandboxEnabledChange?: (enabled: boolean) => void;
|
|
98
104
|
onSandboxNetworkModeChange?: (mode: "allow" | "ask" | "deny") => void;
|
|
@@ -100,8 +106,9 @@ export interface SettingsCallbacks {
|
|
|
100
106
|
onAutoResizeImagesChange: (enabled: boolean) => void;
|
|
101
107
|
onBlockImagesChange: (blocked: boolean) => void;
|
|
102
108
|
onEnableSkillCommandsChange: (enabled: boolean) => void;
|
|
103
|
-
onToolProfileChange: (profile: "balanced" | "full") => void;
|
|
109
|
+
onToolProfileChange: (profile: "balanced" | "standard" | "full") => void;
|
|
104
110
|
onCodexRotateChange: (enabled: boolean) => void;
|
|
111
|
+
onFastModeChange: (enabled: boolean) => void;
|
|
105
112
|
onCacheTimerChange: (enabled: boolean) => void;
|
|
106
113
|
onPinLastPromptChange: (enabled: boolean) => void;
|
|
107
114
|
onSteeringModeChange: (mode: "all" | "one-at-a-time") => void;
|
|
@@ -109,6 +116,7 @@ export interface SettingsCallbacks {
|
|
|
109
116
|
onTransportChange: (transport: Transport) => void;
|
|
110
117
|
onThinkingLevelChange: (level: ThinkingLevel) => void;
|
|
111
118
|
onAnthropicAdaptiveByDefaultChange: (enabled: boolean) => void;
|
|
119
|
+
onClientAdaptiveByDefaultChange: (enabled: boolean) => void;
|
|
112
120
|
onThemeChange: (theme: string) => void;
|
|
113
121
|
onThemePreview?: (theme: string) => void;
|
|
114
122
|
onThemeAccentChange: (accent: string) => void;
|
|
@@ -231,6 +239,13 @@ export class SettingsSelectorComponent extends Container {
|
|
|
231
239
|
currentValue: config.classifierModel,
|
|
232
240
|
submenu: config.classifierModelSubmenu,
|
|
233
241
|
},
|
|
242
|
+
{
|
|
243
|
+
id: "adaptive-classifier-model",
|
|
244
|
+
label: "Adaptive classifier model",
|
|
245
|
+
description: "LLM used to pick reasoning level when adaptive mode is on (required for non-Anthropic models)",
|
|
246
|
+
currentValue: config.adaptiveClassifierModel,
|
|
247
|
+
submenu: config.adaptiveClassifierModelSubmenu,
|
|
248
|
+
},
|
|
234
249
|
{
|
|
235
250
|
id: "budget-subagent-model",
|
|
236
251
|
label: "Budget subagent model",
|
|
@@ -381,6 +396,13 @@ export class SettingsSelectorComponent extends Container {
|
|
|
381
396
|
currentValue: config.anthropicAdaptiveByDefault ? "true" : "false",
|
|
382
397
|
values: ["true", "false"],
|
|
383
398
|
},
|
|
399
|
+
{
|
|
400
|
+
id: "client-adaptive-default",
|
|
401
|
+
label: "Adaptive by default",
|
|
402
|
+
description: "Default to adaptive thinking for all reasoning-capable models",
|
|
403
|
+
currentValue: config.clientAdaptiveByDefault ? "true" : "false",
|
|
404
|
+
values: ["true", "false"],
|
|
405
|
+
},
|
|
384
406
|
{
|
|
385
407
|
id: "theme",
|
|
386
408
|
label: "Theme",
|
|
@@ -480,9 +502,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
480
502
|
items.splice(skillCommandsIndex + 1, 0, {
|
|
481
503
|
id: "tool-profile",
|
|
482
504
|
label: "Tool profile",
|
|
483
|
-
description: "Choose the default active tool set: balanced for day-to-day coding, full to enable all available tools",
|
|
505
|
+
description: "Choose the default active tool set: balanced for day-to-day coding, standard for broader coverage, full to enable all available tools",
|
|
484
506
|
currentValue: config.toolProfile,
|
|
485
|
-
values: ["balanced", "full"],
|
|
507
|
+
values: ["balanced", "standard", "full"],
|
|
486
508
|
});
|
|
487
509
|
|
|
488
510
|
// Codex rotate toggle (insert after tool-profile)
|
|
@@ -495,9 +517,19 @@ export class SettingsSelectorComponent extends Container {
|
|
|
495
517
|
values: ["true", "false"],
|
|
496
518
|
});
|
|
497
519
|
|
|
498
|
-
//
|
|
520
|
+
// Fast mode toggle (insert after codex-rotate)
|
|
499
521
|
const codexRotateIndex = items.findIndex((item) => item.id === "codex-rotate");
|
|
500
522
|
items.splice(codexRotateIndex + 1, 0, {
|
|
523
|
+
id: "fast-mode",
|
|
524
|
+
label: "Fast mode",
|
|
525
|
+
description: "OpenAI/Codex supported models use priority service tier",
|
|
526
|
+
currentValue: config.fastMode ? "true" : "false",
|
|
527
|
+
values: ["true", "false"],
|
|
528
|
+
});
|
|
529
|
+
|
|
530
|
+
// Cache timer toggle (insert after fast-mode)
|
|
531
|
+
const fastModeIndex = items.findIndex((item) => item.id === "fast-mode");
|
|
532
|
+
items.splice(fastModeIndex + 1, 0, {
|
|
501
533
|
id: "cache-timer",
|
|
502
534
|
label: "Cache timer",
|
|
503
535
|
description: "Show elapsed time since last response in the footer (tracks 5-min cache window)",
|
|
@@ -535,9 +567,19 @@ export class SettingsSelectorComponent extends Container {
|
|
|
535
567
|
values: ["true", "false"],
|
|
536
568
|
});
|
|
537
569
|
|
|
538
|
-
//
|
|
570
|
+
// Notification sound toggle (insert after auto-memory)
|
|
539
571
|
const autoMemoryIdx = items.findIndex((item) => item.id === "auto-memory");
|
|
540
572
|
items.splice(autoMemoryIdx + 1, 0, {
|
|
573
|
+
id: "notification-sound",
|
|
574
|
+
label: "Notification sound",
|
|
575
|
+
description: "Play a terminal bell when the agent finishes responding",
|
|
576
|
+
currentValue: config.notificationSound ? "true" : "false",
|
|
577
|
+
values: ["true", "false"],
|
|
578
|
+
});
|
|
579
|
+
|
|
580
|
+
// Telegram relay auto-connect toggle (insert after notification-sound)
|
|
581
|
+
const notificationSoundIdx = items.findIndex((item) => item.id === "notification-sound");
|
|
582
|
+
items.splice(notificationSoundIdx + 1, 0, {
|
|
541
583
|
id: "telegram-live-relay-autoconnect",
|
|
542
584
|
label: "Telegram autoconnect",
|
|
543
585
|
description: "Auto-run /lsd telegram connect on startup",
|
|
@@ -646,6 +688,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
646
688
|
case "classifier-model":
|
|
647
689
|
callbacks.onClassifierModelChange(newValue);
|
|
648
690
|
break;
|
|
691
|
+
case "adaptive-classifier-model":
|
|
692
|
+
callbacks.onAdaptiveClassifierModelChange(newValue);
|
|
693
|
+
break;
|
|
649
694
|
case "budget-subagent-model":
|
|
650
695
|
callbacks.onBudgetSubagentModelChange(newValue);
|
|
651
696
|
break;
|
|
@@ -677,11 +722,14 @@ export class SettingsSelectorComponent extends Container {
|
|
|
677
722
|
callbacks.onEnableSkillCommandsChange(newValue === "true");
|
|
678
723
|
break;
|
|
679
724
|
case "tool-profile":
|
|
680
|
-
callbacks.onToolProfileChange(newValue as "balanced" | "full");
|
|
725
|
+
callbacks.onToolProfileChange(newValue as "balanced" | "standard" | "full");
|
|
681
726
|
break;
|
|
682
727
|
case "codex-rotate":
|
|
683
728
|
callbacks.onCodexRotateChange(newValue === "true");
|
|
684
729
|
break;
|
|
730
|
+
case "fast-mode":
|
|
731
|
+
callbacks.onFastModeChange(newValue === "true");
|
|
732
|
+
break;
|
|
685
733
|
case "cache-timer":
|
|
686
734
|
callbacks.onCacheTimerChange(newValue === "true");
|
|
687
735
|
break;
|
|
@@ -694,6 +742,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
694
742
|
case "auto-memory":
|
|
695
743
|
callbacks.onAutoMemoryChange(newValue === "true");
|
|
696
744
|
break;
|
|
745
|
+
case "notification-sound":
|
|
746
|
+
callbacks.onNotificationSoundChange(newValue === "true");
|
|
747
|
+
break;
|
|
697
748
|
case "telegram-live-relay-autoconnect":
|
|
698
749
|
callbacks.onTelegramLiveRelayAutoConnectChange(newValue === "true");
|
|
699
750
|
break;
|
|
@@ -712,6 +763,9 @@ export class SettingsSelectorComponent extends Container {
|
|
|
712
763
|
case "anthropic-adaptive-default":
|
|
713
764
|
callbacks.onAnthropicAdaptiveByDefaultChange(newValue === "true");
|
|
714
765
|
break;
|
|
766
|
+
case "client-adaptive-default":
|
|
767
|
+
callbacks.onClientAdaptiveByDefaultChange(newValue === "true");
|
|
768
|
+
break;
|
|
715
769
|
case "hide-thinking":
|
|
716
770
|
callbacks.onHideThinkingBlockChange(newValue === "true");
|
|
717
771
|
break;
|
|
@@ -5,8 +5,7 @@ import { DynamicBorder } from "./dynamic-border.js";
|
|
|
5
5
|
|
|
6
6
|
const LEVEL_DESCRIPTIONS: Record<ThinkingLevel, string> = {
|
|
7
7
|
off: "No reasoning",
|
|
8
|
-
adaptive: "
|
|
9
|
-
minimal: "Very brief reasoning (~1k tokens)",
|
|
8
|
+
adaptive: "Automatically adapt per turn (client or provider resolved)",
|
|
10
9
|
low: "Light reasoning (~2k tokens)",
|
|
11
10
|
medium: "Moderate reasoning (~8k tokens)",
|
|
12
11
|
high: "Deep reasoning (~16k tokens)",
|