@fleetagent/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 +4518 -0
- package/README.md +660 -0
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +9 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +56 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +356 -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 +83 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.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 +98 -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 +35 -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 +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +95 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +418 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session.d.ts +600 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2505 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +141 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +442 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +243 -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 +625 -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 +38 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +153 -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 +75 -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 +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +226 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1848 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -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 +12 -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 +24 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +484 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +160 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +824 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1175 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +45 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +52 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +310 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +21 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +48 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +11 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +11 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +353 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +295 -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 +150 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +729 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +110 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +495 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +6 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +59 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +204 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2021 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/pi-agent.d.ts +191 -0
- package/dist/core/pi-agent.d.ts.map +1 -0
- package/dist/core/pi-agent.js +655 -0
- package/dist/core/pi-agent.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +52 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +238 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +33 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +23 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +126 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +194 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +734 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/session/constants.d.ts +2 -0
- package/dist/core/session/constants.d.ts.map +1 -0
- package/dist/core/session/constants.js +2 -0
- package/dist/core/session/constants.js.map +1 -0
- package/dist/core/session/context.d.ts +9 -0
- package/dist/core/session/context.d.ts.map +1 -0
- package/dist/core/session/context.js +94 -0
- package/dist/core/session/context.js.map +1 -0
- package/dist/core/session/ids.d.ts +6 -0
- package/dist/core/session/ids.d.ts.map +1 -0
- package/dist/core/session/ids.js +15 -0
- package/dist/core/session/ids.js.map +1 -0
- package/dist/core/session/in-memory-session-manager.d.ts +17 -0
- package/dist/core/session/in-memory-session-manager.d.ts.map +1 -0
- package/dist/core/session/in-memory-session-manager.js +42 -0
- package/dist/core/session/in-memory-session-manager.js.map +1 -0
- package/dist/core/session/in-memory-session.d.ts +5 -0
- package/dist/core/session/in-memory-session.d.ts.map +1 -0
- package/dist/core/session/in-memory-session.js +8 -0
- package/dist/core/session/in-memory-session.js.map +1 -0
- package/dist/core/session/index.d.ts +16 -0
- package/dist/core/session/index.d.ts.map +1 -0
- package/dist/core/session/index.js +13 -0
- package/dist/core/session/index.js.map +1 -0
- package/dist/core/session/jsonl-helpers.d.ts +13 -0
- package/dist/core/session/jsonl-helpers.d.ts.map +1 -0
- package/dist/core/session/jsonl-helpers.js +18 -0
- package/dist/core/session/jsonl-helpers.js.map +1 -0
- package/dist/core/session/local-session-manager.d.ts +22 -0
- package/dist/core/session/local-session-manager.d.ts.map +1 -0
- package/dist/core/session/local-session-manager.js +102 -0
- package/dist/core/session/local-session-manager.js.map +1 -0
- package/dist/core/session/local-session.d.ts +5 -0
- package/dist/core/session/local-session.d.ts.map +1 -0
- package/dist/core/session/local-session.js +8 -0
- package/dist/core/session/local-session.js.map +1 -0
- package/dist/core/session/migrations.d.ts +11 -0
- package/dist/core/session/migrations.d.ts.map +1 -0
- package/dist/core/session/migrations.js +78 -0
- package/dist/core/session/migrations.js.map +1 -0
- package/dist/core/session/remote-session-client.d.ts +73 -0
- package/dist/core/session/remote-session-client.d.ts.map +1 -0
- package/dist/core/session/remote-session-client.js +69 -0
- package/dist/core/session/remote-session-client.js.map +1 -0
- package/dist/core/session/remote-session-manager.d.ts +32 -0
- package/dist/core/session/remote-session-manager.d.ts.map +1 -0
- package/dist/core/session/remote-session-manager.js +91 -0
- package/dist/core/session/remote-session-manager.js.map +1 -0
- package/dist/core/session/remote-session.d.ts +17 -0
- package/dist/core/session/remote-session.d.ts.map +1 -0
- package/dist/core/session/remote-session.js +30 -0
- package/dist/core/session/remote-session.js.map +1 -0
- package/dist/core/session/session-manager.d.ts +17 -0
- package/dist/core/session/session-manager.d.ts.map +1 -0
- package/dist/core/session/session-manager.js +2 -0
- package/dist/core/session/session-manager.js.map +1 -0
- package/dist/core/session/session.d.ts +135 -0
- package/dist/core/session/session.d.ts.map +1 -0
- package/dist/core/session/session.js +380 -0
- package/dist/core/session/session.js.map +1 -0
- package/dist/core/session/stores/in-memory-session-store.d.ts +51 -0
- package/dist/core/session/stores/in-memory-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/in-memory-session-store.js +199 -0
- package/dist/core/session/stores/in-memory-session-store.js.map +1 -0
- package/dist/core/session/stores/jsonl-session-store.d.ts +30 -0
- package/dist/core/session/stores/jsonl-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/jsonl-session-store.js +380 -0
- package/dist/core/session/stores/jsonl-session-store.js.map +1 -0
- package/dist/core/session/stores/remote-session-store.d.ts +43 -0
- package/dist/core/session/stores/remote-session-store.d.ts.map +1 -0
- package/dist/core/session/stores/remote-session-store.js +124 -0
- package/dist/core/session/stores/remote-session-store.js.map +1 -0
- package/dist/core/session/stores/session-store.d.ts +48 -0
- package/dist/core/session/stores/session-store.d.ts.map +1 -0
- package/dist/core/session/stores/session-store.js +2 -0
- package/dist/core/session/stores/session-store.js.map +1 -0
- package/dist/core/session/types.d.ts +138 -0
- package/dist/core/session/types.d.ts.map +1 -0
- package/dist/core/session/types.js +2 -0
- package/dist/core/session/types.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +2 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +2 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +264 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +795 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +387 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +14 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +25 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +123 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/timings.d.ts +8 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +31 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +68 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +342 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +87 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +345 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +51 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +325 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +37 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +298 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +304 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +40 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +112 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +169 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.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 +62 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +289 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +21 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +49 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.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 +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +26 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +213 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +29 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +532 -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 +281 -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/assets/clankolas.png +0 -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 +20 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +121 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +175 -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 +54 -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 +506 -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/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +119 -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 +26 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +83 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +27 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +201 -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 +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +54 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +180 -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 +278 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +290 -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 +96 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +861 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +69 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +390 -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 +39 -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 +50 -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 +51 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +295 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1093 -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 +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +10 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +29 -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 +370 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4653 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +86 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +100 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1024 -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 +131 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +234 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +418 -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 +603 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +420 -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/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +515 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.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/child-process.d.ts +15 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +88 -0
- package/dist/utils/child-process.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 +245 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +8 -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 +117 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.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/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +163 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.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 +39 -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 +137 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +69 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/paths.d.ts +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +92 -0
- package/dist/utils/paths.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/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/shell.d.ts +30 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +195 -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/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.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 +328 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +15 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +82 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +394 -0
- package/docs/custom-provider.md +701 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +148 -0
- package/docs/extensions.md +2596 -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/index.md +80 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +197 -0
- package/docs/models.md +474 -0
- package/docs/packages.md +225 -0
- package/docs/prompt-templates.md +88 -0
- package/docs/providers.md +243 -0
- package/docs/quickstart.md +164 -0
- package/docs/rpc.md +1407 -0
- package/docs/sdk.md +257 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +137 -0
- package/docs/settings.md +277 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +106 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +61 -0
- package/docs/tui.md +918 -0
- package/docs/usage.md +279 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +208 -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/border-status-editor.ts +150 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -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 +127 -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/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/dynamic-tools.ts +74 -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/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/handoff.ts +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -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 +1379 -0
- package/examples/extensions/overlay-test.ts +153 -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 +430 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +122 -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/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -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 +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +175 -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 +126 -0
- package/examples/extensions/subagent/index.ts +1009 -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 +206 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +141 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +27 -0
- package/examples/sdk/02-custom-model.ts +54 -0
- package/examples/sdk/03-custom-prompt.ts +76 -0
- package/examples/sdk/04-skills.ts +60 -0
- package/examples/sdk/05-tools.ts +51 -0
- package/examples/sdk/06-extensions.ts +94 -0
- package/examples/sdk/07-context-files.ts +47 -0
- package/examples/sdk/08-prompt-templates.ts +56 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +46 -0
- package/examples/sdk/10-settings.ts +57 -0
- package/examples/sdk/11-sessions.ts +54 -0
- package/examples/sdk/12-full-control.ts +78 -0
- package/examples/sdk/13-session-runtime.ts +49 -0
- package/examples/sdk/README.md +95 -0
- package/npm-shrinkwrap.json +1789 -0
- package/package.json +98 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom System Prompt
|
|
3
|
+
*
|
|
4
|
+
* Shows how to replace or modify the default system prompt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { DefaultResourceLoader, getAgentDir, InMemorySessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
const cwd = process.cwd();
|
|
10
|
+
const agentDir = getAgentDir();
|
|
11
|
+
|
|
12
|
+
// Option 1: Replace prompt entirely
|
|
13
|
+
const loader1 = new DefaultResourceLoader({
|
|
14
|
+
cwd,
|
|
15
|
+
agentDir,
|
|
16
|
+
systemPromptOverride: () => `You are a helpful assistant that speaks like a pirate.
|
|
17
|
+
Always end responses with "Arrr!"`,
|
|
18
|
+
// Needed to avoid DefaultResourceLoader appending APPEND_SYSTEM.md from ~/.pi/agent or <cwd>/.pi.
|
|
19
|
+
appendSystemPromptOverride: () => [],
|
|
20
|
+
});
|
|
21
|
+
await loader1.reload();
|
|
22
|
+
|
|
23
|
+
const pi1 = await PiAgent.create({
|
|
24
|
+
cwd,
|
|
25
|
+
agentDir,
|
|
26
|
+
resourceLoader: loader1,
|
|
27
|
+
sessionManager: new InMemorySessionManager(),
|
|
28
|
+
});
|
|
29
|
+
const session1 = await pi1.createAgentSession();
|
|
30
|
+
|
|
31
|
+
try {
|
|
32
|
+
session1.subscribe((event) => {
|
|
33
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
34
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
console.log("=== Replace prompt ===");
|
|
39
|
+
await session1.prompt("What is 2 + 2?");
|
|
40
|
+
console.log("\n");
|
|
41
|
+
} finally {
|
|
42
|
+
await pi1.dispose();
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Option 2: Append instructions to the default prompt
|
|
46
|
+
const loader2 = new DefaultResourceLoader({
|
|
47
|
+
cwd,
|
|
48
|
+
agentDir,
|
|
49
|
+
appendSystemPromptOverride: (base) => [
|
|
50
|
+
...base,
|
|
51
|
+
"## Additional Instructions\n- Always be concise\n- Use bullet points when listing things",
|
|
52
|
+
],
|
|
53
|
+
});
|
|
54
|
+
await loader2.reload();
|
|
55
|
+
|
|
56
|
+
const pi2 = await PiAgent.create({
|
|
57
|
+
cwd,
|
|
58
|
+
agentDir,
|
|
59
|
+
resourceLoader: loader2,
|
|
60
|
+
sessionManager: new InMemorySessionManager(),
|
|
61
|
+
});
|
|
62
|
+
const session2 = await pi2.createAgentSession();
|
|
63
|
+
|
|
64
|
+
try {
|
|
65
|
+
session2.subscribe((event) => {
|
|
66
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
67
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
console.log("=== Modify prompt ===");
|
|
72
|
+
await session2.prompt("List 3 benefits of TypeScript.");
|
|
73
|
+
console.log();
|
|
74
|
+
} finally {
|
|
75
|
+
await pi2.dispose();
|
|
76
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills Configuration
|
|
3
|
+
*
|
|
4
|
+
* Skills provide specialized instructions loaded into the system prompt.
|
|
5
|
+
* Discover, filter, merge, or replace them.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import {
|
|
9
|
+
createSyntheticSourceInfo,
|
|
10
|
+
DefaultResourceLoader,
|
|
11
|
+
getAgentDir,
|
|
12
|
+
InMemorySessionManager,
|
|
13
|
+
PiAgent,
|
|
14
|
+
type Skill,
|
|
15
|
+
} from "@fleetagent/pi-coding-agent";
|
|
16
|
+
|
|
17
|
+
// Or define custom skills inline
|
|
18
|
+
const customSkill: Skill = {
|
|
19
|
+
name: "my-skill",
|
|
20
|
+
description: "Custom project instructions",
|
|
21
|
+
filePath: "/virtual/SKILL.md",
|
|
22
|
+
baseDir: "/virtual",
|
|
23
|
+
sourceInfo: createSyntheticSourceInfo("/virtual/SKILL.md", { source: "sdk" }),
|
|
24
|
+
disableModelInvocation: false,
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
const cwd = process.cwd();
|
|
28
|
+
const agentDir = getAgentDir();
|
|
29
|
+
const loader = new DefaultResourceLoader({
|
|
30
|
+
cwd,
|
|
31
|
+
agentDir,
|
|
32
|
+
skillsOverride: (current) => {
|
|
33
|
+
const filteredSkills = current.skills.filter((s) => s.name.includes("browser") || s.name.includes("search"));
|
|
34
|
+
return {
|
|
35
|
+
skills: [...filteredSkills, customSkill],
|
|
36
|
+
diagnostics: current.diagnostics,
|
|
37
|
+
};
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
await loader.reload();
|
|
41
|
+
|
|
42
|
+
// Discover all skills from cwd/.pi/skills, ~/.pi/agent/skills, etc.
|
|
43
|
+
const { skills: allSkills, diagnostics } = loader.getSkills();
|
|
44
|
+
console.log(
|
|
45
|
+
"Discovered skills:",
|
|
46
|
+
allSkills.map((s) => s.name),
|
|
47
|
+
);
|
|
48
|
+
if (diagnostics.length > 0) {
|
|
49
|
+
console.log("Warnings:", diagnostics);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const pi = await PiAgent.create({
|
|
53
|
+
cwd,
|
|
54
|
+
agentDir,
|
|
55
|
+
resourceLoader: loader,
|
|
56
|
+
sessionManager: new InMemorySessionManager(),
|
|
57
|
+
});
|
|
58
|
+
await pi.createAgentSession();
|
|
59
|
+
console.log("Session created with filtered skills");
|
|
60
|
+
await pi.dispose();
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools Configuration
|
|
3
|
+
*
|
|
4
|
+
* Use tool names to choose which built-in tools are enabled.
|
|
5
|
+
*
|
|
6
|
+
* Tool names are matched against all available tools. If you use a custom `cwd`,
|
|
7
|
+
* PiAgent applies that cwd when it builds the actual built-in tools.
|
|
8
|
+
*
|
|
9
|
+
* For custom tools, see 06-extensions.ts - custom tools are registered via the
|
|
10
|
+
* extensions system using pi.registerTool().
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
import { InMemorySessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
14
|
+
|
|
15
|
+
async function createToolSession(options: { cwd?: string; tools: string[] }) {
|
|
16
|
+
const cwd = options.cwd ?? process.cwd();
|
|
17
|
+
const pi = await PiAgent.create({
|
|
18
|
+
cwd,
|
|
19
|
+
tools: options.tools,
|
|
20
|
+
sessionManager: new InMemorySessionManager(cwd),
|
|
21
|
+
});
|
|
22
|
+
await pi.createAgentSession();
|
|
23
|
+
return pi;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Read-only mode (no edit/write)
|
|
27
|
+
const readOnlyPi = await createToolSession({ tools: ["read", "grep", "find", "ls"] });
|
|
28
|
+
console.log("Read-only session created");
|
|
29
|
+
await readOnlyPi.dispose();
|
|
30
|
+
|
|
31
|
+
// Custom tool selection
|
|
32
|
+
const customToolsPi = await createToolSession({ tools: ["read", "bash", "grep"] });
|
|
33
|
+
console.log("Custom tools session created");
|
|
34
|
+
await customToolsPi.dispose();
|
|
35
|
+
|
|
36
|
+
// With custom cwd
|
|
37
|
+
const customCwd = "/path/to/project";
|
|
38
|
+
const customCwdPi = await createToolSession({
|
|
39
|
+
cwd: customCwd,
|
|
40
|
+
tools: ["read", "bash", "edit", "write"],
|
|
41
|
+
});
|
|
42
|
+
console.log("Custom cwd session created");
|
|
43
|
+
await customCwdPi.dispose();
|
|
44
|
+
|
|
45
|
+
// Or pick specific tools for custom cwd
|
|
46
|
+
const specificToolsPi = await createToolSession({
|
|
47
|
+
cwd: customCwd,
|
|
48
|
+
tools: ["read", "bash", "grep"],
|
|
49
|
+
});
|
|
50
|
+
console.log("Specific tools with custom cwd session created");
|
|
51
|
+
await specificToolsPi.dispose();
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extensions Configuration
|
|
3
|
+
*
|
|
4
|
+
* Extensions intercept agent events and can register custom tools.
|
|
5
|
+
* They provide a unified system for extensions, custom tools, commands, and more.
|
|
6
|
+
*
|
|
7
|
+
* By default, extension files are discovered from:
|
|
8
|
+
* - ~/.pi/agent/extensions/
|
|
9
|
+
* - <cwd>/.pi/extensions/
|
|
10
|
+
* - Paths specified in settings.json "extensions" array
|
|
11
|
+
*
|
|
12
|
+
* An extension is a TypeScript file that exports a default function:
|
|
13
|
+
* export default function (pi: ExtensionAPI) { ... }
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
import { DefaultResourceLoader, getAgentDir, InMemorySessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
17
|
+
|
|
18
|
+
// Extensions are discovered automatically from standard locations.
|
|
19
|
+
// You can also add paths via settings.json or DefaultResourceLoader options.
|
|
20
|
+
|
|
21
|
+
const cwd = process.cwd();
|
|
22
|
+
const agentDir = getAgentDir();
|
|
23
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
24
|
+
cwd,
|
|
25
|
+
agentDir,
|
|
26
|
+
additionalExtensionPaths: ["./my-logging-extension.ts", "./my-safety-extension.ts"],
|
|
27
|
+
extensionFactories: [
|
|
28
|
+
(pi) => {
|
|
29
|
+
pi.on("agent_start", () => {
|
|
30
|
+
console.log("[Inline Extension] Agent starting");
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
],
|
|
34
|
+
});
|
|
35
|
+
await resourceLoader.reload();
|
|
36
|
+
|
|
37
|
+
const pi = await PiAgent.create({ cwd, agentDir, resourceLoader, sessionManager: new InMemorySessionManager() });
|
|
38
|
+
const session = await pi.createAgentSession();
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
session.subscribe((event) => {
|
|
42
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
43
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
await session.prompt("List files in the current directory.");
|
|
48
|
+
console.log();
|
|
49
|
+
} finally {
|
|
50
|
+
await pi.dispose();
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// Example extension file (./my-logging-extension.ts):
|
|
54
|
+
/*
|
|
55
|
+
import type { ExtensionAPI } from "@fleetagent/pi-coding-agent";
|
|
56
|
+
|
|
57
|
+
export default function (pi: ExtensionAPI) {
|
|
58
|
+
pi.on("agent_start", async () => {
|
|
59
|
+
console.log("[Extension] Agent starting");
|
|
60
|
+
});
|
|
61
|
+
|
|
62
|
+
pi.on("tool_call", async (event) => {
|
|
63
|
+
console.log(\`[Extension] Tool: \${event.toolName}\`);
|
|
64
|
+
// Return { block: true, reason: "..." } to block execution
|
|
65
|
+
return undefined;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
pi.on("agent_end", async (event) => {
|
|
69
|
+
console.log(\`[Extension] Done, \${event.messages.length} messages\`);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Register a custom tool
|
|
73
|
+
pi.registerTool({
|
|
74
|
+
name: "my_tool",
|
|
75
|
+
label: "My Tool",
|
|
76
|
+
description: "Does something useful",
|
|
77
|
+
parameters: Type.Object({
|
|
78
|
+
input: Type.String(),
|
|
79
|
+
}),
|
|
80
|
+
execute: async (_toolCallId, params, _signal, _onUpdate, _ctx) => ({
|
|
81
|
+
content: [{ type: "text", text: \`Processed: \${params.input}\` }],
|
|
82
|
+
details: {},
|
|
83
|
+
}),
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Register a command
|
|
87
|
+
pi.registerCommand("mycommand", {
|
|
88
|
+
description: "Do something",
|
|
89
|
+
handler: async (args, ctx) => {
|
|
90
|
+
ctx.ui.notify(\`Command executed with: \${args}\`);
|
|
91
|
+
},
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
*/
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Files (AGENTS.md)
|
|
3
|
+
*
|
|
4
|
+
* Context files provide project-specific instructions loaded into the system prompt.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { DefaultResourceLoader, getAgentDir, InMemorySessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
// Disable context files entirely by returning an empty list in agentsFilesOverride.
|
|
10
|
+
const cwd = process.cwd();
|
|
11
|
+
const agentDir = getAgentDir();
|
|
12
|
+
const loader = new DefaultResourceLoader({
|
|
13
|
+
cwd,
|
|
14
|
+
agentDir,
|
|
15
|
+
agentsFilesOverride: (current) => ({
|
|
16
|
+
agentsFiles: [
|
|
17
|
+
...current.agentsFiles,
|
|
18
|
+
{
|
|
19
|
+
path: "/virtual/AGENTS.md",
|
|
20
|
+
content: `# Project Guidelines
|
|
21
|
+
|
|
22
|
+
## Code Style
|
|
23
|
+
- Use TypeScript strict mode
|
|
24
|
+
- No any types
|
|
25
|
+
- Prefer const over let`,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
}),
|
|
29
|
+
});
|
|
30
|
+
await loader.reload();
|
|
31
|
+
|
|
32
|
+
// Discover AGENTS.md files walking up from cwd
|
|
33
|
+
const discovered = loader.getAgentsFiles().agentsFiles;
|
|
34
|
+
console.log("Discovered context files:");
|
|
35
|
+
for (const file of discovered) {
|
|
36
|
+
console.log(` - ${file.path} (${file.content.length} chars)`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const pi = await PiAgent.create({
|
|
40
|
+
cwd,
|
|
41
|
+
agentDir,
|
|
42
|
+
resourceLoader: loader,
|
|
43
|
+
sessionManager: new InMemorySessionManager(),
|
|
44
|
+
});
|
|
45
|
+
await pi.createAgentSession();
|
|
46
|
+
console.log(`Session created with ${discovered.length + 1} context files`);
|
|
47
|
+
await pi.dispose();
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt Templates
|
|
3
|
+
*
|
|
4
|
+
* File-based templates that inject content when invoked with /templatename.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
createSyntheticSourceInfo,
|
|
9
|
+
DefaultResourceLoader,
|
|
10
|
+
getAgentDir,
|
|
11
|
+
InMemorySessionManager,
|
|
12
|
+
PiAgent,
|
|
13
|
+
type PromptTemplate,
|
|
14
|
+
} from "@fleetagent/pi-coding-agent";
|
|
15
|
+
|
|
16
|
+
// Define custom templates
|
|
17
|
+
const deployTemplate: PromptTemplate = {
|
|
18
|
+
name: "deploy",
|
|
19
|
+
description: "Deploy the application",
|
|
20
|
+
filePath: "/virtual/prompts/deploy.md",
|
|
21
|
+
sourceInfo: createSyntheticSourceInfo("/virtual/prompts/deploy.md", { source: "sdk" }),
|
|
22
|
+
content: `# Deploy Instructions
|
|
23
|
+
|
|
24
|
+
1. Build: npm run build
|
|
25
|
+
2. Test: npm test
|
|
26
|
+
3. Deploy: npm run deploy`,
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const cwd = process.cwd();
|
|
30
|
+
const agentDir = getAgentDir();
|
|
31
|
+
const loader = new DefaultResourceLoader({
|
|
32
|
+
cwd,
|
|
33
|
+
agentDir,
|
|
34
|
+
promptsOverride: (current) => ({
|
|
35
|
+
prompts: [...current.prompts, deployTemplate],
|
|
36
|
+
diagnostics: current.diagnostics,
|
|
37
|
+
}),
|
|
38
|
+
});
|
|
39
|
+
await loader.reload();
|
|
40
|
+
|
|
41
|
+
// Discover templates from cwd/.pi/prompts/ and ~/.pi/agent/prompts/
|
|
42
|
+
const discovered = loader.getPrompts().prompts;
|
|
43
|
+
console.log("Discovered prompt templates:");
|
|
44
|
+
for (const template of discovered) {
|
|
45
|
+
console.log(` /${template.name}: ${template.description}`);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
const pi = await PiAgent.create({
|
|
49
|
+
cwd,
|
|
50
|
+
agentDir,
|
|
51
|
+
resourceLoader: loader,
|
|
52
|
+
sessionManager: new InMemorySessionManager(),
|
|
53
|
+
});
|
|
54
|
+
await pi.createAgentSession();
|
|
55
|
+
console.log(`Session created with ${discovered.length + 1} prompt templates`);
|
|
56
|
+
await pi.dispose();
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* API Keys and OAuth
|
|
3
|
+
*
|
|
4
|
+
* Configure API key resolution via AuthStorage and ModelRegistry.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { AuthStorage, InMemorySessionManager, ModelRegistry, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
async function createAuthExample(options: { authStorage: AuthStorage; modelRegistry: ModelRegistry }) {
|
|
10
|
+
const pi = await PiAgent.create({
|
|
11
|
+
authStorage: options.authStorage,
|
|
12
|
+
modelRegistry: options.modelRegistry,
|
|
13
|
+
sessionManager: new InMemorySessionManager(),
|
|
14
|
+
});
|
|
15
|
+
await pi.createAgentSession();
|
|
16
|
+
return pi;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// Default: AuthStorage uses ~/.pi/agent/auth.json
|
|
20
|
+
// ModelRegistry loads built-in + custom models from ~/.pi/agent/models.json
|
|
21
|
+
const authStorage = AuthStorage.create();
|
|
22
|
+
const modelRegistry = ModelRegistry.create(authStorage);
|
|
23
|
+
|
|
24
|
+
const defaultAuthPi = await createAuthExample({ authStorage, modelRegistry });
|
|
25
|
+
console.log("Session with default auth storage and model registry");
|
|
26
|
+
await defaultAuthPi.dispose();
|
|
27
|
+
|
|
28
|
+
// Custom auth storage location
|
|
29
|
+
const customAuthStorage = AuthStorage.create("/tmp/my-app/auth.json");
|
|
30
|
+
const customModelRegistry = ModelRegistry.create(customAuthStorage, "/tmp/my-app/models.json");
|
|
31
|
+
|
|
32
|
+
const customAuthPi = await createAuthExample({ authStorage: customAuthStorage, modelRegistry: customModelRegistry });
|
|
33
|
+
console.log("Session with custom auth storage location");
|
|
34
|
+
await customAuthPi.dispose();
|
|
35
|
+
|
|
36
|
+
// Runtime API key override (not persisted to disk)
|
|
37
|
+
authStorage.setRuntimeApiKey("anthropic", "sk-my-temp-key");
|
|
38
|
+
const runtimeKeyPi = await createAuthExample({ authStorage, modelRegistry });
|
|
39
|
+
console.log("Session with runtime API key override");
|
|
40
|
+
await runtimeKeyPi.dispose();
|
|
41
|
+
|
|
42
|
+
// No models.json - only built-in models
|
|
43
|
+
const simpleRegistry = ModelRegistry.inMemory(authStorage);
|
|
44
|
+
const builtInModelsPi = await createAuthExample({ authStorage, modelRegistry: simpleRegistry });
|
|
45
|
+
console.log("Session with only built-in models");
|
|
46
|
+
await builtInModelsPi.dispose();
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Settings Configuration
|
|
3
|
+
*
|
|
4
|
+
* Override settings using SettingsManager.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { InMemorySessionManager, PiAgent, SettingsManager } from "@fleetagent/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
const cwd = process.cwd();
|
|
10
|
+
|
|
11
|
+
// Load current settings (merged global + project)
|
|
12
|
+
const settingsManagerFromDisk = SettingsManager.create(cwd);
|
|
13
|
+
console.log("Current settings:", JSON.stringify(settingsManagerFromDisk.getGlobalSettings(), null, 2));
|
|
14
|
+
|
|
15
|
+
// Override specific settings
|
|
16
|
+
const settingsManager = SettingsManager.create(cwd);
|
|
17
|
+
settingsManager.applyOverrides({
|
|
18
|
+
compaction: { enabled: false },
|
|
19
|
+
retry: { enabled: true, maxRetries: 5, baseDelayMs: 1000 },
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
const customSettingsPi = await PiAgent.create({
|
|
23
|
+
cwd,
|
|
24
|
+
settingsManager,
|
|
25
|
+
sessionManager: new InMemorySessionManager(cwd),
|
|
26
|
+
});
|
|
27
|
+
await customSettingsPi.createAgentSession();
|
|
28
|
+
console.log("Session created with custom settings");
|
|
29
|
+
await customSettingsPi.dispose();
|
|
30
|
+
|
|
31
|
+
// Setters update memory immediately and queue persistence writes.
|
|
32
|
+
// Call flush() when you need a durability boundary.
|
|
33
|
+
settingsManager.setDefaultThinkingLevel("low");
|
|
34
|
+
await settingsManager.flush();
|
|
35
|
+
|
|
36
|
+
// Surface settings I/O errors at the app layer.
|
|
37
|
+
const settingsErrors = settingsManager.drainErrors();
|
|
38
|
+
if (settingsErrors.length > 0) {
|
|
39
|
+
for (const { scope, error } of settingsErrors) {
|
|
40
|
+
console.warn(`Warning (${scope} settings): ${error.message}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// For testing without file I/O:
|
|
45
|
+
const inMemorySettings = SettingsManager.inMemory({
|
|
46
|
+
compaction: { enabled: false },
|
|
47
|
+
retry: { enabled: false },
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
const testPi = await PiAgent.create({
|
|
51
|
+
cwd,
|
|
52
|
+
settingsManager: inMemorySettings,
|
|
53
|
+
sessionManager: new InMemorySessionManager(cwd),
|
|
54
|
+
});
|
|
55
|
+
await testPi.createAgentSession();
|
|
56
|
+
console.log("Test session created with in-memory settings");
|
|
57
|
+
await testPi.dispose();
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Session Management
|
|
3
|
+
*
|
|
4
|
+
* Control session persistence: in-memory, new file, continue, or open specific.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { InMemorySessionManager, LocalSessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
8
|
+
|
|
9
|
+
const cwd = process.cwd();
|
|
10
|
+
|
|
11
|
+
// In-memory (no persistence)
|
|
12
|
+
const inMemoryPi = await PiAgent.create({ sessionManager: new InMemorySessionManager(cwd) });
|
|
13
|
+
const inMemory = await inMemoryPi.createAgentSession();
|
|
14
|
+
console.log("In-memory session:", inMemory.sessionFile ?? "(none)");
|
|
15
|
+
await inMemoryPi.dispose();
|
|
16
|
+
|
|
17
|
+
// New persistent session
|
|
18
|
+
const newSessionManager = new LocalSessionManager({ cwd });
|
|
19
|
+
const newSessionPi = await PiAgent.create({ cwd, sessionManager: newSessionManager });
|
|
20
|
+
const newSession = await newSessionPi.createAgentSession();
|
|
21
|
+
console.log("New session file:", newSession.sessionFile);
|
|
22
|
+
await newSessionPi.dispose();
|
|
23
|
+
|
|
24
|
+
// Continue most recent session (or create new if none)
|
|
25
|
+
const continuedSessionManager = new LocalSessionManager({ cwd });
|
|
26
|
+
const continuedPi = await PiAgent.create({ cwd, sessionManager: continuedSessionManager });
|
|
27
|
+
const continued = await continuedPi.createAgentSession({ session: continuedSessionManager.continueRecent() });
|
|
28
|
+
if (continuedPi.modelFallbackMessage) console.log("Note:", continuedPi.modelFallbackMessage);
|
|
29
|
+
console.log("Continued session:", continued.sessionFile);
|
|
30
|
+
await continuedPi.dispose();
|
|
31
|
+
|
|
32
|
+
// List and open specific session
|
|
33
|
+
const sessions = await new LocalSessionManager({ cwd }).list();
|
|
34
|
+
console.log(`\nFound ${sessions.length} sessions:`);
|
|
35
|
+
for (const info of sessions.slice(0, 3)) {
|
|
36
|
+
console.log(` ${info.id.slice(0, 8)}... - "${info.firstMessage.slice(0, 30)}..."`);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const sessionReference = sessions[0]?.reference;
|
|
40
|
+
if (sessionReference) {
|
|
41
|
+
const openSessionManager = new LocalSessionManager({ cwd });
|
|
42
|
+
const openedPi = await PiAgent.create({ cwd, sessionManager: openSessionManager });
|
|
43
|
+
const opened = await openedPi.createAgentSession({ session: openSessionManager.openReference(sessionReference) });
|
|
44
|
+
console.log(`\nOpened: ${opened.sessionId}`);
|
|
45
|
+
await openedPi.dispose();
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
// Custom session directory (no cwd encoding)
|
|
49
|
+
// const customDir = "/path/to/my-sessions";
|
|
50
|
+
// const localSessions = new LocalSessionManager({ cwd, sessionDir: customDir });
|
|
51
|
+
// const pi = await PiAgent.create({ cwd, sessionManager: localSessions });
|
|
52
|
+
// const session = await pi.createAgentSession();
|
|
53
|
+
// await localSessions.list();
|
|
54
|
+
// localSessions.continueRecent();
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full Control
|
|
3
|
+
*
|
|
4
|
+
* Replace everything - no discovery, explicit configuration.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { getModel } from "@fleetagent/pi-ai";
|
|
8
|
+
import {
|
|
9
|
+
AuthStorage,
|
|
10
|
+
createExtensionRuntime,
|
|
11
|
+
InMemorySessionManager,
|
|
12
|
+
ModelRegistry,
|
|
13
|
+
PiAgent,
|
|
14
|
+
type ResourceLoader,
|
|
15
|
+
SettingsManager,
|
|
16
|
+
} from "@fleetagent/pi-coding-agent";
|
|
17
|
+
|
|
18
|
+
// Custom auth storage location
|
|
19
|
+
const authStorage = AuthStorage.create("/tmp/my-agent/auth.json");
|
|
20
|
+
|
|
21
|
+
// Runtime API key override (not persisted)
|
|
22
|
+
if (process.env.MY_ANTHROPIC_KEY) {
|
|
23
|
+
authStorage.setRuntimeApiKey("anthropic", process.env.MY_ANTHROPIC_KEY);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Model registry with no custom models.json
|
|
27
|
+
const modelRegistry = ModelRegistry.inMemory(authStorage);
|
|
28
|
+
|
|
29
|
+
const model = getModel("anthropic", "claude-sonnet-4-20250514");
|
|
30
|
+
if (!model) throw new Error("Model not found");
|
|
31
|
+
|
|
32
|
+
// In-memory settings with overrides
|
|
33
|
+
const settingsManager = SettingsManager.inMemory({
|
|
34
|
+
compaction: { enabled: false },
|
|
35
|
+
retry: { enabled: true, maxRetries: 2 },
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const cwd = process.cwd();
|
|
39
|
+
|
|
40
|
+
const resourceLoader: ResourceLoader = {
|
|
41
|
+
getExtensions: () => ({ extensions: [], errors: [], runtime: createExtensionRuntime() }),
|
|
42
|
+
getSkills: () => ({ skills: [], diagnostics: [] }),
|
|
43
|
+
getPrompts: () => ({ prompts: [], diagnostics: [] }),
|
|
44
|
+
getThemes: () => ({ themes: [], diagnostics: [] }),
|
|
45
|
+
getAgentsFiles: () => ({ agentsFiles: [] }),
|
|
46
|
+
getSystemPrompt: () => `You are a minimal assistant.
|
|
47
|
+
Available: read, bash. Be concise.`,
|
|
48
|
+
getAppendSystemPrompt: () => [],
|
|
49
|
+
extendResources: () => {},
|
|
50
|
+
reload: async () => {},
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const pi = await PiAgent.create({
|
|
54
|
+
cwd,
|
|
55
|
+
agentDir: "/tmp/my-agent",
|
|
56
|
+
model,
|
|
57
|
+
thinkingLevel: "off",
|
|
58
|
+
authStorage,
|
|
59
|
+
modelRegistry,
|
|
60
|
+
resourceLoader,
|
|
61
|
+
tools: ["read", "bash"],
|
|
62
|
+
sessionManager: new InMemorySessionManager(cwd),
|
|
63
|
+
settingsManager,
|
|
64
|
+
});
|
|
65
|
+
const session = await pi.createAgentSession();
|
|
66
|
+
|
|
67
|
+
try {
|
|
68
|
+
session.subscribe((event) => {
|
|
69
|
+
if (event.type === "message_update" && event.assistantMessageEvent.type === "text_delta") {
|
|
70
|
+
process.stdout.write(event.assistantMessageEvent.delta);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
await session.prompt("List files in the current directory.");
|
|
75
|
+
console.log();
|
|
76
|
+
} finally {
|
|
77
|
+
await pi.dispose();
|
|
78
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#!/usr/bin/env tsx
|
|
2
|
+
/**
|
|
3
|
+
* Session replacement
|
|
4
|
+
*
|
|
5
|
+
* Use PiAgent when you need to replace the active AgentSession, for example
|
|
6
|
+
* for new-session, resume, fork, or import flows.
|
|
7
|
+
*
|
|
8
|
+
* The important pattern is: after PiAgent replaces the active session, rebind
|
|
9
|
+
* any session-local subscriptions and extension bindings to `pi.session`.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
import { LocalSessionManager, PiAgent } from "@fleetagent/pi-coding-agent";
|
|
13
|
+
|
|
14
|
+
const pi = await PiAgent.create({
|
|
15
|
+
cwd: process.cwd(),
|
|
16
|
+
sessionManager: new LocalSessionManager({ cwd: process.cwd() }),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
let unsubscribe: (() => void) | undefined;
|
|
20
|
+
|
|
21
|
+
async function bindSession() {
|
|
22
|
+
unsubscribe?.();
|
|
23
|
+
const session = pi.session;
|
|
24
|
+
await session.bindExtensions({});
|
|
25
|
+
unsubscribe = session.subscribe((event) => {
|
|
26
|
+
if (event.type === "queue_update") {
|
|
27
|
+
console.log("Queued:", event.steering.length + event.followUp.length);
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
return session;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
await pi.createAgentSession();
|
|
34
|
+
let session = await bindSession();
|
|
35
|
+
const originalSessionFile = session.sessionFile;
|
|
36
|
+
console.log("Initial session:", originalSessionFile);
|
|
37
|
+
|
|
38
|
+
await pi.newSession();
|
|
39
|
+
session = await bindSession();
|
|
40
|
+
console.log("After newSession():", session.sessionFile);
|
|
41
|
+
|
|
42
|
+
if (originalSessionFile) {
|
|
43
|
+
await pi.switchSession(originalSessionFile);
|
|
44
|
+
session = await bindSession();
|
|
45
|
+
console.log("After switchSession():", session.sessionFile);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
unsubscribe?.();
|
|
49
|
+
await pi.dispose();
|