@astralyn/pi 0.82.7 → 0.84.0
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 +78 -5099
- package/README.md +12 -111
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -1
- package/dist/bun/restore-sandbox-env.js.map +1 -1
- package/dist/cli/args.d.ts +2 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +28 -2
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +2 -2
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/credential-print.d.ts +23 -0
- package/dist/cli/credential-print.d.ts.map +1 -0
- package/dist/cli/credential-print.js +117 -0
- package/dist/cli/credential-print.js.map +1 -0
- package/dist/cli/experimental/auth.d.ts +16 -0
- package/dist/cli/experimental/auth.d.ts.map +1 -0
- package/dist/cli/experimental/auth.js +13 -0
- package/dist/cli/experimental/auth.js.map +1 -0
- package/dist/cli/experimental/cli.d.ts +6 -0
- package/dist/cli/experimental/cli.d.ts.map +1 -0
- package/dist/cli/experimental/cli.js +5 -0
- package/dist/cli/experimental/cli.js.map +1 -0
- package/dist/cli/experimental/command-options.d.ts +17 -0
- package/dist/cli/experimental/command-options.d.ts.map +1 -0
- package/dist/cli/experimental/command-options.js +35 -0
- package/dist/cli/experimental/command-options.js.map +1 -0
- package/dist/cli/experimental/command.d.ts +63 -0
- package/dist/cli/experimental/command.d.ts.map +1 -0
- package/dist/cli/experimental/command.js +127 -0
- package/dist/cli/experimental/command.js.map +1 -0
- package/dist/cli/experimental/commands/client.d.ts +13 -0
- package/dist/cli/experimental/commands/client.d.ts.map +1 -0
- package/dist/cli/experimental/commands/client.js +25 -0
- package/dist/cli/experimental/commands/client.js.map +1 -0
- package/dist/cli/experimental/commands/pi.d.ts +15 -0
- package/dist/cli/experimental/commands/pi.d.ts.map +1 -0
- package/dist/cli/experimental/commands/pi.js +28 -0
- package/dist/cli/experimental/commands/pi.js.map +1 -0
- package/dist/cli/experimental/commands/server.d.ts +13 -0
- package/dist/cli/experimental/commands/server.d.ts.map +1 -0
- package/dist/cli/experimental/commands/server.js +25 -0
- package/dist/cli/experimental/commands/server.js.map +1 -0
- package/dist/cli/experimental/transport-address.d.ts +10 -0
- package/dist/cli/experimental/transport-address.d.ts.map +1 -0
- package/dist/cli/experimental/transport-address.js +38 -0
- package/dist/cli/experimental/transport-address.js.map +1 -0
- package/dist/cli/file-processor.d.ts.map +1 -1
- package/dist/cli/file-processor.js.map +1 -1
- package/dist/cli/initial-message.d.ts +1 -1
- package/dist/cli/initial-message.d.ts.map +1 -1
- package/dist/cli/initial-message.js.map +1 -1
- package/dist/cli/list-models.d.ts +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +2 -2
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/project-trust.d.ts.map +1 -1
- package/dist/cli/project-trust.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/cli/startup-ui.d.ts +1 -1
- package/dist/cli/startup-ui.d.ts.map +1 -1
- package/dist/cli/startup-ui.js +2 -2
- package/dist/cli/startup-ui.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -0
- package/dist/cli.js.map +1 -1
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/remote-session.d.ts +53 -0
- package/dist/client/remote-session.d.ts.map +1 -0
- package/dist/client/remote-session.js +340 -0
- package/dist/client/remote-session.js.map +1 -0
- package/dist/client/transcript.d.ts +12 -0
- package/dist/client/transcript.d.ts.map +1 -0
- package/dist/client/transcript.js +98 -0
- package/dist/client/transcript.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +3 -8
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +1 -0
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +31 -11
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +189 -192
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-guidance.d.ts.map +1 -1
- package/dist/core/auth-guidance.js.map +1 -1
- package/dist/core/auth-storage.d.ts +15 -9
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +159 -41
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/cache-stats.d.ts.map +1 -1
- package/dist/core/cache-stats.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/index.d.ts.map +1 -1
- package/dist/core/compaction/utils.d.ts.map +1 -1
- package/dist/core/compaction/utils.js.map +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/diagnostics.d.ts.map +1 -1
- package/dist/core/event-bus.d.ts.map +1 -1
- package/dist/core/event-bus.js.map +1 -1
- package/dist/core/exec.d.ts.map +1 -1
- package/dist/core/exec.js.map +1 -1
- package/dist/core/experimental.d.ts.map +1 -1
- package/dist/core/experimental.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/index.d.ts.map +1 -1
- package/dist/core/export-html/index.js.map +1 -1
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +43 -20
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -1
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +31 -28
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +28 -3
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +10 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +18 -19
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/http-dispatcher.d.ts.map +1 -1
- package/dist/core/http-dispatcher.js +5 -0
- package/dist/core/http-dispatcher.js.map +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/keybindings.d.ts +157 -125
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +0 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-config.d.ts +37 -13
- package/dist/core/model-config.d.ts.map +1 -1
- package/dist/core/model-config.js +4 -2
- package/dist/core/model-config.js.map +1 -1
- package/dist/core/model-registry.d.ts +5 -3
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +13 -11
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +4 -3
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +41 -10
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/model-runtime.d.ts +30 -13
- package/dist/core/model-runtime.d.ts.map +1 -1
- package/dist/core/model-runtime.js +239 -91
- package/dist/core/model-runtime.js.map +1 -1
- package/dist/core/models-store.d.ts +12 -7
- package/dist/core/models-store.d.ts.map +1 -1
- package/dist/core/models-store.js +84 -16
- package/dist/core/models-store.js.map +1 -1
- package/dist/core/output-guard.d.ts.map +1 -1
- package/dist/core/output-guard.js.map +1 -1
- package/dist/core/package-manager.d.ts +4 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +76 -48
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/pi-manifest.d.ts +8 -0
- package/dist/core/pi-manifest.d.ts.map +1 -0
- package/dist/core/pi-manifest.js +25 -0
- package/dist/core/pi-manifest.js.map +1 -0
- package/dist/core/project-trust.d.ts.map +1 -1
- package/dist/core/project-trust.js.map +1 -1
- package/dist/core/prompt-templates.d.ts.map +1 -1
- package/dist/core/prompt-templates.js.map +1 -1
- package/dist/core/provider-attribution.d.ts.map +1 -1
- package/dist/core/provider-attribution.js.map +1 -1
- package/dist/core/provider-composer.d.ts +4 -1
- package/dist/core/provider-composer.d.ts.map +1 -1
- package/dist/core/provider-composer.js +36 -15
- package/dist/core/provider-composer.js.map +1 -1
- package/dist/core/radius.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.d.ts.map +1 -1
- package/dist/core/remote-catalog-provider.js +73 -67
- package/dist/core/remote-catalog-provider.js.map +1 -1
- package/dist/core/resolve-config-value.d.ts.map +1 -1
- package/dist/core/resolve-config-value.js.map +1 -1
- package/dist/core/resource-loader.d.ts +15 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +68 -51
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/runtime-credentials.d.ts +5 -5
- package/dist/core/runtime-credentials.d.ts.map +1 -1
- package/dist/core/runtime-credentials.js +12 -10
- package/dist/core/runtime-credentials.js.map +1 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js +0 -1
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +10 -12
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +12 -0
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +47 -33
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/source-info.d.ts.map +1 -1
- package/dist/core/source-info.js.map +1 -1
- package/dist/core/system-prompt.d.ts.map +1 -1
- package/dist/core/system-prompt.js.map +1 -1
- package/dist/core/telemetry.d.ts.map +1 -1
- package/dist/core/telemetry.js.map +1 -1
- package/dist/core/timings.d.ts.map +1 -1
- package/dist/core/timings.js.map +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +12 -10
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -3
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -1
- package/dist/core/tools/file-mutation-queue.js.map +1 -1
- package/dist/core/tools/find.d.ts +3 -0
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +47 -20
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts.map +1 -1
- package/dist/core/tools/index.js.map +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts.map +1 -1
- package/dist/core/tools/output-accumulator.js +12 -18
- package/dist/core/tools/output-accumulator.js.map +1 -1
- package/dist/core/tools/path-utils.d.ts.map +1 -1
- package/dist/core/tools/path-utils.js.map +1 -1
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +1 -1
- package/dist/core/tools/read.js.map +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -1
- package/dist/core/tools/truncate.d.ts.map +1 -1
- package/dist/core/tools/truncate.js.map +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +0 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/core/trust-manager.d.ts.map +1 -1
- package/dist/core/trust-manager.js +48 -10
- package/dist/core/trust-manager.js.map +1 -1
- package/dist/core/usage-totals.d.ts.map +1 -1
- package/dist/core/usage-totals.js.map +1 -1
- package/dist/extensions/biu/index.d.ts +19 -0
- package/dist/extensions/biu/index.d.ts.map +1 -0
- package/dist/extensions/biu/index.js +350 -0
- package/dist/extensions/biu/index.js.map +1 -0
- package/dist/extensions/biu/prompts.d.ts +26 -0
- package/dist/extensions/biu/prompts.d.ts.map +1 -0
- package/dist/extensions/biu/prompts.js +260 -0
- package/dist/extensions/biu/prompts.js.map +1 -0
- package/dist/extensions/biu/workspace.d.ts +122 -0
- package/dist/extensions/biu/workspace.d.ts.map +1 -0
- package/dist/extensions/biu/workspace.js +404 -0
- package/dist/extensions/biu/workspace.js.map +1 -0
- package/dist/extensions/deepwiki/client.d.ts.map +1 -1
- package/dist/extensions/deepwiki/client.js.map +1 -1
- package/dist/extensions/deepwiki/constants.d.ts.map +1 -1
- package/dist/extensions/deepwiki/constants.js.map +1 -1
- package/dist/extensions/deepwiki/contents.d.ts.map +1 -1
- package/dist/extensions/deepwiki/contents.js.map +1 -1
- package/dist/extensions/deepwiki/execute.d.ts.map +1 -1
- package/dist/extensions/deepwiki/execute.js.map +1 -1
- package/dist/extensions/deepwiki/http.d.ts.map +1 -1
- package/dist/extensions/deepwiki/http.js.map +1 -1
- package/dist/extensions/deepwiki/index.d.ts.map +1 -1
- package/dist/extensions/deepwiki/index.js.map +1 -1
- package/dist/extensions/deepwiki/render.d.ts.map +1 -1
- package/dist/extensions/deepwiki/render.js.map +1 -1
- package/dist/extensions/deepwiki/schema.d.ts +1 -1
- package/dist/extensions/deepwiki/schema.d.ts.map +1 -1
- package/dist/extensions/deepwiki/schema.js.map +1 -1
- package/dist/extensions/index.d.ts.map +1 -1
- package/dist/extensions/index.js +2 -2
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/llama/client.d.ts.map +1 -1
- package/dist/extensions/llama/client.js +0 -2
- package/dist/extensions/llama/client.js.map +1 -1
- package/dist/extensions/llama/huggingface.d.ts.map +1 -1
- package/dist/extensions/llama/huggingface.js +0 -2
- package/dist/extensions/llama/huggingface.js.map +1 -1
- package/dist/extensions/llama/index.d.ts.map +1 -1
- package/dist/extensions/llama/index.js +11 -2
- package/dist/extensions/llama/index.js.map +1 -1
- package/dist/extensions/llama/provider.d.ts.map +1 -1
- package/dist/extensions/llama/provider.js +22 -8
- package/dist/extensions/llama/provider.js.map +1 -1
- package/dist/extensions/llama/ui.d.ts.map +1 -1
- package/dist/extensions/llama/ui.js +12 -28
- package/dist/extensions/llama/ui.js.map +1 -1
- package/dist/extensions/question/constants.d.ts.map +1 -1
- package/dist/extensions/question/constants.js.map +1 -1
- package/dist/extensions/question/dialog-primitives.d.ts.map +1 -1
- package/dist/extensions/question/dialog-primitives.js.map +1 -1
- package/dist/extensions/question/dialog.d.ts.map +1 -1
- package/dist/extensions/question/dialog.js.map +1 -1
- package/dist/extensions/question/index.d.ts.map +1 -1
- package/dist/extensions/question/index.js.map +1 -1
- package/dist/extensions/question/limits.d.ts.map +1 -1
- package/dist/extensions/question/render-cache.d.ts.map +1 -1
- package/dist/extensions/question/render-cache.js +3 -4
- package/dist/extensions/question/render-cache.js.map +1 -1
- package/dist/extensions/question/render.d.ts.map +1 -1
- package/dist/extensions/question/render.js.map +1 -1
- package/dist/extensions/question/results.d.ts.map +1 -1
- package/dist/extensions/question/results.js.map +1 -1
- package/dist/extensions/question/schema.d.ts.map +1 -1
- package/dist/extensions/question/schema.js.map +1 -1
- package/dist/extensions/question/state.d.ts.map +1 -1
- package/dist/extensions/question/state.js.map +1 -1
- package/dist/extensions/question/types.d.ts.map +1 -1
- package/dist/extensions/rewind/anchor.d.ts.map +1 -1
- package/dist/extensions/rewind/anchor.js.map +1 -1
- package/dist/extensions/rewind/config.d.ts.map +1 -1
- package/dist/extensions/rewind/config.js.map +1 -1
- package/dist/extensions/rewind/engine.d.ts.map +1 -1
- package/dist/extensions/rewind/engine.js.map +1 -1
- package/dist/extensions/rewind/gc.d.ts.map +1 -1
- package/dist/extensions/rewind/gc.js.map +1 -1
- package/dist/extensions/rewind/index.d.ts.map +1 -1
- package/dist/extensions/rewind/index.js.map +1 -1
- package/dist/extensions/rewind/menu.d.ts.map +1 -1
- package/dist/extensions/rewind/menu.js.map +1 -1
- package/dist/extensions/rewind/paths.d.ts.map +1 -1
- package/dist/extensions/rewind/paths.js.map +1 -1
- package/dist/extensions/rewind/restore.d.ts.map +1 -1
- package/dist/extensions/rewind/restore.js.map +1 -1
- package/dist/extensions/rewind/snapshot.d.ts.map +1 -1
- package/dist/extensions/rewind/snapshot.js.map +1 -1
- package/dist/extensions/rewind/storage.d.ts.map +1 -1
- package/dist/extensions/rewind/storage.js.map +1 -1
- package/dist/extensions/rewind/text.d.ts.map +1 -1
- package/dist/extensions/rewind/text.js.map +1 -1
- package/dist/extensions/rewind/tool-path.d.ts.map +1 -1
- package/dist/extensions/rewind/tool-path.js.map +1 -1
- package/dist/extensions/router/constants.d.ts +3 -0
- package/dist/extensions/router/constants.d.ts.map +1 -1
- package/dist/extensions/router/constants.js +3 -0
- package/dist/extensions/router/constants.js.map +1 -1
- package/dist/extensions/router/dialog.d.ts +14 -7
- package/dist/extensions/router/dialog.d.ts.map +1 -1
- package/dist/extensions/router/dialog.js +70 -132
- package/dist/extensions/router/dialog.js.map +1 -1
- package/dist/extensions/router/index.d.ts.map +1 -1
- package/dist/extensions/router/index.js.map +1 -1
- package/dist/extensions/router/presets.d.ts +8 -3
- package/dist/extensions/router/presets.d.ts.map +1 -1
- package/dist/extensions/router/presets.js +33 -17
- package/dist/extensions/router/presets.js.map +1 -1
- package/dist/extensions/router/probe.d.ts.map +1 -1
- package/dist/extensions/router/probe.js.map +1 -1
- package/dist/extensions/router/register.d.ts +3 -3
- package/dist/extensions/router/register.d.ts.map +1 -1
- package/dist/extensions/router/register.js.map +1 -1
- package/dist/extensions/router/store.d.ts.map +1 -1
- package/dist/extensions/router/store.js.map +1 -1
- package/dist/extensions/router/stream.d.ts.map +1 -1
- package/dist/extensions/router/stream.js.map +1 -1
- package/dist/extensions/router/types.d.ts.map +1 -1
- package/dist/extensions/router/ui.d.ts +11 -2
- package/dist/extensions/router/ui.d.ts.map +1 -1
- package/dist/extensions/router/ui.js +316 -171
- package/dist/extensions/router/ui.js.map +1 -1
- package/dist/extensions/statusline/index.d.ts.map +1 -1
- package/dist/extensions/statusline/index.js +17 -9
- package/dist/extensions/statusline/index.js.map +1 -1
- package/dist/extensions/subagent/activity.d.ts.map +1 -1
- package/dist/extensions/subagent/activity.js.map +1 -1
- package/dist/extensions/subagent/agents.d.ts.map +1 -1
- package/dist/extensions/subagent/agents.js.map +1 -1
- package/dist/extensions/subagent/constants.d.ts.map +1 -1
- package/dist/extensions/subagent/index.d.ts +3 -0
- package/dist/extensions/subagent/index.d.ts.map +1 -1
- package/dist/extensions/subagent/index.js +83 -12
- package/dist/extensions/subagent/index.js.map +1 -1
- package/dist/extensions/subagent/picker.d.ts.map +1 -1
- package/dist/extensions/subagent/picker.js +2 -9
- package/dist/extensions/subagent/picker.js.map +1 -1
- package/dist/extensions/subagent/render.d.ts.map +1 -1
- package/dist/extensions/subagent/render.js +33 -9
- package/dist/extensions/subagent/render.js.map +1 -1
- package/dist/extensions/subagent/resolve.d.ts.map +1 -1
- package/dist/extensions/subagent/resolve.js.map +1 -1
- package/dist/extensions/subagent/retry.d.ts.map +1 -1
- package/dist/extensions/subagent/retry.js.map +1 -1
- package/dist/extensions/subagent/runner.d.ts +2 -1
- package/dist/extensions/subagent/runner.d.ts.map +1 -1
- package/dist/extensions/subagent/runner.js +10 -12
- package/dist/extensions/subagent/runner.js.map +1 -1
- package/dist/extensions/subagent/schema.d.ts.map +1 -1
- package/dist/extensions/subagent/schema.js.map +1 -1
- package/dist/extensions/subagent/sdk-runner.d.ts.map +1 -1
- package/dist/extensions/subagent/sdk-runner.js +41 -1
- package/dist/extensions/subagent/sdk-runner.js.map +1 -1
- package/dist/extensions/subagent/settings.d.ts.map +1 -1
- package/dist/extensions/subagent/settings.js +46 -36
- package/dist/extensions/subagent/settings.js.map +1 -1
- package/dist/extensions/subagent/types.d.ts +0 -1
- package/dist/extensions/subagent/types.d.ts.map +1 -1
- package/dist/extensions/subagent/types.js.map +1 -1
- package/dist/extensions/todo/constants.d.ts.map +1 -1
- package/dist/extensions/todo/constants.js.map +1 -1
- package/dist/extensions/todo/index.d.ts.map +1 -1
- package/dist/extensions/todo/index.js.map +1 -1
- package/dist/extensions/todo/overlay.d.ts.map +1 -1
- package/dist/extensions/todo/overlay.js +6 -10
- package/dist/extensions/todo/overlay.js.map +1 -1
- package/dist/extensions/todo/schema.d.ts +2 -2
- package/dist/extensions/todo/schema.d.ts.map +1 -1
- package/dist/extensions/todo/state.d.ts.map +1 -1
- package/dist/extensions/todo/state.js.map +1 -1
- package/dist/extensions/todo/view.d.ts.map +1 -1
- package/dist/extensions/todo/view.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +57 -5
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js.map +1 -1
- package/dist/modes/index.d.ts +1 -0
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js +6 -10
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +5 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +13 -11
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +4 -10
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +0 -3
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +1 -3
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +1 -3
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +5 -22
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js +1 -7
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +8 -8
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-entry.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-entry.js +1 -4
- package/dist/modes/interactive/components/custom-entry.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -7
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js +6 -8
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/diff.d.ts.map +1 -1
- package/dist/modes/interactive/components/diff.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js +0 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -7
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +2 -8
- package/dist/modes/interactive/components/extension-input.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +1 -9
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.d.ts.map +1 -1
- package/dist/modes/interactive/components/first-time-setup.js +2 -4
- package/dist/modes/interactive/components/first-time-setup.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +2 -4
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +3 -9
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/markdown-transform.d.ts +3 -0
- package/dist/modes/interactive/components/markdown-transform.d.ts.map +1 -0
- package/dist/modes/interactive/components/markdown-transform.js +19 -0
- package/dist/modes/interactive/components/markdown-transform.js.map +1 -0
- package/dist/modes/interactive/components/mermaid.d.ts +11 -0
- package/dist/modes/interactive/components/mermaid.d.ts.map +1 -0
- package/dist/modes/interactive/components/mermaid.js +75 -0
- package/dist/modes/interactive/components/mermaid.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +32 -30
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +3 -11
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +4 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +34 -13
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +35 -60
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +8 -2
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +30 -14
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +0 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +1 -3
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/status-indicator.d.ts.map +1 -1
- package/dist/modes/interactive/components/status-indicator.js +0 -2
- package/dist/modes/interactive/components/status-indicator.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +0 -2
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +0 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +18 -36
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-group.js +2 -3
- package/dist/modes/interactive/components/tool-group.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +19 -39
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js +0 -6
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +3 -6
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +3 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +8 -5
- package/dist/modes/interactive/components/user-message.js.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/external-editor.d.ts.map +1 -1
- package/dist/modes/interactive/external-editor.js +40 -3
- package/dist/modes/interactive/external-editor.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +46 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +538 -275
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/model-search.d.ts.map +1 -1
- package/dist/modes/interactive/model-search.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -0
- package/dist/modes/interactive/theme/light.json +1 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts +3 -0
- package/dist/modes/interactive/theme/theme-controller.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme-controller.js +11 -8
- package/dist/modes/interactive/theme/theme-controller.js.map +1 -1
- package/dist/modes/interactive/theme/theme-schema.json +5 -1
- package/dist/modes/interactive/theme/theme.d.ts +4 -4
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +13 -9
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/json-event.d.ts +28 -0
- package/dist/modes/json-event.d.ts.map +1 -0
- package/dist/modes/json-event.js +12 -0
- package/dist/modes/json-event.js.map +1 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +12 -2
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/jsonl.d.ts.map +1 -1
- package/dist/modes/rpc/jsonl.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +5 -4
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +7 -8
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +17 -3
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +11 -9
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/rpc-entry.d.ts.map +1 -1
- package/dist/rpc-entry.js +1 -0
- package/dist/rpc-entry.js.map +1 -1
- package/dist/utils/abort.d.ts +5 -0
- package/dist/utils/abort.d.ts.map +1 -0
- package/dist/utils/abort.js +48 -0
- package/dist/utils/abort.js.map +1 -0
- package/dist/utils/ansi.d.ts.map +1 -1
- package/dist/utils/ansi.js.map +1 -1
- package/dist/utils/changelog.d.ts.map +1 -1
- package/dist/utils/changelog.js.map +1 -1
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard-native.d.ts.map +1 -1
- package/dist/utils/clipboard-native.js.map +1 -1
- package/dist/utils/clipboard.d.ts +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +22 -2
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/coalescing-terminal.d.ts +1 -0
- package/dist/utils/coalescing-terminal.d.ts.map +1 -1
- package/dist/utils/coalescing-terminal.js +16 -8
- package/dist/utils/coalescing-terminal.js.map +1 -1
- package/dist/utils/deprecation.d.ts.map +1 -1
- package/dist/utils/deprecation.js.map +1 -1
- package/dist/utils/exif-orientation.d.ts.map +1 -1
- package/dist/utils/exif-orientation.js.map +1 -1
- package/dist/utils/frontmatter.d.ts.map +1 -1
- package/dist/utils/frontmatter.js.map +1 -1
- package/dist/utils/fs-watch.d.ts.map +1 -1
- package/dist/utils/fs-watch.js.map +1 -1
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/html.d.ts.map +1 -1
- package/dist/utils/html.js.map +1 -1
- package/dist/utils/image-convert.d.ts.map +1 -1
- package/dist/utils/image-convert.js.map +1 -1
- package/dist/utils/image-process.d.ts.map +1 -1
- package/dist/utils/image-process.js.map +1 -1
- package/dist/utils/image-resize-core.d.ts.map +1 -1
- package/dist/utils/image-resize-core.js.map +1 -1
- package/dist/utils/image-resize-worker.d.ts.map +1 -1
- package/dist/utils/image-resize-worker.js.map +1 -1
- package/dist/utils/image-resize.d.ts.map +1 -1
- package/dist/utils/image-resize.js.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js.map +1 -1
- package/dist/utils/management-http.d.ts +23 -0
- package/dist/utils/management-http.d.ts.map +1 -0
- package/dist/utils/management-http.js +50 -0
- package/dist/utils/management-http.js.map +1 -0
- package/dist/utils/mime.d.ts.map +1 -1
- package/dist/utils/mime.js.map +1 -1
- package/dist/utils/open-browser.d.ts.map +1 -1
- package/dist/utils/open-browser.js.map +1 -1
- package/dist/utils/paths.d.ts +5 -3
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +25 -4
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/photon.d.ts.map +1 -1
- package/dist/utils/photon.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts.map +1 -1
- package/dist/utils/pi-user-agent.js.map +1 -1
- package/dist/utils/shell.d.ts.map +1 -1
- package/dist/utils/shell.js.map +1 -1
- package/dist/utils/sleep.d.ts.map +1 -1
- package/dist/utils/sleep.js.map +1 -1
- package/dist/utils/syntax-highlight.d.ts.map +1 -1
- package/dist/utils/syntax-highlight.js.map +1 -1
- package/dist/utils/tool-result-images.d.ts +19 -0
- package/dist/utils/tool-result-images.d.ts.map +1 -0
- package/dist/utils/tool-result-images.js +45 -0
- package/dist/utils/tool-result-images.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +4 -6
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +4 -0
- package/dist/utils/version-check.d.ts.map +1 -1
- package/dist/utils/version-check.js +20 -2
- package/dist/utils/version-check.js.map +1 -1
- package/dist/utils/windows-self-update.d.ts.map +1 -1
- package/dist/utils/windows-self-update.js.map +1 -1
- package/docs/bundled/README.md +14 -16
- package/docs/bundled/extensions/biu.md +63 -0
- package/docs/bundled/extensions/router.md +20 -14
- package/docs/bundled/extensions/statusline.md +7 -5
- package/docs/bundled/themes.md +1 -1
- package/docs/compaction.md +25 -30
- package/docs/custom-provider.md +303 -467
- package/docs/development.md +83 -0
- package/docs/docs.json +6 -10
- package/docs/extensions.md +139 -119
- package/docs/index.md +18 -74
- package/docs/json.md +40 -15
- package/docs/keybindings.md +38 -10
- package/docs/models.md +210 -150
- package/docs/providers.md +3 -1
- package/docs/quickstart.md +5 -3
- package/docs/rpc.md +177 -134
- package/docs/sdk.md +165 -178
- package/docs/security.md +2 -2
- package/docs/session-format.md +139 -119
- package/docs/settings.md +4 -1
- package/docs/skills.md +0 -1
- package/docs/themes.md +5 -3
- package/docs/tui.md +411 -549
- package/docs/usage.md +11 -11
- package/examples/README.md +6 -1
- package/examples/extensions/README.md +13 -33
- package/examples/extensions/custom-compaction.ts +1 -16
- package/examples/extensions/custom-provider-anthropic/index.ts +11 -4
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -1
- package/examples/extensions/doom-overlay/wad-finder.ts +7 -3
- package/examples/extensions/handoff.ts +2 -11
- package/examples/extensions/qna.ts +3 -7
- package/examples/extensions/summarize.ts +8 -18
- package/examples/extensions/truncated-tool.ts +2 -2
- package/examples/rpc-extension-ui.ts +11 -2
- package/examples/sdk/02-custom-model.ts +1 -2
- package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/examples/sdk/12-full-control.ts +3 -1
- package/examples/sdk/README.md +1 -0
- package/npm-shrinkwrap.json +199 -270
- package/package.json +16 -9
- package/dist/extensions/plan/constants.d.ts +0 -68
- package/dist/extensions/plan/constants.d.ts.map +0 -1
- package/dist/extensions/plan/constants.js +0 -100
- package/dist/extensions/plan/constants.js.map +0 -1
- package/dist/extensions/plan/index.d.ts +0 -30
- package/dist/extensions/plan/index.d.ts.map +0 -1
- package/dist/extensions/plan/index.js +0 -429
- package/dist/extensions/plan/index.js.map +0 -1
- package/dist/extensions/plan/schema.d.ts +0 -20
- package/dist/extensions/plan/schema.d.ts.map +0 -1
- package/dist/extensions/plan/schema.js +0 -13
- package/dist/extensions/plan/schema.js.map +0 -1
- package/dist/extensions/plan/state.d.ts +0 -38
- package/dist/extensions/plan/state.d.ts.map +0 -1
- package/dist/extensions/plan/state.js +0 -96
- package/dist/extensions/plan/state.js.map +0 -1
- package/dist/extensions/plan/storage.d.ts +0 -26
- package/dist/extensions/plan/storage.d.ts.map +0 -1
- package/dist/extensions/plan/storage.js +0 -83
- package/dist/extensions/plan/storage.js.map +0 -1
- package/dist/extensions/plan/view.d.ts +0 -44
- package/dist/extensions/plan/view.d.ts.map +0 -1
- package/dist/extensions/plan/view.js +0 -149
- package/dist/extensions/plan/view.js.map +0 -1
- package/docs/bundled/extensions/README.md +0 -19
- package/docs/bundled/extensions/plan.md +0 -34
- package/examples/extensions/plan-mode/README.md +0 -66
- package/examples/extensions/plan-mode/index.ts +0 -390
- package/examples/extensions/plan-mode/utils.ts +0 -168
package/docs/sdk.md
CHANGED
|
@@ -53,11 +53,10 @@ The main factory function for a single `AgentSession`.
|
|
|
53
53
|
import { createAgentSession, SessionManager } from "@astralyn/pi";
|
|
54
54
|
|
|
55
55
|
// Minimal: defaults with DefaultResourceLoader
|
|
56
|
-
const { session } = await createAgentSession();
|
|
56
|
+
const { session: defaultSession } = await createAgentSession();
|
|
57
57
|
|
|
58
58
|
// Custom: override specific options
|
|
59
|
-
const { session } = await createAgentSession({
|
|
60
|
-
model: myModel,
|
|
59
|
+
const { session: customSession } = await createAgentSession({
|
|
61
60
|
tools: ["read", "bash"],
|
|
62
61
|
sessionManager: SessionManager.inMemory(),
|
|
63
62
|
});
|
|
@@ -65,18 +64,18 @@ const { session } = await createAgentSession({
|
|
|
65
64
|
|
|
66
65
|
### AgentSession
|
|
67
66
|
|
|
68
|
-
The session manages agent lifecycle, message history, model state, compaction, and event streaming.
|
|
67
|
+
The session manages agent lifecycle, message history, model state, compaction, and event streaming. Common API members include:
|
|
69
68
|
|
|
70
69
|
```typescript
|
|
71
70
|
interface AgentSession {
|
|
72
71
|
// Send a prompt and wait for completion
|
|
73
72
|
prompt(text: string, options?: PromptOptions): Promise<void>;
|
|
74
73
|
|
|
75
|
-
// Queue messages
|
|
76
|
-
steer(text: string): Promise<void>;
|
|
77
|
-
followUp(text: string): Promise<void>;
|
|
74
|
+
// Queue messages, optionally with image attachments
|
|
75
|
+
steer(text: string, images?: ImageContent[]): Promise<void>;
|
|
76
|
+
followUp(text: string, images?: ImageContent[]): Promise<void>;
|
|
78
77
|
|
|
79
|
-
// Subscribe to events (returns unsubscribe function)
|
|
78
|
+
// Subscribe to events (returns an unsubscribe function)
|
|
80
79
|
subscribe(listener: (event: AgentSessionEvent) => void): () => void;
|
|
81
80
|
|
|
82
81
|
// Session info
|
|
@@ -86,7 +85,7 @@ interface AgentSession {
|
|
|
86
85
|
// Model control
|
|
87
86
|
setModel(model: Model): Promise<void>;
|
|
88
87
|
setThinkingLevel(level: ThinkingLevel): void;
|
|
89
|
-
cycleModel(): Promise<ModelCycleResult | undefined>;
|
|
88
|
+
cycleModel(direction?: "forward" | "backward"): Promise<ModelCycleResult | undefined>;
|
|
90
89
|
cycleThinkingLevel(): ThinkingLevel | undefined;
|
|
91
90
|
|
|
92
91
|
// State access
|
|
@@ -97,13 +96,16 @@ interface AgentSession {
|
|
|
97
96
|
isStreaming: boolean;
|
|
98
97
|
|
|
99
98
|
// In-place tree navigation within the current session file
|
|
100
|
-
navigateTree(targetId: string, options?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string }): Promise<{
|
|
101
|
-
|
|
102
|
-
|
|
99
|
+
navigateTree(targetId: string, options?: { summarize?: boolean; customInstructions?: string; replaceInstructions?: boolean; label?: string }): Promise<{
|
|
100
|
+
editorText?: string;
|
|
101
|
+
cancelled: boolean;
|
|
102
|
+
aborted?: boolean;
|
|
103
|
+
summaryEntry?: BranchSummaryEntry;
|
|
104
|
+
}>;
|
|
105
|
+
|
|
106
|
+
// Compaction and cancellation
|
|
103
107
|
compact(customInstructions?: string): Promise<CompactionResult>;
|
|
104
108
|
abortCompaction(): void;
|
|
105
|
-
|
|
106
|
-
// Abort current operation
|
|
107
109
|
abort(): Promise<void>;
|
|
108
110
|
|
|
109
111
|
// Cleanup
|
|
@@ -130,8 +132,8 @@ import {
|
|
|
130
132
|
SessionManager,
|
|
131
133
|
} from "@astralyn/pi";
|
|
132
134
|
|
|
133
|
-
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
134
|
-
const services = await createAgentSessionServices({ cwd });
|
|
135
|
+
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, agentDir, sessionManager, sessionStartEvent }) => {
|
|
136
|
+
const services = await createAgentSessionServices({ cwd, agentDir });
|
|
135
137
|
return {
|
|
136
138
|
...(await createAgentSessionFromServices({
|
|
137
139
|
services,
|
|
@@ -161,8 +163,8 @@ const runtime = await createAgentSessionRuntime(createRuntime, {
|
|
|
161
163
|
Important behavior:
|
|
162
164
|
|
|
163
165
|
- `runtime.session` changes after those operations
|
|
164
|
-
- event subscriptions are attached to a specific `AgentSession`, so re-subscribe after replacement
|
|
165
|
-
- if you use extensions,
|
|
166
|
+
- event subscriptions are attached to a specific `AgentSession`, so re-subscribe after replacement (or use `runtime.setRebindSession()`)
|
|
167
|
+
- if you use extensions, bind them again for the new session (or do so from the rebind callback)
|
|
166
168
|
- creation returns diagnostics on `runtime.diagnostics`
|
|
167
169
|
- if runtime creation or replacement fails, the method throws and the caller decides how to handle it
|
|
168
170
|
|
|
@@ -177,6 +179,33 @@ session = runtime.session;
|
|
|
177
179
|
unsubscribe = session.subscribe(() => {});
|
|
178
180
|
```
|
|
179
181
|
|
|
182
|
+
### Experimental Remote Sessions
|
|
183
|
+
|
|
184
|
+
The `@astralyn/pi/client` subpath provides a lifecycle controller and transcript reducers for applications that connect to a remote Pi server. Transport and protocol primitives come from the exact `@earendil-works/pi-client` and `@earendil-works/pi-protocol` dependencies.
|
|
185
|
+
|
|
186
|
+
```typescript
|
|
187
|
+
import { PiClient } from "@earendil-works/pi-client";
|
|
188
|
+
import { createUnixTransportFactory } from "@earendil-works/pi-client/unix";
|
|
189
|
+
import { RemoteSession } from "@astralyn/pi/client";
|
|
190
|
+
|
|
191
|
+
await using client = await PiClient.connect({
|
|
192
|
+
transportFactory: createUnixTransportFactory({ path: "/tmp/pi.sock" }),
|
|
193
|
+
});
|
|
194
|
+
await using session = await RemoteSession.create(client, {
|
|
195
|
+
cwd: "/workspace/project",
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
const unsubscribe = session.subscribe(({ lifecycle, snapshot, transcript }) => {
|
|
199
|
+
console.log(lifecycle.status, snapshot?.phase, transcript.length);
|
|
200
|
+
});
|
|
201
|
+
await session.submit("Inspect this project");
|
|
202
|
+
unsubscribe();
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
Use `RemoteSession.open(client, sessionId)` to acquire an existing session. The controller serializes open/create/submit/model/thinking operations, selects prompt versus steering behavior from the remote phase, supports abort and reconnect, and releases its exclusive session lease on disposal. `createTranscriptState()`, `applyTranscriptSnapshot()`, `applyTranscriptProgress()`, and `selectTranscript()` are also exported for lower-level clients that manage transcript state directly.
|
|
206
|
+
|
|
207
|
+
This API is experimental. Match client and server protocol versions, bound transport queues and frame sizes, authenticate the transport, and treat peers as untrusted.
|
|
208
|
+
|
|
180
209
|
### Prompting and Message Queueing
|
|
181
210
|
|
|
182
211
|
`PromptOptions` controls prompt expansion, queueing behavior while streaming, and prompt preflight notifications:
|
|
@@ -196,7 +225,7 @@ interface PromptOptions {
|
|
|
196
225
|
- `true` when the prompt was accepted, queued, or handled immediately
|
|
197
226
|
- `false` when prompt preflight rejected before acceptance
|
|
198
227
|
|
|
199
|
-
It fires before `prompt()` resolves.
|
|
228
|
+
It fires before `prompt()` resolves. A prompt that starts a run resolves after the full accepted run finishes, including retries; a queued or immediately handled prompt resolves after acceptance or handling. Failures after acceptance are reported through the normal event and message stream, not through `preflightResult(false)`.
|
|
200
229
|
|
|
201
230
|
The `prompt()` method handles prompt templates, extension commands, and message sending:
|
|
202
231
|
|
|
@@ -206,7 +235,7 @@ await session.prompt("What files are here?");
|
|
|
206
235
|
|
|
207
236
|
// With images
|
|
208
237
|
await session.prompt("What's in this image?", {
|
|
209
|
-
images: [{ type: "image",
|
|
238
|
+
images: [{ type: "image", mimeType: "image/png", data: "..." }],
|
|
210
239
|
});
|
|
211
240
|
|
|
212
241
|
// During streaming: must specify how to queue the message
|
|
@@ -218,17 +247,17 @@ await session.prompt("After you're done, also check X", { streamingBehavior: "fo
|
|
|
218
247
|
- **Extension commands** (e.g., `/mycommand`): Execute immediately, even during streaming. They manage their own LLM interaction via `pi.sendMessage()`.
|
|
219
248
|
- **File-based prompt templates** (from `.md` files): Expanded to their content before sending or queueing.
|
|
220
249
|
- **During streaming without `streamingBehavior`**: Throws an error. Use `steer()` or `followUp()` directly, or specify the option.
|
|
221
|
-
- **`preflightResult(true)`**: Means the prompt was accepted, queued, or handled immediately.
|
|
222
|
-
- **`preflightResult(false)`**: Means preflight rejected before acceptance.
|
|
223
250
|
|
|
224
251
|
For explicit queueing during streaming:
|
|
225
252
|
|
|
226
253
|
```typescript
|
|
254
|
+
const image = { type: "image" as const, mimeType: "image/png", data: "..." };
|
|
255
|
+
|
|
227
256
|
// Queue a steering message for delivery after the current assistant turn finishes its tool calls
|
|
228
|
-
await session.steer("New instruction");
|
|
257
|
+
await session.steer("New instruction", [image]);
|
|
229
258
|
|
|
230
|
-
//
|
|
231
|
-
await session.followUp("After you're done, also do this");
|
|
259
|
+
// Queue a follow-up for when there are no more tool calls or steering messages
|
|
260
|
+
await session.followUp("After you're done, also do this", [image]);
|
|
232
261
|
```
|
|
233
262
|
|
|
234
263
|
Both `steer()` and `followUp()` expand file-based prompt templates but error on extension commands (extension commands cannot be queued).
|
|
@@ -302,6 +331,9 @@ session.subscribe((event) => {
|
|
|
302
331
|
case "agent_end":
|
|
303
332
|
// Agent finished (event.messages contains new messages)
|
|
304
333
|
break;
|
|
334
|
+
case "agent_settled":
|
|
335
|
+
// Agent, retries, compaction, and queued continuations have settled
|
|
336
|
+
break;
|
|
305
337
|
|
|
306
338
|
// Turn lifecycle (one LLM response + tool calls)
|
|
307
339
|
case "turn_start":
|
|
@@ -311,7 +343,7 @@ session.subscribe((event) => {
|
|
|
311
343
|
// event.toolResults: tool results from this turn
|
|
312
344
|
break;
|
|
313
345
|
|
|
314
|
-
// Session events (queue, compaction, retry)
|
|
346
|
+
// Session events (queue, compaction, retry, and persisted state)
|
|
315
347
|
case "queue_update":
|
|
316
348
|
console.log(event.steering, event.followUp);
|
|
317
349
|
break;
|
|
@@ -322,6 +354,10 @@ session.subscribe((event) => {
|
|
|
322
354
|
case "summarization_retry_scheduled":
|
|
323
355
|
case "summarization_retry_attempt_start":
|
|
324
356
|
case "summarization_retry_finished":
|
|
357
|
+
case "entry_appended":
|
|
358
|
+
case "session_info_changed":
|
|
359
|
+
case "thinking_level_changed":
|
|
360
|
+
case "bash_execution_update":
|
|
325
361
|
break;
|
|
326
362
|
}
|
|
327
363
|
});
|
|
@@ -347,7 +383,7 @@ const { session } = await createAgentSession({
|
|
|
347
383
|
- `.pi/skills/`
|
|
348
384
|
- `.agents/skills/` in `cwd` and ancestor directories (up to git repo root, or filesystem root when not in a repo)
|
|
349
385
|
- Project prompts (`.pi/prompts/`)
|
|
350
|
-
- Context files (`AGENTS.md` walking up from cwd)
|
|
386
|
+
- Context files (`AGENTS.md` or `CLAUDE.md`, walking up from cwd)
|
|
351
387
|
- Session directory naming
|
|
352
388
|
|
|
353
389
|
`agentDir` is used by `DefaultResourceLoader` for:
|
|
@@ -356,7 +392,7 @@ const { session } = await createAgentSession({
|
|
|
356
392
|
- `skills/` under `agentDir` (for example `~/.pi/agent/skills/`)
|
|
357
393
|
- `~/.agents/skills/`
|
|
358
394
|
- Global prompts (`prompts/`)
|
|
359
|
-
- Global context file (`AGENTS.md`)
|
|
395
|
+
- Global context file (`AGENTS.md` or `CLAUDE.md`)
|
|
360
396
|
- Settings (`settings.json`)
|
|
361
397
|
- Custom models (`models.json`)
|
|
362
398
|
- Credentials (`auth.json`)
|
|
@@ -367,32 +403,33 @@ When you pass a custom `ResourceLoader`, `cwd` and `agentDir` no longer control
|
|
|
367
403
|
### Model
|
|
368
404
|
|
|
369
405
|
```typescript
|
|
370
|
-
import { getModel } from "@earendil-works/pi-ai";
|
|
371
|
-
import { ModelRuntime } from "@astralyn/pi";
|
|
406
|
+
import { getModel } from "@earendil-works/pi-ai/compat";
|
|
407
|
+
import { createAgentSession, ModelRuntime } from "@astralyn/pi";
|
|
372
408
|
|
|
373
409
|
const modelRuntime = await ModelRuntime.create();
|
|
374
410
|
|
|
375
|
-
// Find specific built-in
|
|
411
|
+
// Find specific built-in models (doesn't check whether API keys exist)
|
|
376
412
|
const opus = getModel("anthropic", "claude-opus-4-5");
|
|
377
|
-
|
|
413
|
+
const sonnet = getModel("anthropic", "claude-sonnet-4-5");
|
|
414
|
+
if (!opus || !sonnet) throw new Error("Model not found");
|
|
378
415
|
|
|
379
416
|
// Find any model by provider/id, including custom models from models.json
|
|
380
|
-
// (doesn't check
|
|
417
|
+
// (doesn't check whether API keys exist)
|
|
381
418
|
const customModel = modelRuntime.getModel("my-provider", "my-model");
|
|
382
419
|
|
|
383
|
-
// Get only models that have
|
|
420
|
+
// Get only models that have configured authentication
|
|
384
421
|
const available = await modelRuntime.getAvailable();
|
|
385
422
|
|
|
386
423
|
const { session } = await createAgentSession({
|
|
387
424
|
model: opus,
|
|
388
425
|
thinkingLevel: "medium", // off, minimal, low, medium, high, xhigh, max
|
|
389
|
-
|
|
426
|
+
|
|
390
427
|
// Models for cycling (Ctrl+P in interactive mode)
|
|
391
428
|
scopedModels: [
|
|
392
429
|
{ model: opus, thinkingLevel: "high" },
|
|
393
|
-
{ model:
|
|
430
|
+
{ model: sonnet, thinkingLevel: "off" },
|
|
394
431
|
],
|
|
395
|
-
|
|
432
|
+
|
|
396
433
|
modelRuntime,
|
|
397
434
|
});
|
|
398
435
|
```
|
|
@@ -400,7 +437,7 @@ const { session } = await createAgentSession({
|
|
|
400
437
|
If no model is provided:
|
|
401
438
|
1. Tries to restore from session (if continuing)
|
|
402
439
|
2. Uses default from settings
|
|
403
|
-
3.
|
|
440
|
+
3. Prefers a known provider default among available models, then falls back to the first available model
|
|
404
441
|
|
|
405
442
|
To match CLI model parsing, use the exported resolver helpers:
|
|
406
443
|
|
|
@@ -452,7 +489,7 @@ for (const provider of modelRuntime.getProviders()) {
|
|
|
452
489
|
}
|
|
453
490
|
|
|
454
491
|
// Runtime API key override (not persisted to disk)
|
|
455
|
-
modelRuntime.setRuntimeApiKey("anthropic", "sk-my-temp-key");
|
|
492
|
+
await modelRuntime.setRuntimeApiKey("anthropic", "sk-my-temp-key");
|
|
456
493
|
|
|
457
494
|
// Custom credential and model locations
|
|
458
495
|
const customRuntime = await ModelRuntime.create({
|
|
@@ -465,10 +502,28 @@ const credentials = new InMemoryCredentialStore();
|
|
|
465
502
|
const inMemoryRuntime = await ModelRuntime.create({ credentials });
|
|
466
503
|
|
|
467
504
|
const { session } = await createAgentSession({
|
|
468
|
-
modelRuntime:
|
|
505
|
+
modelRuntime: inMemoryRuntime,
|
|
506
|
+
});
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
`login()`, `logout()`, `setRuntimeApiKey()`, and `removeRuntimeApiKey()` resolve after the affected provider's cached/built-in catalog, composition, and availability snapshot are locally consistent. They do not wait for remote catalog freshness. If credentials were committed but local synchronization fails, they reject with the exported `CredentialSynchronizationError`; inspect its `providerId`, `operation`, `credential`, and `cause` fields instead of retrying the credential mutation blindly.
|
|
510
|
+
|
|
511
|
+
Public model/auth operations and `ModelRuntime.create({ signal })` accept optional abort signals and are unbounded when omitted. SDK applications own deadline policy for remote catalog freshness:
|
|
512
|
+
|
|
513
|
+
```typescript
|
|
514
|
+
const signal = AbortSignal.timeout(15_000);
|
|
515
|
+
const result = await modelRuntime.refresh({
|
|
516
|
+
providers: ["anthropic"],
|
|
517
|
+
signal,
|
|
469
518
|
});
|
|
519
|
+
if (result.aborted) console.warn("Catalog refresh timed out; using cached models");
|
|
520
|
+
for (const [providerId, error] of result.errors) {
|
|
521
|
+
console.warn(`Could not refresh ${providerId}:`, error);
|
|
522
|
+
}
|
|
470
523
|
```
|
|
471
524
|
|
|
525
|
+
A failed or timed-out network refresh does not undo a successful credential operation. `refresh()` starts a new provider generation, so it does not wait behind an older stalled refresh and stale generations cannot publish afterward.
|
|
526
|
+
|
|
472
527
|
> See [examples/sdk/09-api-keys-and-oauth.ts](../examples/sdk/09-api-keys-and-oauth.ts)
|
|
473
528
|
|
|
474
529
|
### System Prompt
|
|
@@ -476,9 +531,11 @@ const { session } = await createAgentSession({
|
|
|
476
531
|
Use a `ResourceLoader` to override the system prompt:
|
|
477
532
|
|
|
478
533
|
```typescript
|
|
479
|
-
import { createAgentSession, DefaultResourceLoader } from "@astralyn/pi";
|
|
534
|
+
import { createAgentSession, DefaultResourceLoader, getAgentDir } from "@astralyn/pi";
|
|
480
535
|
|
|
481
536
|
const loader = new DefaultResourceLoader({
|
|
537
|
+
cwd: process.cwd(),
|
|
538
|
+
agentDir: getAgentDir(),
|
|
482
539
|
systemPromptOverride: () => "You are a helpful assistant.",
|
|
483
540
|
});
|
|
484
541
|
await loader.reload();
|
|
@@ -504,17 +561,17 @@ The `edit` tool returns `details.diff` for Pi's TUI display and `details.patch`
|
|
|
504
561
|
import { createAgentSession } from "@astralyn/pi";
|
|
505
562
|
|
|
506
563
|
// Read-only mode
|
|
507
|
-
const { session } = await createAgentSession({
|
|
564
|
+
const { session: readOnlySession } = await createAgentSession({
|
|
508
565
|
tools: ["read", "grep", "find", "ls"],
|
|
509
566
|
});
|
|
510
567
|
|
|
511
568
|
// Pick specific tools
|
|
512
|
-
const { session } = await createAgentSession({
|
|
569
|
+
const { session: selectedToolsSession } = await createAgentSession({
|
|
513
570
|
tools: ["read", "bash", "grep"],
|
|
514
571
|
});
|
|
515
572
|
|
|
516
573
|
// Disable one tool while keeping the rest available
|
|
517
|
-
const { session } = await createAgentSession({
|
|
574
|
+
const { session: excludedToolsSession } = await createAgentSession({
|
|
518
575
|
excludeTools: ["ask_question"],
|
|
519
576
|
});
|
|
520
577
|
```
|
|
@@ -583,9 +640,11 @@ If you pass `tools`, include each custom or extension tool name you want enabled
|
|
|
583
640
|
Extensions are loaded by the `ResourceLoader`. `DefaultResourceLoader` discovers extensions from `~/.pi/agent/extensions/`, `.pi/extensions/`, and settings.json extension sources.
|
|
584
641
|
|
|
585
642
|
```typescript
|
|
586
|
-
import { createAgentSession, DefaultResourceLoader } from "@astralyn/pi";
|
|
643
|
+
import { createAgentSession, DefaultResourceLoader, getAgentDir } from "@astralyn/pi";
|
|
587
644
|
|
|
588
645
|
const loader = new DefaultResourceLoader({
|
|
646
|
+
cwd: process.cwd(),
|
|
647
|
+
agentDir: getAgentDir(),
|
|
589
648
|
additionalExtensionPaths: ["/path/to/my-extension.ts"],
|
|
590
649
|
extensionFactories: [
|
|
591
650
|
(pi) => {
|
|
@@ -605,7 +664,7 @@ Extensions can register tools, subscribe to events, add commands, and more. See
|
|
|
605
664
|
**Named inline extensions:** By default, inline factories display as `<inline:1>`, `<inline:2>`, etc. in the startup Extensions list. To show a descriptive name instead, wrap the factory:
|
|
606
665
|
|
|
607
666
|
```typescript
|
|
608
|
-
import type
|
|
667
|
+
import { DefaultResourceLoader, getAgentDir, type InlineExtension } from "@astralyn/pi";
|
|
609
668
|
|
|
610
669
|
const myProvider: InlineExtension = {
|
|
611
670
|
name: "my-provider",
|
|
@@ -617,8 +676,11 @@ const myProvider: InlineExtension = {
|
|
|
617
676
|
};
|
|
618
677
|
|
|
619
678
|
const loader = new DefaultResourceLoader({
|
|
679
|
+
cwd: process.cwd(),
|
|
680
|
+
agentDir: getAgentDir(),
|
|
620
681
|
extensionFactories: [myProvider],
|
|
621
682
|
});
|
|
683
|
+
await loader.reload();
|
|
622
684
|
```
|
|
623
685
|
|
|
624
686
|
This displays as `<inline:my-provider>` instead of `<inline:1>`. Bare factory functions are still accepted for backward compatibility.
|
|
@@ -626,10 +688,12 @@ This displays as `<inline:my-provider>` instead of `<inline:1>`. Bare factory fu
|
|
|
626
688
|
**Event Bus:** Extensions can communicate via `pi.events`. Pass a shared `eventBus` to `DefaultResourceLoader` if you need to emit or listen from outside:
|
|
627
689
|
|
|
628
690
|
```typescript
|
|
629
|
-
import { createEventBus, DefaultResourceLoader } from "@astralyn/pi";
|
|
691
|
+
import { createEventBus, DefaultResourceLoader, getAgentDir } from "@astralyn/pi";
|
|
630
692
|
|
|
631
693
|
const eventBus = createEventBus();
|
|
632
694
|
const loader = new DefaultResourceLoader({
|
|
695
|
+
cwd: process.cwd(),
|
|
696
|
+
agentDir: getAgentDir(),
|
|
633
697
|
eventBus,
|
|
634
698
|
});
|
|
635
699
|
await loader.reload();
|
|
@@ -644,7 +708,9 @@ eventBus.on("my-extension:status", (data) => console.log(data));
|
|
|
644
708
|
```typescript
|
|
645
709
|
import {
|
|
646
710
|
createAgentSession,
|
|
711
|
+
createSyntheticSourceInfo,
|
|
647
712
|
DefaultResourceLoader,
|
|
713
|
+
getAgentDir,
|
|
648
714
|
type Skill,
|
|
649
715
|
} from "@astralyn/pi";
|
|
650
716
|
|
|
@@ -653,10 +719,13 @@ const customSkill: Skill = {
|
|
|
653
719
|
description: "Custom instructions",
|
|
654
720
|
filePath: "/path/to/SKILL.md",
|
|
655
721
|
baseDir: "/path/to",
|
|
656
|
-
source: "
|
|
722
|
+
sourceInfo: createSyntheticSourceInfo("/path/to/SKILL.md", { source: "sdk" }),
|
|
723
|
+
disableModelInvocation: false,
|
|
657
724
|
};
|
|
658
725
|
|
|
659
726
|
const loader = new DefaultResourceLoader({
|
|
727
|
+
cwd: process.cwd(),
|
|
728
|
+
agentDir: getAgentDir(),
|
|
660
729
|
skillsOverride: (current) => ({
|
|
661
730
|
skills: [...current.skills, customSkill],
|
|
662
731
|
diagnostics: current.diagnostics,
|
|
@@ -672,9 +741,11 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
672
741
|
### Context Files
|
|
673
742
|
|
|
674
743
|
```typescript
|
|
675
|
-
import { createAgentSession, DefaultResourceLoader } from "@astralyn/pi";
|
|
744
|
+
import { createAgentSession, DefaultResourceLoader, getAgentDir } from "@astralyn/pi";
|
|
676
745
|
|
|
677
746
|
const loader = new DefaultResourceLoader({
|
|
747
|
+
cwd: process.cwd(),
|
|
748
|
+
agentDir: getAgentDir(),
|
|
678
749
|
agentsFilesOverride: (current) => ({
|
|
679
750
|
agentsFiles: [
|
|
680
751
|
...current.agentsFiles,
|
|
@@ -694,18 +765,23 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
694
765
|
```typescript
|
|
695
766
|
import {
|
|
696
767
|
createAgentSession,
|
|
768
|
+
createSyntheticSourceInfo,
|
|
697
769
|
DefaultResourceLoader,
|
|
770
|
+
getAgentDir,
|
|
698
771
|
type PromptTemplate,
|
|
699
772
|
} from "@astralyn/pi";
|
|
700
773
|
|
|
701
774
|
const customCommand: PromptTemplate = {
|
|
702
775
|
name: "deploy",
|
|
703
776
|
description: "Deploy the application",
|
|
704
|
-
|
|
777
|
+
filePath: "/virtual/prompts/deploy.md",
|
|
778
|
+
sourceInfo: createSyntheticSourceInfo("/virtual/prompts/deploy.md", { source: "sdk" }),
|
|
705
779
|
content: "# Deploy\n\n1. Build\n2. Test\n3. Deploy",
|
|
706
780
|
};
|
|
707
781
|
|
|
708
782
|
const loader = new DefaultResourceLoader({
|
|
783
|
+
cwd: process.cwd(),
|
|
784
|
+
agentDir: getAgentDir(),
|
|
709
785
|
promptsOverride: (current) => ({
|
|
710
786
|
prompts: [...current.prompts, customCommand],
|
|
711
787
|
diagnostics: current.diagnostics,
|
|
@@ -723,15 +799,7 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
723
799
|
Sessions use a tree structure with `id`/`parentId` linking, enabling in-place branching.
|
|
724
800
|
|
|
725
801
|
```typescript
|
|
726
|
-
import {
|
|
727
|
-
type CreateAgentSessionRuntimeFactory,
|
|
728
|
-
createAgentSession,
|
|
729
|
-
createAgentSessionFromServices,
|
|
730
|
-
createAgentSessionRuntime,
|
|
731
|
-
createAgentSessionServices,
|
|
732
|
-
getAgentDir,
|
|
733
|
-
SessionManager,
|
|
734
|
-
} from "@astralyn/pi";
|
|
802
|
+
import { createAgentSession, SessionManager } from "@astralyn/pi";
|
|
735
803
|
|
|
736
804
|
// In-memory (no persistence)
|
|
737
805
|
const { session } = await createAgentSession({
|
|
@@ -758,28 +826,12 @@ const { session: opened } = await createAgentSession({
|
|
|
758
826
|
|
|
759
827
|
// List sessions
|
|
760
828
|
const currentProjectSessions = await SessionManager.list(process.cwd());
|
|
761
|
-
const allSessions = await SessionManager.listAll(
|
|
762
|
-
|
|
763
|
-
// Session replacement API for /new, /resume, /fork, /clone, and import flows.
|
|
764
|
-
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
765
|
-
const services = await createAgentSessionServices({ cwd });
|
|
766
|
-
return {
|
|
767
|
-
...(await createAgentSessionFromServices({
|
|
768
|
-
services,
|
|
769
|
-
sessionManager,
|
|
770
|
-
sessionStartEvent,
|
|
771
|
-
})),
|
|
772
|
-
services,
|
|
773
|
-
diagnostics: services.diagnostics,
|
|
774
|
-
};
|
|
775
|
-
};
|
|
829
|
+
const allSessions = await SessionManager.listAll();
|
|
830
|
+
```
|
|
776
831
|
|
|
777
|
-
|
|
778
|
-
cwd: process.cwd(),
|
|
779
|
-
agentDir: getAgentDir(),
|
|
780
|
-
sessionManager: SessionManager.create(process.cwd()),
|
|
781
|
-
});
|
|
832
|
+
For active-session replacement, construct `runtime` as shown in [createAgentSessionRuntime() and AgentSessionRuntime](#createagentsessionruntime-and-agentsessionruntime), then use its replacement methods:
|
|
782
833
|
|
|
834
|
+
```typescript
|
|
783
835
|
// Replace the active session with a fresh one
|
|
784
836
|
await runtime.newSession();
|
|
785
837
|
|
|
@@ -800,24 +852,28 @@ const sm = SessionManager.open("/path/to/session.jsonl");
|
|
|
800
852
|
|
|
801
853
|
// Session listing
|
|
802
854
|
const currentProjectSessions = await SessionManager.list(process.cwd());
|
|
803
|
-
const allSessions = await SessionManager.listAll(
|
|
855
|
+
const allSessions = await SessionManager.listAll();
|
|
804
856
|
|
|
805
857
|
// Tree traversal
|
|
806
858
|
const entries = sm.getEntries(); // All entries (excludes header)
|
|
807
859
|
const tree = sm.getTree(); // Full tree structure
|
|
808
|
-
const path = sm.
|
|
860
|
+
const path = sm.getBranch(); // Path from root to current leaf
|
|
809
861
|
const leaf = sm.getLeafEntry(); // Current leaf entry
|
|
810
|
-
const entry = sm.getEntry(id); // Get entry by ID
|
|
811
|
-
const children = sm.getChildren(id); // Direct children of entry
|
|
812
862
|
|
|
813
|
-
|
|
814
|
-
const
|
|
815
|
-
sm.
|
|
863
|
+
if (leaf) {
|
|
864
|
+
const entryId = leaf.id;
|
|
865
|
+
const entry = sm.getEntry(entryId); // Get entry by ID
|
|
866
|
+
const children = sm.getChildren(entryId); // Direct children of entry
|
|
867
|
+
|
|
868
|
+
// Labels
|
|
869
|
+
const label = sm.getLabel(entryId); // Get label for entry
|
|
870
|
+
sm.appendLabelChange(entryId, "checkpoint"); // Set label
|
|
816
871
|
|
|
817
|
-
// Branching
|
|
818
|
-
sm.branch(entryId);
|
|
819
|
-
sm.branchWithSummary(
|
|
820
|
-
sm.createBranchedSession(
|
|
872
|
+
// Branching
|
|
873
|
+
sm.branch(entryId); // Move leaf to earlier entry
|
|
874
|
+
sm.branchWithSummary(entryId, "Summary..."); // Branch with context summary
|
|
875
|
+
const sessionFile = sm.createBranchedSession(entryId); // Path, or undefined in memory
|
|
876
|
+
}
|
|
821
877
|
```
|
|
822
878
|
|
|
823
879
|
> See [examples/sdk/11-sessions.ts](../examples/sdk/11-sessions.ts) and [Session Format](session-format.md)
|
|
@@ -828,20 +884,20 @@ sm.createBranchedSession(leafId); // Extract path to new file
|
|
|
828
884
|
import { createAgentSession, SettingsManager, SessionManager } from "@astralyn/pi";
|
|
829
885
|
|
|
830
886
|
// Default: loads from files (global + project merged)
|
|
831
|
-
const { session } = await createAgentSession({
|
|
832
|
-
settingsManager: SettingsManager.create(),
|
|
887
|
+
const { session: defaultSettingsSession } = await createAgentSession({
|
|
888
|
+
settingsManager: SettingsManager.create(process.cwd()),
|
|
833
889
|
});
|
|
834
890
|
|
|
835
891
|
// With overrides
|
|
836
|
-
const settingsManager = SettingsManager.create();
|
|
892
|
+
const settingsManager = SettingsManager.create(process.cwd());
|
|
837
893
|
settingsManager.applyOverrides({
|
|
838
894
|
compaction: { enabled: false },
|
|
839
895
|
retry: { enabled: true, maxRetries: 5 },
|
|
840
896
|
});
|
|
841
|
-
const { session } = await createAgentSession({ settingsManager });
|
|
897
|
+
const { session: customSettingsSession } = await createAgentSession({ settingsManager });
|
|
842
898
|
|
|
843
899
|
// In-memory (no file I/O, for testing)
|
|
844
|
-
const { session } = await createAgentSession({
|
|
900
|
+
const { session: inMemorySettingsSession } = await createAgentSession({
|
|
845
901
|
settingsManager: SettingsManager.inMemory({ compaction: { enabled: false } }),
|
|
846
902
|
sessionManager: SessionManager.inMemory(),
|
|
847
903
|
});
|
|
@@ -853,12 +909,12 @@ const { session } = await createAgentSession({
|
|
|
853
909
|
```
|
|
854
910
|
|
|
855
911
|
**Static factories:**
|
|
856
|
-
- `SettingsManager.create(cwd
|
|
912
|
+
- `SettingsManager.create(cwd, agentDir?)` - Load from files
|
|
857
913
|
- `SettingsManager.inMemory(settings?)` - No file I/O
|
|
858
914
|
|
|
859
915
|
**Project-specific settings:**
|
|
860
916
|
|
|
861
|
-
|
|
917
|
+
For a trusted project, settings load from two locations and merge:
|
|
862
918
|
1. Global: `~/.pi/agent/settings.json`
|
|
863
919
|
2. Project: `<cwd>/.pi/settings.json`
|
|
864
920
|
|
|
@@ -883,6 +939,7 @@ import {
|
|
|
883
939
|
getAgentDir,
|
|
884
940
|
} from "@astralyn/pi";
|
|
885
941
|
|
|
942
|
+
const cwd = process.cwd();
|
|
886
943
|
const loader = new DefaultResourceLoader({
|
|
887
944
|
cwd,
|
|
888
945
|
agentDir: getAgentDir(),
|
|
@@ -922,7 +979,7 @@ interface LoadExtensionsResult {
|
|
|
922
979
|
## Complete Example
|
|
923
980
|
|
|
924
981
|
```typescript
|
|
925
|
-
import { getModel } from "@earendil-works/pi-ai";
|
|
982
|
+
import { getModel } from "@earendil-works/pi-ai/compat";
|
|
926
983
|
import { Type } from "typebox";
|
|
927
984
|
import {
|
|
928
985
|
createAgentSession,
|
|
@@ -938,7 +995,7 @@ const modelRuntime = await ModelRuntime.create({
|
|
|
938
995
|
modelsPath: "/custom/agent/models.json",
|
|
939
996
|
});
|
|
940
997
|
if (process.env.MY_KEY) {
|
|
941
|
-
modelRuntime.setRuntimeApiKey("anthropic", process.env.MY_KEY);
|
|
998
|
+
await modelRuntime.setRuntimeApiKey("anthropic", process.env.MY_KEY);
|
|
942
999
|
}
|
|
943
1000
|
|
|
944
1001
|
// Inline tool
|
|
@@ -997,43 +1054,17 @@ await session.prompt("Get status and list files.");
|
|
|
997
1054
|
|
|
998
1055
|
## Run Modes
|
|
999
1056
|
|
|
1000
|
-
The SDK exports run mode utilities
|
|
1057
|
+
The SDK exports run mode utilities that operate on an `AgentSessionRuntime`. Start with the [session-runtime example](../examples/sdk/13-session-runtime.ts) to create the runtime and rebind session-local work after replacement.
|
|
1001
1058
|
|
|
1002
1059
|
### InteractiveMode
|
|
1003
1060
|
|
|
1004
1061
|
Full TUI interactive mode with editor, chat history, and all built-in commands:
|
|
1005
1062
|
|
|
1006
1063
|
```typescript
|
|
1007
|
-
import {
|
|
1008
|
-
type CreateAgentSessionRuntimeFactory,
|
|
1009
|
-
createAgentSessionFromServices,
|
|
1010
|
-
createAgentSessionRuntime,
|
|
1011
|
-
createAgentSessionServices,
|
|
1012
|
-
getAgentDir,
|
|
1013
|
-
InteractiveMode,
|
|
1014
|
-
SessionManager,
|
|
1015
|
-
} from "@astralyn/pi";
|
|
1016
|
-
|
|
1017
|
-
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1018
|
-
const services = await createAgentSessionServices({ cwd });
|
|
1019
|
-
return {
|
|
1020
|
-
...(await createAgentSessionFromServices({ services, sessionManager, sessionStartEvent })),
|
|
1021
|
-
services,
|
|
1022
|
-
diagnostics: services.diagnostics,
|
|
1023
|
-
};
|
|
1024
|
-
};
|
|
1025
|
-
const runtime = await createAgentSessionRuntime(createRuntime, {
|
|
1026
|
-
cwd: process.cwd(),
|
|
1027
|
-
agentDir: getAgentDir(),
|
|
1028
|
-
sessionManager: SessionManager.create(process.cwd()),
|
|
1029
|
-
});
|
|
1064
|
+
import { InteractiveMode } from "@astralyn/pi";
|
|
1030
1065
|
|
|
1031
1066
|
const mode = new InteractiveMode(runtime, {
|
|
1032
|
-
migratedProviders: [],
|
|
1033
|
-
modelFallbackMessage: undefined,
|
|
1034
1067
|
initialMessage: "Hello",
|
|
1035
|
-
initialImages: [],
|
|
1036
|
-
initialMessages: [],
|
|
1037
1068
|
});
|
|
1038
1069
|
|
|
1039
1070
|
await mode.run();
|
|
@@ -1041,34 +1072,12 @@ await mode.run();
|
|
|
1041
1072
|
|
|
1042
1073
|
### runPrintMode
|
|
1043
1074
|
|
|
1044
|
-
Single-shot mode: send prompts, output result, exit:
|
|
1075
|
+
Single-shot mode: send prompts, output the result, dispose the runtime, and return an exit code:
|
|
1045
1076
|
|
|
1046
1077
|
```typescript
|
|
1047
|
-
import {
|
|
1048
|
-
type CreateAgentSessionRuntimeFactory,
|
|
1049
|
-
createAgentSessionFromServices,
|
|
1050
|
-
createAgentSessionRuntime,
|
|
1051
|
-
createAgentSessionServices,
|
|
1052
|
-
getAgentDir,
|
|
1053
|
-
runPrintMode,
|
|
1054
|
-
SessionManager,
|
|
1055
|
-
} from "@astralyn/pi";
|
|
1056
|
-
|
|
1057
|
-
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1058
|
-
const services = await createAgentSessionServices({ cwd });
|
|
1059
|
-
return {
|
|
1060
|
-
...(await createAgentSessionFromServices({ services, sessionManager, sessionStartEvent })),
|
|
1061
|
-
services,
|
|
1062
|
-
diagnostics: services.diagnostics,
|
|
1063
|
-
};
|
|
1064
|
-
};
|
|
1065
|
-
const runtime = await createAgentSessionRuntime(createRuntime, {
|
|
1066
|
-
cwd: process.cwd(),
|
|
1067
|
-
agentDir: getAgentDir(),
|
|
1068
|
-
sessionManager: SessionManager.create(process.cwd()),
|
|
1069
|
-
});
|
|
1078
|
+
import { runPrintMode } from "@astralyn/pi";
|
|
1070
1079
|
|
|
1071
|
-
await runPrintMode(runtime, {
|
|
1080
|
+
const exitCode = await runPrintMode(runtime, {
|
|
1072
1081
|
mode: "text",
|
|
1073
1082
|
initialMessage: "Hello",
|
|
1074
1083
|
initialImages: [],
|
|
@@ -1078,32 +1087,10 @@ await runPrintMode(runtime, {
|
|
|
1078
1087
|
|
|
1079
1088
|
### runRpcMode
|
|
1080
1089
|
|
|
1081
|
-
JSON-RPC mode for subprocess integration:
|
|
1090
|
+
JSON-RPC mode for subprocess integration. It owns standard input/output and does not return normally:
|
|
1082
1091
|
|
|
1083
1092
|
```typescript
|
|
1084
|
-
import {
|
|
1085
|
-
type CreateAgentSessionRuntimeFactory,
|
|
1086
|
-
createAgentSessionFromServices,
|
|
1087
|
-
createAgentSessionRuntime,
|
|
1088
|
-
createAgentSessionServices,
|
|
1089
|
-
getAgentDir,
|
|
1090
|
-
runRpcMode,
|
|
1091
|
-
SessionManager,
|
|
1092
|
-
} from "@astralyn/pi";
|
|
1093
|
-
|
|
1094
|
-
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1095
|
-
const services = await createAgentSessionServices({ cwd });
|
|
1096
|
-
return {
|
|
1097
|
-
...(await createAgentSessionFromServices({ services, sessionManager, sessionStartEvent })),
|
|
1098
|
-
services,
|
|
1099
|
-
diagnostics: services.diagnostics,
|
|
1100
|
-
};
|
|
1101
|
-
};
|
|
1102
|
-
const runtime = await createAgentSessionRuntime(createRuntime, {
|
|
1103
|
-
cwd: process.cwd(),
|
|
1104
|
-
agentDir: getAgentDir(),
|
|
1105
|
-
sessionManager: SessionManager.create(process.cwd()),
|
|
1106
|
-
});
|
|
1093
|
+
import { runRpcMode } from "@astralyn/pi";
|
|
1107
1094
|
|
|
1108
1095
|
await runRpcMode(runtime);
|
|
1109
1096
|
```
|
|
@@ -1133,7 +1120,7 @@ RPC mode is preferred when:
|
|
|
1133
1120
|
|
|
1134
1121
|
## Exports
|
|
1135
1122
|
|
|
1136
|
-
|
|
1123
|
+
Selected SDK exports from the main entry point include:
|
|
1137
1124
|
|
|
1138
1125
|
```typescript
|
|
1139
1126
|
// Factory
|
|
@@ -1144,6 +1131,7 @@ AgentSessionRuntime
|
|
|
1144
1131
|
// Auth and Models
|
|
1145
1132
|
ModelRuntime // implements pi-ai Models and owns credential storage
|
|
1146
1133
|
ModelRegistry // synchronous extension compatibility facade
|
|
1134
|
+
CredentialSynchronizationError
|
|
1147
1135
|
resolveCliModel
|
|
1148
1136
|
resolveModelScopeWithDiagnostics
|
|
1149
1137
|
|
|
@@ -1180,7 +1168,6 @@ type ExtensionAPI
|
|
|
1180
1168
|
type ToolDefinition
|
|
1181
1169
|
type Skill
|
|
1182
1170
|
type PromptTemplate
|
|
1183
|
-
type Tool
|
|
1184
1171
|
```
|
|
1185
1172
|
|
|
1186
1173
|
For extension types, see [extensions.md](extensions.md) for the full API.
|