@vandeepunk/pi-coding-agent 0.0.1
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 +2564 -0
- package/README.md +555 -0
- package/dist/cli/args.d.ts +47 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +286 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +79 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +92 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +34 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +11 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +68 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +203 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session.d.ts +574 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2260 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-storage.d.ts +102 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +282 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +47 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +212 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +86 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +242 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +607 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +35 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +138 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +71 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +34 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +222 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +909 -0
- package/dist/core/export-html/template.html +54 -0
- package/dist/core/export-html/template.js +1549 -0
- package/dist/core/export-html/tool-renderer.d.ts +35 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +57 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +11 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +25 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +400 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +129 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +576 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +928 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +35 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +27 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +102 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +32 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +134 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/index.d.ts +9 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +9 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +55 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +153 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +123 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +100 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +419 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +76 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +313 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/package-manager.d.ts +131 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +1290 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +50 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +251 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +17 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +59 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +184 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +673 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +90 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +234 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-manager.d.ts +323 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1091 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +187 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +552 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +58 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +310 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +15 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +21 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/system-prompt.d.ts +24 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +137 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/timings.d.ts +7 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +25 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +55 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +242 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +63 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +243 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +39 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +146 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/find.d.ts +39 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +206 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +45 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +239 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +73 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +61 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +40 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +118 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +8 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +81 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +39 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +166 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +205 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +29 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +78 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +8 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +623 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +261 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +16 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +91 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +35 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +162 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +51 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +479 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +79 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +17 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +102 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +24 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +78 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +26 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +220 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +32 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +33 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +41 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +61 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +42 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +145 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +47 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +266 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +19 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +97 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +49 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +270 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +95 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +851 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +53 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +277 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +35 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +46 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +47 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +70 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +621 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +68 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +934 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +113 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +8 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +16 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +313 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +3664 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +85 -0
- package/dist/modes/interactive/theme/light.json +84 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +78 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +944 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +98 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +217 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +405 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +500 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +409 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/utils/changelog.d.ts +21 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +162 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +7 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +14 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +67 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/git.d.ts +2 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +6 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +35 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize.d.ts +36 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +181 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/mime.d.ts +2 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +26 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +26 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +186 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +201 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/docs/compaction.md +390 -0
- package/docs/custom-provider.md +539 -0
- package/docs/development.md +69 -0
- package/docs/extensions.md +1827 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/json.md +79 -0
- package/docs/keybindings.md +174 -0
- package/docs/models.md +254 -0
- package/docs/packages.md +191 -0
- package/docs/prompt-templates.md +67 -0
- package/docs/providers.md +168 -0
- package/docs/rpc.md +1311 -0
- package/docs/sdk.md +957 -0
- package/docs/session.md +412 -0
- package/docs/settings.md +221 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +227 -0
- package/docs/terminal-setup.md +70 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tree.md +219 -0
- package/docs/tui.md +887 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +202 -0
- package/examples/extensions/antigravity-image-gen.ts +413 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +114 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +349 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/custom-provider-qwen-cli/index.ts +345 -0
- package/examples/extensions/custom-provider-qwen-cli/package.json +16 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +46 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/handoff.ts +150 -0
- package/examples/extensions/hello.ts +25 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +881 -0
- package/examples/extensions/overlay-test.ts +150 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +340 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +398 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/qna.ts +119 -0
- package/examples/extensions/question.ts +264 -0
- package/examples/extensions/questionnaire.ts +427 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/rpc-demo.ts +124 -0
- package/examples/extensions/sandbox/index.ts +318 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +40 -0
- package/examples/extensions/subagent/README.md +172 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +127 -0
- package/examples/extensions/subagent/index.ts +963 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +195 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +299 -0
- package/examples/extensions/tool-override.ts +143 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +40 -0
- package/examples/extensions/truncated-tool.ts +192 -0
- package/examples/extensions/widget-placement.ts +17 -0
- package/examples/extensions/with-deps/index.ts +36 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +22 -0
- package/examples/sdk/02-custom-model.ts +49 -0
- package/examples/sdk/03-custom-prompt.ts +55 -0
- package/examples/sdk/04-skills.ts +46 -0
- package/examples/sdk/05-tools.ts +56 -0
- package/examples/sdk/06-extensions.ts +88 -0
- package/examples/sdk/07-context-files.ts +40 -0
- package/examples/sdk/08-prompt-templates.ts +47 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +48 -0
- package/examples/sdk/10-settings.ts +38 -0
- package/examples/sdk/11-sessions.ts +48 -0
- package/examples/sdk/12-full-control.ts +82 -0
- package/examples/sdk/README.md +144 -0
- package/package.json +97 -0
|
@@ -0,0 +1,574 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AgentSession - Core abstraction for agent lifecycle and session management.
|
|
3
|
+
*
|
|
4
|
+
* This class is shared between all run modes (interactive, print, rpc).
|
|
5
|
+
* It encapsulates:
|
|
6
|
+
* - Agent state access
|
|
7
|
+
* - Event subscription with automatic session persistence
|
|
8
|
+
* - Model and thinking level management
|
|
9
|
+
* - Compaction (manual and auto)
|
|
10
|
+
* - Bash execution
|
|
11
|
+
* - Session switching and branching
|
|
12
|
+
*
|
|
13
|
+
* Modes use this class and add their own I/O layer on top.
|
|
14
|
+
*/
|
|
15
|
+
import type { Agent, AgentEvent, AgentMessage, AgentState, AgentTool, ThinkingLevel } from "@mariozechner/pi-agent-core";
|
|
16
|
+
import type { ImageContent, Model, TextContent } from "@mariozechner/pi-ai";
|
|
17
|
+
import { type BashResult } from "./bash-executor.js";
|
|
18
|
+
import { type CompactionResult } from "./compaction/index.js";
|
|
19
|
+
import { type ContextUsage, type ExtensionCommandContextActions, type ExtensionErrorListener, ExtensionRunner, type ExtensionUIContext, type InputSource, type ShutdownHandler, type ToolDefinition } from "./extensions/index.js";
|
|
20
|
+
import type { CustomMessage } from "./messages.js";
|
|
21
|
+
import type { ModelRegistry } from "./model-registry.js";
|
|
22
|
+
import { type PromptTemplate } from "./prompt-templates.js";
|
|
23
|
+
import type { ResourceLoader } from "./resource-loader.js";
|
|
24
|
+
import type { BranchSummaryEntry, SessionManager } from "./session-manager.js";
|
|
25
|
+
import type { SettingsManager } from "./settings-manager.js";
|
|
26
|
+
import type { BashOperations } from "./tools/bash.js";
|
|
27
|
+
/** Parsed skill block from a user message */
|
|
28
|
+
export interface ParsedSkillBlock {
|
|
29
|
+
name: string;
|
|
30
|
+
location: string;
|
|
31
|
+
content: string;
|
|
32
|
+
userMessage: string | undefined;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Parse a skill block from message text.
|
|
36
|
+
* Returns null if the text doesn't contain a skill block.
|
|
37
|
+
*/
|
|
38
|
+
export declare function parseSkillBlock(text: string): ParsedSkillBlock | null;
|
|
39
|
+
/** Session-specific events that extend the core AgentEvent */
|
|
40
|
+
export type AgentSessionEvent = AgentEvent | {
|
|
41
|
+
type: "auto_compaction_start";
|
|
42
|
+
reason: "threshold" | "overflow";
|
|
43
|
+
} | {
|
|
44
|
+
type: "auto_compaction_end";
|
|
45
|
+
result: CompactionResult | undefined;
|
|
46
|
+
aborted: boolean;
|
|
47
|
+
willRetry: boolean;
|
|
48
|
+
errorMessage?: string;
|
|
49
|
+
} | {
|
|
50
|
+
type: "auto_retry_start";
|
|
51
|
+
attempt: number;
|
|
52
|
+
maxAttempts: number;
|
|
53
|
+
delayMs: number;
|
|
54
|
+
errorMessage: string;
|
|
55
|
+
} | {
|
|
56
|
+
type: "auto_retry_end";
|
|
57
|
+
success: boolean;
|
|
58
|
+
attempt: number;
|
|
59
|
+
finalError?: string;
|
|
60
|
+
};
|
|
61
|
+
/** Listener function for agent session events */
|
|
62
|
+
export type AgentSessionEventListener = (event: AgentSessionEvent) => void;
|
|
63
|
+
export interface AgentSessionConfig {
|
|
64
|
+
agent: Agent;
|
|
65
|
+
sessionManager: SessionManager;
|
|
66
|
+
settingsManager: SettingsManager;
|
|
67
|
+
cwd: string;
|
|
68
|
+
/** Models to cycle through with Ctrl+P (from --models flag) */
|
|
69
|
+
scopedModels?: Array<{
|
|
70
|
+
model: Model<any>;
|
|
71
|
+
thinkingLevel: ThinkingLevel;
|
|
72
|
+
}>;
|
|
73
|
+
/** Resource loader for skills, prompts, themes, context files, system prompt */
|
|
74
|
+
resourceLoader: ResourceLoader;
|
|
75
|
+
/** SDK custom tools registered outside extensions */
|
|
76
|
+
customTools?: ToolDefinition[];
|
|
77
|
+
/** Model registry for API key resolution and model discovery */
|
|
78
|
+
modelRegistry: ModelRegistry;
|
|
79
|
+
/** Initial active built-in tool names. Default: [read, bash, edit, write] */
|
|
80
|
+
initialActiveToolNames?: string[];
|
|
81
|
+
/** Override base tools (useful for custom runtimes). */
|
|
82
|
+
baseToolsOverride?: Record<string, AgentTool>;
|
|
83
|
+
/** Mutable ref used by Agent to access the current ExtensionRunner */
|
|
84
|
+
extensionRunnerRef?: {
|
|
85
|
+
current?: ExtensionRunner;
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
export interface ExtensionBindings {
|
|
89
|
+
uiContext?: ExtensionUIContext;
|
|
90
|
+
commandContextActions?: ExtensionCommandContextActions;
|
|
91
|
+
shutdownHandler?: ShutdownHandler;
|
|
92
|
+
onError?: ExtensionErrorListener;
|
|
93
|
+
}
|
|
94
|
+
/** Options for AgentSession.prompt() */
|
|
95
|
+
export interface PromptOptions {
|
|
96
|
+
/** Whether to expand file-based prompt templates (default: true) */
|
|
97
|
+
expandPromptTemplates?: boolean;
|
|
98
|
+
/** Image attachments */
|
|
99
|
+
images?: ImageContent[];
|
|
100
|
+
/** When streaming, how to queue the message: "steer" (interrupt) or "followUp" (wait). Required if streaming. */
|
|
101
|
+
streamingBehavior?: "steer" | "followUp";
|
|
102
|
+
/** Source of input for extension input event handlers. Defaults to "interactive". */
|
|
103
|
+
source?: InputSource;
|
|
104
|
+
}
|
|
105
|
+
/** Result from cycleModel() */
|
|
106
|
+
export interface ModelCycleResult {
|
|
107
|
+
model: Model<any>;
|
|
108
|
+
thinkingLevel: ThinkingLevel;
|
|
109
|
+
/** Whether cycling through scoped models (--models flag) or all available */
|
|
110
|
+
isScoped: boolean;
|
|
111
|
+
}
|
|
112
|
+
/** Session statistics for /session command */
|
|
113
|
+
export interface SessionStats {
|
|
114
|
+
sessionFile: string | undefined;
|
|
115
|
+
sessionId: string;
|
|
116
|
+
userMessages: number;
|
|
117
|
+
assistantMessages: number;
|
|
118
|
+
toolCalls: number;
|
|
119
|
+
toolResults: number;
|
|
120
|
+
totalMessages: number;
|
|
121
|
+
tokens: {
|
|
122
|
+
input: number;
|
|
123
|
+
output: number;
|
|
124
|
+
cacheRead: number;
|
|
125
|
+
cacheWrite: number;
|
|
126
|
+
total: number;
|
|
127
|
+
};
|
|
128
|
+
cost: number;
|
|
129
|
+
}
|
|
130
|
+
export declare class AgentSession {
|
|
131
|
+
readonly agent: Agent;
|
|
132
|
+
readonly sessionManager: SessionManager;
|
|
133
|
+
readonly settingsManager: SettingsManager;
|
|
134
|
+
private _scopedModels;
|
|
135
|
+
private _unsubscribeAgent?;
|
|
136
|
+
private _eventListeners;
|
|
137
|
+
/** Tracks pending steering messages for UI display. Removed when delivered. */
|
|
138
|
+
private _steeringMessages;
|
|
139
|
+
/** Tracks pending follow-up messages for UI display. Removed when delivered. */
|
|
140
|
+
private _followUpMessages;
|
|
141
|
+
/** Messages queued to be included with the next user prompt as context ("asides"). */
|
|
142
|
+
private _pendingNextTurnMessages;
|
|
143
|
+
private _compactionAbortController;
|
|
144
|
+
private _autoCompactionAbortController;
|
|
145
|
+
private _branchSummaryAbortController;
|
|
146
|
+
private _retryAbortController;
|
|
147
|
+
private _retryAttempt;
|
|
148
|
+
private _retryPromise;
|
|
149
|
+
private _retryResolve;
|
|
150
|
+
private _bashAbortController;
|
|
151
|
+
private _pendingBashMessages;
|
|
152
|
+
private _extensionRunner;
|
|
153
|
+
private _turnIndex;
|
|
154
|
+
private _resourceLoader;
|
|
155
|
+
private _customTools;
|
|
156
|
+
private _baseToolRegistry;
|
|
157
|
+
private _cwd;
|
|
158
|
+
private _extensionRunnerRef?;
|
|
159
|
+
private _initialActiveToolNames?;
|
|
160
|
+
private _baseToolsOverride?;
|
|
161
|
+
private _extensionUIContext?;
|
|
162
|
+
private _extensionCommandContextActions?;
|
|
163
|
+
private _extensionShutdownHandler?;
|
|
164
|
+
private _extensionErrorListener?;
|
|
165
|
+
private _extensionErrorUnsubscriber?;
|
|
166
|
+
private _modelRegistry;
|
|
167
|
+
private _toolRegistry;
|
|
168
|
+
private _baseSystemPrompt;
|
|
169
|
+
constructor(config: AgentSessionConfig);
|
|
170
|
+
/** Model registry for API key resolution and model discovery */
|
|
171
|
+
get modelRegistry(): ModelRegistry;
|
|
172
|
+
/** Emit an event to all listeners */
|
|
173
|
+
private _emit;
|
|
174
|
+
private _lastAssistantMessage;
|
|
175
|
+
/** Internal handler for agent events - shared by subscribe and reconnect */
|
|
176
|
+
private _handleAgentEvent;
|
|
177
|
+
/** Resolve the pending retry promise */
|
|
178
|
+
private _resolveRetry;
|
|
179
|
+
/** Extract text content from a message */
|
|
180
|
+
private _getUserMessageText;
|
|
181
|
+
/** Find the last assistant message in agent state (including aborted ones) */
|
|
182
|
+
private _findLastAssistantMessage;
|
|
183
|
+
private _emitExtensionEvent;
|
|
184
|
+
/**
|
|
185
|
+
* Subscribe to agent events.
|
|
186
|
+
* Session persistence is handled internally (saves messages on message_end).
|
|
187
|
+
* Multiple listeners can be added. Returns unsubscribe function for this listener.
|
|
188
|
+
*/
|
|
189
|
+
subscribe(listener: AgentSessionEventListener): () => void;
|
|
190
|
+
/**
|
|
191
|
+
* Temporarily disconnect from agent events.
|
|
192
|
+
* User listeners are preserved and will receive events again after resubscribe().
|
|
193
|
+
* Used internally during operations that need to pause event processing.
|
|
194
|
+
*/
|
|
195
|
+
private _disconnectFromAgent;
|
|
196
|
+
/**
|
|
197
|
+
* Reconnect to agent events after _disconnectFromAgent().
|
|
198
|
+
* Preserves all existing listeners.
|
|
199
|
+
*/
|
|
200
|
+
private _reconnectToAgent;
|
|
201
|
+
/**
|
|
202
|
+
* Remove all listeners and disconnect from agent.
|
|
203
|
+
* Call this when completely done with the session.
|
|
204
|
+
*/
|
|
205
|
+
dispose(): void;
|
|
206
|
+
/** Full agent state */
|
|
207
|
+
get state(): AgentState;
|
|
208
|
+
/** Current model (may be undefined if not yet selected) */
|
|
209
|
+
get model(): Model<any> | undefined;
|
|
210
|
+
/** Current thinking level */
|
|
211
|
+
get thinkingLevel(): ThinkingLevel;
|
|
212
|
+
/** Whether agent is currently streaming a response */
|
|
213
|
+
get isStreaming(): boolean;
|
|
214
|
+
/** Current effective system prompt (includes any per-turn extension modifications) */
|
|
215
|
+
get systemPrompt(): string;
|
|
216
|
+
/** Current retry attempt (0 if not retrying) */
|
|
217
|
+
get retryAttempt(): number;
|
|
218
|
+
/**
|
|
219
|
+
* Get the names of currently active tools.
|
|
220
|
+
* Returns the names of tools currently set on the agent.
|
|
221
|
+
*/
|
|
222
|
+
getActiveToolNames(): string[];
|
|
223
|
+
/**
|
|
224
|
+
* Get all configured tools with name and description.
|
|
225
|
+
*/
|
|
226
|
+
getAllTools(): Array<{
|
|
227
|
+
name: string;
|
|
228
|
+
description: string;
|
|
229
|
+
}>;
|
|
230
|
+
/**
|
|
231
|
+
* Set active tools by name.
|
|
232
|
+
* Only tools in the registry can be enabled. Unknown tool names are ignored.
|
|
233
|
+
* Also rebuilds the system prompt to reflect the new tool set.
|
|
234
|
+
* Changes take effect on the next agent turn.
|
|
235
|
+
*/
|
|
236
|
+
setActiveToolsByName(toolNames: string[]): void;
|
|
237
|
+
/** Whether auto-compaction is currently running */
|
|
238
|
+
get isCompacting(): boolean;
|
|
239
|
+
/** All messages including custom types like BashExecutionMessage */
|
|
240
|
+
get messages(): AgentMessage[];
|
|
241
|
+
/** Current steering mode */
|
|
242
|
+
get steeringMode(): "all" | "one-at-a-time";
|
|
243
|
+
/** Current follow-up mode */
|
|
244
|
+
get followUpMode(): "all" | "one-at-a-time";
|
|
245
|
+
/** Current session file path, or undefined if sessions are disabled */
|
|
246
|
+
get sessionFile(): string | undefined;
|
|
247
|
+
/** Current session ID */
|
|
248
|
+
get sessionId(): string;
|
|
249
|
+
/** Current session display name, if set */
|
|
250
|
+
get sessionName(): string | undefined;
|
|
251
|
+
/** Scoped models for cycling (from --models flag) */
|
|
252
|
+
get scopedModels(): ReadonlyArray<{
|
|
253
|
+
model: Model<any>;
|
|
254
|
+
thinkingLevel: ThinkingLevel;
|
|
255
|
+
}>;
|
|
256
|
+
/** Update scoped models for cycling */
|
|
257
|
+
setScopedModels(scopedModels: Array<{
|
|
258
|
+
model: Model<any>;
|
|
259
|
+
thinkingLevel: ThinkingLevel;
|
|
260
|
+
}>): void;
|
|
261
|
+
/** File-based prompt templates */
|
|
262
|
+
get promptTemplates(): ReadonlyArray<PromptTemplate>;
|
|
263
|
+
private _rebuildSystemPrompt;
|
|
264
|
+
/**
|
|
265
|
+
* Send a prompt to the agent.
|
|
266
|
+
* - Handles extension commands (registered via pi.registerCommand) immediately, even during streaming
|
|
267
|
+
* - Expands file-based prompt templates by default
|
|
268
|
+
* - During streaming, queues via steer() or followUp() based on streamingBehavior option
|
|
269
|
+
* - Validates model and API key before sending (when not streaming)
|
|
270
|
+
* @throws Error if streaming and no streamingBehavior specified
|
|
271
|
+
* @throws Error if no model selected or no API key available (when not streaming)
|
|
272
|
+
*/
|
|
273
|
+
prompt(text: string, options?: PromptOptions): Promise<void>;
|
|
274
|
+
private _tryExecuteExtensionCommand;
|
|
275
|
+
/**
|
|
276
|
+
* Expand skill commands (/skill:name args) to their full content.
|
|
277
|
+
* Returns the expanded text, or the original text if not a skill command or skill not found.
|
|
278
|
+
* Emits errors via extension runner if file read fails.
|
|
279
|
+
*/
|
|
280
|
+
private _expandSkillCommand;
|
|
281
|
+
/**
|
|
282
|
+
* Queue a steering message to interrupt the agent mid-run.
|
|
283
|
+
* Delivered after current tool execution, skips remaining tools.
|
|
284
|
+
* Expands skill commands and prompt templates. Errors on extension commands.
|
|
285
|
+
* @param images Optional image attachments to include with the message
|
|
286
|
+
* @throws Error if text is an extension command
|
|
287
|
+
*/
|
|
288
|
+
steer(text: string, images?: ImageContent[]): Promise<void>;
|
|
289
|
+
/**
|
|
290
|
+
* Queue a follow-up message to be processed after the agent finishes.
|
|
291
|
+
* Delivered only when agent has no more tool calls or steering messages.
|
|
292
|
+
* Expands skill commands and prompt templates. Errors on extension commands.
|
|
293
|
+
* @param images Optional image attachments to include with the message
|
|
294
|
+
* @throws Error if text is an extension command
|
|
295
|
+
*/
|
|
296
|
+
followUp(text: string, images?: ImageContent[]): Promise<void>;
|
|
297
|
+
private _queueSteer;
|
|
298
|
+
private _queueFollowUp;
|
|
299
|
+
/**
|
|
300
|
+
* Throw an error if the text is an extension command.
|
|
301
|
+
*/
|
|
302
|
+
private _throwIfExtensionCommand;
|
|
303
|
+
/**
|
|
304
|
+
* Send a custom message to the session. Creates a CustomMessageEntry.
|
|
305
|
+
*
|
|
306
|
+
* Handles three cases:
|
|
307
|
+
* - Streaming: queues message, processed when loop pulls from queue
|
|
308
|
+
* - Not streaming + triggerTurn: appends to state/session, starts new turn
|
|
309
|
+
* - Not streaming + no trigger: appends to state/session, no turn
|
|
310
|
+
*
|
|
311
|
+
* @param message Custom message with customType, content, display, details
|
|
312
|
+
* @param options.triggerTurn If true and not streaming, triggers a new LLM turn
|
|
313
|
+
* @param options.deliverAs Delivery mode: "steer", "followUp", or "nextTurn"
|
|
314
|
+
*/
|
|
315
|
+
sendCustomMessage<T = unknown>(message: Pick<CustomMessage<T>, "customType" | "content" | "display" | "details">, options?: {
|
|
316
|
+
triggerTurn?: boolean;
|
|
317
|
+
deliverAs?: "steer" | "followUp" | "nextTurn";
|
|
318
|
+
}): Promise<void>;
|
|
319
|
+
/**
|
|
320
|
+
* Send a user message to the agent. Always triggers a turn.
|
|
321
|
+
* When the agent is streaming, use deliverAs to specify how to queue the message.
|
|
322
|
+
*
|
|
323
|
+
* @param content User message content (string or content array)
|
|
324
|
+
* @param options.deliverAs Delivery mode when streaming: "steer" or "followUp"
|
|
325
|
+
*/
|
|
326
|
+
sendUserMessage(content: string | (TextContent | ImageContent)[], options?: {
|
|
327
|
+
deliverAs?: "steer" | "followUp";
|
|
328
|
+
}): Promise<void>;
|
|
329
|
+
/**
|
|
330
|
+
* Clear all queued messages and return them.
|
|
331
|
+
* Useful for restoring to editor when user aborts.
|
|
332
|
+
* @returns Object with steering and followUp arrays
|
|
333
|
+
*/
|
|
334
|
+
clearQueue(): {
|
|
335
|
+
steering: string[];
|
|
336
|
+
followUp: string[];
|
|
337
|
+
};
|
|
338
|
+
/** Number of pending messages (includes both steering and follow-up) */
|
|
339
|
+
get pendingMessageCount(): number;
|
|
340
|
+
/** Get pending steering messages (read-only) */
|
|
341
|
+
getSteeringMessages(): readonly string[];
|
|
342
|
+
/** Get pending follow-up messages (read-only) */
|
|
343
|
+
getFollowUpMessages(): readonly string[];
|
|
344
|
+
get resourceLoader(): ResourceLoader;
|
|
345
|
+
/**
|
|
346
|
+
* Abort current operation and wait for agent to become idle.
|
|
347
|
+
*/
|
|
348
|
+
abort(): Promise<void>;
|
|
349
|
+
/**
|
|
350
|
+
* Start a new session, optionally with initial messages and parent tracking.
|
|
351
|
+
* Clears all messages and starts a new session.
|
|
352
|
+
* Listeners are preserved and will continue receiving events.
|
|
353
|
+
* @param options.parentSession - Optional parent session path for tracking
|
|
354
|
+
* @param options.setup - Optional callback to initialize session (e.g., append messages)
|
|
355
|
+
* @returns true if completed, false if cancelled by extension
|
|
356
|
+
*/
|
|
357
|
+
newSession(options?: {
|
|
358
|
+
parentSession?: string;
|
|
359
|
+
setup?: (sessionManager: SessionManager) => Promise<void>;
|
|
360
|
+
}): Promise<boolean>;
|
|
361
|
+
private _emitModelSelect;
|
|
362
|
+
/**
|
|
363
|
+
* Set model directly.
|
|
364
|
+
* Validates API key, saves to session and settings.
|
|
365
|
+
* @throws Error if no API key available for the model
|
|
366
|
+
*/
|
|
367
|
+
setModel(model: Model<any>): Promise<void>;
|
|
368
|
+
/**
|
|
369
|
+
* Cycle to next/previous model.
|
|
370
|
+
* Uses scoped models (from --models flag) if available, otherwise all available models.
|
|
371
|
+
* @param direction - "forward" (default) or "backward"
|
|
372
|
+
* @returns The new model info, or undefined if only one model available
|
|
373
|
+
*/
|
|
374
|
+
cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
|
|
375
|
+
private _getScopedModelsWithApiKey;
|
|
376
|
+
private _cycleScopedModel;
|
|
377
|
+
private _cycleAvailableModel;
|
|
378
|
+
/**
|
|
379
|
+
* Set thinking level.
|
|
380
|
+
* Clamps to model capabilities based on available thinking levels.
|
|
381
|
+
* Saves to session and settings only if the level actually changes.
|
|
382
|
+
*/
|
|
383
|
+
setThinkingLevel(level: ThinkingLevel): void;
|
|
384
|
+
/**
|
|
385
|
+
* Cycle to next thinking level.
|
|
386
|
+
* @returns New level, or undefined if model doesn't support thinking
|
|
387
|
+
*/
|
|
388
|
+
cycleThinkingLevel(): ThinkingLevel | undefined;
|
|
389
|
+
/**
|
|
390
|
+
* Get available thinking levels for current model.
|
|
391
|
+
* The provider will clamp to what the specific model supports internally.
|
|
392
|
+
*/
|
|
393
|
+
getAvailableThinkingLevels(): ThinkingLevel[];
|
|
394
|
+
/**
|
|
395
|
+
* Check if current model supports xhigh thinking level.
|
|
396
|
+
*/
|
|
397
|
+
supportsXhighThinking(): boolean;
|
|
398
|
+
/**
|
|
399
|
+
* Check if current model supports thinking/reasoning.
|
|
400
|
+
*/
|
|
401
|
+
supportsThinking(): boolean;
|
|
402
|
+
private _clampThinkingLevel;
|
|
403
|
+
/**
|
|
404
|
+
* Set steering message mode.
|
|
405
|
+
* Saves to settings.
|
|
406
|
+
*/
|
|
407
|
+
setSteeringMode(mode: "all" | "one-at-a-time"): void;
|
|
408
|
+
/**
|
|
409
|
+
* Set follow-up message mode.
|
|
410
|
+
* Saves to settings.
|
|
411
|
+
*/
|
|
412
|
+
setFollowUpMode(mode: "all" | "one-at-a-time"): void;
|
|
413
|
+
/**
|
|
414
|
+
* Manually compact the session context.
|
|
415
|
+
* Aborts current agent operation first.
|
|
416
|
+
* @param customInstructions Optional instructions for the compaction summary
|
|
417
|
+
*/
|
|
418
|
+
compact(customInstructions?: string): Promise<CompactionResult>;
|
|
419
|
+
/**
|
|
420
|
+
* Cancel in-progress compaction (manual or auto).
|
|
421
|
+
*/
|
|
422
|
+
abortCompaction(): void;
|
|
423
|
+
/**
|
|
424
|
+
* Cancel in-progress branch summarization.
|
|
425
|
+
*/
|
|
426
|
+
abortBranchSummary(): void;
|
|
427
|
+
private _checkCompaction;
|
|
428
|
+
private _runAutoCompaction;
|
|
429
|
+
/**
|
|
430
|
+
* Toggle auto-compaction setting.
|
|
431
|
+
*/
|
|
432
|
+
setAutoCompactionEnabled(enabled: boolean): void;
|
|
433
|
+
/** Whether auto-compaction is enabled */
|
|
434
|
+
get autoCompactionEnabled(): boolean;
|
|
435
|
+
bindExtensions(bindings: ExtensionBindings): Promise<void>;
|
|
436
|
+
private extendResourcesFromExtensions;
|
|
437
|
+
private buildExtensionResourcePaths;
|
|
438
|
+
private getExtensionSourceLabel;
|
|
439
|
+
private _applyExtensionBindings;
|
|
440
|
+
private _bindExtensionCore;
|
|
441
|
+
private _buildRuntime;
|
|
442
|
+
reload(): Promise<void>;
|
|
443
|
+
/**
|
|
444
|
+
* Check if an error is retryable (overloaded, rate limit, server errors).
|
|
445
|
+
* Context overflow errors are NOT retryable (handled by compaction instead).
|
|
446
|
+
*/
|
|
447
|
+
private _isRetryableError;
|
|
448
|
+
private _handleRetryableError;
|
|
449
|
+
/**
|
|
450
|
+
* Cancel in-progress retry.
|
|
451
|
+
*/
|
|
452
|
+
abortRetry(): void;
|
|
453
|
+
private waitForRetry;
|
|
454
|
+
/** Whether auto-retry is currently in progress */
|
|
455
|
+
get isRetrying(): boolean;
|
|
456
|
+
/** Whether auto-retry is enabled */
|
|
457
|
+
get autoRetryEnabled(): boolean;
|
|
458
|
+
/**
|
|
459
|
+
* Toggle auto-retry setting.
|
|
460
|
+
*/
|
|
461
|
+
setAutoRetryEnabled(enabled: boolean): void;
|
|
462
|
+
/**
|
|
463
|
+
* Execute a bash command.
|
|
464
|
+
* Adds result to agent context and session.
|
|
465
|
+
* @param command The bash command to execute
|
|
466
|
+
* @param onChunk Optional streaming callback for output
|
|
467
|
+
* @param options.excludeFromContext If true, command output won't be sent to LLM (!! prefix)
|
|
468
|
+
* @param options.operations Custom BashOperations for remote execution
|
|
469
|
+
*/
|
|
470
|
+
executeBash(command: string, onChunk?: (chunk: string) => void, options?: {
|
|
471
|
+
excludeFromContext?: boolean;
|
|
472
|
+
operations?: BashOperations;
|
|
473
|
+
}): Promise<BashResult>;
|
|
474
|
+
/**
|
|
475
|
+
* Record a bash execution result in session history.
|
|
476
|
+
* Used by executeBash and by extensions that handle bash execution themselves.
|
|
477
|
+
*/
|
|
478
|
+
recordBashResult(command: string, result: BashResult, options?: {
|
|
479
|
+
excludeFromContext?: boolean;
|
|
480
|
+
}): void;
|
|
481
|
+
/**
|
|
482
|
+
* Cancel running bash command.
|
|
483
|
+
*/
|
|
484
|
+
abortBash(): void;
|
|
485
|
+
/** Whether a bash command is currently running */
|
|
486
|
+
get isBashRunning(): boolean;
|
|
487
|
+
/** Whether there are pending bash messages waiting to be flushed */
|
|
488
|
+
get hasPendingBashMessages(): boolean;
|
|
489
|
+
/**
|
|
490
|
+
* Flush pending bash messages to agent state and session.
|
|
491
|
+
* Called after agent turn completes to maintain proper message ordering.
|
|
492
|
+
*/
|
|
493
|
+
private _flushPendingBashMessages;
|
|
494
|
+
/**
|
|
495
|
+
* Switch to a different session file.
|
|
496
|
+
* Aborts current operation, loads messages, restores model/thinking.
|
|
497
|
+
* Listeners are preserved and will continue receiving events.
|
|
498
|
+
* @returns true if switch completed, false if cancelled by extension
|
|
499
|
+
*/
|
|
500
|
+
switchSession(sessionPath: string): Promise<boolean>;
|
|
501
|
+
/**
|
|
502
|
+
* Set a display name for the current session.
|
|
503
|
+
*/
|
|
504
|
+
setSessionName(name: string): void;
|
|
505
|
+
/**
|
|
506
|
+
* Create a fork from a specific entry.
|
|
507
|
+
* Emits before_fork/fork session events to extensions.
|
|
508
|
+
*
|
|
509
|
+
* @param entryId ID of the entry to fork from
|
|
510
|
+
* @returns Object with:
|
|
511
|
+
* - selectedText: The text of the selected user message (for editor pre-fill)
|
|
512
|
+
* - cancelled: True if an extension cancelled the fork
|
|
513
|
+
*/
|
|
514
|
+
fork(entryId: string): Promise<{
|
|
515
|
+
selectedText: string;
|
|
516
|
+
cancelled: boolean;
|
|
517
|
+
}>;
|
|
518
|
+
/**
|
|
519
|
+
* Navigate to a different node in the session tree.
|
|
520
|
+
* Unlike fork() which creates a new session file, this stays in the same file.
|
|
521
|
+
*
|
|
522
|
+
* @param targetId The entry ID to navigate to
|
|
523
|
+
* @param options.summarize Whether user wants to summarize abandoned branch
|
|
524
|
+
* @param options.customInstructions Custom instructions for summarizer
|
|
525
|
+
* @param options.replaceInstructions If true, customInstructions replaces the default prompt
|
|
526
|
+
* @param options.label Label to attach to the branch summary entry
|
|
527
|
+
* @returns Result with editorText (if user message) and cancelled status
|
|
528
|
+
*/
|
|
529
|
+
navigateTree(targetId: string, options?: {
|
|
530
|
+
summarize?: boolean;
|
|
531
|
+
customInstructions?: string;
|
|
532
|
+
replaceInstructions?: boolean;
|
|
533
|
+
label?: string;
|
|
534
|
+
}): Promise<{
|
|
535
|
+
editorText?: string;
|
|
536
|
+
cancelled: boolean;
|
|
537
|
+
aborted?: boolean;
|
|
538
|
+
summaryEntry?: BranchSummaryEntry;
|
|
539
|
+
}>;
|
|
540
|
+
/**
|
|
541
|
+
* Get all user messages from session for fork selector.
|
|
542
|
+
*/
|
|
543
|
+
getUserMessagesForForking(): Array<{
|
|
544
|
+
entryId: string;
|
|
545
|
+
text: string;
|
|
546
|
+
}>;
|
|
547
|
+
private _extractUserMessageText;
|
|
548
|
+
/**
|
|
549
|
+
* Get session statistics.
|
|
550
|
+
*/
|
|
551
|
+
getSessionStats(): SessionStats;
|
|
552
|
+
getContextUsage(): ContextUsage | undefined;
|
|
553
|
+
/**
|
|
554
|
+
* Export session to HTML.
|
|
555
|
+
* @param outputPath Optional output path (defaults to session directory)
|
|
556
|
+
* @returns Path to exported file
|
|
557
|
+
*/
|
|
558
|
+
exportToHtml(outputPath?: string): Promise<string>;
|
|
559
|
+
/**
|
|
560
|
+
* Get text content of last assistant message.
|
|
561
|
+
* Useful for /copy command.
|
|
562
|
+
* @returns Text content, or undefined if no assistant message exists
|
|
563
|
+
*/
|
|
564
|
+
getLastAssistantText(): string | undefined;
|
|
565
|
+
/**
|
|
566
|
+
* Check if extensions have handlers for a specific event type.
|
|
567
|
+
*/
|
|
568
|
+
hasExtensionHandlers(eventType: string): boolean;
|
|
569
|
+
/**
|
|
570
|
+
* Get the extension runner (for setting UI context and error handlers).
|
|
571
|
+
*/
|
|
572
|
+
get extensionRunner(): ExtensionRunner | undefined;
|
|
573
|
+
}
|
|
574
|
+
//# sourceMappingURL=agent-session.d.ts.map
|