@caupulican/pi-adaptative 0.80.8 → 0.80.10
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 +0 -0
- package/README.md +0 -0
- package/dist/bun/cli.d.ts +0 -0
- package/dist/bun/cli.d.ts.map +0 -0
- package/dist/bun/cli.js +0 -0
- package/dist/bun/cli.js.map +0 -0
- package/dist/bun/register-bedrock.d.ts +0 -0
- package/dist/bun/register-bedrock.d.ts.map +0 -0
- package/dist/bun/register-bedrock.js +0 -0
- package/dist/bun/register-bedrock.js.map +0 -0
- package/dist/bun/restore-sandbox-env.d.ts +0 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +0 -0
- package/dist/bun/restore-sandbox-env.js +0 -0
- package/dist/bun/restore-sandbox-env.js.map +0 -0
- package/dist/cli/args.d.ts +1 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +16 -4
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/config-selector.d.ts +0 -0
- package/dist/cli/config-selector.d.ts.map +0 -0
- package/dist/cli/config-selector.js +0 -0
- package/dist/cli/config-selector.js.map +0 -0
- package/dist/cli/file-processor.d.ts +0 -0
- package/dist/cli/file-processor.d.ts.map +0 -0
- package/dist/cli/file-processor.js +0 -0
- package/dist/cli/file-processor.js.map +0 -0
- package/dist/cli/initial-message.d.ts +0 -0
- package/dist/cli/initial-message.d.ts.map +0 -0
- package/dist/cli/initial-message.js +0 -0
- package/dist/cli/initial-message.js.map +0 -0
- package/dist/cli/list-models.d.ts +0 -0
- package/dist/cli/list-models.d.ts.map +0 -0
- package/dist/cli/list-models.js +0 -0
- package/dist/cli/list-models.js.map +0 -0
- package/dist/cli/session-picker.d.ts +0 -0
- package/dist/cli/session-picker.d.ts.map +0 -0
- package/dist/cli/session-picker.js +0 -0
- package/dist/cli/session-picker.js.map +0 -0
- package/dist/cli.d.ts +0 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +17 -2
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +0 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +9 -1
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +0 -0
- package/dist/core/agent-session-runtime.d.ts.map +0 -0
- package/dist/core/agent-session-runtime.js +0 -0
- package/dist/core/agent-session-runtime.js.map +0 -0
- package/dist/core/agent-session-services.d.ts +0 -0
- package/dist/core/agent-session-services.d.ts.map +0 -0
- package/dist/core/agent-session-services.js +0 -0
- package/dist/core/agent-session-services.js.map +0 -0
- package/dist/core/agent-session.d.ts +0 -0
- package/dist/core/agent-session.d.ts.map +0 -0
- package/dist/core/agent-session.js +0 -0
- package/dist/core/agent-session.js.map +0 -0
- package/dist/core/auth-guidance.d.ts +0 -0
- package/dist/core/auth-guidance.d.ts.map +0 -0
- package/dist/core/auth-guidance.js +0 -0
- package/dist/core/auth-guidance.js.map +0 -0
- package/dist/core/auth-storage.d.ts +0 -0
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +4 -3
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts +0 -0
- package/dist/core/bash-executor.d.ts.map +0 -0
- package/dist/core/bash-executor.js +0 -0
- package/dist/core/bash-executor.js.map +0 -0
- package/dist/core/compaction/branch-summarization.d.ts +0 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +0 -0
- package/dist/core/compaction/branch-summarization.js +0 -0
- package/dist/core/compaction/branch-summarization.js.map +0 -0
- package/dist/core/compaction/compaction.d.ts +0 -0
- package/dist/core/compaction/compaction.d.ts.map +0 -0
- package/dist/core/compaction/compaction.js +0 -0
- package/dist/core/compaction/compaction.js.map +0 -0
- package/dist/core/compaction/index.d.ts +0 -0
- package/dist/core/compaction/index.d.ts.map +0 -0
- package/dist/core/compaction/index.js +0 -0
- package/dist/core/compaction/index.js.map +0 -0
- package/dist/core/compaction/utils.d.ts +0 -0
- package/dist/core/compaction/utils.d.ts.map +0 -0
- package/dist/core/compaction/utils.js +0 -0
- package/dist/core/compaction/utils.js.map +0 -0
- package/dist/core/defaults.d.ts +0 -0
- package/dist/core/defaults.d.ts.map +0 -0
- package/dist/core/defaults.js +0 -0
- package/dist/core/defaults.js.map +0 -0
- package/dist/core/diagnostics.d.ts +0 -0
- package/dist/core/diagnostics.d.ts.map +0 -0
- package/dist/core/diagnostics.js +0 -0
- package/dist/core/diagnostics.js.map +0 -0
- package/dist/core/event-bus.d.ts +0 -0
- package/dist/core/event-bus.d.ts.map +0 -0
- package/dist/core/event-bus.js +0 -0
- package/dist/core/event-bus.js.map +0 -0
- package/dist/core/exec.d.ts +0 -0
- package/dist/core/exec.d.ts.map +0 -0
- package/dist/core/exec.js +0 -0
- package/dist/core/exec.js.map +0 -0
- package/dist/core/export-html/ansi-to-html.d.ts +0 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +0 -0
- package/dist/core/export-html/ansi-to-html.js +0 -0
- package/dist/core/export-html/ansi-to-html.js.map +0 -0
- package/dist/core/export-html/index.d.ts +0 -0
- package/dist/core/export-html/index.d.ts.map +0 -0
- package/dist/core/export-html/index.js +0 -0
- package/dist/core/export-html/index.js.map +0 -0
- package/dist/core/export-html/template.css +0 -0
- package/dist/core/export-html/template.html +0 -0
- package/dist/core/export-html/template.js +19 -6
- package/dist/core/export-html/tool-renderer.d.ts +0 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +0 -0
- package/dist/core/export-html/tool-renderer.js +0 -0
- package/dist/core/export-html/tool-renderer.js.map +0 -0
- package/dist/core/export-html/vendor/highlight.min.js +0 -0
- package/dist/core/export-html/vendor/marked.min.js +0 -0
- package/dist/core/extensions/index.d.ts +0 -0
- package/dist/core/extensions/index.d.ts.map +0 -0
- package/dist/core/extensions/index.js +0 -0
- package/dist/core/extensions/index.js.map +0 -0
- package/dist/core/extensions/loader.d.ts +0 -0
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +8 -0
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +0 -0
- package/dist/core/extensions/runner.d.ts.map +0 -0
- package/dist/core/extensions/runner.js +0 -0
- package/dist/core/extensions/runner.js.map +0 -0
- package/dist/core/extensions/types.d.ts +0 -0
- package/dist/core/extensions/types.d.ts.map +0 -0
- package/dist/core/extensions/types.js +0 -0
- package/dist/core/extensions/types.js.map +0 -0
- package/dist/core/extensions/wrapper.d.ts +0 -0
- package/dist/core/extensions/wrapper.d.ts.map +0 -0
- package/dist/core/extensions/wrapper.js +0 -0
- package/dist/core/extensions/wrapper.js.map +0 -0
- package/dist/core/footer-data-provider.d.ts +0 -0
- package/dist/core/footer-data-provider.d.ts.map +0 -0
- package/dist/core/footer-data-provider.js +0 -0
- package/dist/core/footer-data-provider.js.map +0 -0
- package/dist/core/http-dispatcher.d.ts +0 -0
- package/dist/core/http-dispatcher.d.ts.map +0 -0
- package/dist/core/http-dispatcher.js +0 -0
- package/dist/core/http-dispatcher.js.map +0 -0
- package/dist/core/index.d.ts +0 -0
- package/dist/core/index.d.ts.map +0 -0
- package/dist/core/index.js +0 -0
- package/dist/core/index.js.map +0 -0
- package/dist/core/keybindings.d.ts +0 -0
- package/dist/core/keybindings.d.ts.map +0 -0
- package/dist/core/keybindings.js +0 -0
- package/dist/core/keybindings.js.map +0 -0
- package/dist/core/messages.d.ts +0 -0
- package/dist/core/messages.d.ts.map +0 -0
- package/dist/core/messages.js +0 -0
- package/dist/core/messages.js.map +0 -0
- package/dist/core/model-registry.d.ts +0 -0
- package/dist/core/model-registry.d.ts.map +0 -0
- package/dist/core/model-registry.js +0 -0
- package/dist/core/model-registry.js.map +0 -0
- package/dist/core/model-resolver.d.ts +0 -0
- package/dist/core/model-resolver.d.ts.map +0 -0
- package/dist/core/model-resolver.js +0 -0
- package/dist/core/model-resolver.js.map +0 -0
- package/dist/core/output-guard.d.ts +0 -0
- package/dist/core/output-guard.d.ts.map +0 -0
- package/dist/core/output-guard.js +0 -0
- package/dist/core/output-guard.js.map +0 -0
- package/dist/core/package-manager.d.ts +3 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +47 -13
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/prompt-templates.d.ts +0 -0
- package/dist/core/prompt-templates.d.ts.map +0 -0
- package/dist/core/prompt-templates.js +0 -0
- package/dist/core/prompt-templates.js.map +0 -0
- package/dist/core/provider-display-names.d.ts +0 -0
- package/dist/core/provider-display-names.d.ts.map +0 -0
- package/dist/core/provider-display-names.js +0 -0
- package/dist/core/provider-display-names.js.map +0 -0
- package/dist/core/reload-blockers.d.ts +0 -0
- package/dist/core/reload-blockers.d.ts.map +0 -0
- package/dist/core/reload-blockers.js +0 -0
- package/dist/core/reload-blockers.js.map +0 -0
- package/dist/core/resolve-config-value.d.ts +0 -0
- package/dist/core/resolve-config-value.d.ts.map +0 -0
- package/dist/core/resolve-config-value.js +0 -0
- package/dist/core/resolve-config-value.js.map +0 -0
- package/dist/core/resource-loader.d.ts +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +30 -22
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +0 -0
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +5 -3
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-cwd.d.ts +0 -0
- package/dist/core/session-cwd.d.ts.map +0 -0
- package/dist/core/session-cwd.js +0 -0
- package/dist/core/session-cwd.js.map +0 -0
- package/dist/core/session-manager.d.ts +0 -0
- package/dist/core/session-manager.d.ts.map +0 -0
- package/dist/core/session-manager.js +0 -0
- package/dist/core/session-manager.js.map +0 -0
- package/dist/core/settings-manager.d.ts +10 -2
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +71 -30
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts +0 -0
- package/dist/core/skills.d.ts.map +0 -0
- package/dist/core/skills.js +0 -0
- package/dist/core/skills.js.map +0 -0
- package/dist/core/slash-commands.d.ts +0 -0
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +1 -0
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/source-info.d.ts +0 -0
- package/dist/core/source-info.d.ts.map +0 -0
- package/dist/core/source-info.js +0 -0
- package/dist/core/source-info.js.map +0 -0
- package/dist/core/system-prompt.d.ts +0 -0
- package/dist/core/system-prompt.d.ts.map +0 -0
- package/dist/core/system-prompt.js +0 -0
- package/dist/core/system-prompt.js.map +0 -0
- package/dist/core/telemetry.d.ts +0 -0
- package/dist/core/telemetry.d.ts.map +0 -0
- package/dist/core/telemetry.js +0 -0
- package/dist/core/telemetry.js.map +0 -0
- package/dist/core/timings.d.ts +0 -0
- package/dist/core/timings.d.ts.map +0 -0
- package/dist/core/timings.js +0 -0
- package/dist/core/timings.js.map +0 -0
- package/dist/core/tools/bash.d.ts +0 -0
- package/dist/core/tools/bash.d.ts.map +0 -0
- package/dist/core/tools/bash.js +0 -0
- package/dist/core/tools/bash.js.map +0 -0
- package/dist/core/tools/edit-diff.d.ts +0 -0
- package/dist/core/tools/edit-diff.d.ts.map +0 -0
- package/dist/core/tools/edit-diff.js +0 -0
- package/dist/core/tools/edit-diff.js.map +0 -0
- package/dist/core/tools/edit.d.ts +0 -0
- package/dist/core/tools/edit.d.ts.map +0 -0
- package/dist/core/tools/edit.js +0 -0
- package/dist/core/tools/edit.js.map +0 -0
- package/dist/core/tools/file-encoding-policy.d.ts +0 -0
- package/dist/core/tools/file-encoding-policy.d.ts.map +0 -0
- package/dist/core/tools/file-encoding-policy.js +0 -0
- package/dist/core/tools/file-encoding-policy.js.map +0 -0
- package/dist/core/tools/file-mutation-queue.d.ts +0 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +0 -0
- package/dist/core/tools/file-mutation-queue.js +0 -0
- package/dist/core/tools/file-mutation-queue.js.map +0 -0
- package/dist/core/tools/find.d.ts +0 -0
- package/dist/core/tools/find.d.ts.map +0 -0
- package/dist/core/tools/find.js +0 -0
- package/dist/core/tools/find.js.map +0 -0
- package/dist/core/tools/git-filter.d.ts +0 -0
- package/dist/core/tools/git-filter.d.ts.map +0 -0
- package/dist/core/tools/git-filter.js +0 -0
- package/dist/core/tools/git-filter.js.map +0 -0
- package/dist/core/tools/grep.d.ts +0 -0
- package/dist/core/tools/grep.d.ts.map +0 -0
- package/dist/core/tools/grep.js +0 -0
- package/dist/core/tools/grep.js.map +0 -0
- package/dist/core/tools/index.d.ts +0 -0
- package/dist/core/tools/index.d.ts.map +0 -0
- package/dist/core/tools/index.js +0 -0
- package/dist/core/tools/index.js.map +0 -0
- package/dist/core/tools/ls.d.ts +0 -0
- package/dist/core/tools/ls.d.ts.map +0 -0
- package/dist/core/tools/ls.js +0 -0
- package/dist/core/tools/ls.js.map +0 -0
- package/dist/core/tools/output-accumulator.d.ts +0 -0
- package/dist/core/tools/output-accumulator.d.ts.map +0 -0
- package/dist/core/tools/output-accumulator.js +0 -0
- package/dist/core/tools/output-accumulator.js.map +0 -0
- package/dist/core/tools/path-utils.d.ts +0 -0
- package/dist/core/tools/path-utils.d.ts.map +0 -0
- package/dist/core/tools/path-utils.js +0 -0
- package/dist/core/tools/path-utils.js.map +0 -0
- package/dist/core/tools/read.d.ts +0 -0
- package/dist/core/tools/read.d.ts.map +0 -0
- package/dist/core/tools/read.js +0 -0
- package/dist/core/tools/read.js.map +0 -0
- package/dist/core/tools/render-utils.d.ts +0 -0
- package/dist/core/tools/render-utils.d.ts.map +0 -0
- package/dist/core/tools/render-utils.js +0 -0
- package/dist/core/tools/render-utils.js.map +0 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +0 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +0 -0
- package/dist/core/tools/tool-definition-wrapper.js +0 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +0 -0
- package/dist/core/tools/truncate.d.ts +0 -0
- package/dist/core/tools/truncate.d.ts.map +0 -0
- package/dist/core/tools/truncate.js +0 -0
- package/dist/core/tools/truncate.js.map +0 -0
- package/dist/core/tools/write.d.ts +0 -0
- package/dist/core/tools/write.d.ts.map +0 -0
- package/dist/core/tools/write.js +0 -0
- package/dist/core/tools/write.js.map +0 -0
- package/dist/core/trust-manager.d.ts +9 -0
- package/dist/core/trust-manager.d.ts.map +1 -0
- package/dist/core/trust-manager.js +134 -0
- package/dist/core/trust-manager.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts +0 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +65 -6
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +0 -0
- package/dist/migrations.d.ts.map +0 -0
- package/dist/migrations.js +0 -0
- package/dist/migrations.js.map +0 -0
- package/dist/modes/index.d.ts +0 -0
- package/dist/modes/index.d.ts.map +0 -0
- package/dist/modes/index.js +0 -0
- package/dist/modes/index.js.map +0 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +0 -0
- package/dist/modes/interactive/components/armin.d.ts.map +0 -0
- package/dist/modes/interactive/components/armin.js +0 -0
- package/dist/modes/interactive/components/armin.js.map +0 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +0 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +0 -0
- package/dist/modes/interactive/components/assistant-message.js +0 -0
- package/dist/modes/interactive/components/assistant-message.js.map +0 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +0 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +0 -0
- package/dist/modes/interactive/components/bash-execution.js +0 -0
- package/dist/modes/interactive/components/bash-execution.js.map +0 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +0 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +0 -0
- package/dist/modes/interactive/components/bordered-loader.js +0 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +0 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +0 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/branch-summary-message.js +2 -2
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +0 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/compaction-summary-message.js +2 -2
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts +0 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/config-selector.js +0 -0
- package/dist/modes/interactive/components/config-selector.js.map +0 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +0 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +0 -0
- package/dist/modes/interactive/components/countdown-timer.js +0 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +0 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +0 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +0 -0
- package/dist/modes/interactive/components/custom-editor.js +0 -0
- package/dist/modes/interactive/components/custom-editor.js.map +0 -0
- package/dist/modes/interactive/components/custom-message.d.ts +0 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/custom-message.js +2 -2
- package/dist/modes/interactive/components/custom-message.js.map +1 -1
- package/dist/modes/interactive/components/daxnuts.d.ts +0 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +0 -0
- package/dist/modes/interactive/components/daxnuts.js +0 -0
- package/dist/modes/interactive/components/daxnuts.js.map +0 -0
- package/dist/modes/interactive/components/diff.d.ts +0 -0
- package/dist/modes/interactive/components/diff.d.ts.map +0 -0
- package/dist/modes/interactive/components/diff.js +0 -0
- package/dist/modes/interactive/components/diff.js.map +0 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +0 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +0 -0
- package/dist/modes/interactive/components/dynamic-border.js +0 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +0 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +0 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +0 -0
- package/dist/modes/interactive/components/earendil-announcement.js +0 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +0 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +0 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +0 -0
- package/dist/modes/interactive/components/extension-editor.js +0 -0
- package/dist/modes/interactive/components/extension-editor.js.map +0 -0
- package/dist/modes/interactive/components/extension-input.d.ts +0 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +0 -0
- package/dist/modes/interactive/components/extension-input.js +0 -0
- package/dist/modes/interactive/components/extension-input.js.map +0 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +0 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/extension-selector.js +0 -0
- package/dist/modes/interactive/components/extension-selector.js.map +0 -0
- package/dist/modes/interactive/components/footer.d.ts +0 -0
- package/dist/modes/interactive/components/footer.d.ts.map +0 -0
- package/dist/modes/interactive/components/footer.js +0 -0
- package/dist/modes/interactive/components/footer.js.map +0 -0
- package/dist/modes/interactive/components/index.d.ts +2 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -1
- package/dist/modes/interactive/components/index.js +2 -0
- package/dist/modes/interactive/components/index.js.map +1 -1
- package/dist/modes/interactive/components/keybinding-hints.d.ts +0 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +0 -0
- package/dist/modes/interactive/components/keybinding-hints.js +0 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +0 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +0 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +3 -12
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts +0 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/model-selector.js +0 -0
- package/dist/modes/interactive/components/model-selector.js.map +0 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +0 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/oauth-selector.js +0 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +0 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +0 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +0 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +0 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +0 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +0 -0
- package/dist/modes/interactive/components/session-selector-search.js +0 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +0 -0
- package/dist/modes/interactive/components/session-selector.d.ts +0 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/session-selector.js +0 -0
- package/dist/modes/interactive/components/session-selector.js.map +0 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +0 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/settings-selector.js +0 -0
- package/dist/modes/interactive/components/settings-selector.js.map +0 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +0 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/show-images-selector.js +0 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +0 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +0 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -1
- package/dist/modes/interactive/components/skill-invocation-message.js +9 -6
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -1
- package/dist/modes/interactive/components/theme-selector.d.ts +0 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/theme-selector.js +0 -0
- package/dist/modes/interactive/components/theme-selector.js.map +0 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +0 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/thinking-selector.js +0 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +0 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -1
- package/dist/modes/interactive/components/tool-execution.js +18 -2
- package/dist/modes/interactive/components/tool-execution.js.map +1 -1
- package/dist/modes/interactive/components/tool-group.d.ts +0 -0
- package/dist/modes/interactive/components/tool-group.d.ts.map +0 -0
- package/dist/modes/interactive/components/tool-group.js +0 -0
- package/dist/modes/interactive/components/tool-group.js.map +0 -0
- package/dist/modes/interactive/components/tool-panel-registry.d.ts +0 -0
- package/dist/modes/interactive/components/tool-panel-registry.d.ts.map +0 -0
- package/dist/modes/interactive/components/tool-panel-registry.js +0 -0
- package/dist/modes/interactive/components/tool-panel-registry.js.map +0 -0
- package/dist/modes/interactive/components/tool-title.d.ts +43 -0
- package/dist/modes/interactive/components/tool-title.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-title.js +78 -0
- package/dist/modes/interactive/components/tool-title.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +0 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/tree-selector.js +36 -13
- package/dist/modes/interactive/components/tree-selector.js.map +1 -1
- package/dist/modes/interactive/components/trust-selector.d.ts +20 -0
- package/dist/modes/interactive/components/trust-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/trust-selector.js +86 -0
- package/dist/modes/interactive/components/trust-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +0 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +0 -0
- package/dist/modes/interactive/components/user-message-selector.js +0 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +0 -0
- package/dist/modes/interactive/components/user-message.d.ts +0 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +0 -0
- package/dist/modes/interactive/components/user-message.js +0 -0
- package/dist/modes/interactive/components/user-message.js.map +0 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +0 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +0 -0
- package/dist/modes/interactive/components/visual-truncate.js +0 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +0 -0
- package/dist/modes/interactive/interactive-mode.d.ts +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +43 -1
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +0 -0
- package/dist/modes/interactive/theme/light.json +0 -0
- package/dist/modes/interactive/theme/matrix-machine.json +0 -0
- package/dist/modes/interactive/theme/theme-schema.json +0 -0
- package/dist/modes/interactive/theme/theme.d.ts +0 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +0 -0
- package/dist/modes/interactive/theme/theme.js +0 -0
- package/dist/modes/interactive/theme/theme.js.map +0 -0
- package/dist/modes/print-mode.d.ts +0 -0
- package/dist/modes/print-mode.d.ts.map +0 -0
- package/dist/modes/print-mode.js +0 -0
- package/dist/modes/print-mode.js.map +0 -0
- package/dist/modes/rpc/jsonl.d.ts +0 -0
- package/dist/modes/rpc/jsonl.d.ts.map +0 -0
- package/dist/modes/rpc/jsonl.js +0 -0
- package/dist/modes/rpc/jsonl.js.map +0 -0
- package/dist/modes/rpc/rpc-client.d.ts +0 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +0 -0
- package/dist/modes/rpc/rpc-client.js +0 -0
- package/dist/modes/rpc/rpc-client.js.map +0 -0
- package/dist/modes/rpc/rpc-mode.d.ts +0 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +0 -0
- package/dist/modes/rpc/rpc-mode.js +0 -0
- package/dist/modes/rpc/rpc-mode.js.map +0 -0
- package/dist/modes/rpc/rpc-types.d.ts +0 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +0 -0
- package/dist/modes/rpc/rpc-types.js +0 -0
- package/dist/modes/rpc/rpc-types.js.map +0 -0
- package/dist/package-manager-cli.d.ts +0 -0
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +55 -8
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/ansi.d.ts +0 -0
- package/dist/utils/ansi.d.ts.map +0 -0
- package/dist/utils/ansi.js +0 -0
- package/dist/utils/ansi.js.map +0 -0
- package/dist/utils/changelog.d.ts +0 -0
- package/dist/utils/changelog.d.ts.map +0 -0
- package/dist/utils/changelog.js +0 -0
- package/dist/utils/changelog.js.map +0 -0
- package/dist/utils/child-process.d.ts +0 -0
- package/dist/utils/child-process.d.ts.map +0 -0
- package/dist/utils/child-process.js +0 -0
- package/dist/utils/child-process.js.map +0 -0
- package/dist/utils/clipboard-image.d.ts +0 -0
- package/dist/utils/clipboard-image.d.ts.map +0 -0
- package/dist/utils/clipboard-image.js +0 -0
- package/dist/utils/clipboard-image.js.map +0 -0
- package/dist/utils/clipboard-native.d.ts +0 -0
- package/dist/utils/clipboard-native.d.ts.map +0 -0
- package/dist/utils/clipboard-native.js +0 -0
- package/dist/utils/clipboard-native.js.map +0 -0
- package/dist/utils/clipboard.d.ts +0 -0
- package/dist/utils/clipboard.d.ts.map +0 -0
- package/dist/utils/clipboard.js +0 -0
- package/dist/utils/clipboard.js.map +0 -0
- package/dist/utils/deprecation.d.ts +0 -0
- package/dist/utils/deprecation.d.ts.map +0 -0
- package/dist/utils/deprecation.js +0 -0
- package/dist/utils/deprecation.js.map +0 -0
- package/dist/utils/exif-orientation.d.ts +0 -0
- package/dist/utils/exif-orientation.d.ts.map +0 -0
- package/dist/utils/exif-orientation.js +0 -0
- package/dist/utils/exif-orientation.js.map +0 -0
- package/dist/utils/frontmatter.d.ts +0 -0
- package/dist/utils/frontmatter.d.ts.map +0 -0
- package/dist/utils/frontmatter.js +0 -0
- package/dist/utils/frontmatter.js.map +0 -0
- package/dist/utils/fs-watch.d.ts +0 -0
- package/dist/utils/fs-watch.d.ts.map +0 -0
- package/dist/utils/fs-watch.js +0 -0
- package/dist/utils/fs-watch.js.map +0 -0
- package/dist/utils/git.d.ts +0 -0
- package/dist/utils/git.d.ts.map +1 -1
- package/dist/utils/git.js +54 -22
- package/dist/utils/git.js.map +1 -1
- package/dist/utils/html.d.ts +0 -0
- package/dist/utils/html.d.ts.map +0 -0
- package/dist/utils/html.js +0 -0
- package/dist/utils/html.js.map +0 -0
- package/dist/utils/image-convert.d.ts +0 -0
- package/dist/utils/image-convert.d.ts.map +0 -0
- package/dist/utils/image-convert.js +0 -0
- package/dist/utils/image-convert.js.map +0 -0
- package/dist/utils/image-resize-core.d.ts +0 -0
- package/dist/utils/image-resize-core.d.ts.map +0 -0
- package/dist/utils/image-resize-core.js +0 -0
- package/dist/utils/image-resize-core.js.map +0 -0
- package/dist/utils/image-resize-worker.d.ts +0 -0
- package/dist/utils/image-resize-worker.d.ts.map +0 -0
- package/dist/utils/image-resize-worker.js +0 -0
- package/dist/utils/image-resize-worker.js.map +0 -0
- package/dist/utils/image-resize.d.ts +0 -0
- package/dist/utils/image-resize.d.ts.map +0 -0
- package/dist/utils/image-resize.js +0 -0
- package/dist/utils/image-resize.js.map +0 -0
- package/dist/utils/json.d.ts +0 -0
- package/dist/utils/json.d.ts.map +0 -0
- package/dist/utils/json.js +0 -0
- package/dist/utils/json.js.map +0 -0
- package/dist/utils/mime.d.ts +0 -0
- package/dist/utils/mime.d.ts.map +0 -0
- package/dist/utils/mime.js +0 -0
- package/dist/utils/mime.js.map +0 -0
- package/dist/utils/open-browser.d.ts +9 -0
- package/dist/utils/open-browser.d.ts.map +1 -0
- package/dist/utils/open-browser.js +22 -0
- package/dist/utils/open-browser.js.map +1 -0
- package/dist/utils/paths.d.ts +0 -0
- package/dist/utils/paths.d.ts.map +0 -0
- package/dist/utils/paths.js +0 -0
- package/dist/utils/paths.js.map +0 -0
- package/dist/utils/photon.d.ts +0 -0
- package/dist/utils/photon.d.ts.map +0 -0
- package/dist/utils/photon.js +0 -0
- package/dist/utils/photon.js.map +0 -0
- package/dist/utils/pi-user-agent.d.ts +0 -0
- package/dist/utils/pi-user-agent.d.ts.map +0 -0
- package/dist/utils/pi-user-agent.js +0 -0
- package/dist/utils/pi-user-agent.js.map +0 -0
- package/dist/utils/shell.d.ts +0 -0
- package/dist/utils/shell.d.ts.map +0 -0
- package/dist/utils/shell.js +0 -0
- package/dist/utils/shell.js.map +0 -0
- package/dist/utils/sleep.d.ts +0 -0
- package/dist/utils/sleep.d.ts.map +0 -0
- package/dist/utils/sleep.js +0 -0
- package/dist/utils/sleep.js.map +0 -0
- package/dist/utils/syntax-highlight.d.ts +0 -0
- package/dist/utils/syntax-highlight.d.ts.map +0 -0
- package/dist/utils/syntax-highlight.js +0 -0
- package/dist/utils/syntax-highlight.js.map +0 -0
- package/dist/utils/tools-manager.d.ts +0 -0
- package/dist/utils/tools-manager.d.ts.map +0 -0
- package/dist/utils/tools-manager.js +0 -0
- package/dist/utils/tools-manager.js.map +0 -0
- package/dist/utils/version-check.d.ts +0 -0
- package/dist/utils/version-check.d.ts.map +0 -0
- package/dist/utils/version-check.js +0 -0
- package/dist/utils/version-check.js.map +0 -0
- package/dist/utils/windows-self-update.d.ts +0 -0
- package/dist/utils/windows-self-update.d.ts.map +0 -0
- package/dist/utils/windows-self-update.js +0 -0
- package/dist/utils/windows-self-update.js.map +0 -0
- package/docs/adaptive-extension-shared-state-audit.md +0 -0
- package/docs/compaction.md +0 -0
- package/docs/custom-provider.md +0 -0
- package/docs/development.md +0 -0
- package/docs/docs.json +0 -0
- package/docs/extensions.md +0 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +0 -0
- package/docs/json.md +0 -0
- package/docs/keybindings.md +0 -0
- package/docs/models.md +0 -0
- package/docs/packages.md +0 -0
- package/docs/prompt-templates.md +0 -0
- package/docs/providers.md +0 -0
- package/docs/quickstart.md +0 -0
- package/docs/rpc.md +0 -0
- package/docs/sdk.md +0 -0
- package/docs/session-format.md +0 -0
- package/docs/sessions.md +0 -0
- package/docs/settings.md +0 -0
- package/docs/shell-aliases.md +0 -0
- package/docs/skills.md +0 -0
- package/docs/terminal-setup.md +0 -0
- package/docs/termux.md +0 -0
- package/docs/themes.md +0 -0
- package/docs/tmux.md +0 -0
- package/docs/tui.md +18 -0
- package/docs/usage.md +0 -0
- package/docs/windows.md +0 -0
- package/examples/README.md +0 -0
- package/examples/extensions/README.md +0 -0
- package/examples/extensions/auto-commit-on-exit.ts +0 -0
- package/examples/extensions/bash-spawn-hook.ts +0 -0
- package/examples/extensions/bookmark.ts +0 -0
- package/examples/extensions/border-status-editor.ts +0 -0
- package/examples/extensions/built-in-tool-renderer.ts +0 -0
- package/examples/extensions/claude-rules.ts +0 -0
- package/examples/extensions/commands.ts +0 -0
- package/examples/extensions/confirm-destructive.ts +0 -0
- package/examples/extensions/custom-compaction.ts +0 -0
- package/examples/extensions/custom-footer.ts +0 -0
- package/examples/extensions/custom-header.ts +0 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +0 -0
- 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 +0 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +0 -0
- package/examples/extensions/dirty-repo-guard.ts +0 -0
- package/examples/extensions/doom-overlay/README.md +0 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +0 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +0 -0
- package/examples/extensions/doom-overlay/doom-component.ts +0 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +0 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +0 -0
- package/examples/extensions/doom-overlay/index.ts +0 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +0 -0
- package/examples/extensions/dynamic-resources/SKILL.md +0 -0
- package/examples/extensions/dynamic-resources/dynamic.json +0 -0
- package/examples/extensions/dynamic-resources/dynamic.md +0 -0
- package/examples/extensions/dynamic-resources/index.ts +0 -0
- package/examples/extensions/dynamic-tools.ts +0 -0
- package/examples/extensions/event-bus.ts +0 -0
- package/examples/extensions/file-trigger.ts +0 -0
- package/examples/extensions/git-checkpoint.ts +0 -0
- package/examples/extensions/git-merge-and-resolve.ts +0 -0
- package/examples/extensions/github-issue-autocomplete.ts +0 -0
- package/examples/extensions/handoff.ts +0 -0
- package/examples/extensions/hello.ts +0 -0
- package/examples/extensions/hidden-thinking-label.ts +0 -0
- package/examples/extensions/inline-bash.ts +0 -0
- package/examples/extensions/input-transform-streaming.ts +0 -0
- package/examples/extensions/input-transform.ts +0 -0
- package/examples/extensions/interactive-shell.ts +0 -0
- package/examples/extensions/mac-system-theme.ts +0 -0
- package/examples/extensions/message-renderer.ts +0 -0
- package/examples/extensions/minimal-mode.ts +0 -0
- package/examples/extensions/modal-editor.ts +0 -0
- package/examples/extensions/model-status.ts +0 -0
- package/examples/extensions/notify.ts +0 -0
- package/examples/extensions/overlay-qa-tests.ts +0 -0
- package/examples/extensions/overlay-test.ts +0 -0
- package/examples/extensions/permission-gate.ts +0 -0
- package/examples/extensions/pirate.ts +0 -0
- package/examples/extensions/plan-mode/README.md +0 -0
- package/examples/extensions/plan-mode/index.ts +0 -0
- package/examples/extensions/plan-mode/utils.ts +0 -0
- package/examples/extensions/preset.ts +0 -0
- package/examples/extensions/prompt-customizer.ts +0 -0
- package/examples/extensions/protected-paths.ts +0 -0
- package/examples/extensions/provider-payload.ts +0 -0
- package/examples/extensions/qna.ts +0 -0
- package/examples/extensions/question.ts +0 -0
- package/examples/extensions/questionnaire.ts +0 -0
- package/examples/extensions/rainbow-editor.ts +0 -0
- package/examples/extensions/reload-runtime.ts +0 -0
- package/examples/extensions/rpc-demo.ts +0 -0
- package/examples/extensions/sandbox/index.ts +0 -0
- package/examples/extensions/sandbox/package-lock.json +2 -2
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/send-user-message.ts +0 -0
- package/examples/extensions/session-name.ts +0 -0
- package/examples/extensions/shutdown-command.ts +0 -0
- package/examples/extensions/snake.ts +0 -0
- package/examples/extensions/space-invaders.ts +0 -0
- package/examples/extensions/ssh.ts +0 -0
- package/examples/extensions/status-line.ts +0 -0
- package/examples/extensions/structured-output.ts +0 -0
- package/examples/extensions/subagent/README.md +0 -0
- package/examples/extensions/subagent/agents/planner.md +0 -0
- package/examples/extensions/subagent/agents/reviewer.md +0 -0
- package/examples/extensions/subagent/agents/scout.md +0 -0
- package/examples/extensions/subagent/agents/worker.md +0 -0
- package/examples/extensions/subagent/agents.ts +0 -0
- package/examples/extensions/subagent/index.ts +0 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +0 -0
- package/examples/extensions/subagent/prompts/implement.md +0 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +0 -0
- package/examples/extensions/summarize.ts +0 -0
- package/examples/extensions/system-prompt-header.ts +0 -0
- package/examples/extensions/tic-tac-toe.ts +0 -0
- package/examples/extensions/timed-confirm.ts +0 -0
- package/examples/extensions/titlebar-spinner.ts +0 -0
- package/examples/extensions/todo.ts +0 -0
- package/examples/extensions/tool-override.ts +0 -0
- package/examples/extensions/tools.ts +0 -0
- package/examples/extensions/trigger-compact.ts +0 -0
- package/examples/extensions/truncated-tool.ts +0 -0
- package/examples/extensions/widget-placement.ts +0 -0
- package/examples/extensions/with-deps/index.ts +0 -0
- 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 +0 -0
- package/examples/extensions/working-message-test.ts +0 -0
- package/examples/rpc-extension-ui.ts +0 -0
- package/examples/sdk/01-minimal.ts +0 -0
- package/examples/sdk/02-custom-model.ts +0 -0
- package/examples/sdk/03-custom-prompt.ts +0 -0
- package/examples/sdk/04-skills.ts +0 -0
- package/examples/sdk/05-tools.ts +0 -0
- package/examples/sdk/06-extensions.ts +0 -0
- package/examples/sdk/07-context-files.ts +0 -0
- package/examples/sdk/08-prompt-templates.ts +0 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +0 -0
- package/examples/sdk/10-settings.ts +0 -0
- package/examples/sdk/11-sessions.ts +0 -0
- package/examples/sdk/12-full-control.ts +0 -0
- package/examples/sdk/13-session-runtime.ts +0 -0
- package/examples/sdk/README.md +0 -0
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
File without changes
|
package/dist/utils/git.d.ts
CHANGED
|
File without changes
|
package/dist/utils/git.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACvB,mCAAmC;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACvB,mCAAmC;IACnC,IAAI,EAAE,KAAK,CAAC;IACZ,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,iDAAiD;IACjD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,MAAM,EAAE,OAAO,CAAC;CAChB,CAAC;AAkJF;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAsD5D","sourcesContent":["import hostedGitInfo from \"hosted-git-info\";\n\n/**\n * Parsed git URL information.\n */\nexport type GitSource = {\n\t/** Always \"git\" for git sources */\n\ttype: \"git\";\n\t/** Clone URL (always valid for git clone, without ref suffix) */\n\trepo: string;\n\t/** Git host domain (e.g., \"github.com\") */\n\thost: string;\n\t/** Repository path (e.g., \"user/repo\") */\n\tpath: string;\n\t/** Git ref (branch, tag, commit) if specified */\n\tref?: string;\n\t/** True if ref was specified (package won't be auto-updated) */\n\tpinned: boolean;\n};\n\nfunction splitRef(url: string): { repo: string; ref?: string } {\n\tconst scpLikeMatch = url.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\tconst pathWithMaybeRef = scpLikeMatch[2] ?? \"\";\n\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\tif (refSeparator < 0) return { repo: url };\n\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\tif (!repoPath || !ref) return { repo: url };\n\t\treturn {\n\t\t\trepo: `git@${scpLikeMatch[1] ?? \"\"}:${repoPath}`,\n\t\t\tref,\n\t\t};\n\t}\n\n\tif (url.includes(\"://\")) {\n\t\ttry {\n\t\t\tconst parsed = new URL(url);\n\t\t\tconst pathWithMaybeRef = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\t\tif (refSeparator < 0) return { repo: url };\n\t\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\t\tif (!repoPath || !ref) return { repo: url };\n\t\t\tparsed.pathname = `/${repoPath}`;\n\t\t\treturn {\n\t\t\t\trepo: parsed.toString().replace(/\\/$/, \"\"),\n\t\t\t\tref,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn { repo: url };\n\t\t}\n\t}\n\n\tconst slashIndex = url.indexOf(\"/\");\n\tif (slashIndex < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst host = url.slice(0, slashIndex);\n\tconst pathWithMaybeRef = url.slice(slashIndex + 1);\n\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\tif (refSeparator < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\tif (!repoPath || !ref) {\n\t\treturn { repo: url };\n\t}\n\treturn {\n\t\trepo: `${host}/${repoPath}`,\n\t\tref,\n\t};\n}\n\nfunction decodeForValidation(value: string): string | null {\n\ttry {\n\t\treturn decodeURIComponent(value);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction hasUnsafeGitInstallPart(value: string, allowSlash: boolean): boolean {\n\tconst decoded = decodeForValidation(value);\n\tif (decoded === null) {\n\t\treturn true;\n\t}\n\tconst candidates = [value, decoded];\n\tfor (const candidate of candidates) {\n\t\tif (candidate.includes(\"\\0\") || candidate.includes(\"\\\\\") || candidate.startsWith(\"/\")) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!allowSlash && candidate.includes(\"/\")) {\n\t\t\treturn true;\n\t\t}\n\t\tif (candidate.split(\"/\").includes(\"..\")) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction buildGitSource(args: { repo: string; host: string; path: string; ref?: string }): GitSource | null {\n\tif (args.path.startsWith(\"/\")) {\n\t\treturn null;\n\t}\n\tconst normalizedPath = args.path.replace(/\\.git$/, \"\").replace(/^\\/+/, \"\");\n\tif (!args.host || !normalizedPath || normalizedPath.split(\"/\").length < 2) {\n\t\treturn null;\n\t}\n\tif (hasUnsafeGitInstallPart(args.host, false) || hasUnsafeGitInstallPart(normalizedPath, true)) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttype: \"git\",\n\t\trepo: args.repo,\n\t\thost: args.host,\n\t\tpath: normalizedPath,\n\t\tref: args.ref,\n\t\tpinned: Boolean(args.ref),\n\t};\n}\n\nfunction parseGenericGitUrl(url: string): GitSource | null {\n\tconst { repo: repoWithoutRef, ref } = splitRef(url);\n\tlet repo = repoWithoutRef;\n\tlet host = \"\";\n\tlet path = \"\";\n\n\tconst scpLikeMatch = repoWithoutRef.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\thost = scpLikeMatch[1] ?? \"\";\n\t\tpath = scpLikeMatch[2] ?? \"\";\n\t} else if (\n\t\trepoWithoutRef.startsWith(\"https://\") ||\n\t\trepoWithoutRef.startsWith(\"http://\") ||\n\t\trepoWithoutRef.startsWith(\"ssh://\") ||\n\t\trepoWithoutRef.startsWith(\"git://\")\n\t) {\n\t\ttry {\n\t\t\tconst parsed = new URL(repoWithoutRef);\n\t\t\thost = parsed.hostname;\n\t\t\tpath = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} else {\n\t\tconst slashIndex = repoWithoutRef.indexOf(\"/\");\n\t\tif (slashIndex < 0) {\n\t\t\treturn null;\n\t\t}\n\t\thost = repoWithoutRef.slice(0, slashIndex);\n\t\tpath = repoWithoutRef.slice(slashIndex + 1);\n\t\tif (!host.includes(\".\") && host !== \"localhost\") {\n\t\t\treturn null;\n\t\t}\n\t\trepo = `https://${repoWithoutRef}`;\n\t}\n\n\treturn buildGitSource({ repo, host, path, ref });\n}\n\n/**\n * Parse git source into a GitSource.\n *\n * Rules:\n * - With git: prefix, accept all historical shorthand forms.\n * - Without git: prefix, only accept explicit protocol URLs.\n */\nexport function parseGitUrl(source: string): GitSource | null {\n\tconst trimmed = source.trim();\n\tconst hasGitPrefix = trimmed.startsWith(\"git:\");\n\tconst url = hasGitPrefix ? trimmed.slice(4).trim() : trimmed;\n\n\tif (!hasGitPrefix && !/^(https?|ssh|git):\\/\\//i.test(url)) {\n\t\treturn null;\n\t}\n\n\tconst split = splitRef(url);\n\n\tconst hostedCandidates = [split.ref ? `${split.repo}#${split.ref}` : undefined, url].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of hostedCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst useHttpsPrefix =\n\t\t\t\t!split.repo.startsWith(\"http://\") &&\n\t\t\t\t!split.repo.startsWith(\"https://\") &&\n\t\t\t\t!split.repo.startsWith(\"ssh://\") &&\n\t\t\t\t!split.repo.startsWith(\"git://\") &&\n\t\t\t\t!split.repo.startsWith(\"git@\");\n\t\t\treturn buildGitSource({\n\t\t\t\trepo: useHttpsPrefix ? `https://${split.repo}` : split.repo,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`,\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t});\n\t\t}\n\t}\n\n\tconst httpsCandidates = [split.ref ? `https://${split.repo}#${split.ref}` : undefined, `https://${url}`].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of httpsCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn buildGitSource({\n\t\t\t\trepo: `https://${split.repo}`,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`,\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn parseGenericGitUrl(url);\n}\n"]}
|
package/dist/utils/git.js
CHANGED
|
@@ -56,6 +56,53 @@ function splitRef(url) {
|
|
|
56
56
|
ref,
|
|
57
57
|
};
|
|
58
58
|
}
|
|
59
|
+
function decodeForValidation(value) {
|
|
60
|
+
try {
|
|
61
|
+
return decodeURIComponent(value);
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function hasUnsafeGitInstallPart(value, allowSlash) {
|
|
68
|
+
const decoded = decodeForValidation(value);
|
|
69
|
+
if (decoded === null) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
const candidates = [value, decoded];
|
|
73
|
+
for (const candidate of candidates) {
|
|
74
|
+
if (candidate.includes("\0") || candidate.includes("\\") || candidate.startsWith("/")) {
|
|
75
|
+
return true;
|
|
76
|
+
}
|
|
77
|
+
if (!allowSlash && candidate.includes("/")) {
|
|
78
|
+
return true;
|
|
79
|
+
}
|
|
80
|
+
if (candidate.split("/").includes("..")) {
|
|
81
|
+
return true;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
function buildGitSource(args) {
|
|
87
|
+
if (args.path.startsWith("/")) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
const normalizedPath = args.path.replace(/\.git$/, "").replace(/^\/+/, "");
|
|
91
|
+
if (!args.host || !normalizedPath || normalizedPath.split("/").length < 2) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
if (hasUnsafeGitInstallPart(args.host, false) || hasUnsafeGitInstallPart(normalizedPath, true)) {
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
return {
|
|
98
|
+
type: "git",
|
|
99
|
+
repo: args.repo,
|
|
100
|
+
host: args.host,
|
|
101
|
+
path: normalizedPath,
|
|
102
|
+
ref: args.ref,
|
|
103
|
+
pinned: Boolean(args.ref),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
59
106
|
function parseGenericGitUrl(url) {
|
|
60
107
|
const { repo: repoWithoutRef, ref } = splitRef(url);
|
|
61
108
|
let repo = repoWithoutRef;
|
|
@@ -91,18 +138,7 @@ function parseGenericGitUrl(url) {
|
|
|
91
138
|
}
|
|
92
139
|
repo = `https://${repoWithoutRef}`;
|
|
93
140
|
}
|
|
94
|
-
|
|
95
|
-
if (!host || !normalizedPath || normalizedPath.split("/").length < 2) {
|
|
96
|
-
return null;
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
type: "git",
|
|
100
|
-
repo,
|
|
101
|
-
host,
|
|
102
|
-
path: normalizedPath,
|
|
103
|
-
ref,
|
|
104
|
-
pinned: Boolean(ref),
|
|
105
|
-
};
|
|
141
|
+
return buildGitSource({ repo, host, path, ref });
|
|
106
142
|
}
|
|
107
143
|
/**
|
|
108
144
|
* Parse git source into a GitSource.
|
|
@@ -131,14 +167,12 @@ export function parseGitUrl(source) {
|
|
|
131
167
|
!split.repo.startsWith("ssh://") &&
|
|
132
168
|
!split.repo.startsWith("git://") &&
|
|
133
169
|
!split.repo.startsWith("git@");
|
|
134
|
-
return {
|
|
135
|
-
type: "git",
|
|
170
|
+
return buildGitSource({
|
|
136
171
|
repo: useHttpsPrefix ? `https://${split.repo}` : split.repo,
|
|
137
172
|
host: info.domain || "",
|
|
138
|
-
path: `${info.user}/${info.project}
|
|
173
|
+
path: `${info.user}/${info.project}`,
|
|
139
174
|
ref: info.committish || split.ref || undefined,
|
|
140
|
-
|
|
141
|
-
};
|
|
175
|
+
});
|
|
142
176
|
}
|
|
143
177
|
}
|
|
144
178
|
const httpsCandidates = [split.ref ? `https://${split.repo}#${split.ref}` : undefined, `https://${url}`].filter((value) => Boolean(value));
|
|
@@ -148,14 +182,12 @@ export function parseGitUrl(source) {
|
|
|
148
182
|
if (split.ref && info.project?.includes("@")) {
|
|
149
183
|
continue;
|
|
150
184
|
}
|
|
151
|
-
return {
|
|
152
|
-
type: "git",
|
|
185
|
+
return buildGitSource({
|
|
153
186
|
repo: `https://${split.repo}`,
|
|
154
187
|
host: info.domain || "",
|
|
155
|
-
path: `${info.user}/${info.project}
|
|
188
|
+
path: `${info.user}/${info.project}`,
|
|
156
189
|
ref: info.committish || split.ref || undefined,
|
|
157
|
-
|
|
158
|
-
};
|
|
190
|
+
});
|
|
159
191
|
}
|
|
160
192
|
}
|
|
161
193
|
return parseGenericGitUrl(url);
|
package/dist/utils/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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","sourcesContent":["import hostedGitInfo from \"hosted-git-info\";\n\n/**\n * Parsed git URL information.\n */\nexport type GitSource = {\n\t/** Always \"git\" for git sources */\n\ttype: \"git\";\n\t/** Clone URL (always valid for git clone, without ref suffix) */\n\trepo: string;\n\t/** Git host domain (e.g., \"github.com\") */\n\thost: string;\n\t/** Repository path (e.g., \"user/repo\") */\n\tpath: string;\n\t/** Git ref (branch, tag, commit) if specified */\n\tref?: string;\n\t/** True if ref was specified (package won't be auto-updated) */\n\tpinned: boolean;\n};\n\nfunction splitRef(url: string): { repo: string; ref?: string } {\n\tconst scpLikeMatch = url.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\tconst pathWithMaybeRef = scpLikeMatch[2] ?? \"\";\n\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\tif (refSeparator < 0) return { repo: url };\n\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\tif (!repoPath || !ref) return { repo: url };\n\t\treturn {\n\t\t\trepo: `git@${scpLikeMatch[1] ?? \"\"}:${repoPath}`,\n\t\t\tref,\n\t\t};\n\t}\n\n\tif (url.includes(\"://\")) {\n\t\ttry {\n\t\t\tconst parsed = new URL(url);\n\t\t\tconst pathWithMaybeRef = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\t\tif (refSeparator < 0) return { repo: url };\n\t\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\t\tif (!repoPath || !ref) return { repo: url };\n\t\t\tparsed.pathname = `/${repoPath}`;\n\t\t\treturn {\n\t\t\t\trepo: parsed.toString().replace(/\\/$/, \"\"),\n\t\t\t\tref,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn { repo: url };\n\t\t}\n\t}\n\n\tconst slashIndex = url.indexOf(\"/\");\n\tif (slashIndex < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst host = url.slice(0, slashIndex);\n\tconst pathWithMaybeRef = url.slice(slashIndex + 1);\n\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\tif (refSeparator < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\tif (!repoPath || !ref) {\n\t\treturn { repo: url };\n\t}\n\treturn {\n\t\trepo: `${host}/${repoPath}`,\n\t\tref,\n\t};\n}\n\nfunction parseGenericGitUrl(url: string): GitSource | null {\n\tconst { repo: repoWithoutRef, ref } = splitRef(url);\n\tlet repo = repoWithoutRef;\n\tlet host = \"\";\n\tlet path = \"\";\n\n\tconst scpLikeMatch = repoWithoutRef.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\thost = scpLikeMatch[1] ?? \"\";\n\t\tpath = scpLikeMatch[2] ?? \"\";\n\t} else if (\n\t\trepoWithoutRef.startsWith(\"https://\") ||\n\t\trepoWithoutRef.startsWith(\"http://\") ||\n\t\trepoWithoutRef.startsWith(\"ssh://\") ||\n\t\trepoWithoutRef.startsWith(\"git://\")\n\t) {\n\t\ttry {\n\t\t\tconst parsed = new URL(repoWithoutRef);\n\t\t\thost = parsed.hostname;\n\t\t\tpath = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} else {\n\t\tconst slashIndex = repoWithoutRef.indexOf(\"/\");\n\t\tif (slashIndex < 0) {\n\t\t\treturn null;\n\t\t}\n\t\thost = repoWithoutRef.slice(0, slashIndex);\n\t\tpath = repoWithoutRef.slice(slashIndex + 1);\n\t\tif (!host.includes(\".\") && host !== \"localhost\") {\n\t\t\treturn null;\n\t\t}\n\t\trepo = `https://${repoWithoutRef}`;\n\t}\n\n\tconst normalizedPath = path.replace(/\\.git$/, \"\").replace(/^\\/+/, \"\");\n\tif (!host || !normalizedPath || normalizedPath.split(\"/\").length < 2) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttype: \"git\",\n\t\trepo,\n\t\thost,\n\t\tpath: normalizedPath,\n\t\tref,\n\t\tpinned: Boolean(ref),\n\t};\n}\n\n/**\n * Parse git source into a GitSource.\n *\n * Rules:\n * - With git: prefix, accept all historical shorthand forms.\n * - Without git: prefix, only accept explicit protocol URLs.\n */\nexport function parseGitUrl(source: string): GitSource | null {\n\tconst trimmed = source.trim();\n\tconst hasGitPrefix = trimmed.startsWith(\"git:\");\n\tconst url = hasGitPrefix ? trimmed.slice(4).trim() : trimmed;\n\n\tif (!hasGitPrefix && !/^(https?|ssh|git):\\/\\//i.test(url)) {\n\t\treturn null;\n\t}\n\n\tconst split = splitRef(url);\n\n\tconst hostedCandidates = [split.ref ? `${split.repo}#${split.ref}` : undefined, url].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of hostedCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst useHttpsPrefix =\n\t\t\t\t!split.repo.startsWith(\"http://\") &&\n\t\t\t\t!split.repo.startsWith(\"https://\") &&\n\t\t\t\t!split.repo.startsWith(\"ssh://\") &&\n\t\t\t\t!split.repo.startsWith(\"git://\") &&\n\t\t\t\t!split.repo.startsWith(\"git@\");\n\t\t\treturn {\n\t\t\t\ttype: \"git\",\n\t\t\t\trepo: useHttpsPrefix ? `https://${split.repo}` : split.repo,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`.replace(/\\.git$/, \"\"),\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t\tpinned: Boolean(info.committish || split.ref),\n\t\t\t};\n\t\t}\n\t}\n\n\tconst httpsCandidates = [split.ref ? `https://${split.repo}#${split.ref}` : undefined, `https://${url}`].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of httpsCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\ttype: \"git\",\n\t\t\t\trepo: `https://${split.repo}`,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`.replace(/\\.git$/, \"\"),\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t\tpinned: Boolean(info.committish || split.ref),\n\t\t\t};\n\t\t}\n\t}\n\n\treturn parseGenericGitUrl(url);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/utils/git.ts"],"names":[],"mappings":"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","sourcesContent":["import hostedGitInfo from \"hosted-git-info\";\n\n/**\n * Parsed git URL information.\n */\nexport type GitSource = {\n\t/** Always \"git\" for git sources */\n\ttype: \"git\";\n\t/** Clone URL (always valid for git clone, without ref suffix) */\n\trepo: string;\n\t/** Git host domain (e.g., \"github.com\") */\n\thost: string;\n\t/** Repository path (e.g., \"user/repo\") */\n\tpath: string;\n\t/** Git ref (branch, tag, commit) if specified */\n\tref?: string;\n\t/** True if ref was specified (package won't be auto-updated) */\n\tpinned: boolean;\n};\n\nfunction splitRef(url: string): { repo: string; ref?: string } {\n\tconst scpLikeMatch = url.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\tconst pathWithMaybeRef = scpLikeMatch[2] ?? \"\";\n\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\tif (refSeparator < 0) return { repo: url };\n\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\tif (!repoPath || !ref) return { repo: url };\n\t\treturn {\n\t\t\trepo: `git@${scpLikeMatch[1] ?? \"\"}:${repoPath}`,\n\t\t\tref,\n\t\t};\n\t}\n\n\tif (url.includes(\"://\")) {\n\t\ttry {\n\t\t\tconst parsed = new URL(url);\n\t\t\tconst pathWithMaybeRef = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\t\t\tif (refSeparator < 0) return { repo: url };\n\t\t\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\t\t\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\t\t\tif (!repoPath || !ref) return { repo: url };\n\t\t\tparsed.pathname = `/${repoPath}`;\n\t\t\treturn {\n\t\t\t\trepo: parsed.toString().replace(/\\/$/, \"\"),\n\t\t\t\tref,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn { repo: url };\n\t\t}\n\t}\n\n\tconst slashIndex = url.indexOf(\"/\");\n\tif (slashIndex < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst host = url.slice(0, slashIndex);\n\tconst pathWithMaybeRef = url.slice(slashIndex + 1);\n\tconst refSeparator = pathWithMaybeRef.indexOf(\"@\");\n\tif (refSeparator < 0) {\n\t\treturn { repo: url };\n\t}\n\tconst repoPath = pathWithMaybeRef.slice(0, refSeparator);\n\tconst ref = pathWithMaybeRef.slice(refSeparator + 1);\n\tif (!repoPath || !ref) {\n\t\treturn { repo: url };\n\t}\n\treturn {\n\t\trepo: `${host}/${repoPath}`,\n\t\tref,\n\t};\n}\n\nfunction decodeForValidation(value: string): string | null {\n\ttry {\n\t\treturn decodeURIComponent(value);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nfunction hasUnsafeGitInstallPart(value: string, allowSlash: boolean): boolean {\n\tconst decoded = decodeForValidation(value);\n\tif (decoded === null) {\n\t\treturn true;\n\t}\n\tconst candidates = [value, decoded];\n\tfor (const candidate of candidates) {\n\t\tif (candidate.includes(\"\\0\") || candidate.includes(\"\\\\\") || candidate.startsWith(\"/\")) {\n\t\t\treturn true;\n\t\t}\n\t\tif (!allowSlash && candidate.includes(\"/\")) {\n\t\t\treturn true;\n\t\t}\n\t\tif (candidate.split(\"/\").includes(\"..\")) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n}\n\nfunction buildGitSource(args: { repo: string; host: string; path: string; ref?: string }): GitSource | null {\n\tif (args.path.startsWith(\"/\")) {\n\t\treturn null;\n\t}\n\tconst normalizedPath = args.path.replace(/\\.git$/, \"\").replace(/^\\/+/, \"\");\n\tif (!args.host || !normalizedPath || normalizedPath.split(\"/\").length < 2) {\n\t\treturn null;\n\t}\n\tif (hasUnsafeGitInstallPart(args.host, false) || hasUnsafeGitInstallPart(normalizedPath, true)) {\n\t\treturn null;\n\t}\n\n\treturn {\n\t\ttype: \"git\",\n\t\trepo: args.repo,\n\t\thost: args.host,\n\t\tpath: normalizedPath,\n\t\tref: args.ref,\n\t\tpinned: Boolean(args.ref),\n\t};\n}\n\nfunction parseGenericGitUrl(url: string): GitSource | null {\n\tconst { repo: repoWithoutRef, ref } = splitRef(url);\n\tlet repo = repoWithoutRef;\n\tlet host = \"\";\n\tlet path = \"\";\n\n\tconst scpLikeMatch = repoWithoutRef.match(/^git@([^:]+):(.+)$/);\n\tif (scpLikeMatch) {\n\t\thost = scpLikeMatch[1] ?? \"\";\n\t\tpath = scpLikeMatch[2] ?? \"\";\n\t} else if (\n\t\trepoWithoutRef.startsWith(\"https://\") ||\n\t\trepoWithoutRef.startsWith(\"http://\") ||\n\t\trepoWithoutRef.startsWith(\"ssh://\") ||\n\t\trepoWithoutRef.startsWith(\"git://\")\n\t) {\n\t\ttry {\n\t\t\tconst parsed = new URL(repoWithoutRef);\n\t\t\thost = parsed.hostname;\n\t\t\tpath = parsed.pathname.replace(/^\\/+/, \"\");\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} else {\n\t\tconst slashIndex = repoWithoutRef.indexOf(\"/\");\n\t\tif (slashIndex < 0) {\n\t\t\treturn null;\n\t\t}\n\t\thost = repoWithoutRef.slice(0, slashIndex);\n\t\tpath = repoWithoutRef.slice(slashIndex + 1);\n\t\tif (!host.includes(\".\") && host !== \"localhost\") {\n\t\t\treturn null;\n\t\t}\n\t\trepo = `https://${repoWithoutRef}`;\n\t}\n\n\treturn buildGitSource({ repo, host, path, ref });\n}\n\n/**\n * Parse git source into a GitSource.\n *\n * Rules:\n * - With git: prefix, accept all historical shorthand forms.\n * - Without git: prefix, only accept explicit protocol URLs.\n */\nexport function parseGitUrl(source: string): GitSource | null {\n\tconst trimmed = source.trim();\n\tconst hasGitPrefix = trimmed.startsWith(\"git:\");\n\tconst url = hasGitPrefix ? trimmed.slice(4).trim() : trimmed;\n\n\tif (!hasGitPrefix && !/^(https?|ssh|git):\\/\\//i.test(url)) {\n\t\treturn null;\n\t}\n\n\tconst split = splitRef(url);\n\n\tconst hostedCandidates = [split.ref ? `${split.repo}#${split.ref}` : undefined, url].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of hostedCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst useHttpsPrefix =\n\t\t\t\t!split.repo.startsWith(\"http://\") &&\n\t\t\t\t!split.repo.startsWith(\"https://\") &&\n\t\t\t\t!split.repo.startsWith(\"ssh://\") &&\n\t\t\t\t!split.repo.startsWith(\"git://\") &&\n\t\t\t\t!split.repo.startsWith(\"git@\");\n\t\t\treturn buildGitSource({\n\t\t\t\trepo: useHttpsPrefix ? `https://${split.repo}` : split.repo,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`,\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t});\n\t\t}\n\t}\n\n\tconst httpsCandidates = [split.ref ? `https://${split.repo}#${split.ref}` : undefined, `https://${url}`].filter(\n\t\t(value): value is string => Boolean(value),\n\t);\n\tfor (const candidate of httpsCandidates) {\n\t\tconst info = hostedGitInfo.fromUrl(candidate);\n\t\tif (info) {\n\t\t\tif (split.ref && info.project?.includes(\"@\")) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\treturn buildGitSource({\n\t\t\t\trepo: `https://${split.repo}`,\n\t\t\t\thost: info.domain || \"\",\n\t\t\t\tpath: `${info.user}/${info.project}`,\n\t\t\t\tref: info.committish || split.ref || undefined,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn parseGenericGitUrl(url);\n}\n"]}
|
package/dist/utils/html.d.ts
CHANGED
|
File without changes
|
package/dist/utils/html.d.ts.map
CHANGED
|
File without changes
|
package/dist/utils/html.js
CHANGED
|
File without changes
|
package/dist/utils/html.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/utils/json.d.ts
CHANGED
|
File without changes
|
package/dist/utils/json.d.ts.map
CHANGED
|
File without changes
|
package/dist/utils/json.js
CHANGED
|
File without changes
|
package/dist/utils/json.js.map
CHANGED
|
File without changes
|
package/dist/utils/mime.d.ts
CHANGED
|
File without changes
|
package/dist/utils/mime.d.ts.map
CHANGED
|
File without changes
|
package/dist/utils/mime.js
CHANGED
|
File without changes
|
package/dist/utils/mime.js.map
CHANGED
|
File without changes
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Open a URL or file in the platform browser/default handler.
|
|
3
|
+
*
|
|
4
|
+
* This intentionally never invokes a shell. On Windows, do not use
|
|
5
|
+
* `cmd /c start`: cmd.exe re-parses metacharacters (&, |, ^, ...) before
|
|
6
|
+
* `start` runs, which would make attacker-controlled URLs injectable.
|
|
7
|
+
*/
|
|
8
|
+
export declare function openBrowser(target: string): void;
|
|
9
|
+
//# sourceMappingURL=open-browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-browser.d.ts","sourceRoot":"","sources":["../../src/utils/open-browser.ts"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAchD","sourcesContent":["import { spawn } from \"node:child_process\";\n\n/**\n * Open a URL or file in the platform browser/default handler.\n *\n * This intentionally never invokes a shell. On Windows, do not use\n * `cmd /c start`: cmd.exe re-parses metacharacters (&, |, ^, ...) before\n * `start` runs, which would make attacker-controlled URLs injectable.\n */\nexport function openBrowser(target: string): void {\n\tconst [cmd, args]: [string, string[]] =\n\t\tprocess.platform === \"darwin\"\n\t\t\t? [\"open\", [target]]\n\t\t\t: process.platform === \"win32\"\n\t\t\t\t? [\"rundll32\", [\"url.dll,FileProtocolHandler\", target]]\n\t\t\t\t: [\"xdg-open\", [target]];\n\n\t// spawn reports launcher failures (for example, missing xdg-open) via an\n\t// error event. Browser launch is best-effort: callers still present the target\n\t// to the user, so keep the launcher failure from becoming a process crash.\n\tspawn(cmd, args, { stdio: \"ignore\", detached: true })\n\t\t.on(\"error\", () => {})\n\t\t.unref();\n}\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
/**
|
|
3
|
+
* Open a URL or file in the platform browser/default handler.
|
|
4
|
+
*
|
|
5
|
+
* This intentionally never invokes a shell. On Windows, do not use
|
|
6
|
+
* `cmd /c start`: cmd.exe re-parses metacharacters (&, |, ^, ...) before
|
|
7
|
+
* `start` runs, which would make attacker-controlled URLs injectable.
|
|
8
|
+
*/
|
|
9
|
+
export function openBrowser(target) {
|
|
10
|
+
const [cmd, args] = process.platform === "darwin"
|
|
11
|
+
? ["open", [target]]
|
|
12
|
+
: process.platform === "win32"
|
|
13
|
+
? ["rundll32", ["url.dll,FileProtocolHandler", target]]
|
|
14
|
+
: ["xdg-open", [target]];
|
|
15
|
+
// spawn reports launcher failures (for example, missing xdg-open) via an
|
|
16
|
+
// error event. Browser launch is best-effort: callers still present the target
|
|
17
|
+
// to the user, so keep the launcher failure from becoming a process crash.
|
|
18
|
+
spawn(cmd, args, { stdio: "ignore", detached: true })
|
|
19
|
+
.on("error", () => { })
|
|
20
|
+
.unref();
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=open-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-browser.js","sourceRoot":"","sources":["../../src/utils/open-browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,MAAc,EAAQ;IACjD,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAChB,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAC5B,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO;YAC7B,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE5B,yEAAyE;IACzE,+EAA+E;IAC/E,2EAA2E;IAC3E,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACnD,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,CAAC;SACrB,KAAK,EAAE,CAAC;AAAA,CACV","sourcesContent":["import { spawn } from \"node:child_process\";\n\n/**\n * Open a URL or file in the platform browser/default handler.\n *\n * This intentionally never invokes a shell. On Windows, do not use\n * `cmd /c start`: cmd.exe re-parses metacharacters (&, |, ^, ...) before\n * `start` runs, which would make attacker-controlled URLs injectable.\n */\nexport function openBrowser(target: string): void {\n\tconst [cmd, args]: [string, string[]] =\n\t\tprocess.platform === \"darwin\"\n\t\t\t? [\"open\", [target]]\n\t\t\t: process.platform === \"win32\"\n\t\t\t\t? [\"rundll32\", [\"url.dll,FileProtocolHandler\", target]]\n\t\t\t\t: [\"xdg-open\", [target]];\n\n\t// spawn reports launcher failures (for example, missing xdg-open) via an\n\t// error event. Browser launch is best-effort: callers still present the target\n\t// to the user, so keep the launcher failure from becoming a process crash.\n\tspawn(cmd, args, { stdio: \"ignore\", detached: true })\n\t\t.on(\"error\", () => {})\n\t\t.unref();\n}\n"]}
|
package/dist/utils/paths.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/paths.js
CHANGED
|
File without changes
|
package/dist/utils/paths.js.map
CHANGED
|
File without changes
|
package/dist/utils/photon.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/photon.js
CHANGED
|
File without changes
|
package/dist/utils/photon.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dist/utils/shell.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/shell.js
CHANGED
|
File without changes
|
package/dist/utils/shell.js.map
CHANGED
|
File without changes
|
package/dist/utils/sleep.d.ts
CHANGED
|
File without changes
|
|
File without changes
|
package/dist/utils/sleep.js
CHANGED
|
File without changes
|
package/dist/utils/sleep.js.map
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/compaction.md
CHANGED
|
File without changes
|
package/docs/custom-provider.md
CHANGED
|
File without changes
|
package/docs/development.md
CHANGED
|
File without changes
|
package/docs/docs.json
CHANGED
|
File without changes
|
package/docs/extensions.md
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/images/exy.png
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/index.md
CHANGED
|
File without changes
|
package/docs/json.md
CHANGED
|
File without changes
|
package/docs/keybindings.md
CHANGED
|
File without changes
|
package/docs/models.md
CHANGED
|
File without changes
|
package/docs/packages.md
CHANGED
|
File without changes
|
package/docs/prompt-templates.md
CHANGED
|
File without changes
|
package/docs/providers.md
CHANGED
|
File without changes
|
package/docs/quickstart.md
CHANGED
|
File without changes
|
package/docs/rpc.md
CHANGED
|
File without changes
|
package/docs/sdk.md
CHANGED
|
File without changes
|
package/docs/session-format.md
CHANGED
|
File without changes
|
package/docs/sessions.md
CHANGED
|
File without changes
|
package/docs/settings.md
CHANGED
|
File without changes
|
package/docs/shell-aliases.md
CHANGED
|
File without changes
|
package/docs/skills.md
CHANGED
|
File without changes
|
package/docs/terminal-setup.md
CHANGED
|
File without changes
|
package/docs/termux.md
CHANGED
|
File without changes
|
package/docs/themes.md
CHANGED
|
File without changes
|
package/docs/tmux.md
CHANGED
|
File without changes
|
package/docs/tui.md
CHANGED
|
@@ -585,6 +585,24 @@ This pattern is NOT needed when:
|
|
|
585
585
|
|
|
586
586
|
These patterns cover the most common UI needs in extensions. **Copy these patterns instead of building from scratch.**
|
|
587
587
|
|
|
588
|
+
### Pattern 0: Title Badge
|
|
589
|
+
|
|
590
|
+
For compact status labels in custom messages, skill renderers, and `renderCall`/`renderResult`, use `TitleBadgeComponent` or `titleBadge()` from `@earendil-works/pi-coding-agent`. It keeps titles visually consistent, compact, and width-bounded. `ToolTitleComponent`/`toolTitle()` remain aliases for tool-specific code.
|
|
591
|
+
|
|
592
|
+
```typescript
|
|
593
|
+
import { titleBadge } from "@earendil-works/pi-coding-agent";
|
|
594
|
+
|
|
595
|
+
renderCall(args, theme) {
|
|
596
|
+
return titleBadge(theme, {
|
|
597
|
+
label: "background script",
|
|
598
|
+
icon: "◆",
|
|
599
|
+
action: args.action || "list",
|
|
600
|
+
details: [args.id || args.name],
|
|
601
|
+
status: args.action === "stop" ? "warning" : "running",
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
```
|
|
605
|
+
|
|
588
606
|
### Pattern 1: Selection Dialog (SelectList)
|
|
589
607
|
|
|
590
608
|
For letting users pick from a list of options. Use `SelectList` from `@earendil-works/pi-tui` with `DynamicBorder` for framing.
|
package/docs/usage.md
CHANGED
|
File without changes
|
package/docs/windows.md
CHANGED
|
File without changes
|
package/examples/README.md
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-extension-custom-provider",
|
|
3
|
-
"version": "0.80.
|
|
3
|
+
"version": "0.80.10",
|
|
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.10",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@anthropic-ai/sdk": "^0.52.0"
|
|
12
12
|
}
|
|
File without changes
|