@dimivelev/chimera 0.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4443 -0
- package/README.md +600 -0
- package/dist/bun/cli.d.ts +3 -0
- package/dist/bun/cli.d.ts.map +1 -0
- package/dist/bun/cli.js +9 -0
- package/dist/bun/cli.js.map +1 -0
- package/dist/bun/register-bedrock.d.ts +2 -0
- package/dist/bun/register-bedrock.d.ts.map +1 -0
- package/dist/bun/register-bedrock.js +4 -0
- package/dist/bun/register-bedrock.js.map +1 -0
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +56 -0
- package/dist/cli/args.d.ts.map +1 -0
- package/dist/cli/args.js +368 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/config-selector.d.ts +14 -0
- package/dist/cli/config-selector.d.ts.map +1 -0
- package/dist/cli/config-selector.js +31 -0
- package/dist/cli/config-selector.js.map +1 -0
- package/dist/cli/file-processor.d.ts +15 -0
- package/dist/cli/file-processor.d.ts.map +1 -0
- package/dist/cli/file-processor.js +82 -0
- package/dist/cli/file-processor.js.map +1 -0
- package/dist/cli/initial-message.d.ts +18 -0
- package/dist/cli/initial-message.d.ts.map +1 -0
- package/dist/cli/initial-message.js +22 -0
- package/dist/cli/initial-message.js.map +1 -0
- package/dist/cli/list-models.d.ts +9 -0
- package/dist/cli/list-models.d.ts.map +1 -0
- package/dist/cli/list-models.js +98 -0
- package/dist/cli/list-models.js.map +1 -0
- package/dist/cli/session-picker.d.ts +9 -0
- package/dist/cli/session-picker.d.ts.map +1 -0
- package/dist/cli/session-picker.js +35 -0
- package/dist/cli/session-picker.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +18 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +92 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +428 -0
- package/dist/config.js.map +1 -0
- package/dist/core/agent-session-runtime.d.ts +117 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -0
- package/dist/core/agent-session-runtime.js +300 -0
- package/dist/core/agent-session-runtime.js.map +1 -0
- package/dist/core/agent-session-services.d.ts +87 -0
- package/dist/core/agent-session-services.d.ts.map +1 -0
- package/dist/core/agent-session-services.js +119 -0
- package/dist/core/agent-session-services.js.map +1 -0
- package/dist/core/agent-session.d.ts +604 -0
- package/dist/core/agent-session.d.ts.map +1 -0
- package/dist/core/agent-session.js +2526 -0
- package/dist/core/agent-session.js.map +1 -0
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +141 -0
- package/dist/core/auth-storage.d.ts.map +1 -0
- package/dist/core/auth-storage.js +442 -0
- package/dist/core/auth-storage.js.map +1 -0
- package/dist/core/bash-executor.d.ts +32 -0
- package/dist/core/bash-executor.d.ts.map +1 -0
- package/dist/core/bash-executor.js +111 -0
- package/dist/core/bash-executor.js.map +1 -0
- package/dist/core/compaction/branch-summarization.d.ts +88 -0
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -0
- package/dist/core/compaction/branch-summarization.js +243 -0
- package/dist/core/compaction/branch-summarization.js.map +1 -0
- package/dist/core/compaction/compaction.d.ts +121 -0
- package/dist/core/compaction/compaction.d.ts.map +1 -0
- package/dist/core/compaction/compaction.js +619 -0
- package/dist/core/compaction/compaction.js.map +1 -0
- package/dist/core/compaction/index.d.ts +7 -0
- package/dist/core/compaction/index.d.ts.map +1 -0
- package/dist/core/compaction/index.js +7 -0
- package/dist/core/compaction/index.js.map +1 -0
- package/dist/core/compaction/utils.d.ts +38 -0
- package/dist/core/compaction/utils.d.ts.map +1 -0
- package/dist/core/compaction/utils.js +153 -0
- package/dist/core/compaction/utils.js.map +1 -0
- package/dist/core/defaults.d.ts +3 -0
- package/dist/core/defaults.d.ts.map +1 -0
- package/dist/core/defaults.js +2 -0
- package/dist/core/defaults.js.map +1 -0
- package/dist/core/diagnostics.d.ts +15 -0
- package/dist/core/diagnostics.d.ts.map +1 -0
- package/dist/core/diagnostics.js +2 -0
- package/dist/core/diagnostics.js.map +1 -0
- package/dist/core/event-bus.d.ts +9 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/event-bus.js +25 -0
- package/dist/core/event-bus.js.map +1 -0
- package/dist/core/exec.d.ts +29 -0
- package/dist/core/exec.d.ts.map +1 -0
- package/dist/core/exec.js +75 -0
- package/dist/core/exec.js.map +1 -0
- package/dist/core/export-html/ansi-to-html.d.ts +22 -0
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -0
- package/dist/core/export-html/ansi-to-html.js +249 -0
- package/dist/core/export-html/ansi-to-html.js.map +1 -0
- package/dist/core/export-html/index.d.ts +37 -0
- package/dist/core/export-html/index.d.ts.map +1 -0
- package/dist/core/export-html/index.js +226 -0
- package/dist/core/export-html/index.js.map +1 -0
- package/dist/core/export-html/template.css +1066 -0
- package/dist/core/export-html/template.html +55 -0
- package/dist/core/export-html/template.js +1851 -0
- package/dist/core/export-html/tool-renderer.d.ts +34 -0
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -0
- package/dist/core/export-html/tool-renderer.js +108 -0
- package/dist/core/export-html/tool-renderer.js.map +1 -0
- package/dist/core/export-html/vendor/highlight.min.js +1213 -0
- package/dist/core/export-html/vendor/marked.min.js +6 -0
- package/dist/core/extensions/index.d.ts +12 -0
- package/dist/core/extensions/index.d.ts.map +1 -0
- package/dist/core/extensions/index.js +9 -0
- package/dist/core/extensions/index.js.map +1 -0
- package/dist/core/extensions/loader.d.ts +24 -0
- package/dist/core/extensions/loader.d.ts.map +1 -0
- package/dist/core/extensions/loader.js +481 -0
- package/dist/core/extensions/loader.js.map +1 -0
- package/dist/core/extensions/runner.d.ts +160 -0
- package/dist/core/extensions/runner.d.ts.map +1 -0
- package/dist/core/extensions/runner.js +836 -0
- package/dist/core/extensions/runner.js.map +1 -0
- package/dist/core/extensions/types.d.ts +1178 -0
- package/dist/core/extensions/types.d.ts.map +1 -0
- package/dist/core/extensions/types.js +45 -0
- package/dist/core/extensions/types.js.map +1 -0
- package/dist/core/extensions/wrapper.d.ts +20 -0
- package/dist/core/extensions/wrapper.d.ts.map +1 -0
- package/dist/core/extensions/wrapper.js +22 -0
- package/dist/core/extensions/wrapper.js.map +1 -0
- package/dist/core/footer-data-provider.d.ts +54 -0
- package/dist/core/footer-data-provider.d.ts.map +1 -0
- package/dist/core/footer-data-provider.js +338 -0
- package/dist/core/footer-data-provider.js.map +1 -0
- package/dist/core/http-dispatcher.d.ts +21 -0
- package/dist/core/http-dispatcher.d.ts.map +1 -0
- package/dist/core/http-dispatcher.js +48 -0
- package/dist/core/http-dispatcher.js.map +1 -0
- package/dist/core/index.d.ts +12 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +12 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/keybindings.d.ts +353 -0
- package/dist/core/keybindings.d.ts.map +1 -0
- package/dist/core/keybindings.js +295 -0
- package/dist/core/keybindings.js.map +1 -0
- package/dist/core/messages.d.ts +77 -0
- package/dist/core/messages.d.ts.map +1 -0
- package/dist/core/messages.js +123 -0
- package/dist/core/messages.js.map +1 -0
- package/dist/core/model-registry.d.ts +150 -0
- package/dist/core/model-registry.d.ts.map +1 -0
- package/dist/core/model-registry.js +784 -0
- package/dist/core/model-registry.js.map +1 -0
- package/dist/core/model-resolver.d.ts +110 -0
- package/dist/core/model-resolver.d.ts.map +1 -0
- package/dist/core/model-resolver.js +495 -0
- package/dist/core/model-resolver.js.map +1 -0
- package/dist/core/output-guard.d.ts +7 -0
- package/dist/core/output-guard.d.ts.map +1 -0
- package/dist/core/output-guard.js +89 -0
- package/dist/core/output-guard.js.map +1 -0
- package/dist/core/package-manager.d.ts +204 -0
- package/dist/core/package-manager.d.ts.map +1 -0
- package/dist/core/package-manager.js +2040 -0
- package/dist/core/package-manager.js.map +1 -0
- package/dist/core/prompt-templates.d.ts +52 -0
- package/dist/core/prompt-templates.d.ts.map +1 -0
- package/dist/core/prompt-templates.js +238 -0
- package/dist/core/prompt-templates.js.map +1 -0
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +33 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resolve-config-value.d.ts +31 -0
- package/dist/core/resolve-config-value.d.ts.map +1 -0
- package/dist/core/resolve-config-value.js +249 -0
- package/dist/core/resolve-config-value.js.map +1 -0
- package/dist/core/resource-loader.d.ts +194 -0
- package/dist/core/resource-loader.d.ts.map +1 -0
- package/dist/core/resource-loader.js +734 -0
- package/dist/core/resource-loader.js.map +1 -0
- package/dist/core/sdk.d.ts +109 -0
- package/dist/core/sdk.d.ts.map +1 -0
- package/dist/core/sdk.js +291 -0
- package/dist/core/sdk.js.map +1 -0
- package/dist/core/session-cwd.d.ts +19 -0
- package/dist/core/session-cwd.d.ts.map +1 -0
- package/dist/core/session-cwd.js +38 -0
- package/dist/core/session-cwd.js.map +1 -0
- package/dist/core/session-manager.d.ts +332 -0
- package/dist/core/session-manager.d.ts.map +1 -0
- package/dist/core/session-manager.js +1218 -0
- package/dist/core/session-manager.js.map +1 -0
- package/dist/core/settings-manager.d.ts +266 -0
- package/dist/core/settings-manager.d.ts.map +1 -0
- package/dist/core/settings-manager.js +800 -0
- package/dist/core/settings-manager.js.map +1 -0
- package/dist/core/skills.d.ts +60 -0
- package/dist/core/skills.d.ts.map +1 -0
- package/dist/core/skills.js +387 -0
- package/dist/core/skills.js.map +1 -0
- package/dist/core/slash-commands.d.ts +14 -0
- package/dist/core/slash-commands.d.ts.map +1 -0
- package/dist/core/slash-commands.js +25 -0
- package/dist/core/slash-commands.js.map +1 -0
- package/dist/core/source-info.d.ts +18 -0
- package/dist/core/source-info.d.ts.map +1 -0
- package/dist/core/source-info.js +19 -0
- package/dist/core/source-info.js.map +1 -0
- package/dist/core/system-prompt.d.ts +28 -0
- package/dist/core/system-prompt.d.ts.map +1 -0
- package/dist/core/system-prompt.js +120 -0
- package/dist/core/system-prompt.js.map +1 -0
- package/dist/core/telemetry.d.ts +3 -0
- package/dist/core/telemetry.d.ts.map +1 -0
- package/dist/core/telemetry.js +9 -0
- package/dist/core/telemetry.js.map +1 -0
- package/dist/core/timings.d.ts +8 -0
- package/dist/core/timings.d.ts.map +1 -0
- package/dist/core/timings.js +31 -0
- package/dist/core/timings.js.map +1 -0
- package/dist/core/tools/bash.d.ts +68 -0
- package/dist/core/tools/bash.d.ts.map +1 -0
- package/dist/core/tools/bash.js +337 -0
- package/dist/core/tools/bash.js.map +1 -0
- package/dist/core/tools/edit-diff.d.ts +87 -0
- package/dist/core/tools/edit-diff.d.ts.map +1 -0
- package/dist/core/tools/edit-diff.js +345 -0
- package/dist/core/tools/edit-diff.js.map +1 -0
- package/dist/core/tools/edit.d.ts +51 -0
- package/dist/core/tools/edit.d.ts.map +1 -0
- package/dist/core/tools/edit.js +284 -0
- package/dist/core/tools/edit.js.map +1 -0
- package/dist/core/tools/file-mutation-queue.d.ts +6 -0
- package/dist/core/tools/file-mutation-queue.d.ts.map +1 -0
- package/dist/core/tools/file-mutation-queue.js +52 -0
- package/dist/core/tools/file-mutation-queue.js.map +1 -0
- package/dist/core/tools/find.d.ts +35 -0
- package/dist/core/tools/find.d.ts.map +1 -0
- package/dist/core/tools/find.js +297 -0
- package/dist/core/tools/find.js.map +1 -0
- package/dist/core/tools/grep.d.ts +37 -0
- package/dist/core/tools/grep.d.ts.map +1 -0
- package/dist/core/tools/grep.js +304 -0
- package/dist/core/tools/grep.js.map +1 -0
- package/dist/core/tools/index.d.ts +40 -0
- package/dist/core/tools/index.d.ts.map +1 -0
- package/dist/core/tools/index.js +112 -0
- package/dist/core/tools/index.js.map +1 -0
- package/dist/core/tools/ls.d.ts +37 -0
- package/dist/core/tools/ls.d.ts.map +1 -0
- package/dist/core/tools/ls.js +167 -0
- package/dist/core/tools/ls.js.map +1 -0
- package/dist/core/tools/output-accumulator.d.ts +52 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +184 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/path-utils.d.ts +10 -0
- package/dist/core/tools/path-utils.d.ts.map +1 -0
- package/dist/core/tools/path-utils.js +99 -0
- package/dist/core/tools/path-utils.js.map +1 -0
- package/dist/core/tools/read.d.ts +35 -0
- package/dist/core/tools/read.d.ts.map +1 -0
- package/dist/core/tools/read.js +289 -0
- package/dist/core/tools/read.js.map +1 -0
- package/dist/core/tools/render-utils.d.ts +24 -0
- package/dist/core/tools/render-utils.d.ts.map +1 -0
- package/dist/core/tools/render-utils.js +65 -0
- package/dist/core/tools/render-utils.js.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts +14 -0
- package/dist/core/tools/tool-definition-wrapper.d.ts.map +1 -0
- package/dist/core/tools/tool-definition-wrapper.js +34 -0
- package/dist/core/tools/tool-definition-wrapper.js.map +1 -0
- package/dist/core/tools/truncate.d.ts +70 -0
- package/dist/core/tools/truncate.d.ts.map +1 -0
- package/dist/core/tools/truncate.js +215 -0
- package/dist/core/tools/truncate.js.map +1 -0
- package/dist/core/tools/write.d.ts +26 -0
- package/dist/core/tools/write.d.ts.map +1 -0
- package/dist/core/tools/write.js +197 -0
- package/dist/core/tools/write.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/main.d.ts +12 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +631 -0
- package/dist/main.js.map +1 -0
- package/dist/migrations.d.ts +33 -0
- package/dist/migrations.d.ts.map +1 -0
- package/dist/migrations.js +398 -0
- package/dist/migrations.js.map +1 -0
- package/dist/modes/index.d.ts +9 -0
- package/dist/modes/index.d.ts.map +1 -0
- package/dist/modes/index.js +8 -0
- package/dist/modes/index.js.map +1 -0
- package/dist/modes/interactive/assets/clankolas.png +0 -0
- package/dist/modes/interactive/components/armin.d.ts +34 -0
- package/dist/modes/interactive/components/armin.d.ts.map +1 -0
- package/dist/modes/interactive/components/armin.js +333 -0
- package/dist/modes/interactive/components/armin.js.map +1 -0
- package/dist/modes/interactive/components/assistant-message.d.ts +20 -0
- package/dist/modes/interactive/components/assistant-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/assistant-message.js +121 -0
- package/dist/modes/interactive/components/assistant-message.js.map +1 -0
- package/dist/modes/interactive/components/bash-execution.d.ts +34 -0
- package/dist/modes/interactive/components/bash-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/bash-execution.js +175 -0
- package/dist/modes/interactive/components/bash-execution.js.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts +16 -0
- package/dist/modes/interactive/components/bordered-loader.d.ts.map +1 -0
- package/dist/modes/interactive/components/bordered-loader.js +54 -0
- package/dist/modes/interactive/components/bordered-loader.js.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/branch-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/branch-summary-message.js +44 -0
- package/dist/modes/interactive/components/branch-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts +16 -0
- package/dist/modes/interactive/components/compaction-summary-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/compaction-summary-message.js +45 -0
- package/dist/modes/interactive/components/compaction-summary-message.js.map +1 -0
- package/dist/modes/interactive/components/config-selector.d.ts +71 -0
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/config-selector.js +506 -0
- package/dist/modes/interactive/components/config-selector.js.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts +14 -0
- package/dist/modes/interactive/components/countdown-timer.d.ts.map +1 -0
- package/dist/modes/interactive/components/countdown-timer.js +33 -0
- package/dist/modes/interactive/components/countdown-timer.js.map +1 -0
- package/dist/modes/interactive/components/custom-editor.d.ts +21 -0
- package/dist/modes/interactive/components/custom-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-editor.js +70 -0
- package/dist/modes/interactive/components/custom-editor.js.map +1 -0
- package/dist/modes/interactive/components/custom-message.d.ts +20 -0
- package/dist/modes/interactive/components/custom-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/custom-message.js +79 -0
- package/dist/modes/interactive/components/custom-message.js.map +1 -0
- package/dist/modes/interactive/components/daxnuts.d.ts +23 -0
- package/dist/modes/interactive/components/daxnuts.d.ts.map +1 -0
- package/dist/modes/interactive/components/daxnuts.js +140 -0
- package/dist/modes/interactive/components/daxnuts.js.map +1 -0
- package/dist/modes/interactive/components/diff.d.ts +12 -0
- package/dist/modes/interactive/components/diff.d.ts.map +1 -0
- package/dist/modes/interactive/components/diff.js +133 -0
- package/dist/modes/interactive/components/diff.js.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts +15 -0
- package/dist/modes/interactive/components/dynamic-border.d.ts.map +1 -0
- package/dist/modes/interactive/components/dynamic-border.js +21 -0
- package/dist/modes/interactive/components/dynamic-border.js.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts +5 -0
- package/dist/modes/interactive/components/earendil-announcement.d.ts.map +1 -0
- package/dist/modes/interactive/components/earendil-announcement.js +40 -0
- package/dist/modes/interactive/components/earendil-announcement.js.map +1 -0
- package/dist/modes/interactive/components/extension-editor.d.ts +20 -0
- package/dist/modes/interactive/components/extension-editor.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-editor.js +119 -0
- package/dist/modes/interactive/components/extension-editor.js.map +1 -0
- package/dist/modes/interactive/components/extension-input.d.ts +23 -0
- package/dist/modes/interactive/components/extension-input.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-input.js +61 -0
- package/dist/modes/interactive/components/extension-input.js.map +1 -0
- package/dist/modes/interactive/components/extension-selector.d.ts +26 -0
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/extension-selector.js +83 -0
- package/dist/modes/interactive/components/extension-selector.js.map +1 -0
- package/dist/modes/interactive/components/footer.d.ts +28 -0
- package/dist/modes/interactive/components/footer.d.ts.map +1 -0
- package/dist/modes/interactive/components/footer.js +210 -0
- package/dist/modes/interactive/components/footer.js.map +1 -0
- package/dist/modes/interactive/components/index.d.ts +32 -0
- package/dist/modes/interactive/components/index.d.ts.map +1 -0
- package/dist/modes/interactive/components/index.js +33 -0
- package/dist/modes/interactive/components/index.js.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts +13 -0
- package/dist/modes/interactive/components/keybinding-hints.d.ts.map +1 -0
- package/dist/modes/interactive/components/keybinding-hints.js +36 -0
- package/dist/modes/interactive/components/keybinding-hints.js.map +1 -0
- package/dist/modes/interactive/components/login-dialog.d.ts +52 -0
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -0
- package/dist/modes/interactive/components/login-dialog.js +183 -0
- package/dist/modes/interactive/components/login-dialog.js.map +1 -0
- package/dist/modes/interactive/components/model-selector.d.ts +47 -0
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/model-selector.js +278 -0
- package/dist/modes/interactive/components/model-selector.js.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts +31 -0
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/oauth-selector.js +165 -0
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts +42 -0
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/scoped-models-selector.js +290 -0
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts +23 -0
- package/dist/modes/interactive/components/session-selector-search.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector-search.js +155 -0
- package/dist/modes/interactive/components/session-selector-search.js.map +1 -0
- package/dist/modes/interactive/components/session-selector.d.ts +96 -0
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/session-selector.js +861 -0
- package/dist/modes/interactive/components/session-selector.js.map +1 -0
- package/dist/modes/interactive/components/settings-selector.d.ts +69 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/settings-selector.js +390 -0
- package/dist/modes/interactive/components/settings-selector.js.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts +10 -0
- package/dist/modes/interactive/components/show-images-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/show-images-selector.js +39 -0
- package/dist/modes/interactive/components/show-images-selector.js.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts +17 -0
- package/dist/modes/interactive/components/skill-invocation-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/skill-invocation-message.js +47 -0
- package/dist/modes/interactive/components/skill-invocation-message.js.map +1 -0
- package/dist/modes/interactive/components/theme-selector.d.ts +11 -0
- package/dist/modes/interactive/components/theme-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/theme-selector.js +50 -0
- package/dist/modes/interactive/components/theme-selector.js.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts +11 -0
- package/dist/modes/interactive/components/thinking-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/thinking-selector.js +51 -0
- package/dist/modes/interactive/components/thinking-selector.js.map +1 -0
- package/dist/modes/interactive/components/tool-execution.d.ts +63 -0
- package/dist/modes/interactive/components/tool-execution.d.ts.map +1 -0
- package/dist/modes/interactive/components/tool-execution.js +295 -0
- package/dist/modes/interactive/components/tool-execution.js.map +1 -0
- package/dist/modes/interactive/components/tree-selector.d.ts +89 -0
- package/dist/modes/interactive/components/tree-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/tree-selector.js +1093 -0
- package/dist/modes/interactive/components/tree-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts +30 -0
- package/dist/modes/interactive/components/user-message-selector.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message-selector.js +114 -0
- package/dist/modes/interactive/components/user-message-selector.js.map +1 -0
- package/dist/modes/interactive/components/user-message.d.ts +10 -0
- package/dist/modes/interactive/components/user-message.d.ts.map +1 -0
- package/dist/modes/interactive/components/user-message.js +29 -0
- package/dist/modes/interactive/components/user-message.js.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts +24 -0
- package/dist/modes/interactive/components/visual-truncate.d.ts.map +1 -0
- package/dist/modes/interactive/components/visual-truncate.js +33 -0
- package/dist/modes/interactive/components/visual-truncate.js.map +1 -0
- package/dist/modes/interactive/interactive-mode.d.ts +373 -0
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -0
- package/dist/modes/interactive/interactive-mode.js +4723 -0
- package/dist/modes/interactive/interactive-mode.js.map +1 -0
- package/dist/modes/interactive/theme/dark.json +86 -0
- package/dist/modes/interactive/theme/light.json +85 -0
- package/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/dist/modes/interactive/theme/theme.d.ts +100 -0
- package/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/dist/modes/interactive/theme/theme.js +1034 -0
- package/dist/modes/interactive/theme/theme.js.map +1 -0
- package/dist/modes/print-mode.d.ts +28 -0
- package/dist/modes/print-mode.d.ts.map +1 -0
- package/dist/modes/print-mode.js +132 -0
- package/dist/modes/print-mode.js.map +1 -0
- package/dist/modes/rpc/jsonl.d.ts +17 -0
- package/dist/modes/rpc/jsonl.d.ts.map +1 -0
- package/dist/modes/rpc/jsonl.js +49 -0
- package/dist/modes/rpc/jsonl.js.map +1 -0
- package/dist/modes/rpc/rpc-client.d.ts +227 -0
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-client.js +467 -0
- package/dist/modes/rpc/rpc-client.js.map +1 -0
- package/dist/modes/rpc/rpc-mode.d.ts +20 -0
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-mode.js +616 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -0
- package/dist/modes/rpc/rpc-types.d.ts +420 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -0
- package/dist/modes/rpc/rpc-types.js +8 -0
- package/dist/modes/rpc/rpc-types.js.map +1 -0
- package/dist/package-manager-cli.d.ts +4 -0
- package/dist/package-manager-cli.d.ts.map +1 -0
- package/dist/package-manager-cli.js +515 -0
- package/dist/package-manager-cli.js.map +1 -0
- package/dist/utils/ansi.d.ts +2 -0
- package/dist/utils/ansi.d.ts.map +1 -0
- package/dist/utils/ansi.js +52 -0
- package/dist/utils/ansi.js.map +1 -0
- package/dist/utils/changelog.d.ts +21 -0
- package/dist/utils/changelog.d.ts.map +1 -0
- package/dist/utils/changelog.js +87 -0
- package/dist/utils/changelog.js.map +1 -0
- package/dist/utils/child-process.d.ts +15 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +88 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/chimera-user-agent.d.ts +2 -0
- package/dist/utils/chimera-user-agent.d.ts.map +1 -0
- package/dist/utils/chimera-user-agent.js +5 -0
- package/dist/utils/chimera-user-agent.js.map +1 -0
- package/dist/utils/clipboard-image.d.ts +11 -0
- package/dist/utils/clipboard-image.d.ts.map +1 -0
- package/dist/utils/clipboard-image.js +245 -0
- package/dist/utils/clipboard-image.js.map +1 -0
- package/dist/utils/clipboard-native.d.ts +10 -0
- package/dist/utils/clipboard-native.d.ts.map +1 -0
- package/dist/utils/clipboard-native.js +20 -0
- package/dist/utils/clipboard-native.js.map +1 -0
- package/dist/utils/clipboard.d.ts +2 -0
- package/dist/utils/clipboard.d.ts.map +1 -0
- package/dist/utils/clipboard.js +117 -0
- package/dist/utils/clipboard.js.map +1 -0
- package/dist/utils/deprecation.d.ts +4 -0
- package/dist/utils/deprecation.d.ts.map +1 -0
- package/dist/utils/deprecation.js +13 -0
- package/dist/utils/deprecation.js.map +1 -0
- package/dist/utils/exif-orientation.d.ts +5 -0
- package/dist/utils/exif-orientation.d.ts.map +1 -0
- package/dist/utils/exif-orientation.js +158 -0
- package/dist/utils/exif-orientation.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +8 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +26 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/fs-watch.d.ts +5 -0
- package/dist/utils/fs-watch.d.ts.map +1 -0
- package/dist/utils/fs-watch.js +25 -0
- package/dist/utils/fs-watch.js.map +1 -0
- package/dist/utils/git.d.ts +26 -0
- package/dist/utils/git.d.ts.map +1 -0
- package/dist/utils/git.js +163 -0
- package/dist/utils/git.js.map +1 -0
- package/dist/utils/html.d.ts +7 -0
- package/dist/utils/html.d.ts.map +1 -0
- package/dist/utils/html.js +40 -0
- package/dist/utils/html.js.map +1 -0
- package/dist/utils/image-convert.d.ts +9 -0
- package/dist/utils/image-convert.d.ts.map +1 -0
- package/dist/utils/image-convert.js +39 -0
- package/dist/utils/image-convert.js.map +1 -0
- package/dist/utils/image-resize-core.d.ts +30 -0
- package/dist/utils/image-resize-core.d.ts.map +1 -0
- package/dist/utils/image-resize-core.js +124 -0
- package/dist/utils/image-resize-core.js.map +1 -0
- package/dist/utils/image-resize-worker.d.ts +2 -0
- package/dist/utils/image-resize-worker.d.ts.map +1 -0
- package/dist/utils/image-resize-worker.js +31 -0
- package/dist/utils/image-resize-worker.js.map +1 -0
- package/dist/utils/image-resize.d.ts +16 -0
- package/dist/utils/image-resize.d.ts.map +1 -0
- package/dist/utils/image-resize.js +97 -0
- package/dist/utils/image-resize.js.map +1 -0
- package/dist/utils/json.d.ts +3 -0
- package/dist/utils/json.d.ts.map +1 -0
- package/dist/utils/json.js +7 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/mime.d.ts +3 -0
- package/dist/utils/mime.d.ts.map +1 -0
- package/dist/utils/mime.js +69 -0
- package/dist/utils/mime.js.map +1 -0
- package/dist/utils/paths.d.ts +31 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +92 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/photon.d.ts +21 -0
- package/dist/utils/photon.d.ts.map +1 -0
- package/dist/utils/photon.js +121 -0
- package/dist/utils/photon.js.map +1 -0
- package/dist/utils/shell.d.ts +30 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +195 -0
- package/dist/utils/shell.js.map +1 -0
- package/dist/utils/sleep.d.ts +5 -0
- package/dist/utils/sleep.d.ts.map +1 -0
- package/dist/utils/sleep.js +17 -0
- package/dist/utils/sleep.js.map +1 -0
- package/dist/utils/syntax-highlight.d.ts +12 -0
- package/dist/utils/syntax-highlight.d.ts.map +1 -0
- package/dist/utils/syntax-highlight.js +118 -0
- package/dist/utils/syntax-highlight.js.map +1 -0
- package/dist/utils/tools-manager.d.ts +3 -0
- package/dist/utils/tools-manager.d.ts.map +1 -0
- package/dist/utils/tools-manager.js +328 -0
- package/dist/utils/tools-manager.js.map +1 -0
- package/dist/utils/version-check.d.ts +15 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +82 -0
- package/dist/utils/version-check.js.map +1 -0
- package/dist/utils/windows-self-update.d.ts +3 -0
- package/dist/utils/windows-self-update.d.ts.map +1 -0
- package/dist/utils/windows-self-update.js +77 -0
- package/dist/utils/windows-self-update.js.map +1 -0
- package/docs/compaction.md +394 -0
- package/docs/custom-provider.md +736 -0
- package/docs/development.md +71 -0
- package/docs/docs.json +148 -0
- package/docs/extensions.md +2613 -0
- package/docs/images/doom-extension.png +0 -0
- package/docs/images/exy.png +0 -0
- package/docs/images/interactive-mode.png +0 -0
- package/docs/images/tree-view.png +0 -0
- package/docs/index.md +80 -0
- package/docs/json.md +82 -0
- package/docs/keybindings.md +197 -0
- package/docs/models.md +493 -0
- package/docs/packages.md +226 -0
- package/docs/prompt-templates.md +88 -0
- package/docs/providers.md +251 -0
- package/docs/quickstart.md +165 -0
- package/docs/rpc.md +1408 -0
- package/docs/sdk.md +1137 -0
- package/docs/session-format.md +412 -0
- package/docs/sessions.md +145 -0
- package/docs/settings.md +281 -0
- package/docs/shell-aliases.md +13 -0
- package/docs/skills.md +231 -0
- package/docs/terminal-setup.md +114 -0
- package/docs/termux.md +127 -0
- package/docs/themes.md +295 -0
- package/docs/tmux.md +61 -0
- package/docs/tui.md +927 -0
- package/docs/usage.md +288 -0
- package/docs/windows.md +17 -0
- package/examples/README.md +25 -0
- package/examples/extensions/README.md +209 -0
- package/examples/extensions/auto-commit-on-exit.ts +49 -0
- package/examples/extensions/bash-spawn-hook.ts +30 -0
- package/examples/extensions/bookmark.ts +50 -0
- package/examples/extensions/border-status-editor.ts +145 -0
- package/examples/extensions/built-in-tool-renderer.ts +249 -0
- package/examples/extensions/claude-rules.ts +86 -0
- package/examples/extensions/commands.ts +72 -0
- package/examples/extensions/confirm-destructive.ts +59 -0
- package/examples/extensions/custom-compaction.ts +127 -0
- package/examples/extensions/custom-footer.ts +64 -0
- package/examples/extensions/custom-header.ts +73 -0
- package/examples/extensions/custom-provider-anthropic/index.ts +604 -0
- package/examples/extensions/custom-provider-anthropic/package-lock.json +24 -0
- package/examples/extensions/custom-provider-anthropic/package.json +19 -0
- package/examples/extensions/custom-provider-gitlab-duo/index.ts +400 -0
- package/examples/extensions/custom-provider-gitlab-duo/package.json +16 -0
- package/examples/extensions/custom-provider-gitlab-duo/test.ts +82 -0
- package/examples/extensions/dirty-repo-guard.ts +56 -0
- package/examples/extensions/doom-overlay/README.md +45 -0
- package/examples/extensions/doom-overlay/doom/build/doom.js +21 -0
- package/examples/extensions/doom-overlay/doom/build/doom.wasm +0 -0
- package/examples/extensions/doom-overlay/doom/build.sh +152 -0
- package/examples/extensions/doom-overlay/doom/doomgeneric_pi.c +72 -0
- package/examples/extensions/doom-overlay/doom-component.ts +132 -0
- package/examples/extensions/doom-overlay/doom-engine.ts +173 -0
- package/examples/extensions/doom-overlay/doom-keys.ts +104 -0
- package/examples/extensions/doom-overlay/index.ts +74 -0
- package/examples/extensions/doom-overlay/wad-finder.ts +51 -0
- package/examples/extensions/dynamic-resources/SKILL.md +8 -0
- package/examples/extensions/dynamic-resources/dynamic.json +79 -0
- package/examples/extensions/dynamic-resources/dynamic.md +5 -0
- package/examples/extensions/dynamic-resources/index.ts +15 -0
- package/examples/extensions/dynamic-tools.ts +74 -0
- package/examples/extensions/event-bus.ts +43 -0
- package/examples/extensions/file-trigger.ts +41 -0
- package/examples/extensions/git-checkpoint.ts +53 -0
- package/examples/extensions/git-merge-and-resolve.ts +115 -0
- package/examples/extensions/github-issue-autocomplete.ts +185 -0
- package/examples/extensions/handoff.ts +191 -0
- package/examples/extensions/hello.ts +26 -0
- package/examples/extensions/hidden-thinking-label.ts +53 -0
- package/examples/extensions/inline-bash.ts +94 -0
- package/examples/extensions/input-transform-streaming.ts +39 -0
- package/examples/extensions/input-transform.ts +43 -0
- package/examples/extensions/interactive-shell.ts +196 -0
- package/examples/extensions/mac-system-theme.ts +47 -0
- package/examples/extensions/message-renderer.ts +59 -0
- package/examples/extensions/minimal-mode.ts +426 -0
- package/examples/extensions/modal-editor.ts +85 -0
- package/examples/extensions/model-status.ts +31 -0
- package/examples/extensions/notify.ts +55 -0
- package/examples/extensions/overlay-qa-tests.ts +1450 -0
- package/examples/extensions/overlay-test.ts +153 -0
- package/examples/extensions/permission-gate.ts +34 -0
- package/examples/extensions/pirate.ts +47 -0
- package/examples/extensions/plan-mode/README.md +65 -0
- package/examples/extensions/plan-mode/index.ts +340 -0
- package/examples/extensions/plan-mode/utils.ts +168 -0
- package/examples/extensions/preset.ts +430 -0
- package/examples/extensions/prompt-customizer.ts +97 -0
- package/examples/extensions/protected-paths.ts +30 -0
- package/examples/extensions/provider-payload.ts +18 -0
- package/examples/extensions/qna.ts +122 -0
- package/examples/extensions/question.ts +264 -0
- package/examples/extensions/questionnaire.ts +427 -0
- package/examples/extensions/rainbow-editor.ts +88 -0
- package/examples/extensions/reload-runtime.ts +37 -0
- package/examples/extensions/rpc-demo.ts +118 -0
- package/examples/extensions/sandbox/index.ts +321 -0
- package/examples/extensions/sandbox/package-lock.json +92 -0
- package/examples/extensions/sandbox/package.json +19 -0
- package/examples/extensions/send-user-message.ts +97 -0
- package/examples/extensions/session-name.ts +27 -0
- package/examples/extensions/shutdown-command.ts +63 -0
- package/examples/extensions/snake.ts +343 -0
- package/examples/extensions/space-invaders.ts +560 -0
- package/examples/extensions/ssh.ts +220 -0
- package/examples/extensions/status-line.ts +32 -0
- package/examples/extensions/structured-output.ts +65 -0
- package/examples/extensions/subagent/README.md +175 -0
- package/examples/extensions/subagent/agents/planner.md +37 -0
- package/examples/extensions/subagent/agents/reviewer.md +35 -0
- package/examples/extensions/subagent/agents/scout.md +50 -0
- package/examples/extensions/subagent/agents/worker.md +24 -0
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/subagent/index.ts +1009 -0
- package/examples/extensions/subagent/prompts/implement-and-review.md +10 -0
- package/examples/extensions/subagent/prompts/implement.md +10 -0
- package/examples/extensions/subagent/prompts/scout-and-plan.md +9 -0
- package/examples/extensions/summarize.ts +206 -0
- package/examples/extensions/system-prompt-header.ts +17 -0
- package/examples/extensions/tic-tac-toe.ts +1008 -0
- package/examples/extensions/timed-confirm.ts +70 -0
- package/examples/extensions/titlebar-spinner.ts +58 -0
- package/examples/extensions/todo.ts +297 -0
- package/examples/extensions/tool-override.ts +144 -0
- package/examples/extensions/tools.ts +146 -0
- package/examples/extensions/trigger-compact.ts +50 -0
- package/examples/extensions/truncated-tool.ts +195 -0
- package/examples/extensions/widget-placement.ts +9 -0
- package/examples/extensions/with-deps/index.ts +32 -0
- package/examples/extensions/with-deps/package-lock.json +31 -0
- package/examples/extensions/with-deps/package.json +22 -0
- package/examples/extensions/working-indicator.ts +123 -0
- package/examples/extensions/working-message-test.ts +25 -0
- package/examples/rpc-extension-ui.ts +632 -0
- package/examples/sdk/01-minimal.ts +26 -0
- package/examples/sdk/02-custom-model.ts +53 -0
- package/examples/sdk/03-custom-prompt.ts +70 -0
- package/examples/sdk/04-skills.ts +55 -0
- package/examples/sdk/05-tools.ts +48 -0
- package/examples/sdk/06-extensions.ts +94 -0
- package/examples/sdk/07-context-files.ts +42 -0
- package/examples/sdk/08-prompt-templates.ts +51 -0
- package/examples/sdk/09-api-keys-and-oauth.ts +52 -0
- package/examples/sdk/10-settings.ts +53 -0
- package/examples/sdk/11-sessions.ts +52 -0
- package/examples/sdk/12-full-control.ts +77 -0
- package/examples/sdk/13-session-runtime.ts +67 -0
- package/examples/sdk/README.md +144 -0
- package/node_modules/@anthropic-ai/sdk/CHANGELOG.md +1677 -0
- package/node_modules/@anthropic-ai/sdk/LICENSE +8 -0
- package/node_modules/@anthropic-ai/sdk/README.md +674 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.js +226 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs +223 -0
- package/node_modules/@anthropic-ai/sdk/_vendor/partial-json-parser/parser.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.js +6 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/api-promise.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/bin/cli +53 -0
- package/node_modules/@anthropic-ai/sdk/bin/migration-config.json +7 -0
- package/node_modules/@anthropic-ai/sdk/client.d.mts +225 -0
- package/node_modules/@anthropic-ai/sdk/client.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/client.d.ts +225 -0
- package/node_modules/@anthropic-ai/sdk/client.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/client.js +536 -0
- package/node_modules/@anthropic-ai/sdk/client.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/client.mjs +531 -0
- package/node_modules/@anthropic-ai/sdk/client.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.d.mts +49 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.d.ts +49 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.js +76 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.mjs +72 -0
- package/node_modules/@anthropic-ai/sdk/core/api-promise.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/error.d.mts +47 -0
- package/node_modules/@anthropic-ai/sdk/core/error.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/error.d.ts +47 -0
- package/node_modules/@anthropic-ai/sdk/core/error.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/error.js +114 -0
- package/node_modules/@anthropic-ai/sdk/core/error.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/error.mjs +98 -0
- package/node_modules/@anthropic-ai/sdk/core/error.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.d.mts +63 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.d.ts +63 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.js +123 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.mjs +117 -0
- package/node_modules/@anthropic-ai/sdk/core/pagination.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.d.mts +6 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.d.ts +6 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.js +11 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.mjs +7 -0
- package/node_modules/@anthropic-ai/sdk/core/resource.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.d.mts +31 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.d.ts +31 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.js +282 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.mjs +277 -0
- package/node_modules/@anthropic-ai/sdk/core/streaming.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.js +6 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/core/uploads.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/error.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/error.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/error.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/error.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/error.js +6 -0
- package/node_modules/@anthropic-ai/sdk/error.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/error.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/error.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/index.d.mts +7 -0
- package/node_modules/@anthropic-ai/sdk/index.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/index.d.ts +7 -0
- package/node_modules/@anthropic-ai/sdk/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/index.js +35 -0
- package/node_modules/@anthropic-ai/sdk/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/index.mjs +8 -0
- package/node_modules/@anthropic-ai/sdk/index.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.d.mts +73 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.d.ts +73 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.js +4 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/builtin-types.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.d.mts +5 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.d.ts +5 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.js +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.mjs +12 -0
- package/node_modules/@anthropic-ai/sdk/internal/constants.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.mts +10 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.ts +10 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.js +39 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs +35 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/jsonl.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.d.mts +17 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.d.ts +17 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.js +113 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs +108 -0
- package/node_modules/@anthropic-ai/sdk/internal/decoders/line.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.d.mts +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.d.ts +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.js +162 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs +157 -0
- package/node_modules/@anthropic-ai/sdk/internal/detect-platform.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.js +41 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.mjs +36 -0
- package/node_modules/@anthropic-ai/sdk/internal/errors.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.d.mts +22 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.d.ts +22 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.js +79 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.mjs +74 -0
- package/node_modules/@anthropic-ai/sdk/internal/headers.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.d.mts +17 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.d.ts +17 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.js +55 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.mjs +51 -0
- package/node_modules/@anthropic-ai/sdk/internal/parse.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.d.mts +34 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.d.ts +34 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.js +14 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.mjs +10 -0
- package/node_modules/@anthropic-ai/sdk/internal/request-options.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/shim-types.d.mts +28 -0
- package/node_modules/@anthropic-ai/sdk/internal/shim-types.d.ts +28 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.d.mts +20 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.d.ts +20 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.js +92 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.mjs +85 -0
- package/node_modules/@anthropic-ai/sdk/internal/shims.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.d.mts +8 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.d.ts +8 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.js +38 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.mjs +35 -0
- package/node_modules/@anthropic-ai/sdk/internal/stream-utils.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.d.mts +45 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.d.ts +45 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.js +96 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.mjs +93 -0
- package/node_modules/@anthropic-ai/sdk/internal/to-file.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/tslib.js +81 -0
- package/node_modules/@anthropic-ai/sdk/internal/tslib.mjs +17 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.d.mts +67 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.d.ts +67 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.js +4 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/types.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.d.mts +42 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.d.ts +42 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.js +146 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.mjs +136 -0
- package/node_modules/@anthropic-ai/sdk/internal/uploads.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.js +38 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.mjs +33 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/base64.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.d.mts +4 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.d.ts +4 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.js +31 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs +26 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/bytes.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.d.mts +9 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.d.ts +9 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.js +22 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.mjs +18 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/env.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.mts +37 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.ts +37 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.js +86 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.mjs +80 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/log.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.d.mts +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.d.ts +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.js +58 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.mjs +53 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/path.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.js +7 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/sleep.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.d.mts +5 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.d.ts +5 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.js +19 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs +15 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/uuid.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.mts +16 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.ts +16 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.js +109 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.mjs +92 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils/values.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.d.mts +7 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.d.ts +7 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.js +11 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.mjs +8 -0
- package/node_modules/@anthropic-ai/sdk/internal/utils.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.mts +114 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.ts +114 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js +553 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs +549 -0
- package/node_modules/@anthropic-ai/sdk/lib/BetaMessageStream.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.mts +114 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.ts +114 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js +553 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs +549 -0
- package/node_modules/@anthropic-ai/sdk/lib/MessageStream.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/package.json +185 -0
- package/node_modules/@anthropic-ai/sdk/pagination.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/pagination.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/pagination.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/pagination.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/pagination.js +6 -0
- package/node_modules/@anthropic-ai/sdk/pagination.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/pagination.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/pagination.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resource.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resource.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resource.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resource.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resource.js +6 -0
- package/node_modules/@anthropic-ai/sdk/resource.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resource.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/resource.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts +61 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts +61 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js +25 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs +20 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/beta.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts +151 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts +151 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.js +122 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs +118 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/files.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts +5 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts +5 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.js +13 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/index.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.mts +343 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.ts +343 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.js +204 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs +200 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/batches.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.js +9 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.mjs +4 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/index.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts +1561 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts +1561 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.js +86 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs +81 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages/messages.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.js +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/messages.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.mts +74 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.ts +74 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.js +60 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.mjs +56 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta/models.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.js +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/beta.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.d.mts +183 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.d.ts +183 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.js +23 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.mjs +19 -0
- package/node_modules/@anthropic-ai/sdk/resources/completions.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.d.mts +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.d.ts +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.js +15 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.mjs +7 -0
- package/node_modules/@anthropic-ai/sdk/resources/index.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.mts +304 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.ts +304 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.js +153 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs +149 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/batches.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.mts +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.js +9 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.mjs +4 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/index.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts +1264 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts +1264 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.js +72 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs +67 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages/messages.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.js +6 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/messages.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.d.mts +59 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.d.ts +59 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.js +45 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.mjs +41 -0
- package/node_modules/@anthropic-ai/sdk/resources/models.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.d.mts +42 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.d.ts +42 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.js +4 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/shared.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.js +4 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.mjs +3 -0
- package/node_modules/@anthropic-ai/sdk/resources/top-level.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/resources.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources.js +5 -0
- package/node_modules/@anthropic-ai/sdk/resources.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/resources.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/resources.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/src/_vendor/partial-json-parser/README.md +3 -0
- package/node_modules/@anthropic-ai/sdk/src/_vendor/partial-json-parser/parser.ts +264 -0
- package/node_modules/@anthropic-ai/sdk/src/api-promise.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/client.ts +1070 -0
- package/node_modules/@anthropic-ai/sdk/src/core/README.md +3 -0
- package/node_modules/@anthropic-ai/sdk/src/core/api-promise.ts +101 -0
- package/node_modules/@anthropic-ai/sdk/src/core/error.ts +133 -0
- package/node_modules/@anthropic-ai/sdk/src/core/pagination.ts +201 -0
- package/node_modules/@anthropic-ai/sdk/src/core/resource.ts +11 -0
- package/node_modules/@anthropic-ai/sdk/src/core/streaming.ts +331 -0
- package/node_modules/@anthropic-ai/sdk/src/core/uploads.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/error.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/index.ts +23 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/README.md +3 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/builtin-types.ts +93 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/constants.ts +12 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/decoders/jsonl.ts +48 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/decoders/line.ts +135 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/detect-platform.ts +196 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/errors.ts +33 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/headers.ts +99 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/parse.ts +84 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/request-options.ts +39 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/shim-types.d.ts +28 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/shims.ts +107 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/stream-utils.ts +32 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/to-file.ts +159 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/types.ts +92 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/uploads.ts +193 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/base64.ts +40 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/bytes.ts +32 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/env.ts +18 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/log.ts +127 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/path.ts +65 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/sleep.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/uuid.ts +17 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils/values.ts +102 -0
- package/node_modules/@anthropic-ai/sdk/src/internal/utils.ts +8 -0
- package/node_modules/@anthropic-ai/sdk/src/lib/.keep +4 -0
- package/node_modules/@anthropic-ai/sdk/src/lib/BetaMessageStream.ts +683 -0
- package/node_modules/@anthropic-ai/sdk/src/lib/MessageStream.ts +684 -0
- package/node_modules/@anthropic-ai/sdk/src/pagination.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/resource.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/beta.ts +380 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/files.ts +258 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/index.ts +148 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/batches.ts +502 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/index.ts +135 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages/messages.ts +2249 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/messages.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta/models.ts +118 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/beta.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/completions.ts +231 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/index.ts +121 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/messages/batches.ts +396 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/messages/index.ts +110 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/messages/messages.ts +1783 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/messages.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/models.ts +103 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/shared.ts +72 -0
- package/node_modules/@anthropic-ai/sdk/src/resources/top-level.ts +3 -0
- package/node_modules/@anthropic-ai/sdk/src/resources.ts +1 -0
- package/node_modules/@anthropic-ai/sdk/src/streaming.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/tsconfig.json +11 -0
- package/node_modules/@anthropic-ai/sdk/src/uploads.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/src/version.ts +1 -0
- package/node_modules/@anthropic-ai/sdk/streaming.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/streaming.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/streaming.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/streaming.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/streaming.js +6 -0
- package/node_modules/@anthropic-ai/sdk/streaming.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/streaming.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/streaming.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/uploads.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/uploads.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/uploads.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/uploads.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/uploads.js +6 -0
- package/node_modules/@anthropic-ai/sdk/uploads.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/uploads.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/uploads.mjs.map +1 -0
- package/node_modules/@anthropic-ai/sdk/version.d.mts +2 -0
- package/node_modules/@anthropic-ai/sdk/version.d.mts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/version.d.ts +2 -0
- package/node_modules/@anthropic-ai/sdk/version.d.ts.map +1 -0
- package/node_modules/@anthropic-ai/sdk/version.js +5 -0
- package/node_modules/@anthropic-ai/sdk/version.js.map +1 -0
- package/node_modules/@anthropic-ai/sdk/version.mjs +2 -0
- package/node_modules/@anthropic-ai/sdk/version.mjs.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent-loop.d.ts +24 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent-loop.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent-loop.js +502 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent-loop.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent.d.ts +118 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent.js +402 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/agent.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/agent-harness.d.ts +95 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/agent-harness.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/agent-harness.js +963 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/agent-harness.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/branch-summarization.d.ts +53 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/branch-summarization.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/branch-summarization.js +175 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/branch-summarization.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/compaction.d.ts +95 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/compaction.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/compaction.js +528 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/compaction.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/utils.d.ts +25 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/utils.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/utils.js +131 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/compaction/utils.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/env/nodejs.d.ts +51 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/env/nodejs.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/env/nodejs.js +486 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/env/nodejs.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/messages.d.ts +51 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/messages.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/messages.js +102 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/messages.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/prompt-templates.d.ts +48 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/prompt-templates.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/prompt-templates.js +230 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/prompt-templates.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-repo.d.ts +26 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-repo.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-repo.js +101 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-repo.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-storage.d.ts +33 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-storage.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-storage.js +231 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/jsonl-storage.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-repo.d.ts +18 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-repo.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-repo.js +42 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-repo.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-storage.d.ts +25 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-storage.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-storage.js +114 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/memory-storage.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/repo-utils.d.ts +11 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/repo-utils.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/repo-utils.js +39 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/repo-utils.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/session.d.ts +33 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/session.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/session.js +210 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/session.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/uuid.d.ts +2 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/uuid.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/uuid.js +50 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/session/uuid.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/skills.d.ts +44 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/skills.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/skills.js +311 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/skills.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/system-prompt.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/system-prompt.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/system-prompt.js +30 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/system-prompt.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/types.d.ts +615 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/types.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/types.js +94 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/types.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/shell-output.d.ts +14 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/shell-output.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/shell-output.js +126 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/shell-output.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/truncate.d.ts +70 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/truncate.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/truncate.js +290 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/harness/utils/truncate.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/index.d.ts +20 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/index.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/index.js +25 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/index.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/node.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/node.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/node.js +3 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/node.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/proxy.d.ts +69 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/proxy.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/proxy.js +278 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/proxy.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/types.d.ts +393 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/types.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/types.js +2 -0
- package/node_modules/@dimivelev/chimera-agent-core/dist/types.js.map +1 -0
- package/node_modules/@dimivelev/chimera-agent-core/package.json +60 -0
- package/node_modules/@dimivelev/chimera-ai/dist/api-registry.d.ts +20 -0
- package/node_modules/@dimivelev/chimera-ai/dist/api-registry.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/api-registry.js +44 -0
- package/node_modules/@dimivelev/chimera-ai/dist/api-registry.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/bedrock-provider.d.ts +5 -0
- package/node_modules/@dimivelev/chimera-ai/dist/bedrock-provider.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/bedrock-provider.js +6 -0
- package/node_modules/@dimivelev/chimera-ai/dist/bedrock-provider.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/cli.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-ai/dist/cli.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/cli.js +130 -0
- package/node_modules/@dimivelev/chimera-ai/dist/cli.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/env-api-keys.d.ts +18 -0
- package/node_modules/@dimivelev/chimera-ai/dist/env-api-keys.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/env-api-keys.js +178 -0
- package/node_modules/@dimivelev/chimera-ai/dist/env-api-keys.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.d.ts +10 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.generated.d.ts +4 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.generated.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.generated.js +6 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.generated.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.js +23 -0
- package/node_modules/@dimivelev/chimera-ai/dist/image-models.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images-api-registry.d.ts +14 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images-api-registry.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images-api-registry.js +22 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images-api-registry.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images.d.ts +4 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images.js +14 -0
- package/node_modules/@dimivelev/chimera-ai/dist/images.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/index.d.ts +32 -0
- package/node_modules/@dimivelev/chimera-ai/dist/index.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/index.js +20 -0
- package/node_modules/@dimivelev/chimera-ai/dist/index.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.d.ts +18 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.generated.d.ts +14714 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.generated.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.generated.js +13379 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.generated.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.js +71 -0
- package/node_modules/@dimivelev/chimera-ai/dist/models.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/oauth.d.ts +2 -0
- package/node_modules/@dimivelev/chimera-ai/dist/oauth.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/oauth.js +2 -0
- package/node_modules/@dimivelev/chimera-ai/dist/oauth.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/amazon-bedrock.d.ts +38 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/amazon-bedrock.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/amazon-bedrock.js +826 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/amazon-bedrock.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/anthropic.d.ts +71 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/anthropic.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/anthropic.js +959 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/anthropic.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/azure-openai-responses.d.ts +15 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/azure-openai-responses.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/azure-openai-responses.js +221 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/azure-openai-responses.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/cloudflare.d.ts +13 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/cloudflare.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/cloudflare.js +26 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/cloudflare.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/faux.d.ts +56 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/faux.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/faux.js +368 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/faux.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/github-copilot-headers.d.ts +8 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/github-copilot-headers.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/github-copilot-headers.js +29 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/github-copilot-headers.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-shared.d.ts +70 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-shared.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-shared.js +329 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-shared.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-vertex.d.ts +15 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-vertex.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-vertex.js +442 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google-vertex.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google.d.ts +13 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google.js +402 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/google.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/openrouter.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/openrouter.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/openrouter.js +128 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/openrouter.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/register-builtins.d.ts +4 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/register-builtins.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/register-builtins.js +34 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/images/register-builtins.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/mistral.d.ts +25 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/mistral.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/mistral.js +534 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/mistral.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-codex-responses.d.ts +30 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-codex-responses.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-codex-responses.js +1171 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-codex-responses.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-completions.d.ts +19 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-completions.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-completions.js +956 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-completions.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-prompt-cache.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-prompt-cache.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-prompt-cache.js +10 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-prompt-cache.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses-shared.d.ts +18 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses-shared.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses-shared.js +495 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses-shared.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses.d.ts +13 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses.js +233 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/openai-responses.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/register-builtins.d.ts +35 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/register-builtins.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/register-builtins.js +254 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/register-builtins.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/simple-options.d.ts +8 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/simple-options.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/simple-options.js +42 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/simple-options.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/transform-messages.d.ts +8 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/transform-messages.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/transform-messages.js +184 -0
- package/node_modules/@dimivelev/chimera-ai/dist/providers/transform-messages.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/session-resources.d.ts +4 -0
- package/node_modules/@dimivelev/chimera-ai/dist/session-resources.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/session-resources.js +22 -0
- package/node_modules/@dimivelev/chimera-ai/dist/session-resources.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/stream.d.ts +8 -0
- package/node_modules/@dimivelev/chimera-ai/dist/stream.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/stream.js +39 -0
- package/node_modules/@dimivelev/chimera-ai/dist/stream.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/types.d.ts +514 -0
- package/node_modules/@dimivelev/chimera-ai/dist/types.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/types.js +2 -0
- package/node_modules/@dimivelev/chimera-ai/dist/types.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/abort-signals.d.ts +6 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/abort-signals.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/abort-signals.js +34 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/abort-signals.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/diagnostics.d.ts +19 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/diagnostics.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/diagnostics.js +25 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/diagnostics.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/event-stream.d.ts +21 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/event-stream.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/event-stream.js +81 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/event-stream.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/hash.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/hash.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/hash.js +14 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/hash.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/headers.d.ts +2 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/headers.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/headers.js +8 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/headers.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/json-parse.d.ts +16 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/json-parse.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/json-parse.js +113 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/json-parse.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/node-http-proxy.d.ts +10 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/node-http-proxy.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/node-http-proxy.js +97 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/node-http-proxy.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/anthropic.d.ts +25 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/anthropic.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/anthropic.js +335 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/anthropic.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/device-code.d.ts +21 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/device-code.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/device-code.js +56 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/device-code.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/github-copilot.d.ts +30 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/github-copilot.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/github-copilot.js +268 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/github-copilot.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/index.d.ts +58 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/index.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/index.js +122 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/index.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/oauth-page.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/oauth-page.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/oauth-page.js +105 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/oauth-page.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/openai-codex.d.ts +43 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/openai-codex.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/openai-codex.js +485 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/openai-codex.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/pkce.d.ts +13 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/pkce.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/pkce.js +31 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/pkce.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/types.d.ts +64 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/types.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/types.js +2 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/oauth/types.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/overflow.d.ts +57 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/overflow.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/overflow.js +154 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/overflow.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/sanitize-unicode.d.ts +22 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/sanitize-unicode.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/sanitize-unicode.js +26 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/sanitize-unicode.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/typebox-helpers.d.ts +17 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/typebox-helpers.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/typebox-helpers.js +21 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/typebox-helpers.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/validation.d.ts +18 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/validation.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/validation.js +281 -0
- package/node_modules/@dimivelev/chimera-ai/dist/utils/validation.js.map +1 -0
- package/node_modules/@dimivelev/chimera-ai/package.json +106 -0
- package/node_modules/@dimivelev/chimera-tui/dist/autocomplete.d.ts +54 -0
- package/node_modules/@dimivelev/chimera-tui/dist/autocomplete.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/autocomplete.js +632 -0
- package/node_modules/@dimivelev/chimera-tui/dist/autocomplete.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/box.d.ts +22 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/box.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/box.js +104 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/box.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/cancellable-loader.d.ts +22 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/cancellable-loader.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/cancellable-loader.js +35 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/cancellable-loader.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/editor.d.ts +249 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/editor.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/editor.js +1857 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/editor.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/image.d.ts +28 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/image.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/image.js +89 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/image.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/input.d.ts +37 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/input.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/input.js +378 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/input.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/loader.d.ts +31 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/loader.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/loader.js +69 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/loader.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/markdown.d.ts +96 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/markdown.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/markdown.js +644 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/markdown.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/select-list.d.ts +50 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/select-list.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/select-list.js +159 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/select-list.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/settings-list.d.ts +50 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/settings-list.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/settings-list.js +185 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/settings-list.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/spacer.d.ts +12 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/spacer.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/spacer.js +23 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/spacer.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/text.d.ts +19 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/text.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/text.js +89 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/text.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/truncated-text.d.ts +13 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/truncated-text.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/truncated-text.js +51 -0
- package/node_modules/@dimivelev/chimera-tui/dist/components/truncated-text.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/editor-component.d.ts +39 -0
- package/node_modules/@dimivelev/chimera-tui/dist/editor-component.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/editor-component.js +2 -0
- package/node_modules/@dimivelev/chimera-tui/dist/editor-component.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/fuzzy.d.ts +16 -0
- package/node_modules/@dimivelev/chimera-tui/dist/fuzzy.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/fuzzy.js +110 -0
- package/node_modules/@dimivelev/chimera-tui/dist/fuzzy.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/index.d.ts +23 -0
- package/node_modules/@dimivelev/chimera-tui/dist/index.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/index.js +32 -0
- package/node_modules/@dimivelev/chimera-tui/dist/index.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keybindings.d.ts +193 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keybindings.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keybindings.js +174 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keybindings.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keys.d.ts +184 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keys.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keys.js +1173 -0
- package/node_modules/@dimivelev/chimera-tui/dist/keys.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/kill-ring.d.ts +28 -0
- package/node_modules/@dimivelev/chimera-tui/dist/kill-ring.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/kill-ring.js +44 -0
- package/node_modules/@dimivelev/chimera-tui/dist/kill-ring.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/native-modifiers.d.ts +3 -0
- package/node_modules/@dimivelev/chimera-tui/dist/native-modifiers.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/native-modifiers.js +53 -0
- package/node_modules/@dimivelev/chimera-tui/dist/native-modifiers.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/stdin-buffer.d.ts +50 -0
- package/node_modules/@dimivelev/chimera-tui/dist/stdin-buffer.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/stdin-buffer.js +361 -0
- package/node_modules/@dimivelev/chimera-tui/dist/stdin-buffer.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal-image.d.ts +90 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal-image.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal-image.js +366 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal-image.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal.d.ts +113 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal.js +472 -0
- package/node_modules/@dimivelev/chimera-tui/dist/terminal.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/tui.d.ts +242 -0
- package/node_modules/@dimivelev/chimera-tui/dist/tui.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/tui.js +1221 -0
- package/node_modules/@dimivelev/chimera-tui/dist/tui.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/undo-stack.d.ts +17 -0
- package/node_modules/@dimivelev/chimera-tui/dist/undo-stack.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/undo-stack.js +25 -0
- package/node_modules/@dimivelev/chimera-tui/dist/undo-stack.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/utils.d.ts +84 -0
- package/node_modules/@dimivelev/chimera-tui/dist/utils.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/utils.js +1029 -0
- package/node_modules/@dimivelev/chimera-tui/dist/utils.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/word-navigation.d.ts +25 -0
- package/node_modules/@dimivelev/chimera-tui/dist/word-navigation.d.ts.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/dist/word-navigation.js +96 -0
- package/node_modules/@dimivelev/chimera-tui/dist/word-navigation.js.map +1 -0
- package/node_modules/@dimivelev/chimera-tui/package.json +47 -0
- package/npm-shrinkwrap.json +1783 -0
- package/package.json +104 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import { Compile } from "typebox/compile";
|
|
2
|
+
import { Value } from "typebox/value";
|
|
3
|
+
const validatorCache = new WeakMap();
|
|
4
|
+
const TYPEBOX_KIND = Symbol.for("TypeBox.Kind");
|
|
5
|
+
function isRecord(value) {
|
|
6
|
+
return typeof value === "object" && value !== null;
|
|
7
|
+
}
|
|
8
|
+
function isJsonSchemaObject(value) {
|
|
9
|
+
return isRecord(value);
|
|
10
|
+
}
|
|
11
|
+
function hasTypeBoxMetadata(schema) {
|
|
12
|
+
return isRecord(schema) && Object.getOwnPropertySymbols(schema).includes(TYPEBOX_KIND);
|
|
13
|
+
}
|
|
14
|
+
function getSchemaTypes(schema) {
|
|
15
|
+
if (typeof schema.type === "string") {
|
|
16
|
+
return [schema.type];
|
|
17
|
+
}
|
|
18
|
+
if (Array.isArray(schema.type)) {
|
|
19
|
+
return schema.type.filter((type) => typeof type === "string");
|
|
20
|
+
}
|
|
21
|
+
return [];
|
|
22
|
+
}
|
|
23
|
+
function matchesJsonType(value, type) {
|
|
24
|
+
switch (type) {
|
|
25
|
+
case "number":
|
|
26
|
+
return typeof value === "number";
|
|
27
|
+
case "integer":
|
|
28
|
+
return typeof value === "number" && Number.isInteger(value);
|
|
29
|
+
case "boolean":
|
|
30
|
+
return typeof value === "boolean";
|
|
31
|
+
case "string":
|
|
32
|
+
return typeof value === "string";
|
|
33
|
+
case "null":
|
|
34
|
+
return value === null;
|
|
35
|
+
case "array":
|
|
36
|
+
return Array.isArray(value);
|
|
37
|
+
case "object":
|
|
38
|
+
return isRecord(value) && !Array.isArray(value);
|
|
39
|
+
default:
|
|
40
|
+
return false;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
function isValidatorSchema(value) {
|
|
44
|
+
return isRecord(value);
|
|
45
|
+
}
|
|
46
|
+
function getSubSchemaValidator(schema) {
|
|
47
|
+
if (!isValidatorSchema(schema)) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
try {
|
|
51
|
+
return getValidator(schema);
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function coercePrimitiveByType(value, type) {
|
|
58
|
+
switch (type) {
|
|
59
|
+
case "number": {
|
|
60
|
+
if (value === null) {
|
|
61
|
+
return 0;
|
|
62
|
+
}
|
|
63
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
64
|
+
const parsed = Number(value);
|
|
65
|
+
if (Number.isFinite(parsed)) {
|
|
66
|
+
return parsed;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (typeof value === "boolean") {
|
|
70
|
+
return value ? 1 : 0;
|
|
71
|
+
}
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
case "integer": {
|
|
75
|
+
if (value === null) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
if (typeof value === "string" && value.trim() !== "") {
|
|
79
|
+
const parsed = Number(value);
|
|
80
|
+
if (Number.isInteger(parsed)) {
|
|
81
|
+
return parsed;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
if (typeof value === "boolean") {
|
|
85
|
+
return value ? 1 : 0;
|
|
86
|
+
}
|
|
87
|
+
return value;
|
|
88
|
+
}
|
|
89
|
+
case "boolean": {
|
|
90
|
+
if (value === null) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (typeof value === "string") {
|
|
94
|
+
if (value === "true") {
|
|
95
|
+
return true;
|
|
96
|
+
}
|
|
97
|
+
if (value === "false") {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (typeof value === "number") {
|
|
102
|
+
if (value === 1) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
if (value === 0) {
|
|
106
|
+
return false;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return value;
|
|
110
|
+
}
|
|
111
|
+
case "string": {
|
|
112
|
+
if (value === null) {
|
|
113
|
+
return "";
|
|
114
|
+
}
|
|
115
|
+
if (typeof value === "number" || typeof value === "boolean") {
|
|
116
|
+
return String(value);
|
|
117
|
+
}
|
|
118
|
+
return value;
|
|
119
|
+
}
|
|
120
|
+
case "null": {
|
|
121
|
+
if (value === "" || value === 0 || value === false) {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
return value;
|
|
125
|
+
}
|
|
126
|
+
default:
|
|
127
|
+
return value;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
function applySchemaObjectCoercion(value, schema) {
|
|
131
|
+
const properties = schema.properties;
|
|
132
|
+
const definedKeys = new Set(properties ? Object.keys(properties) : []);
|
|
133
|
+
if (properties) {
|
|
134
|
+
for (const [key, propertySchema] of Object.entries(properties)) {
|
|
135
|
+
if (!(key in value)) {
|
|
136
|
+
continue;
|
|
137
|
+
}
|
|
138
|
+
value[key] = coerceWithJsonSchema(value[key], propertySchema);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (schema.additionalProperties && isJsonSchemaObject(schema.additionalProperties)) {
|
|
142
|
+
for (const [key, propertyValue] of Object.entries(value)) {
|
|
143
|
+
if (definedKeys.has(key)) {
|
|
144
|
+
continue;
|
|
145
|
+
}
|
|
146
|
+
value[key] = coerceWithJsonSchema(propertyValue, schema.additionalProperties);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
function applySchemaArrayCoercion(value, schema) {
|
|
151
|
+
if (Array.isArray(schema.items)) {
|
|
152
|
+
for (let index = 0; index < value.length; index++) {
|
|
153
|
+
const itemSchema = schema.items[index];
|
|
154
|
+
if (!itemSchema) {
|
|
155
|
+
continue;
|
|
156
|
+
}
|
|
157
|
+
value[index] = coerceWithJsonSchema(value[index], itemSchema);
|
|
158
|
+
}
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
if (isJsonSchemaObject(schema.items)) {
|
|
162
|
+
for (let index = 0; index < value.length; index++) {
|
|
163
|
+
value[index] = coerceWithJsonSchema(value[index], schema.items);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function coerceWithUnionSchema(value, schemas) {
|
|
168
|
+
for (const schema of schemas) {
|
|
169
|
+
const candidate = structuredClone(value);
|
|
170
|
+
const coerced = coerceWithJsonSchema(candidate, schema);
|
|
171
|
+
const validator = getSubSchemaValidator(schema);
|
|
172
|
+
if (validator?.Check(coerced)) {
|
|
173
|
+
return coerced;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
return value;
|
|
177
|
+
}
|
|
178
|
+
function coerceWithJsonSchema(value, schema) {
|
|
179
|
+
let nextValue = value;
|
|
180
|
+
if (Array.isArray(schema.allOf)) {
|
|
181
|
+
for (const nested of schema.allOf) {
|
|
182
|
+
nextValue = coerceWithJsonSchema(nextValue, nested);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (Array.isArray(schema.anyOf)) {
|
|
186
|
+
nextValue = coerceWithUnionSchema(nextValue, schema.anyOf);
|
|
187
|
+
}
|
|
188
|
+
if (Array.isArray(schema.oneOf)) {
|
|
189
|
+
nextValue = coerceWithUnionSchema(nextValue, schema.oneOf);
|
|
190
|
+
}
|
|
191
|
+
const schemaTypes = getSchemaTypes(schema);
|
|
192
|
+
const matchesUnionMember = schemaTypes.length > 1 && schemaTypes.some((schemaType) => matchesJsonType(nextValue, schemaType));
|
|
193
|
+
if (schemaTypes.length > 0 && !matchesUnionMember) {
|
|
194
|
+
for (const schemaType of schemaTypes) {
|
|
195
|
+
const candidate = coercePrimitiveByType(nextValue, schemaType);
|
|
196
|
+
if (candidate !== nextValue) {
|
|
197
|
+
nextValue = candidate;
|
|
198
|
+
break;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
if (schemaTypes.includes("object") && isRecord(nextValue) && !Array.isArray(nextValue)) {
|
|
203
|
+
applySchemaObjectCoercion(nextValue, schema);
|
|
204
|
+
}
|
|
205
|
+
if (schemaTypes.includes("array") && Array.isArray(nextValue)) {
|
|
206
|
+
applySchemaArrayCoercion(nextValue, schema);
|
|
207
|
+
}
|
|
208
|
+
return nextValue;
|
|
209
|
+
}
|
|
210
|
+
function getValidator(schema) {
|
|
211
|
+
const key = schema;
|
|
212
|
+
const cached = validatorCache.get(key);
|
|
213
|
+
if (cached) {
|
|
214
|
+
return cached;
|
|
215
|
+
}
|
|
216
|
+
const validator = Compile(schema);
|
|
217
|
+
validatorCache.set(key, validator);
|
|
218
|
+
return validator;
|
|
219
|
+
}
|
|
220
|
+
function formatValidationPath(error) {
|
|
221
|
+
if (error.keyword === "required") {
|
|
222
|
+
const requiredProperties = error.params.requiredProperties;
|
|
223
|
+
const requiredProperty = requiredProperties?.[0];
|
|
224
|
+
if (requiredProperty) {
|
|
225
|
+
const basePath = error.instancePath.replace(/^\//, "").replace(/\//g, ".");
|
|
226
|
+
return basePath ? `${basePath}.${requiredProperty}` : requiredProperty;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const path = error.instancePath.replace(/^\//, "").replace(/\//g, ".");
|
|
230
|
+
return path || "root";
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Finds a tool by name and validates the tool call arguments against its TypeBox schema
|
|
234
|
+
* @param tools Array of tool definitions
|
|
235
|
+
* @param toolCall The tool call from the LLM
|
|
236
|
+
* @returns The validated arguments
|
|
237
|
+
* @throws Error if tool is not found or validation fails
|
|
238
|
+
*/
|
|
239
|
+
export function validateToolCall(tools, toolCall) {
|
|
240
|
+
const tool = tools.find((t) => t.name === toolCall.name);
|
|
241
|
+
if (!tool) {
|
|
242
|
+
throw new Error(`Tool "${toolCall.name}" not found`);
|
|
243
|
+
}
|
|
244
|
+
return validateToolArguments(tool, toolCall);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Validates tool call arguments against the tool's TypeBox schema
|
|
248
|
+
* @param tool The tool definition with TypeBox schema
|
|
249
|
+
* @param toolCall The tool call from the LLM
|
|
250
|
+
* @returns The validated (and potentially coerced) arguments
|
|
251
|
+
* @throws Error with formatted message if validation fails
|
|
252
|
+
*/
|
|
253
|
+
export function validateToolArguments(tool, toolCall) {
|
|
254
|
+
const args = structuredClone(toolCall.arguments);
|
|
255
|
+
Value.Convert(tool.parameters, args);
|
|
256
|
+
const validator = getValidator(tool.parameters);
|
|
257
|
+
if (!hasTypeBoxMetadata(tool.parameters) && isJsonSchemaObject(tool.parameters)) {
|
|
258
|
+
const coerced = coerceWithJsonSchema(args, tool.parameters);
|
|
259
|
+
if (coerced !== args) {
|
|
260
|
+
if (isRecord(args) && isRecord(coerced)) {
|
|
261
|
+
for (const key of Object.keys(args)) {
|
|
262
|
+
delete args[key];
|
|
263
|
+
}
|
|
264
|
+
Object.assign(args, coerced);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
return validator.Check(coerced) ? coerced : args;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
if (validator.Check(args)) {
|
|
272
|
+
return args;
|
|
273
|
+
}
|
|
274
|
+
const errors = validator
|
|
275
|
+
.Errors(args)
|
|
276
|
+
.map((error) => ` - ${formatValidationPath(error)}: ${error.message}`)
|
|
277
|
+
.join("\n") || "Unknown validation error";
|
|
278
|
+
const errorMessage = `Validation failed for tool "${toolCall.name}":\n${errors}\n\nReceived arguments:\n${JSON.stringify(toolCall.arguments, null, 2)}`;
|
|
279
|
+
throw new Error(errorMessage);
|
|
280
|
+
}
|
|
281
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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","sourcesContent":["import { Compile } from \"typebox/compile\";\nimport type { TLocalizedValidationError } from \"typebox/error\";\nimport { Value } from \"typebox/value\";\nimport type { Tool, ToolCall } from \"../types.ts\";\n\nconst validatorCache = new WeakMap<object, ReturnType<typeof Compile>>();\nconst TYPEBOX_KIND = Symbol.for(\"TypeBox.Kind\");\n\ninterface JsonSchemaObject {\n\ttype?: string | string[];\n\tproperties?: Record<string, JsonSchemaObject>;\n\titems?: JsonSchemaObject | JsonSchemaObject[];\n\tadditionalProperties?: boolean | JsonSchemaObject;\n\tallOf?: JsonSchemaObject[];\n\tanyOf?: JsonSchemaObject[];\n\toneOf?: JsonSchemaObject[];\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null;\n}\n\nfunction isJsonSchemaObject(value: unknown): value is JsonSchemaObject {\n\treturn isRecord(value);\n}\n\nfunction hasTypeBoxMetadata(schema: unknown): boolean {\n\treturn isRecord(schema) && Object.getOwnPropertySymbols(schema).includes(TYPEBOX_KIND);\n}\n\nfunction getSchemaTypes(schema: JsonSchemaObject): string[] {\n\tif (typeof schema.type === \"string\") {\n\t\treturn [schema.type];\n\t}\n\tif (Array.isArray(schema.type)) {\n\t\treturn schema.type.filter((type): type is string => typeof type === \"string\");\n\t}\n\treturn [];\n}\n\nfunction matchesJsonType(value: unknown, type: string): boolean {\n\tswitch (type) {\n\t\tcase \"number\":\n\t\t\treturn typeof value === \"number\";\n\t\tcase \"integer\":\n\t\t\treturn typeof value === \"number\" && Number.isInteger(value);\n\t\tcase \"boolean\":\n\t\t\treturn typeof value === \"boolean\";\n\t\tcase \"string\":\n\t\t\treturn typeof value === \"string\";\n\t\tcase \"null\":\n\t\t\treturn value === null;\n\t\tcase \"array\":\n\t\t\treturn Array.isArray(value);\n\t\tcase \"object\":\n\t\t\treturn isRecord(value) && !Array.isArray(value);\n\t\tdefault:\n\t\t\treturn false;\n\t}\n}\n\nfunction isValidatorSchema(value: unknown): value is Tool[\"parameters\"] {\n\treturn isRecord(value);\n}\n\nfunction getSubSchemaValidator(schema: JsonSchemaObject): ReturnType<typeof Compile> | undefined {\n\tif (!isValidatorSchema(schema)) {\n\t\treturn undefined;\n\t}\n\ttry {\n\t\treturn getValidator(schema);\n\t} catch {\n\t\treturn undefined;\n\t}\n}\n\nfunction coercePrimitiveByType(value: unknown, type: string): unknown {\n\tswitch (type) {\n\t\tcase \"number\": {\n\t\t\tif (value === null) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (typeof value === \"string\" && value.trim() !== \"\") {\n\t\t\t\tconst parsed = Number(value);\n\t\t\t\tif (Number.isFinite(parsed)) {\n\t\t\t\t\treturn parsed;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\treturn value ? 1 : 0;\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tcase \"integer\": {\n\t\t\tif (value === null) {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t\tif (typeof value === \"string\" && value.trim() !== \"\") {\n\t\t\t\tconst parsed = Number(value);\n\t\t\t\tif (Number.isInteger(parsed)) {\n\t\t\t\t\treturn parsed;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof value === \"boolean\") {\n\t\t\t\treturn value ? 1 : 0;\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tcase \"boolean\": {\n\t\t\tif (value === null) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tif (value === \"true\") {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (value === \"false\") {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (typeof value === \"number\") {\n\t\t\t\tif (value === 1) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tif (value === 0) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tcase \"string\": {\n\t\t\tif (value === null) {\n\t\t\t\treturn \"\";\n\t\t\t}\n\t\t\tif (typeof value === \"number\" || typeof value === \"boolean\") {\n\t\t\t\treturn String(value);\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tcase \"null\": {\n\t\t\tif (value === \"\" || value === 0 || value === false) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn value;\n\t\t}\n\t\tdefault:\n\t\t\treturn value;\n\t}\n}\n\nfunction applySchemaObjectCoercion(value: Record<string, unknown>, schema: JsonSchemaObject): void {\n\tconst properties = schema.properties;\n\tconst definedKeys = new Set<string>(properties ? Object.keys(properties) : []);\n\n\tif (properties) {\n\t\tfor (const [key, propertySchema] of Object.entries(properties)) {\n\t\t\tif (!(key in value)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvalue[key] = coerceWithJsonSchema(value[key], propertySchema);\n\t\t}\n\t}\n\n\tif (schema.additionalProperties && isJsonSchemaObject(schema.additionalProperties)) {\n\t\tfor (const [key, propertyValue] of Object.entries(value)) {\n\t\t\tif (definedKeys.has(key)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvalue[key] = coerceWithJsonSchema(propertyValue, schema.additionalProperties);\n\t\t}\n\t}\n}\n\nfunction applySchemaArrayCoercion(value: unknown[], schema: JsonSchemaObject): void {\n\tif (Array.isArray(schema.items)) {\n\t\tfor (let index = 0; index < value.length; index++) {\n\t\t\tconst itemSchema = schema.items[index];\n\t\t\tif (!itemSchema) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tvalue[index] = coerceWithJsonSchema(value[index], itemSchema);\n\t\t}\n\t\treturn;\n\t}\n\n\tif (isJsonSchemaObject(schema.items)) {\n\t\tfor (let index = 0; index < value.length; index++) {\n\t\t\tvalue[index] = coerceWithJsonSchema(value[index], schema.items);\n\t\t}\n\t}\n}\n\nfunction coerceWithUnionSchema(value: unknown, schemas: JsonSchemaObject[]): unknown {\n\tfor (const schema of schemas) {\n\t\tconst candidate = structuredClone(value);\n\t\tconst coerced = coerceWithJsonSchema(candidate, schema);\n\t\tconst validator = getSubSchemaValidator(schema);\n\t\tif (validator?.Check(coerced)) {\n\t\t\treturn coerced;\n\t\t}\n\t}\n\treturn value;\n}\n\nfunction coerceWithJsonSchema(value: unknown, schema: JsonSchemaObject): unknown {\n\tlet nextValue = value;\n\n\tif (Array.isArray(schema.allOf)) {\n\t\tfor (const nested of schema.allOf) {\n\t\t\tnextValue = coerceWithJsonSchema(nextValue, nested);\n\t\t}\n\t}\n\n\tif (Array.isArray(schema.anyOf)) {\n\t\tnextValue = coerceWithUnionSchema(nextValue, schema.anyOf);\n\t}\n\n\tif (Array.isArray(schema.oneOf)) {\n\t\tnextValue = coerceWithUnionSchema(nextValue, schema.oneOf);\n\t}\n\n\tconst schemaTypes = getSchemaTypes(schema);\n\tconst matchesUnionMember =\n\t\tschemaTypes.length > 1 && schemaTypes.some((schemaType) => matchesJsonType(nextValue, schemaType));\n\tif (schemaTypes.length > 0 && !matchesUnionMember) {\n\t\tfor (const schemaType of schemaTypes) {\n\t\t\tconst candidate = coercePrimitiveByType(nextValue, schemaType);\n\t\t\tif (candidate !== nextValue) {\n\t\t\t\tnextValue = candidate;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (schemaTypes.includes(\"object\") && isRecord(nextValue) && !Array.isArray(nextValue)) {\n\t\tapplySchemaObjectCoercion(nextValue, schema);\n\t}\n\n\tif (schemaTypes.includes(\"array\") && Array.isArray(nextValue)) {\n\t\tapplySchemaArrayCoercion(nextValue, schema);\n\t}\n\n\treturn nextValue;\n}\n\nfunction getValidator(schema: Tool[\"parameters\"]): ReturnType<typeof Compile> {\n\tconst key = schema as object;\n\tconst cached = validatorCache.get(key);\n\tif (cached) {\n\t\treturn cached;\n\t}\n\tconst validator = Compile(schema);\n\tvalidatorCache.set(key, validator);\n\treturn validator;\n}\n\nfunction formatValidationPath(error: TLocalizedValidationError): string {\n\tif (error.keyword === \"required\") {\n\t\tconst requiredProperties = (error.params as { requiredProperties?: string[] }).requiredProperties;\n\t\tconst requiredProperty = requiredProperties?.[0];\n\t\tif (requiredProperty) {\n\t\t\tconst basePath = error.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n\t\t\treturn basePath ? `${basePath}.${requiredProperty}` : requiredProperty;\n\t\t}\n\t}\n\tconst path = error.instancePath.replace(/^\\//, \"\").replace(/\\//g, \".\");\n\treturn path || \"root\";\n}\n\n/**\n * Finds a tool by name and validates the tool call arguments against its TypeBox schema\n * @param tools Array of tool definitions\n * @param toolCall The tool call from the LLM\n * @returns The validated arguments\n * @throws Error if tool is not found or validation fails\n */\nexport function validateToolCall(tools: Tool[], toolCall: ToolCall): any {\n\tconst tool = tools.find((t) => t.name === toolCall.name);\n\tif (!tool) {\n\t\tthrow new Error(`Tool \"${toolCall.name}\" not found`);\n\t}\n\treturn validateToolArguments(tool, toolCall);\n}\n\n/**\n * Validates tool call arguments against the tool's TypeBox schema\n * @param tool The tool definition with TypeBox schema\n * @param toolCall The tool call from the LLM\n * @returns The validated (and potentially coerced) arguments\n * @throws Error with formatted message if validation fails\n */\nexport function validateToolArguments(tool: Tool, toolCall: ToolCall): any {\n\tconst args = structuredClone(toolCall.arguments);\n\tValue.Convert(tool.parameters, args);\n\n\tconst validator = getValidator(tool.parameters);\n\tif (!hasTypeBoxMetadata(tool.parameters) && isJsonSchemaObject(tool.parameters)) {\n\t\tconst coerced = coerceWithJsonSchema(args, tool.parameters);\n\t\tif (coerced !== args) {\n\t\t\tif (isRecord(args) && isRecord(coerced)) {\n\t\t\t\tfor (const key of Object.keys(args)) {\n\t\t\t\t\tdelete args[key];\n\t\t\t\t}\n\t\t\t\tObject.assign(args, coerced);\n\t\t\t} else {\n\t\t\t\treturn validator.Check(coerced) ? coerced : args;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (validator.Check(args)) {\n\t\treturn args;\n\t}\n\n\tconst errors =\n\t\tvalidator\n\t\t\t.Errors(args)\n\t\t\t.map((error) => ` - ${formatValidationPath(error)}: ${error.message}`)\n\t\t\t.join(\"\\n\") || \"Unknown validation error\";\n\n\tconst errorMessage = `Validation failed for tool \"${toolCall.name}\":\\n${errors}\\n\\nReceived arguments:\\n${JSON.stringify(toolCall.arguments, null, 2)}`;\n\n\tthrow new Error(errorMessage);\n}\n"]}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@dimivelev/chimera-ai",
|
|
3
|
+
"version": "0.78.0",
|
|
4
|
+
"description": "Unified LLM API with automatic model discovery and provider configuration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./anthropic": {
|
|
14
|
+
"types": "./dist/providers/anthropic.d.ts",
|
|
15
|
+
"import": "./dist/providers/anthropic.js"
|
|
16
|
+
},
|
|
17
|
+
"./azure-openai-responses": {
|
|
18
|
+
"types": "./dist/providers/azure-openai-responses.d.ts",
|
|
19
|
+
"import": "./dist/providers/azure-openai-responses.js"
|
|
20
|
+
},
|
|
21
|
+
"./google": {
|
|
22
|
+
"types": "./dist/providers/google.d.ts",
|
|
23
|
+
"import": "./dist/providers/google.js"
|
|
24
|
+
},
|
|
25
|
+
"./google-vertex": {
|
|
26
|
+
"types": "./dist/providers/google-vertex.d.ts",
|
|
27
|
+
"import": "./dist/providers/google-vertex.js"
|
|
28
|
+
},
|
|
29
|
+
"./mistral": {
|
|
30
|
+
"types": "./dist/providers/mistral.d.ts",
|
|
31
|
+
"import": "./dist/providers/mistral.js"
|
|
32
|
+
},
|
|
33
|
+
"./openai-codex-responses": {
|
|
34
|
+
"types": "./dist/providers/openai-codex-responses.d.ts",
|
|
35
|
+
"import": "./dist/providers/openai-codex-responses.js"
|
|
36
|
+
},
|
|
37
|
+
"./openai-completions": {
|
|
38
|
+
"types": "./dist/providers/openai-completions.d.ts",
|
|
39
|
+
"import": "./dist/providers/openai-completions.js"
|
|
40
|
+
},
|
|
41
|
+
"./openai-responses": {
|
|
42
|
+
"types": "./dist/providers/openai-responses.d.ts",
|
|
43
|
+
"import": "./dist/providers/openai-responses.js"
|
|
44
|
+
},
|
|
45
|
+
"./oauth": {
|
|
46
|
+
"types": "./dist/oauth.d.ts",
|
|
47
|
+
"import": "./dist/oauth.js"
|
|
48
|
+
},
|
|
49
|
+
"./bedrock-provider": {
|
|
50
|
+
"types": "./dist/bedrock-provider.d.ts",
|
|
51
|
+
"import": "./dist/bedrock-provider.js"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"bin": {
|
|
55
|
+
"pi-ai": "./dist/cli.js"
|
|
56
|
+
},
|
|
57
|
+
"files": [
|
|
58
|
+
"dist",
|
|
59
|
+
"README.md"
|
|
60
|
+
],
|
|
61
|
+
"scripts": {
|
|
62
|
+
"clean": "shx rm -rf dist",
|
|
63
|
+
"generate-models": "node scripts/generate-models.ts",
|
|
64
|
+
"generate-image-models": "node scripts/generate-image-models.ts",
|
|
65
|
+
"build": "npm run generate-models && npm run generate-image-models && tsgo -p tsconfig.build.json",
|
|
66
|
+
"test": "vitest --run",
|
|
67
|
+
"prepublishOnly": "npm run clean && npm run build"
|
|
68
|
+
},
|
|
69
|
+
"dependencies": {
|
|
70
|
+
"@anthropic-ai/sdk": "0.91.1",
|
|
71
|
+
"@aws-sdk/client-bedrock-runtime": "3.1048.0",
|
|
72
|
+
"@smithy/node-http-handler": "4.7.3",
|
|
73
|
+
"@google/genai": "1.52.0",
|
|
74
|
+
"@mistralai/mistralai": "2.2.1",
|
|
75
|
+
"http-proxy-agent": "7.0.2",
|
|
76
|
+
"https-proxy-agent": "7.0.6",
|
|
77
|
+
"openai": "6.26.0",
|
|
78
|
+
"partial-json": "0.1.7",
|
|
79
|
+
"typebox": "1.1.38"
|
|
80
|
+
},
|
|
81
|
+
"keywords": [
|
|
82
|
+
"ai",
|
|
83
|
+
"llm",
|
|
84
|
+
"openai",
|
|
85
|
+
"anthropic",
|
|
86
|
+
"gemini",
|
|
87
|
+
"bedrock",
|
|
88
|
+
"unified",
|
|
89
|
+
"api"
|
|
90
|
+
],
|
|
91
|
+
"author": "Mario Zechner",
|
|
92
|
+
"license": "MIT",
|
|
93
|
+
"repository": {
|
|
94
|
+
"type": "git",
|
|
95
|
+
"url": "git+https://github.com/earendil-works/pi.git",
|
|
96
|
+
"directory": "packages/ai"
|
|
97
|
+
},
|
|
98
|
+
"engines": {
|
|
99
|
+
"node": ">=22.19.0"
|
|
100
|
+
},
|
|
101
|
+
"devDependencies": {
|
|
102
|
+
"@types/node": "24.12.4",
|
|
103
|
+
"canvas": "3.2.3",
|
|
104
|
+
"vitest": "3.2.4"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface AutocompleteItem {
|
|
2
|
+
value: string;
|
|
3
|
+
label: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
}
|
|
6
|
+
type Awaitable<T> = T | Promise<T>;
|
|
7
|
+
export interface SlashCommand {
|
|
8
|
+
name: string;
|
|
9
|
+
description?: string;
|
|
10
|
+
argumentHint?: string;
|
|
11
|
+
getArgumentCompletions?(argumentPrefix: string): Awaitable<AutocompleteItem[] | null>;
|
|
12
|
+
}
|
|
13
|
+
export interface AutocompleteSuggestions {
|
|
14
|
+
items: AutocompleteItem[];
|
|
15
|
+
prefix: string;
|
|
16
|
+
}
|
|
17
|
+
export interface AutocompleteProvider {
|
|
18
|
+
getSuggestions(lines: string[], cursorLine: number, cursorCol: number, options: {
|
|
19
|
+
signal: AbortSignal;
|
|
20
|
+
force?: boolean;
|
|
21
|
+
}): Promise<AutocompleteSuggestions | null>;
|
|
22
|
+
applyCompletion(lines: string[], cursorLine: number, cursorCol: number, item: AutocompleteItem, prefix: string): {
|
|
23
|
+
lines: string[];
|
|
24
|
+
cursorLine: number;
|
|
25
|
+
cursorCol: number;
|
|
26
|
+
};
|
|
27
|
+
shouldTriggerFileCompletion?(lines: string[], cursorLine: number, cursorCol: number): boolean;
|
|
28
|
+
}
|
|
29
|
+
export declare class CombinedAutocompleteProvider implements AutocompleteProvider {
|
|
30
|
+
private commands;
|
|
31
|
+
private basePath;
|
|
32
|
+
private fdPath;
|
|
33
|
+
constructor(commands: (AutocompleteItem | SlashCommand)[] | undefined, basePath: string, fdPath?: string | null);
|
|
34
|
+
getSuggestions(lines: string[], cursorLine: number, cursorCol: number, options: {
|
|
35
|
+
signal: AbortSignal;
|
|
36
|
+
force?: boolean;
|
|
37
|
+
}): Promise<AutocompleteSuggestions | null>;
|
|
38
|
+
applyCompletion(lines: string[], cursorLine: number, cursorCol: number, item: AutocompleteItem, prefix: string): {
|
|
39
|
+
lines: string[];
|
|
40
|
+
cursorLine: number;
|
|
41
|
+
cursorCol: number;
|
|
42
|
+
};
|
|
43
|
+
private extractAtPrefix;
|
|
44
|
+
private extractPathPrefix;
|
|
45
|
+
private expandHomePath;
|
|
46
|
+
private resolveScopedFuzzyQuery;
|
|
47
|
+
private scopedPathForDisplay;
|
|
48
|
+
private getFileSuggestions;
|
|
49
|
+
private scoreEntry;
|
|
50
|
+
private getFuzzyFileSuggestions;
|
|
51
|
+
shouldTriggerFileCompletion(lines: string[], cursorLine: number, cursorCol: number): boolean;
|
|
52
|
+
}
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=autocomplete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../src/autocomplete.ts"],"names":[],"mappings":"AA0NA,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEnC,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAGtB,sBAAsB,CAAC,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAAC;CACtF;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IAGpC,cAAc,CACb,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;IAI3C,eAAe,CACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,GACZ;QACF,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;KAClB,CAAC;IAGF,2BAA2B,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAC9F;AAGD,qBAAa,4BAA6B,YAAW,oBAAoB;IACxE,OAAO,CAAC,QAAQ,CAAsC;IACtD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAgB;IAE9B,YAAY,QAAQ,iDAA0C,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAE,MAAM,GAAG,IAAW,EAI7G;IAEK,cAAc,CACnB,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAC/C,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAoFzC;IAED,eAAe,CACd,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,MAAM,GACZ;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CA+E5D;IAGD,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,iBAAiB;IA8BzB,OAAO,CAAC,cAAc;IAWtB,OAAO,CAAC,uBAAuB;IA8B/B,OAAO,CAAC,oBAAoB;IAS5B,OAAO,CAAC,kBAAkB;IAyI1B,OAAO,CAAC,UAAU;YAuBJ,uBAAuB;IAuDrC,2BAA2B,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAU3F;CACD","sourcesContent":["import { spawn } from \"child_process\";\nimport { readdirSync, statSync } from \"fs\";\nimport { homedir } from \"os\";\nimport { basename, dirname, join } from \"path\";\nimport { fuzzyFilter } from \"./fuzzy.ts\";\n\nconst PATH_DELIMITERS = new Set([\" \", \"\\t\", '\"', \"'\", \"=\"]);\n\nfunction toDisplayPath(value: string): string {\n\treturn value.replace(/\\\\/g, \"/\");\n}\n\nfunction escapeRegex(value: string): string {\n\treturn value.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n\nfunction buildFdPathQuery(query: string): string {\n\tconst normalized = toDisplayPath(query);\n\tif (!normalized.includes(\"/\")) {\n\t\treturn normalized;\n\t}\n\n\tconst hasTrailingSeparator = normalized.endsWith(\"/\");\n\tconst trimmed = normalized.replace(/^\\/+|\\/+$/g, \"\");\n\tif (!trimmed) {\n\t\treturn normalized;\n\t}\n\n\tconst separatorPattern = \"[\\\\\\\\/]\";\n\tconst segments = trimmed\n\t\t.split(\"/\")\n\t\t.filter(Boolean)\n\t\t.map((segment) => escapeRegex(segment));\n\tif (segments.length === 0) {\n\t\treturn normalized;\n\t}\n\n\tlet pattern = segments.join(separatorPattern);\n\tif (hasTrailingSeparator) {\n\t\tpattern += separatorPattern;\n\t}\n\treturn pattern;\n}\n\nfunction findLastDelimiter(text: string): number {\n\tfor (let i = text.length - 1; i >= 0; i -= 1) {\n\t\tif (PATH_DELIMITERS.has(text[i] ?? \"\")) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n}\n\nfunction findUnclosedQuoteStart(text: string): number | null {\n\tlet inQuotes = false;\n\tlet quoteStart = -1;\n\n\tfor (let i = 0; i < text.length; i += 1) {\n\t\tif (text[i] === '\"') {\n\t\t\tinQuotes = !inQuotes;\n\t\t\tif (inQuotes) {\n\t\t\t\tquoteStart = i;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn inQuotes ? quoteStart : null;\n}\n\nfunction isTokenStart(text: string, index: number): boolean {\n\treturn index === 0 || PATH_DELIMITERS.has(text[index - 1] ?? \"\");\n}\n\nfunction extractQuotedPrefix(text: string): string | null {\n\tconst quoteStart = findUnclosedQuoteStart(text);\n\tif (quoteStart === null) {\n\t\treturn null;\n\t}\n\n\tif (quoteStart > 0 && text[quoteStart - 1] === \"@\") {\n\t\tif (!isTokenStart(text, quoteStart - 1)) {\n\t\t\treturn null;\n\t\t}\n\t\treturn text.slice(quoteStart - 1);\n\t}\n\n\tif (!isTokenStart(text, quoteStart)) {\n\t\treturn null;\n\t}\n\n\treturn text.slice(quoteStart);\n}\n\nfunction parsePathPrefix(prefix: string): { rawPrefix: string; isAtPrefix: boolean; isQuotedPrefix: boolean } {\n\tif (prefix.startsWith('@\"')) {\n\t\treturn { rawPrefix: prefix.slice(2), isAtPrefix: true, isQuotedPrefix: true };\n\t}\n\tif (prefix.startsWith('\"')) {\n\t\treturn { rawPrefix: prefix.slice(1), isAtPrefix: false, isQuotedPrefix: true };\n\t}\n\tif (prefix.startsWith(\"@\")) {\n\t\treturn { rawPrefix: prefix.slice(1), isAtPrefix: true, isQuotedPrefix: false };\n\t}\n\treturn { rawPrefix: prefix, isAtPrefix: false, isQuotedPrefix: false };\n}\n\nfunction buildCompletionValue(\n\tpath: string,\n\toptions: { isDirectory: boolean; isAtPrefix: boolean; isQuotedPrefix: boolean },\n): string {\n\tconst needsQuotes = options.isQuotedPrefix || path.includes(\" \");\n\tconst prefix = options.isAtPrefix ? \"@\" : \"\";\n\n\tif (!needsQuotes) {\n\t\treturn `${prefix}${path}`;\n\t}\n\n\tconst openQuote = `${prefix}\"`;\n\tconst closeQuote = '\"';\n\treturn `${openQuote}${path}${closeQuote}`;\n}\n\n// Use fd to walk directory tree (fast, respects .gitignore)\nasync function walkDirectoryWithFd(\n\tbaseDir: string,\n\tfdPath: string,\n\tquery: string,\n\tmaxResults: number,\n\tsignal: AbortSignal,\n): Promise<Array<{ path: string; isDirectory: boolean }>> {\n\tconst args = [\n\t\t\"--base-directory\",\n\t\tbaseDir,\n\t\t\"--max-results\",\n\t\tString(maxResults),\n\t\t\"--type\",\n\t\t\"f\",\n\t\t\"--type\",\n\t\t\"d\",\n\t\t\"--follow\",\n\t\t\"--hidden\",\n\t\t\"--exclude\",\n\t\t\".git\",\n\t\t\"--exclude\",\n\t\t\".git/*\",\n\t\t\"--exclude\",\n\t\t\".git/**\",\n\t];\n\n\tif (toDisplayPath(query).includes(\"/\")) {\n\t\targs.push(\"--full-path\");\n\t}\n\n\tif (query) {\n\t\targs.push(buildFdPathQuery(query));\n\t}\n\n\treturn await new Promise((resolve) => {\n\t\tif (signal.aborted) {\n\t\t\tresolve([]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst child = spawn(fdPath, args, {\n\t\t\tstdio: [\"ignore\", \"pipe\", \"pipe\"],\n\t\t});\n\t\tlet stdout = \"\";\n\t\tlet resolved = false;\n\n\t\tconst finish = (results: Array<{ path: string; isDirectory: boolean }>) => {\n\t\t\tif (resolved) return;\n\t\t\tresolved = true;\n\t\t\tsignal.removeEventListener(\"abort\", onAbort);\n\t\t\tresolve(results);\n\t\t};\n\n\t\tconst onAbort = () => {\n\t\t\tif (child.exitCode === null) {\n\t\t\t\tchild.kill(\"SIGKILL\");\n\t\t\t}\n\t\t};\n\n\t\tsignal.addEventListener(\"abort\", onAbort, { once: true });\n\t\tchild.stdout.setEncoding(\"utf-8\");\n\t\tchild.stdout.on(\"data\", (chunk: string) => {\n\t\t\tstdout += chunk;\n\t\t});\n\t\tchild.on(\"error\", () => {\n\t\t\tfinish([]);\n\t\t});\n\t\tchild.on(\"close\", (code) => {\n\t\t\tif (signal.aborted || code !== 0 || !stdout) {\n\t\t\t\tfinish([]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst lines = stdout.trim().split(\"\\n\").filter(Boolean);\n\t\t\tconst results: Array<{ path: string; isDirectory: boolean }> = [];\n\n\t\t\tfor (const line of lines) {\n\t\t\t\tconst displayLine = toDisplayPath(line);\n\t\t\t\tconst hasTrailingSeparator = displayLine.endsWith(\"/\");\n\t\t\t\tconst normalizedPath = hasTrailingSeparator ? displayLine.slice(0, -1) : displayLine;\n\t\t\t\tif (normalizedPath === \".git\" || normalizedPath.startsWith(\".git/\") || normalizedPath.includes(\"/.git/\")) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tresults.push({\n\t\t\t\t\tpath: displayLine,\n\t\t\t\t\tisDirectory: hasTrailingSeparator,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tfinish(results);\n\t\t});\n\t});\n}\n\nexport interface AutocompleteItem {\n\tvalue: string;\n\tlabel: string;\n\tdescription?: string;\n}\n\ntype Awaitable<T> = T | Promise<T>;\n\nexport interface SlashCommand {\n\tname: string;\n\tdescription?: string;\n\targumentHint?: string;\n\t// Function to get argument completions for this command\n\t// Returns null if no argument completion is available\n\tgetArgumentCompletions?(argumentPrefix: string): Awaitable<AutocompleteItem[] | null>;\n}\n\nexport interface AutocompleteSuggestions {\n\titems: AutocompleteItem[];\n\tprefix: string; // What we're matching against (e.g., \"/\" or \"src/\")\n}\n\nexport interface AutocompleteProvider {\n\t// Get autocomplete suggestions for current text/cursor position\n\t// Returns null if no suggestions available\n\tgetSuggestions(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t\toptions: { signal: AbortSignal; force?: boolean },\n\t): Promise<AutocompleteSuggestions | null>;\n\n\t// Apply the selected item\n\t// Returns the new text and cursor position\n\tapplyCompletion(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t\titem: AutocompleteItem,\n\t\tprefix: string,\n\t): {\n\t\tlines: string[];\n\t\tcursorLine: number;\n\t\tcursorCol: number;\n\t};\n\n\t// Check if file completion should trigger for explicit Tab completion\n\tshouldTriggerFileCompletion?(lines: string[], cursorLine: number, cursorCol: number): boolean;\n}\n\n// Combined provider that handles both slash commands and file paths\nexport class CombinedAutocompleteProvider implements AutocompleteProvider {\n\tprivate commands: (SlashCommand | AutocompleteItem)[];\n\tprivate basePath: string;\n\tprivate fdPath: string | null;\n\n\tconstructor(commands: (SlashCommand | AutocompleteItem)[] = [], basePath: string, fdPath: string | null = null) {\n\t\tthis.commands = commands;\n\t\tthis.basePath = basePath;\n\t\tthis.fdPath = fdPath;\n\t}\n\n\tasync getSuggestions(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t\toptions: { signal: AbortSignal; force?: boolean },\n\t): Promise<AutocompleteSuggestions | null> {\n\t\tconst currentLine = lines[cursorLine] || \"\";\n\t\tconst textBeforeCursor = currentLine.slice(0, cursorCol);\n\n\t\tconst atPrefix = this.extractAtPrefix(textBeforeCursor);\n\t\tif (atPrefix) {\n\t\t\tconst { rawPrefix, isQuotedPrefix } = parsePathPrefix(atPrefix);\n\t\t\tconst suggestions = await this.getFuzzyFileSuggestions(rawPrefix, {\n\t\t\t\tisQuotedPrefix,\n\t\t\t\tsignal: options.signal,\n\t\t\t});\n\t\t\tif (suggestions.length === 0) return null;\n\n\t\t\treturn {\n\t\t\t\titems: suggestions,\n\t\t\t\tprefix: atPrefix,\n\t\t\t};\n\t\t}\n\n\t\tif (!options.force && textBeforeCursor.startsWith(\"/\")) {\n\t\t\tconst spaceIndex = textBeforeCursor.indexOf(\" \");\n\n\t\t\tif (spaceIndex === -1) {\n\t\t\t\tconst prefix = textBeforeCursor.slice(1);\n\t\t\t\tconst commandItems = this.commands.map((cmd) => {\n\t\t\t\t\tconst name = \"name\" in cmd ? cmd.name : cmd.value;\n\t\t\t\t\tconst hint = \"argumentHint\" in cmd && cmd.argumentHint ? cmd.argumentHint : undefined;\n\t\t\t\t\tconst desc = cmd.description ?? \"\";\n\t\t\t\t\tconst fullDesc = hint ? (desc ? `${hint} — ${desc}` : hint) : desc;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tname,\n\t\t\t\t\t\tlabel: name,\n\t\t\t\t\t\tdescription: fullDesc || undefined,\n\t\t\t\t\t};\n\t\t\t\t});\n\n\t\t\t\tconst filtered = fuzzyFilter(commandItems, prefix, (item) => item.name).map((item) => ({\n\t\t\t\t\tvalue: item.name,\n\t\t\t\t\tlabel: item.label,\n\t\t\t\t\t...(item.description && { description: item.description }),\n\t\t\t\t}));\n\n\t\t\t\tif (filtered.length === 0) return null;\n\n\t\t\t\treturn {\n\t\t\t\t\titems: filtered,\n\t\t\t\t\tprefix: textBeforeCursor,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst commandName = textBeforeCursor.slice(1, spaceIndex);\n\t\t\tconst argumentText = textBeforeCursor.slice(spaceIndex + 1);\n\n\t\t\tconst command = this.commands.find((cmd) => {\n\t\t\t\tconst name = \"name\" in cmd ? cmd.name : cmd.value;\n\t\t\t\treturn name === commandName;\n\t\t\t});\n\t\t\tif (!command || !(\"getArgumentCompletions\" in command) || !command.getArgumentCompletions) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst argumentSuggestions = await command.getArgumentCompletions(argumentText);\n\t\t\tif (!Array.isArray(argumentSuggestions) || argumentSuggestions.length === 0) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\titems: argumentSuggestions,\n\t\t\t\tprefix: argumentText,\n\t\t\t};\n\t\t}\n\n\t\tconst pathMatch = this.extractPathPrefix(textBeforeCursor, options.force ?? false);\n\t\tif (pathMatch === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst suggestions = this.getFileSuggestions(pathMatch);\n\t\tif (suggestions.length === 0) return null;\n\n\t\treturn {\n\t\t\titems: suggestions,\n\t\t\tprefix: pathMatch,\n\t\t};\n\t}\n\n\tapplyCompletion(\n\t\tlines: string[],\n\t\tcursorLine: number,\n\t\tcursorCol: number,\n\t\titem: AutocompleteItem,\n\t\tprefix: string,\n\t): { lines: string[]; cursorLine: number; cursorCol: number } {\n\t\tconst currentLine = lines[cursorLine] || \"\";\n\t\tconst beforePrefix = currentLine.slice(0, cursorCol - prefix.length);\n\t\tconst afterCursor = currentLine.slice(cursorCol);\n\t\tconst isQuotedPrefix = prefix.startsWith('\"') || prefix.startsWith('@\"');\n\t\tconst hasLeadingQuoteAfterCursor = afterCursor.startsWith('\"');\n\t\tconst hasTrailingQuoteInItem = item.value.endsWith('\"');\n\t\tconst adjustedAfterCursor =\n\t\t\tisQuotedPrefix && hasTrailingQuoteInItem && hasLeadingQuoteAfterCursor ? afterCursor.slice(1) : afterCursor;\n\n\t\t// Check if we're completing a slash command (prefix starts with \"/\" but NOT a file path)\n\t\t// Slash commands are at the start of the line and don't contain path separators after the first /\n\t\tconst isSlashCommand = prefix.startsWith(\"/\") && beforePrefix.trim() === \"\" && !prefix.slice(1).includes(\"/\");\n\t\tif (isSlashCommand) {\n\t\t\t// This is a command name completion\n\t\t\tconst newLine = `${beforePrefix}/${item.value} ${adjustedAfterCursor}`;\n\t\t\tconst newLines = [...lines];\n\t\t\tnewLines[cursorLine] = newLine;\n\n\t\t\treturn {\n\t\t\t\tlines: newLines,\n\t\t\t\tcursorLine,\n\t\t\t\tcursorCol: beforePrefix.length + item.value.length + 2, // +2 for \"/\" and space\n\t\t\t};\n\t\t}\n\n\t\t// Check if we're completing a file attachment (prefix starts with \"@\")\n\t\tif (prefix.startsWith(\"@\")) {\n\t\t\t// This is a file attachment completion\n\t\t\t// Don't add space after directories so user can continue autocompleting\n\t\t\tconst isDirectory = item.label.endsWith(\"/\");\n\t\t\tconst suffix = isDirectory ? \"\" : \" \";\n\t\t\tconst newLine = `${beforePrefix + item.value}${suffix}${adjustedAfterCursor}`;\n\t\t\tconst newLines = [...lines];\n\t\t\tnewLines[cursorLine] = newLine;\n\n\t\t\tconst hasTrailingQuote = item.value.endsWith('\"');\n\t\t\tconst cursorOffset = isDirectory && hasTrailingQuote ? item.value.length - 1 : item.value.length;\n\n\t\t\treturn {\n\t\t\t\tlines: newLines,\n\t\t\t\tcursorLine,\n\t\t\t\tcursorCol: beforePrefix.length + cursorOffset + suffix.length,\n\t\t\t};\n\t\t}\n\n\t\t// Check if we're in a slash command context (beforePrefix contains \"/command \")\n\t\tconst textBeforeCursor = currentLine.slice(0, cursorCol);\n\t\tif (textBeforeCursor.includes(\"/\") && textBeforeCursor.includes(\" \")) {\n\t\t\t// This is likely a command argument completion\n\t\t\tconst newLine = beforePrefix + item.value + adjustedAfterCursor;\n\t\t\tconst newLines = [...lines];\n\t\t\tnewLines[cursorLine] = newLine;\n\n\t\t\tconst isDirectory = item.label.endsWith(\"/\");\n\t\t\tconst hasTrailingQuote = item.value.endsWith('\"');\n\t\t\tconst cursorOffset = isDirectory && hasTrailingQuote ? item.value.length - 1 : item.value.length;\n\n\t\t\treturn {\n\t\t\t\tlines: newLines,\n\t\t\t\tcursorLine,\n\t\t\t\tcursorCol: beforePrefix.length + cursorOffset,\n\t\t\t};\n\t\t}\n\n\t\t// For file paths, complete the path\n\t\tconst newLine = beforePrefix + item.value + adjustedAfterCursor;\n\t\tconst newLines = [...lines];\n\t\tnewLines[cursorLine] = newLine;\n\n\t\tconst isDirectory = item.label.endsWith(\"/\");\n\t\tconst hasTrailingQuote = item.value.endsWith('\"');\n\t\tconst cursorOffset = isDirectory && hasTrailingQuote ? item.value.length - 1 : item.value.length;\n\n\t\treturn {\n\t\t\tlines: newLines,\n\t\t\tcursorLine,\n\t\t\tcursorCol: beforePrefix.length + cursorOffset,\n\t\t};\n\t}\n\n\t// Extract @ prefix for fuzzy file suggestions\n\tprivate extractAtPrefix(text: string): string | null {\n\t\tconst quotedPrefix = extractQuotedPrefix(text);\n\t\tif (quotedPrefix?.startsWith('@\"')) {\n\t\t\treturn quotedPrefix;\n\t\t}\n\n\t\tconst lastDelimiterIndex = findLastDelimiter(text);\n\t\tconst tokenStart = lastDelimiterIndex === -1 ? 0 : lastDelimiterIndex + 1;\n\n\t\tif (text[tokenStart] === \"@\") {\n\t\t\treturn text.slice(tokenStart);\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t// Extract a path-like prefix from the text before cursor\n\tprivate extractPathPrefix(text: string, forceExtract: boolean = false): string | null {\n\t\tconst quotedPrefix = extractQuotedPrefix(text);\n\t\tif (quotedPrefix) {\n\t\t\treturn quotedPrefix;\n\t\t}\n\n\t\tconst lastDelimiterIndex = findLastDelimiter(text);\n\t\tconst pathPrefix = lastDelimiterIndex === -1 ? text : text.slice(lastDelimiterIndex + 1);\n\n\t\t// For forced extraction (Tab key), always return something\n\t\tif (forceExtract) {\n\t\t\treturn pathPrefix;\n\t\t}\n\n\t\t// For natural triggers, return if it looks like a path, ends with /, starts with ~/, .\n\t\t// Only return empty string if the text looks like it's starting a path context\n\t\tif (pathPrefix.includes(\"/\") || pathPrefix.startsWith(\".\") || pathPrefix.startsWith(\"~/\")) {\n\t\t\treturn pathPrefix;\n\t\t}\n\n\t\t// Return empty string only after a space (not for completely empty text)\n\t\t// Empty text should not trigger file suggestions - that's for forced Tab completion\n\t\tif (pathPrefix === \"\" && text.endsWith(\" \")) {\n\t\t\treturn pathPrefix;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t// Expand home directory (~/) to actual home path\n\tprivate expandHomePath(path: string): string {\n\t\tif (path.startsWith(\"~/\")) {\n\t\t\tconst expandedPath = join(homedir(), path.slice(2));\n\t\t\t// Preserve trailing slash if original path had one\n\t\t\treturn path.endsWith(\"/\") && !expandedPath.endsWith(\"/\") ? `${expandedPath}/` : expandedPath;\n\t\t} else if (path === \"~\") {\n\t\t\treturn homedir();\n\t\t}\n\t\treturn path;\n\t}\n\n\tprivate resolveScopedFuzzyQuery(rawQuery: string): { baseDir: string; query: string; displayBase: string } | null {\n\t\tconst normalizedQuery = toDisplayPath(rawQuery);\n\t\tconst slashIndex = normalizedQuery.lastIndexOf(\"/\");\n\t\tif (slashIndex === -1) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst displayBase = normalizedQuery.slice(0, slashIndex + 1);\n\t\tconst query = normalizedQuery.slice(slashIndex + 1);\n\n\t\tlet baseDir: string;\n\t\tif (displayBase.startsWith(\"~/\")) {\n\t\t\tbaseDir = this.expandHomePath(displayBase);\n\t\t} else if (displayBase.startsWith(\"/\")) {\n\t\t\tbaseDir = displayBase;\n\t\t} else {\n\t\t\tbaseDir = join(this.basePath, displayBase);\n\t\t}\n\n\t\ttry {\n\t\t\tif (!statSync(baseDir).isDirectory()) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn { baseDir, query, displayBase };\n\t}\n\n\tprivate scopedPathForDisplay(displayBase: string, relativePath: string): string {\n\t\tconst normalizedRelativePath = toDisplayPath(relativePath);\n\t\tif (displayBase === \"/\") {\n\t\t\treturn `/${normalizedRelativePath}`;\n\t\t}\n\t\treturn `${toDisplayPath(displayBase)}${normalizedRelativePath}`;\n\t}\n\n\t// Get file/directory suggestions for a given path prefix\n\tprivate getFileSuggestions(prefix: string): AutocompleteItem[] {\n\t\ttry {\n\t\t\tlet searchDir: string;\n\t\t\tlet searchPrefix: string;\n\t\t\tconst { rawPrefix, isAtPrefix, isQuotedPrefix } = parsePathPrefix(prefix);\n\t\t\tlet expandedPrefix = rawPrefix;\n\n\t\t\t// Handle home directory expansion\n\t\t\tif (expandedPrefix.startsWith(\"~\")) {\n\t\t\t\texpandedPrefix = this.expandHomePath(expandedPrefix);\n\t\t\t}\n\n\t\t\tconst isRootPrefix =\n\t\t\t\trawPrefix === \"\" ||\n\t\t\t\trawPrefix === \"./\" ||\n\t\t\t\trawPrefix === \"../\" ||\n\t\t\t\trawPrefix === \"~\" ||\n\t\t\t\trawPrefix === \"~/\" ||\n\t\t\t\trawPrefix === \"/\" ||\n\t\t\t\t(isAtPrefix && rawPrefix === \"\");\n\n\t\t\tif (isRootPrefix) {\n\t\t\t\t// Complete from specified position\n\t\t\t\tif (rawPrefix.startsWith(\"~\") || expandedPrefix.startsWith(\"/\")) {\n\t\t\t\t\tsearchDir = expandedPrefix;\n\t\t\t\t} else {\n\t\t\t\t\tsearchDir = join(this.basePath, expandedPrefix);\n\t\t\t\t}\n\t\t\t\tsearchPrefix = \"\";\n\t\t\t} else if (rawPrefix.endsWith(\"/\")) {\n\t\t\t\t// If prefix ends with /, show contents of that directory\n\t\t\t\tif (rawPrefix.startsWith(\"~\") || expandedPrefix.startsWith(\"/\")) {\n\t\t\t\t\tsearchDir = expandedPrefix;\n\t\t\t\t} else {\n\t\t\t\t\tsearchDir = join(this.basePath, expandedPrefix);\n\t\t\t\t}\n\t\t\t\tsearchPrefix = \"\";\n\t\t\t} else {\n\t\t\t\t// Split into directory and file prefix\n\t\t\t\tconst dir = dirname(expandedPrefix);\n\t\t\t\tconst file = basename(expandedPrefix);\n\t\t\t\tif (rawPrefix.startsWith(\"~\") || expandedPrefix.startsWith(\"/\")) {\n\t\t\t\t\tsearchDir = dir;\n\t\t\t\t} else {\n\t\t\t\t\tsearchDir = join(this.basePath, dir);\n\t\t\t\t}\n\t\t\t\tsearchPrefix = file;\n\t\t\t}\n\n\t\t\tconst entries = readdirSync(searchDir, { withFileTypes: true });\n\t\t\tconst suggestions: AutocompleteItem[] = [];\n\n\t\t\tfor (const entry of entries) {\n\t\t\t\tif (!entry.name.toLowerCase().startsWith(searchPrefix.toLowerCase())) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Check if entry is a directory (or a symlink pointing to a directory)\n\t\t\t\tlet isDirectory = entry.isDirectory();\n\t\t\t\tif (!isDirectory && entry.isSymbolicLink()) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst fullPath = join(searchDir, entry.name);\n\t\t\t\t\t\tisDirectory = statSync(fullPath).isDirectory();\n\t\t\t\t\t} catch {\n\t\t\t\t\t\t// Broken symlink or permission error - treat as file\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet relativePath: string;\n\t\t\t\tconst name = entry.name;\n\t\t\t\tconst displayPrefix = rawPrefix;\n\n\t\t\t\tif (displayPrefix.endsWith(\"/\")) {\n\t\t\t\t\t// If prefix ends with /, append entry to the prefix\n\t\t\t\t\trelativePath = displayPrefix + name;\n\t\t\t\t} else if (displayPrefix.includes(\"/\") || displayPrefix.includes(\"\\\\\")) {\n\t\t\t\t\t// Preserve ~/ format for home directory paths\n\t\t\t\t\tif (displayPrefix.startsWith(\"~/\")) {\n\t\t\t\t\t\tconst homeRelativeDir = displayPrefix.slice(2); // Remove ~/\n\t\t\t\t\t\tconst dir = dirname(homeRelativeDir);\n\t\t\t\t\t\trelativePath = `~/${dir === \".\" ? name : join(dir, name)}`;\n\t\t\t\t\t} else if (displayPrefix.startsWith(\"/\")) {\n\t\t\t\t\t\t// Absolute path - construct properly\n\t\t\t\t\t\tconst dir = dirname(displayPrefix);\n\t\t\t\t\t\tif (dir === \"/\") {\n\t\t\t\t\t\t\trelativePath = `/${name}`;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trelativePath = `${dir}/${name}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\trelativePath = join(dirname(displayPrefix), name);\n\t\t\t\t\t\t// path.join normalizes away ./ prefix, preserve it\n\t\t\t\t\t\tif (displayPrefix.startsWith(\"./\") && !relativePath.startsWith(\"./\")) {\n\t\t\t\t\t\t\trelativePath = `./${relativePath}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// For standalone entries, preserve ~/ if original prefix was ~/\n\t\t\t\t\tif (displayPrefix.startsWith(\"~\")) {\n\t\t\t\t\t\trelativePath = `~/${name}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\trelativePath = name;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trelativePath = toDisplayPath(relativePath);\n\t\t\t\tconst pathValue = isDirectory ? `${relativePath}/` : relativePath;\n\t\t\t\tconst value = buildCompletionValue(pathValue, {\n\t\t\t\t\tisDirectory,\n\t\t\t\t\tisAtPrefix,\n\t\t\t\t\tisQuotedPrefix,\n\t\t\t\t});\n\n\t\t\t\tsuggestions.push({\n\t\t\t\t\tvalue,\n\t\t\t\t\tlabel: name + (isDirectory ? \"/\" : \"\"),\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Sort directories first, then alphabetically\n\t\t\tsuggestions.sort((a, b) => {\n\t\t\t\tconst aIsDir = a.value.endsWith(\"/\");\n\t\t\t\tconst bIsDir = b.value.endsWith(\"/\");\n\t\t\t\tif (aIsDir && !bIsDir) return -1;\n\t\t\t\tif (!aIsDir && bIsDir) return 1;\n\t\t\t\treturn a.label.localeCompare(b.label);\n\t\t\t});\n\n\t\t\treturn suggestions;\n\t\t} catch (_e) {\n\t\t\t// Directory doesn't exist or not accessible\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t// Score an entry against the query (higher = better match)\n\t// isDirectory adds bonus to prioritize folders\n\tprivate scoreEntry(filePath: string, query: string, isDirectory: boolean): number {\n\t\tconst fileName = basename(filePath);\n\t\tconst lowerFileName = fileName.toLowerCase();\n\t\tconst lowerQuery = query.toLowerCase();\n\n\t\tlet score = 0;\n\n\t\t// Exact filename match (highest)\n\t\tif (lowerFileName === lowerQuery) score = 100;\n\t\t// Filename starts with query\n\t\telse if (lowerFileName.startsWith(lowerQuery)) score = 80;\n\t\t// Substring match in filename\n\t\telse if (lowerFileName.includes(lowerQuery)) score = 50;\n\t\t// Substring match in full path\n\t\telse if (filePath.toLowerCase().includes(lowerQuery)) score = 30;\n\n\t\t// Directories get a bonus to appear first\n\t\tif (isDirectory && score > 0) score += 10;\n\n\t\treturn score;\n\t}\n\n\t// Fuzzy file search using fd (fast, respects .gitignore)\n\tprivate async getFuzzyFileSuggestions(\n\t\tquery: string,\n\t\toptions: { isQuotedPrefix: boolean; signal: AbortSignal },\n\t): Promise<AutocompleteItem[]> {\n\t\tif (!this.fdPath || options.signal.aborted) {\n\t\t\treturn [];\n\t\t}\n\n\t\ttry {\n\t\t\tconst scopedQuery = this.resolveScopedFuzzyQuery(query);\n\t\t\tconst fdBaseDir = scopedQuery?.baseDir ?? this.basePath;\n\t\t\tconst fdQuery = scopedQuery?.query ?? query;\n\t\t\tconst entries = await walkDirectoryWithFd(fdBaseDir, this.fdPath, fdQuery, 100, options.signal);\n\t\t\tif (options.signal.aborted) {\n\t\t\t\treturn [];\n\t\t\t}\n\n\t\t\tconst scoredEntries = entries\n\t\t\t\t.map((entry) => ({\n\t\t\t\t\t...entry,\n\t\t\t\t\tscore: fdQuery ? this.scoreEntry(entry.path, fdQuery, entry.isDirectory) : 1,\n\t\t\t\t}))\n\t\t\t\t.filter((entry) => entry.score > 0);\n\n\t\t\tscoredEntries.sort((a, b) => b.score - a.score);\n\t\t\tconst topEntries = scoredEntries.slice(0, 20);\n\n\t\t\tconst suggestions: AutocompleteItem[] = [];\n\t\t\tfor (const { path: entryPath, isDirectory } of topEntries) {\n\t\t\t\tconst pathWithoutSlash = isDirectory ? entryPath.slice(0, -1) : entryPath;\n\t\t\t\tconst displayPath = scopedQuery\n\t\t\t\t\t? this.scopedPathForDisplay(scopedQuery.displayBase, pathWithoutSlash)\n\t\t\t\t\t: pathWithoutSlash;\n\t\t\t\tconst entryName = basename(pathWithoutSlash);\n\t\t\t\tconst completionPath = isDirectory ? `${displayPath}/` : displayPath;\n\t\t\t\tconst value = buildCompletionValue(completionPath, {\n\t\t\t\t\tisDirectory,\n\t\t\t\t\tisAtPrefix: true,\n\t\t\t\t\tisQuotedPrefix: options.isQuotedPrefix,\n\t\t\t\t});\n\n\t\t\t\tsuggestions.push({\n\t\t\t\t\tvalue,\n\t\t\t\t\tlabel: entryName + (isDirectory ? \"/\" : \"\"),\n\t\t\t\t\tdescription: displayPath,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn suggestions;\n\t\t} catch {\n\t\t\treturn [];\n\t\t}\n\t}\n\n\t// Check if we should trigger file completion (called on Tab key)\n\tshouldTriggerFileCompletion(lines: string[], cursorLine: number, cursorCol: number): boolean {\n\t\tconst currentLine = lines[cursorLine] || \"\";\n\t\tconst textBeforeCursor = currentLine.slice(0, cursorCol);\n\n\t\t// Don't trigger if we're typing a slash command at the start of the line\n\t\tif (textBeforeCursor.trim().startsWith(\"/\") && !textBeforeCursor.trim().includes(\" \")) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n}\n"]}
|