@caupulican/pi-adaptative 0.80.18 → 0.80.20
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 +37 -24
- package/README.md +1 -1
- package/dist/bun/register-bedrock.d.ts.map +1 -1
- package/dist/bun/register-bedrock.js +2 -2
- package/dist/bun/register-bedrock.js.map +1 -1
- package/dist/cli/args.d.ts +1 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts.map +1 -1
- package/dist/cli/config-selector.js +1 -1
- package/dist/cli/config-selector.js.map +1 -1
- package/dist/cli/file-processor.d.ts +1 -1
- 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.map +1 -1
- package/dist/cli/list-models.js +1 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli/session-picker.d.ts.map +1 -1
- package/dist/cli/session-picker.js +1 -1
- package/dist/cli/session-picker.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +2 -2
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +2 -2
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +1 -1
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-storage.d.ts +2 -2
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +2 -2
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -2
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/compaction/utils.d.ts +2 -2
- 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 +1 -1
- package/dist/core/defaults.d.ts.map +1 -1
- package/dist/core/defaults.js.map +1 -1
- package/dist/core/export-html/index.d.ts +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/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +19 -9
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +5 -5
- 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 +1 -1
- package/dist/core/extensions/wrapper.d.ts.map +1 -1
- package/dist/core/extensions/wrapper.js.map +1 -1
- package/dist/core/keybindings.d.ts +2 -2
- package/dist/core/keybindings.d.ts.map +1 -1
- package/dist/core/keybindings.js +1 -1
- package/dist/core/keybindings.js.map +1 -1
- package/dist/core/messages.d.ts +3 -3
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts +1 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +2 -2
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts +2 -2
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +1 -1
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +1 -1
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/sdk.d.ts +3 -3
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +3 -3
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +2 -2
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +1 -1
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +1 -1
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/tools/bash.d.ts +1 -1
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +1 -1
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit.d.ts +2 -2
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +1 -1
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/index.d.ts +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 +1 -1
- package/dist/core/tools/ls.d.ts.map +1 -1
- package/dist/core/tools/ls.js +1 -1
- package/dist/core/tools/ls.js.map +1 -1
- package/dist/core/tools/read.d.ts +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 +1 -1
- package/dist/core/tools/render-utils.d.ts.map +1 -1
- package/dist/core/tools/render-utils.js +1 -1
- package/dist/core/tools/render-utils.js.map +1 -1
- package/dist/core/tools/tool-definition-wrapper.d.ts +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/write.d.ts +1 -1
- package/dist/core/tools/write.d.ts.map +1 -1
- package/dist/core/tools/write.js +1 -1
- package/dist/core/tools/write.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/modes/interactive/components/armin.d.ts +1 -1
- package/dist/modes/interactive/components/armin.d.ts.map +1 -1
- package/dist/modes/interactive/components/armin.js.map +1 -1
- package/dist/modes/interactive/components/assistant-message.d.ts +2 -2
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/assistant-message.js +1 -1
- package/dist/modes/interactive/components/assistant-message.js.map +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts +1 -1
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/bash-execution.js +1 -1
- package/dist/modes/interactive/components/bash-execution.js.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts +1 -1
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -1
- package/dist/modes/interactive/components/bordered-loader.js +1 -1
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.d.ts +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 -1
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +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 -1
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +1 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts +1 -1
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -1
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts +1 -1
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-editor.js +1 -1
- package/dist/modes/interactive/components/custom-editor.js.map +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts +1 -1
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +1 -1
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -1
- package/dist/modes/interactive/components/daxnuts.js.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts +1 -1
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -1
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts +1 -1
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js +1 -1
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts +1 -1
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-editor.js +1 -1
- package/dist/modes/interactive/components/extension-editor.js.map +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts +1 -1
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-input.js +1 -1
- 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 -1
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/footer.d.ts +1 -1
- package/dist/modes/interactive/components/footer.d.ts.map +1 -1
- package/dist/modes/interactive/components/footer.js +1 -1
- package/dist/modes/interactive/components/footer.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js +1 -1
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +2 -2
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +2 -2
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +2 -2
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +2 -2
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +1 -1
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +2 -2
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- 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 +1 -1
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +1 -1
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +3 -3
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +1 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts +1 -1
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/show-images-selector.js +1 -1
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +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 -1
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/theme-selector.js +1 -1
- package/dist/modes/interactive/components/theme-selector.js.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.d.ts +2 -2
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/thinking-selector.js +1 -1
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts +1 -1
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +1 -1
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-group.js +1 -1
- package/dist/modes/interactive/components/tool-group.js.map +1 -1
- package/dist/modes/interactive/components/tool-title.d.ts +1 -1
- package/dist/modes/interactive/components/tool-title.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-title.js +1 -1
- package/dist/modes/interactive/components/tool-title.js.map +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts +1 -1
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +1 -1
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/trust-selector.js +1 -1
- package/dist/modes/interactive/components/trust-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts +1 -1
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message-selector.js +1 -1
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -1
- package/dist/modes/interactive/components/user-message.d.ts +1 -1
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/user-message.js +1 -1
- 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 +1 -1
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +2 -2
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/theme.d.ts +1 -1
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -1
- package/dist/modes/interactive/theme/theme.js +2 -2
- package/dist/modes/interactive/theme/theme.js.map +1 -1
- package/dist/modes/print-mode.d.ts +1 -1
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +2 -2
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +2 -2
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +1 -1
- package/dist/package-manager-cli.js.map +1 -1
- package/docs/compaction.md +2 -2
- package/docs/custom-provider.md +4 -4
- package/docs/extensions.md +28 -28
- package/docs/index.md +3 -3
- package/docs/packages.md +1 -1
- package/docs/quickstart.md +5 -5
- package/docs/rpc.md +1 -1
- package/docs/sdk.md +25 -25
- package/docs/session-format.md +1 -1
- package/docs/termux.md +1 -1
- package/docs/tui.md +22 -22
- package/examples/extensions/README.md +2 -2
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bash-spawn-hook.ts +2 -2
- package/examples/extensions/bookmark.ts +1 -1
- package/examples/extensions/border-status-editor.ts +3 -3
- package/examples/extensions/built-in-tool-renderer.ts +3 -3
- package/examples/extensions/claude-rules.ts +1 -1
- package/examples/extensions/commands.ts +1 -1
- package/examples/extensions/confirm-destructive.ts +1 -1
- package/examples/extensions/custom-compaction.ts +3 -3
- package/examples/extensions/custom-footer.ts +3 -3
- package/examples/extensions/custom-header.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/index.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +2 -2
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +1 -1
- package/examples/extensions/dirty-repo-guard.ts +1 -1
- package/examples/extensions/doom-overlay/doom-component.ts +2 -2
- package/examples/extensions/doom-overlay/doom-keys.ts +1 -1
- package/examples/extensions/doom-overlay/index.ts +1 -1
- package/examples/extensions/dynamic-resources/index.ts +1 -1
- package/examples/extensions/dynamic-tools.ts +1 -1
- package/examples/extensions/event-bus.ts +1 -1
- package/examples/extensions/file-trigger.ts +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/git-merge-and-resolve.ts +1 -1
- package/examples/extensions/github-issue-autocomplete.ts +2 -2
- package/examples/extensions/handoff.ts +4 -4
- package/examples/extensions/hello.ts +2 -2
- package/examples/extensions/hidden-thinking-label.ts +1 -1
- package/examples/extensions/inline-bash.ts +1 -1
- package/examples/extensions/input-transform-streaming.ts +1 -1
- package/examples/extensions/input-transform.ts +1 -1
- package/examples/extensions/interactive-shell.ts +1 -1
- package/examples/extensions/mac-system-theme.ts +1 -1
- package/examples/extensions/message-renderer.ts +2 -2
- package/examples/extensions/minimal-mode.ts +3 -3
- package/examples/extensions/modal-editor.ts +2 -2
- package/examples/extensions/model-status.ts +1 -1
- package/examples/extensions/notify.ts +1 -1
- package/examples/extensions/overlay-qa-tests.ts +3 -3
- package/examples/extensions/overlay-test.ts +2 -2
- package/examples/extensions/permission-gate.ts +1 -1
- package/examples/extensions/pirate.ts +1 -1
- package/examples/extensions/plan-mode/index.ts +4 -4
- package/examples/extensions/preset.ts +4 -4
- package/examples/extensions/prompt-customizer.ts +1 -1
- package/examples/extensions/protected-paths.ts +1 -1
- package/examples/extensions/provider-payload.ts +1 -1
- package/examples/extensions/qna.ts +3 -3
- package/examples/extensions/question.ts +2 -2
- package/examples/extensions/questionnaire.ts +2 -2
- package/examples/extensions/rainbow-editor.ts +1 -1
- package/examples/extensions/reload-runtime.ts +1 -1
- package/examples/extensions/rpc-demo.ts +1 -1
- package/examples/extensions/sandbox/index.ts +2 -2
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/send-user-message.ts +1 -1
- package/examples/extensions/session-name.ts +1 -1
- package/examples/extensions/shutdown-command.ts +1 -1
- package/examples/extensions/snake.ts +2 -2
- package/examples/extensions/space-invaders.ts +2 -2
- package/examples/extensions/ssh.ts +2 -2
- package/examples/extensions/status-line.ts +1 -1
- package/examples/extensions/structured-output.ts +2 -2
- package/examples/extensions/subagent/agents.ts +1 -1
- package/examples/extensions/subagent/index.ts +5 -5
- package/examples/extensions/summarize.ts +4 -4
- package/examples/extensions/system-prompt-header.ts +1 -1
- package/examples/extensions/tic-tac-toe.ts +3 -3
- package/examples/extensions/timed-confirm.ts +1 -1
- package/examples/extensions/titlebar-spinner.ts +1 -1
- package/examples/extensions/todo.ts +3 -3
- package/examples/extensions/tool-override.ts +2 -2
- package/examples/extensions/tools.ts +3 -3
- package/examples/extensions/trigger-compact.ts +1 -1
- package/examples/extensions/truncated-tool.ts +3 -3
- package/examples/extensions/widget-placement.ts +1 -1
- package/examples/extensions/with-deps/index.ts +1 -1
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/extensions/working-indicator.ts +1 -1
- package/examples/extensions/working-message-test.ts +1 -1
- package/examples/rpc-extension-ui.ts +1 -1
- package/examples/sdk/01-minimal.ts +1 -1
- package/examples/sdk/02-custom-model.ts +2 -2
- package/examples/sdk/03-custom-prompt.ts +1 -6
- package/examples/sdk/04-skills.ts +1 -1
- package/examples/sdk/05-tools.ts +1 -1
- package/examples/sdk/06-extensions.ts +2 -7
- package/examples/sdk/07-context-files.ts +1 -6
- package/examples/sdk/08-prompt-templates.ts +1 -1
- package/examples/sdk/09-api-keys-and-oauth.ts +1 -1
- package/examples/sdk/10-settings.ts +1 -1
- package/examples/sdk/11-sessions.ts +1 -1
- package/examples/sdk/12-full-control.ts +2 -2
- package/examples/sdk/13-session-runtime.ts +1 -1
- package/examples/sdk/README.md +2 -2
- package/npm-shrinkwrap.json +15 -15
- package/package.json +4 -4
package/docs/sdk.md
CHANGED
|
@@ -16,7 +16,7 @@ See [examples/sdk/](../examples/sdk/) for working examples from minimal to full
|
|
|
16
16
|
## Quick Start
|
|
17
17
|
|
|
18
18
|
```typescript
|
|
19
|
-
import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@
|
|
19
|
+
import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@caupulican/pi-adaptative";
|
|
20
20
|
|
|
21
21
|
// Set up credential storage and model registry
|
|
22
22
|
const authStorage = AuthStorage.create();
|
|
@@ -40,7 +40,7 @@ await session.prompt("What files are in the current directory?");
|
|
|
40
40
|
## Installation
|
|
41
41
|
|
|
42
42
|
```bash
|
|
43
|
-
npm install @
|
|
43
|
+
npm install @caupulican/pi-adaptative
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
The SDK is included in the main package. No separate installation needed.
|
|
@@ -54,7 +54,7 @@ The main factory function for a single `AgentSession`.
|
|
|
54
54
|
`createAgentSession()` uses a `ResourceLoader` to supply extensions, skills, prompt templates, themes, and context files. If you do not provide one, it uses `DefaultResourceLoader` with standard discovery.
|
|
55
55
|
|
|
56
56
|
```typescript
|
|
57
|
-
import { createAgentSession, SessionManager } from "@
|
|
57
|
+
import { createAgentSession, SessionManager } from "@caupulican/pi-adaptative";
|
|
58
58
|
|
|
59
59
|
// Minimal: defaults with DefaultResourceLoader
|
|
60
60
|
const { session } = await createAgentSession();
|
|
@@ -132,7 +132,7 @@ import {
|
|
|
132
132
|
createAgentSessionServices,
|
|
133
133
|
getAgentDir,
|
|
134
134
|
SessionManager,
|
|
135
|
-
} from "@
|
|
135
|
+
} from "@caupulican/pi-adaptative";
|
|
136
136
|
|
|
137
137
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
138
138
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -239,7 +239,7 @@ Both `steer()` and `followUp()` expand file-based prompt templates but error on
|
|
|
239
239
|
|
|
240
240
|
### Agent and AgentState
|
|
241
241
|
|
|
242
|
-
The `Agent` class (from `@
|
|
242
|
+
The `Agent` class (from `@caupulican/pi-agent-core`) handles the core LLM interaction. Access it via `session.agent`.
|
|
243
243
|
|
|
244
244
|
```typescript
|
|
245
245
|
// Access current state
|
|
@@ -368,8 +368,8 @@ When you pass a custom `ResourceLoader`, `cwd` and `agentDir` no longer control
|
|
|
368
368
|
### Model
|
|
369
369
|
|
|
370
370
|
```typescript
|
|
371
|
-
import { getModel } from "@
|
|
372
|
-
import { AuthStorage, ModelRegistry } from "@
|
|
371
|
+
import { getModel } from "@caupulican/pi-ai";
|
|
372
|
+
import { AuthStorage, ModelRegistry } from "@caupulican/pi-adaptative";
|
|
373
373
|
|
|
374
374
|
const authStorage = AuthStorage.create();
|
|
375
375
|
const modelRegistry = ModelRegistry.create(authStorage);
|
|
@@ -416,7 +416,7 @@ API key resolution priority (handled by AuthStorage):
|
|
|
416
416
|
4. Fallback resolver (for custom provider keys from `models.json`)
|
|
417
417
|
|
|
418
418
|
```typescript
|
|
419
|
-
import { AuthStorage, ModelRegistry } from "@
|
|
419
|
+
import { AuthStorage, ModelRegistry } from "@caupulican/pi-adaptative";
|
|
420
420
|
|
|
421
421
|
// Default: uses ~/.pi/agent/auth.json and ~/.pi/agent/models.json
|
|
422
422
|
const authStorage = AuthStorage.create();
|
|
@@ -452,7 +452,7 @@ const simpleRegistry = ModelRegistry.inMemory(authStorage);
|
|
|
452
452
|
Use a `ResourceLoader` to override the system prompt:
|
|
453
453
|
|
|
454
454
|
```typescript
|
|
455
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
455
|
+
import { createAgentSession, DefaultResourceLoader } from "@caupulican/pi-adaptative";
|
|
456
456
|
|
|
457
457
|
const loader = new DefaultResourceLoader({
|
|
458
458
|
systemPromptOverride: () => "You are a helpful assistant.",
|
|
@@ -477,7 +477,7 @@ Specify which built-in tools to enable:
|
|
|
477
477
|
The `edit` tool returns `details.diff` for Pi's TUI display and `details.patch` as a standard unified patch for SDK consumers.
|
|
478
478
|
|
|
479
479
|
```typescript
|
|
480
|
-
import { createAgentSession } from "@
|
|
480
|
+
import { createAgentSession } from "@caupulican/pi-adaptative";
|
|
481
481
|
|
|
482
482
|
// Read-only mode
|
|
483
483
|
const { session } = await createAgentSession({
|
|
@@ -500,7 +500,7 @@ const { session } = await createAgentSession({
|
|
|
500
500
|
When you pass a custom `cwd`, `createAgentSession()` builds selected built-in tools for that cwd.
|
|
501
501
|
|
|
502
502
|
```typescript
|
|
503
|
-
import { createAgentSession, SessionManager } from "@
|
|
503
|
+
import { createAgentSession, SessionManager } from "@caupulican/pi-adaptative";
|
|
504
504
|
|
|
505
505
|
const cwd = "/path/to/project";
|
|
506
506
|
|
|
@@ -524,7 +524,7 @@ const { session } = await createAgentSession({
|
|
|
524
524
|
|
|
525
525
|
```typescript
|
|
526
526
|
import { Type } from "typebox";
|
|
527
|
-
import { createAgentSession, defineTool } from "@
|
|
527
|
+
import { createAgentSession, defineTool } from "@caupulican/pi-adaptative";
|
|
528
528
|
|
|
529
529
|
// Inline custom tool
|
|
530
530
|
const myTool = defineTool({
|
|
@@ -559,7 +559,7 @@ If you pass `tools`, include each custom or extension tool name you want enabled
|
|
|
559
559
|
Extensions are loaded by the `ResourceLoader`. `DefaultResourceLoader` discovers extensions from `~/.pi/agent/extensions/`, `.pi/extensions/`, and settings.json extension sources.
|
|
560
560
|
|
|
561
561
|
```typescript
|
|
562
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
562
|
+
import { createAgentSession, DefaultResourceLoader } from "@caupulican/pi-adaptative";
|
|
563
563
|
|
|
564
564
|
const loader = new DefaultResourceLoader({
|
|
565
565
|
additionalExtensionPaths: ["/path/to/my-extension.ts"],
|
|
@@ -581,7 +581,7 @@ Extensions can register tools, subscribe to events, add commands, and more. See
|
|
|
581
581
|
**Event Bus:** Extensions can communicate via `pi.events`. Pass a shared `eventBus` to `DefaultResourceLoader` if you need to emit or listen from outside:
|
|
582
582
|
|
|
583
583
|
```typescript
|
|
584
|
-
import { createEventBus, DefaultResourceLoader } from "@
|
|
584
|
+
import { createEventBus, DefaultResourceLoader } from "@caupulican/pi-adaptative";
|
|
585
585
|
|
|
586
586
|
const eventBus = createEventBus();
|
|
587
587
|
const loader = new DefaultResourceLoader({
|
|
@@ -601,7 +601,7 @@ import {
|
|
|
601
601
|
createAgentSession,
|
|
602
602
|
DefaultResourceLoader,
|
|
603
603
|
type Skill,
|
|
604
|
-
} from "@
|
|
604
|
+
} from "@caupulican/pi-adaptative";
|
|
605
605
|
|
|
606
606
|
const customSkill: Skill = {
|
|
607
607
|
name: "my-skill",
|
|
@@ -627,7 +627,7 @@ const { session } = await createAgentSession({ resourceLoader: loader });
|
|
|
627
627
|
### Context Files
|
|
628
628
|
|
|
629
629
|
```typescript
|
|
630
|
-
import { createAgentSession, DefaultResourceLoader } from "@
|
|
630
|
+
import { createAgentSession, DefaultResourceLoader } from "@caupulican/pi-adaptative";
|
|
631
631
|
|
|
632
632
|
const loader = new DefaultResourceLoader({
|
|
633
633
|
agentsFilesOverride: (current) => ({
|
|
@@ -651,7 +651,7 @@ import {
|
|
|
651
651
|
createAgentSession,
|
|
652
652
|
DefaultResourceLoader,
|
|
653
653
|
type PromptTemplate,
|
|
654
|
-
} from "@
|
|
654
|
+
} from "@caupulican/pi-adaptative";
|
|
655
655
|
|
|
656
656
|
const customCommand: PromptTemplate = {
|
|
657
657
|
name: "deploy",
|
|
@@ -686,7 +686,7 @@ import {
|
|
|
686
686
|
createAgentSessionServices,
|
|
687
687
|
getAgentDir,
|
|
688
688
|
SessionManager,
|
|
689
|
-
} from "@
|
|
689
|
+
} from "@caupulican/pi-adaptative";
|
|
690
690
|
|
|
691
691
|
// In-memory (no persistence)
|
|
692
692
|
const { session } = await createAgentSession({
|
|
@@ -780,7 +780,7 @@ sm.createBranchedSession(leafId); // Extract path to new file
|
|
|
780
780
|
### Settings Management
|
|
781
781
|
|
|
782
782
|
```typescript
|
|
783
|
-
import { createAgentSession, SettingsManager, SessionManager } from "@
|
|
783
|
+
import { createAgentSession, SettingsManager, SessionManager } from "@caupulican/pi-adaptative";
|
|
784
784
|
|
|
785
785
|
// Default: loads from files (global + project merged)
|
|
786
786
|
const { session } = await createAgentSession({
|
|
@@ -836,7 +836,7 @@ Use `DefaultResourceLoader` to discover extensions, skills, prompts, themes, and
|
|
|
836
836
|
import {
|
|
837
837
|
DefaultResourceLoader,
|
|
838
838
|
getAgentDir,
|
|
839
|
-
} from "@
|
|
839
|
+
} from "@caupulican/pi-adaptative";
|
|
840
840
|
|
|
841
841
|
const loader = new DefaultResourceLoader({
|
|
842
842
|
cwd,
|
|
@@ -877,7 +877,7 @@ interface LoadExtensionsResult {
|
|
|
877
877
|
## Complete Example
|
|
878
878
|
|
|
879
879
|
```typescript
|
|
880
|
-
import { getModel } from "@
|
|
880
|
+
import { getModel } from "@caupulican/pi-ai";
|
|
881
881
|
import { Type } from "typebox";
|
|
882
882
|
import {
|
|
883
883
|
AuthStorage,
|
|
@@ -887,7 +887,7 @@ import {
|
|
|
887
887
|
ModelRegistry,
|
|
888
888
|
SessionManager,
|
|
889
889
|
SettingsManager,
|
|
890
|
-
} from "@
|
|
890
|
+
} from "@caupulican/pi-adaptative";
|
|
891
891
|
|
|
892
892
|
// Set up auth storage (custom location)
|
|
893
893
|
const authStorage = AuthStorage.create("/custom/agent/auth.json");
|
|
@@ -972,7 +972,7 @@ import {
|
|
|
972
972
|
getAgentDir,
|
|
973
973
|
InteractiveMode,
|
|
974
974
|
SessionManager,
|
|
975
|
-
} from "@
|
|
975
|
+
} from "@caupulican/pi-adaptative";
|
|
976
976
|
|
|
977
977
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
978
978
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -1012,7 +1012,7 @@ import {
|
|
|
1012
1012
|
getAgentDir,
|
|
1013
1013
|
runPrintMode,
|
|
1014
1014
|
SessionManager,
|
|
1015
|
-
} from "@
|
|
1015
|
+
} from "@caupulican/pi-adaptative";
|
|
1016
1016
|
|
|
1017
1017
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1018
1018
|
const services = await createAgentSessionServices({ cwd });
|
|
@@ -1049,7 +1049,7 @@ import {
|
|
|
1049
1049
|
getAgentDir,
|
|
1050
1050
|
runRpcMode,
|
|
1051
1051
|
SessionManager,
|
|
1052
|
-
} from "@
|
|
1052
|
+
} from "@caupulican/pi-adaptative";
|
|
1053
1053
|
|
|
1054
1054
|
const createRuntime: CreateAgentSessionRuntimeFactory = async ({ cwd, sessionManager, sessionStartEvent }) => {
|
|
1055
1055
|
const services = await createAgentSessionServices({ cwd });
|
package/docs/session-format.md
CHANGED
|
@@ -34,7 +34,7 @@ Source on GitHub ([pi-mono](https://github.com/earendil-works/pi-mono)):
|
|
|
34
34
|
- [`packages/ai/src/types.ts`](https://github.com/earendil-works/pi-mono/blob/main/packages/ai/src/types.ts) - Base message types (UserMessage, AssistantMessage, ToolResultMessage)
|
|
35
35
|
- [`packages/agent/src/types.ts`](https://github.com/earendil-works/pi-mono/blob/main/packages/agent/src/types.ts) - AgentMessage union type
|
|
36
36
|
|
|
37
|
-
For TypeScript definitions in your project, inspect `node_modules/@
|
|
37
|
+
For TypeScript definitions in your project, inspect `node_modules/@caupulican/pi-adaptative/dist/` and `node_modules/@caupulican/pi-ai/dist/`.
|
|
38
38
|
|
|
39
39
|
## Message Types
|
|
40
40
|
|
package/docs/termux.md
CHANGED
|
@@ -17,7 +17,7 @@ pkg update && pkg upgrade
|
|
|
17
17
|
pkg install nodejs termux-api git
|
|
18
18
|
|
|
19
19
|
# Install pi
|
|
20
|
-
npm install -g --ignore-scripts @
|
|
20
|
+
npm install -g --ignore-scripts @caupulican/pi-adaptative
|
|
21
21
|
|
|
22
22
|
# Create config directory
|
|
23
23
|
mkdir -p ~/.pi/agent
|
package/docs/tui.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
Extensions and custom tools can render custom TUI components for interactive user interfaces. This page covers the component system and available building blocks.
|
|
6
6
|
|
|
7
|
-
**Source:** [`@
|
|
7
|
+
**Source:** [`@caupulican/pi-tui`](https://github.com/earendil-works/pi-mono/tree/main/packages/tui)
|
|
8
8
|
|
|
9
9
|
## Component Interface
|
|
10
10
|
|
|
@@ -33,7 +33,7 @@ The TUI appends a full SGR reset and OSC 8 reset at the end of each rendered lin
|
|
|
33
33
|
Components that display a text cursor and need IME (Input Method Editor) support should implement the `Focusable` interface:
|
|
34
34
|
|
|
35
35
|
```typescript
|
|
36
|
-
import { CURSOR_MARKER, type Component, type Focusable } from "@
|
|
36
|
+
import { CURSOR_MARKER, type Component, type Focusable } from "@caupulican/pi-tui";
|
|
37
37
|
|
|
38
38
|
class MyInput implements Component, Focusable {
|
|
39
39
|
focused: boolean = false; // Set by TUI when focus changes
|
|
@@ -59,7 +59,7 @@ The cursor remains hidden by default. This keeps the fake cursor rendering, whil
|
|
|
59
59
|
When a container component (dialog, selector, etc.) contains an `Input` or `Editor` child, the container must implement `Focusable` and propagate the focus state to the child. Otherwise, the hardware cursor won't be positioned correctly for IME input.
|
|
60
60
|
|
|
61
61
|
```typescript
|
|
62
|
-
import { Container, type Focusable, Input } from "@
|
|
62
|
+
import { Container, type Focusable, Input } from "@caupulican/pi-tui";
|
|
63
63
|
|
|
64
64
|
class SearchDialog extends Container implements Focusable {
|
|
65
65
|
private searchInput: Input;
|
|
@@ -179,10 +179,10 @@ See [overlay-qa-tests.ts](../examples/extensions/overlay-qa-tests.ts) for compre
|
|
|
179
179
|
|
|
180
180
|
## Built-in Components
|
|
181
181
|
|
|
182
|
-
Import from `@
|
|
182
|
+
Import from `@caupulican/pi-tui`:
|
|
183
183
|
|
|
184
184
|
```typescript
|
|
185
|
-
import { Text, Box, Container, Spacer, Markdown } from "@
|
|
185
|
+
import { Text, Box, Container, Spacer, Markdown } from "@caupulican/pi-tui";
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
### Text
|
|
@@ -264,7 +264,7 @@ const image = new Image(
|
|
|
264
264
|
Use `matchesKey()` for key detection:
|
|
265
265
|
|
|
266
266
|
```typescript
|
|
267
|
-
import { matchesKey, Key } from "@
|
|
267
|
+
import { matchesKey, Key } from "@caupulican/pi-tui";
|
|
268
268
|
|
|
269
269
|
handleInput(data: string) {
|
|
270
270
|
if (matchesKey(data, Key.up)) {
|
|
@@ -290,7 +290,7 @@ handleInput(data: string) {
|
|
|
290
290
|
**Critical:** Each line from `render()` must not exceed the `width` parameter.
|
|
291
291
|
|
|
292
292
|
```typescript
|
|
293
|
-
import { visibleWidth, truncateToWidth } from "@
|
|
293
|
+
import { visibleWidth, truncateToWidth } from "@caupulican/pi-tui";
|
|
294
294
|
|
|
295
295
|
render(width: number): string[] {
|
|
296
296
|
// Truncate long lines
|
|
@@ -311,7 +311,7 @@ Example: Interactive selector
|
|
|
311
311
|
import {
|
|
312
312
|
matchesKey, Key,
|
|
313
313
|
truncateToWidth, visibleWidth
|
|
314
|
-
} from "@
|
|
314
|
+
} from "@caupulican/pi-tui";
|
|
315
315
|
|
|
316
316
|
class MySelector {
|
|
317
317
|
private items: string[];
|
|
@@ -425,8 +425,8 @@ renderResult(result, options, theme, context) {
|
|
|
425
425
|
**For Markdown**, use `getMarkdownTheme()`:
|
|
426
426
|
|
|
427
427
|
```typescript
|
|
428
|
-
import { getMarkdownTheme } from "@
|
|
429
|
-
import { Markdown } from "@
|
|
428
|
+
import { getMarkdownTheme } from "@caupulican/pi-adaptative";
|
|
429
|
+
import { Markdown } from "@caupulican/pi-tui";
|
|
430
430
|
|
|
431
431
|
renderResult(result, options, theme, context) {
|
|
432
432
|
const mdTheme = getMarkdownTheme();
|
|
@@ -587,12 +587,12 @@ These patterns cover the most common UI needs in extensions. **Copy these patter
|
|
|
587
587
|
|
|
588
588
|
### Pattern 0: Title Badge
|
|
589
589
|
|
|
590
|
-
For compact status labels in custom messages, skill renderers, and `renderCall`/`renderResult`, use `TitleBadgeComponent` or `titleBadge()` from `@
|
|
590
|
+
For compact status labels in custom messages, skill renderers, and `renderCall`/`renderResult`, use `TitleBadgeComponent` or `titleBadge()` from `@caupulican/pi-adaptative`. It keeps titles visually consistent, compact, theme-balanced, and width-bounded. `ToolTitleComponent`/`toolTitle()` remain aliases for tool-specific code.
|
|
591
591
|
|
|
592
592
|
Status colors intentionally map to theme tokens instead of hard-coded ANSI values: `error`/`failed`/`failure`/`blocked` use `error` red, `persistent`/`pending`/`warning`/`cancelled` use `warning` yellow, `success` uses `success` green, `running` uses `accent`, and `idle`/`disabled`/`muted` stay subdued. Keep generated ids out of badge text and `details`; store ids in result metadata for control/debug flows instead.
|
|
593
593
|
|
|
594
594
|
```typescript
|
|
595
|
-
import { titleBadge } from "@
|
|
595
|
+
import { titleBadge } from "@caupulican/pi-adaptative";
|
|
596
596
|
|
|
597
597
|
renderCall(args, theme) {
|
|
598
598
|
return titleBadge(theme, {
|
|
@@ -607,12 +607,12 @@ renderCall(args, theme) {
|
|
|
607
607
|
|
|
608
608
|
### Pattern 1: Selection Dialog (SelectList)
|
|
609
609
|
|
|
610
|
-
For letting users pick from a list of options. Use `SelectList` from `@
|
|
610
|
+
For letting users pick from a list of options. Use `SelectList` from `@caupulican/pi-tui` with `DynamicBorder` for framing.
|
|
611
611
|
|
|
612
612
|
```typescript
|
|
613
|
-
import type { ExtensionAPI } from "@
|
|
614
|
-
import { DynamicBorder } from "@
|
|
615
|
-
import { Container, type SelectItem, SelectList, Text } from "@
|
|
613
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
614
|
+
import { DynamicBorder } from "@caupulican/pi-adaptative";
|
|
615
|
+
import { Container, type SelectItem, SelectList, Text } from "@caupulican/pi-tui";
|
|
616
616
|
|
|
617
617
|
pi.registerCommand("pick", {
|
|
618
618
|
handler: async (_args, ctx) => {
|
|
@@ -670,7 +670,7 @@ pi.registerCommand("pick", {
|
|
|
670
670
|
For operations that take time and should be cancellable. `BorderedLoader` shows a spinner and handles escape to cancel.
|
|
671
671
|
|
|
672
672
|
```typescript
|
|
673
|
-
import { BorderedLoader } from "@
|
|
673
|
+
import { BorderedLoader } from "@caupulican/pi-adaptative";
|
|
674
674
|
|
|
675
675
|
pi.registerCommand("fetch", {
|
|
676
676
|
handler: async (_args, ctx) => {
|
|
@@ -699,11 +699,11 @@ pi.registerCommand("fetch", {
|
|
|
699
699
|
|
|
700
700
|
### Pattern 3: Settings/Toggles (SettingsList)
|
|
701
701
|
|
|
702
|
-
For toggling multiple settings. Use `SettingsList` from `@
|
|
702
|
+
For toggling multiple settings. Use `SettingsList` from `@caupulican/pi-tui` with `getSettingsListTheme()`.
|
|
703
703
|
|
|
704
704
|
```typescript
|
|
705
|
-
import { getSettingsListTheme } from "@
|
|
706
|
-
import { Container, type SettingItem, SettingsList, Text } from "@
|
|
705
|
+
import { getSettingsListTheme } from "@caupulican/pi-adaptative";
|
|
706
|
+
import { Container, type SettingItem, SettingsList, Text } from "@caupulican/pi-tui";
|
|
707
707
|
|
|
708
708
|
pi.registerCommand("settings", {
|
|
709
709
|
handler: async (_args, ctx) => {
|
|
@@ -842,8 +842,8 @@ Token stats available via `ctx.sessionManager.getBranch()` and `ctx.model`.
|
|
|
842
842
|
Replace the main input editor with a custom implementation. Useful for modal editing (vim), different keybindings (emacs), or specialized input handling.
|
|
843
843
|
|
|
844
844
|
```typescript
|
|
845
|
-
import { CustomEditor, type ExtensionAPI } from "@
|
|
846
|
-
import { matchesKey, truncateToWidth } from "@
|
|
845
|
+
import { CustomEditor, type ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
846
|
+
import { matchesKey, truncateToWidth } from "@caupulican/pi-tui";
|
|
847
847
|
|
|
848
848
|
type Mode = "normal" | "insert";
|
|
849
849
|
|
|
@@ -138,7 +138,7 @@ cp permission-gate.ts ~/.pi/agent/extensions/
|
|
|
138
138
|
See [docs/extensions.md](../../docs/extensions.md) for full documentation.
|
|
139
139
|
|
|
140
140
|
```typescript
|
|
141
|
-
import type { ExtensionAPI } from "@
|
|
141
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
142
142
|
import { Type } from "typebox";
|
|
143
143
|
|
|
144
144
|
export default function (pi: ExtensionAPI) {
|
|
@@ -180,7 +180,7 @@ export default function (pi: ExtensionAPI) {
|
|
|
180
180
|
|
|
181
181
|
**Use StringEnum for string parameters** (required for Google API compatibility):
|
|
182
182
|
```typescript
|
|
183
|
-
import { StringEnum } from "@
|
|
183
|
+
import { StringEnum } from "@caupulican/pi-ai";
|
|
184
184
|
|
|
185
185
|
// Good
|
|
186
186
|
action: StringEnum(["list", "add"] as const)
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Uses the last assistant message to generate a commit message.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI } from "@
|
|
8
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
9
9
|
|
|
10
10
|
export default function (pi: ExtensionAPI) {
|
|
11
11
|
pi.on("session_shutdown", async (_event, ctx) => {
|
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
* pi -e ./bash-spawn-hook.ts
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ExtensionAPI } from "@
|
|
11
|
-
import { createBashTool } from "@
|
|
10
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
11
|
+
import { createBashTool } from "@caupulican/pi-adaptative";
|
|
12
12
|
|
|
13
13
|
export default function (pi: ExtensionAPI) {
|
|
14
14
|
const cwd = process.cwd();
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Usage: /bookmark [label] - bookmark the last assistant message
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
import type { ExtensionAPI } from "@
|
|
10
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
11
11
|
|
|
12
12
|
export default function (pi: ExtensionAPI) {
|
|
13
13
|
pi.registerCommand("bookmark", {
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
type ExtensionAPI,
|
|
4
4
|
type ExtensionContext,
|
|
5
5
|
type KeybindingsManager,
|
|
6
|
-
} from "@
|
|
7
|
-
import type { Component, EditorTheme, TUI } from "@
|
|
8
|
-
import { truncateToWidth, visibleWidth } from "@
|
|
6
|
+
} from "@caupulican/pi-adaptative";
|
|
7
|
+
import type { Component, EditorTheme, TUI } from "@caupulican/pi-tui";
|
|
8
|
+
import { truncateToWidth, visibleWidth } from "@caupulican/pi-tui";
|
|
9
9
|
|
|
10
10
|
function fitBorder(
|
|
11
11
|
left: string,
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
* pi -e ./built-in-tool-renderer.ts
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
|
-
import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@
|
|
29
|
-
import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@
|
|
30
|
-
import { Text } from "@
|
|
28
|
+
import type { BashToolDetails, EditToolDetails, ExtensionAPI, ReadToolDetails } from "@caupulican/pi-adaptative";
|
|
29
|
+
import { createBashTool, createEditTool, createReadTool, createWriteTool } from "@caupulican/pi-adaptative";
|
|
30
|
+
import { Text } from "@caupulican/pi-tui";
|
|
31
31
|
|
|
32
32
|
export default function (pi: ExtensionAPI) {
|
|
33
33
|
const cwd = process.cwd();
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
import * as fs from "node:fs";
|
|
21
21
|
import * as path from "node:path";
|
|
22
|
-
import type { ExtensionAPI } from "@
|
|
22
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Recursively find all .md files in a directory
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* 3. Use /commands extensions to filter by source
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
-
import type { ExtensionAPI, SlashCommandInfo } from "@
|
|
13
|
+
import type { ExtensionAPI, SlashCommandInfo } from "@caupulican/pi-adaptative";
|
|
14
14
|
|
|
15
15
|
export default function commandsExtension(pi: ExtensionAPI) {
|
|
16
16
|
pi.registerCommand("commands", {
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Demonstrates how to cancel session events using the before_* events.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@
|
|
8
|
+
import type { ExtensionAPI, SessionBeforeSwitchEvent, SessionMessageEntry } from "@caupulican/pi-adaptative";
|
|
9
9
|
|
|
10
10
|
export default function (pi: ExtensionAPI) {
|
|
11
11
|
pi.on("session_before_switch", async (event: SessionBeforeSwitchEvent, ctx) => {
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
* pi --extension examples/extensions/custom-compaction.ts
|
|
14
14
|
*/
|
|
15
15
|
|
|
16
|
-
import {
|
|
17
|
-
import
|
|
18
|
-
import {
|
|
16
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
17
|
+
import { convertToLlm, serializeConversation } from "@caupulican/pi-adaptative";
|
|
18
|
+
import { complete } from "@caupulican/pi-ai";
|
|
19
19
|
|
|
20
20
|
export default function (pi: ExtensionAPI) {
|
|
21
21
|
pi.on("session_before_compact", async (event, ctx) => {
|
|
@@ -8,9 +8,9 @@
|
|
|
8
8
|
* Token stats come from ctx.sessionManager/ctx.model (already accessible).
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import type {
|
|
12
|
-
import type {
|
|
13
|
-
import { truncateToWidth, visibleWidth } from "@
|
|
11
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
12
|
+
import type { AssistantMessage } from "@caupulican/pi-ai";
|
|
13
|
+
import { truncateToWidth, visibleWidth } from "@caupulican/pi-tui";
|
|
14
14
|
|
|
15
15
|
export default function (pi: ExtensionAPI) {
|
|
16
16
|
let enabled = false;
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* (logo + keybinding hints) with a custom component showing the pi mascot.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, Theme } from "@
|
|
9
|
-
import { VERSION } from "@
|
|
8
|
+
import type { ExtensionAPI, Theme } from "@caupulican/pi-adaptative";
|
|
9
|
+
import { VERSION } from "@caupulican/pi-adaptative";
|
|
10
10
|
|
|
11
11
|
// --- PI MASCOT ---
|
|
12
12
|
// Based on pi_mascot.ts - the pi agent character
|
|
@@ -23,6 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
import Anthropic from "@anthropic-ai/sdk";
|
|
25
25
|
import type { ContentBlockParam, MessageCreateParamsStreaming } from "@anthropic-ai/sdk/resources/messages.js";
|
|
26
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
26
27
|
import {
|
|
27
28
|
type Api,
|
|
28
29
|
type AssistantMessage,
|
|
@@ -42,8 +43,7 @@ import {
|
|
|
42
43
|
type Tool,
|
|
43
44
|
type ToolCall,
|
|
44
45
|
type ToolResultMessage,
|
|
45
|
-
} from "@
|
|
46
|
-
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
46
|
+
} from "@caupulican/pi-ai";
|
|
47
47
|
|
|
48
48
|
// =============================================================================
|
|
49
49
|
// OAuth Implementation (copied from packages/ai/src/utils/oauth/anthropic.ts)
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "0.80.
|
|
3
|
+
"version": "0.80.18",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "pi-extension-custom-provider",
|
|
9
|
-
"version": "0.80.
|
|
9
|
+
"version": "0.80.18",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* # Then /login gitlab-duo, or set GITLAB_TOKEN=glpat-...
|
|
10
10
|
*/
|
|
11
11
|
|
|
12
|
+
import type { ExtensionAPI } from "@caupulican/pi-adaptative";
|
|
12
13
|
import {
|
|
13
14
|
type Api,
|
|
14
15
|
type AssistantMessageEventStream,
|
|
@@ -21,8 +22,7 @@ import {
|
|
|
21
22
|
streamSimpleAnthropic,
|
|
22
23
|
streamSimpleOpenAIResponses,
|
|
23
24
|
type ThinkingLevelMap,
|
|
24
|
-
} from "@
|
|
25
|
-
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
|
25
|
+
} from "@caupulican/pi-ai";
|
|
26
26
|
|
|
27
27
|
// =============================================================================
|
|
28
28
|
// Constants
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* npx tsx test.ts claude-sonnet-4-5-20250929 --thinking
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
|
-
import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@
|
|
11
|
+
import { type Api, type Context, type Model, registerApiProvider, streamSimple } from "@caupulican/pi-ai";
|
|
12
12
|
import { readFileSync } from "fs";
|
|
13
13
|
import { getAgentDir } from "packages/coding-agent/src/config.js";
|
|
14
14
|
import { join } from "path";
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Useful to ensure work is committed before switching context.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { ExtensionAPI, ExtensionContext } from "@
|
|
8
|
+
import type { ExtensionAPI, ExtensionContext } from "@caupulican/pi-adaptative";
|
|
9
9
|
|
|
10
10
|
async function checkDirtyRepo(
|
|
11
11
|
pi: ExtensionAPI,
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Height is calculated from width to maintain DOOM's aspect ratio.
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
-
import type { Component } from "@
|
|
9
|
-
import { isKeyRelease, type TUI } from "@
|
|
8
|
+
import type { Component } from "@caupulican/pi-tui";
|
|
9
|
+
import { isKeyRelease, type TUI } from "@caupulican/pi-tui";
|
|
10
10
|
import type { DoomEngine } from "./doom-engine.ts";
|
|
11
11
|
import { DoomKeys, mapKeyToDoom } from "./doom-keys.ts";
|
|
12
12
|
|
|
@@ -34,7 +34,7 @@ export const DoomKeys = {
|
|
|
34
34
|
KEY_RALT: 0x80 + 0x38,
|
|
35
35
|
} as const;
|
|
36
36
|
|
|
37
|
-
import { Key, matchesKey, parseKey } from "@
|
|
37
|
+
import { Key, matchesKey, parseKey } from "@caupulican/pi-tui";
|
|
38
38
|
|
|
39
39
|
/**
|
|
40
40
|
* Map terminal key input to DOOM key codes
|