@nodetool-ai/cli 0.7.0-rc.23 → 0.8.2
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/README.md +82 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/ExecutionTree.d.ts +2 -1
- package/dist/ExecutionTree.d.ts.map +1 -1
- package/dist/ExecutionTree.js +1 -1
- package/dist/ExecutionTree.js.map +1 -1
- package/dist/affected/affected.d.ts +45 -0
- package/dist/affected/affected.d.ts.map +1 -0
- package/dist/affected/affected.js +160 -0
- package/dist/affected/affected.js.map +1 -0
- package/dist/agent-toolbelt.d.ts +15 -0
- package/dist/agent-toolbelt.d.ts.map +1 -0
- package/dist/agent-toolbelt.js +28 -0
- package/dist/agent-toolbelt.js.map +1 -0
- package/dist/api-client.d.ts +12 -0
- package/dist/api-client.d.ts.map +1 -0
- package/dist/api-client.js +21 -0
- package/dist/api-client.js.map +1 -0
- package/dist/app-build/bundle.d.ts +15 -0
- package/dist/app-build/bundle.d.ts.map +1 -0
- package/dist/app-build/bundle.js +45 -0
- package/dist/app-build/bundle.js.map +1 -0
- package/dist/app-build/watch.d.ts +13 -0
- package/dist/app-build/watch.d.ts.map +1 -0
- package/dist/app-build/watch.js +25 -0
- package/dist/app-build/watch.js.map +1 -0
- package/dist/app-debug/app-target.d.ts +14 -0
- package/dist/app-debug/app-target.d.ts.map +1 -0
- package/dist/app-debug/app-target.js +120 -0
- package/dist/app-debug/app-target.js.map +1 -0
- package/dist/app-debug/harness.d.ts +29 -0
- package/dist/app-debug/harness.d.ts.map +1 -0
- package/dist/app-debug/harness.js +116 -0
- package/dist/app-debug/harness.js.map +1 -0
- package/dist/app-debug/index.d.ts +12 -0
- package/dist/app-debug/index.d.ts.map +1 -0
- package/dist/app-debug/index.js +9 -0
- package/dist/app-debug/index.js.map +1 -0
- package/dist/app.d.ts +38 -48
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +980 -677
- package/dist/app.js.map +1 -1
- package/dist/bash-tool.d.ts +13 -0
- package/dist/bash-tool.d.ts.map +1 -0
- package/dist/bash-tool.js +85 -0
- package/dist/bash-tool.js.map +1 -0
- package/dist/chat-codeact.d.ts +93 -0
- package/dist/chat-codeact.d.ts.map +1 -0
- package/dist/chat-codeact.js +179 -0
- package/dist/chat-codeact.js.map +1 -0
- package/dist/chat-context.d.ts +18 -0
- package/dist/chat-context.d.ts.map +1 -0
- package/dist/chat-context.js +32 -0
- package/dist/chat-context.js.map +1 -0
- package/dist/chat-media.d.ts +3 -0
- package/dist/chat-media.d.ts.map +1 -0
- package/dist/chat-media.js +46 -0
- package/dist/chat-media.js.map +1 -0
- package/dist/chat-prompts.d.ts +20 -0
- package/dist/chat-prompts.d.ts.map +1 -0
- package/dist/chat-prompts.js +42 -0
- package/dist/chat-prompts.js.map +1 -0
- package/dist/chat-sessions.d.ts +25 -0
- package/dist/chat-sessions.d.ts.map +1 -0
- package/dist/chat-sessions.js +153 -0
- package/dist/chat-sessions.js.map +1 -0
- package/dist/command-errors.d.ts +10 -0
- package/dist/command-errors.d.ts.map +1 -0
- package/dist/command-errors.js +15 -0
- package/dist/command-errors.js.map +1 -0
- package/dist/commands/__tests__/jtbd.test.d.ts +2 -0
- package/dist/commands/__tests__/jtbd.test.d.ts.map +1 -0
- package/dist/commands/__tests__/jtbd.test.js +120 -0
- package/dist/commands/__tests__/jtbd.test.js.map +1 -0
- package/dist/commands/__tests__/timeline-render-audio.test.d.ts +2 -0
- package/dist/commands/__tests__/timeline-render-audio.test.d.ts.map +1 -0
- package/dist/commands/__tests__/timeline-render-audio.test.js +53 -0
- package/dist/commands/__tests__/timeline-render-audio.test.js.map +1 -0
- package/dist/commands/__tests__/timeline-render-completeness.test.d.ts +2 -0
- package/dist/commands/__tests__/timeline-render-completeness.test.d.ts.map +1 -0
- package/dist/commands/__tests__/timeline-render-completeness.test.js +117 -0
- package/dist/commands/__tests__/timeline-render-completeness.test.js.map +1 -0
- package/dist/commands/__tests__/timeline-render.test.d.ts +2 -0
- package/dist/commands/__tests__/timeline-render.test.d.ts.map +1 -0
- package/dist/commands/__tests__/timeline-render.test.js +115 -0
- package/dist/commands/__tests__/timeline-render.test.js.map +1 -0
- package/dist/commands/__tests__/timeline-score.test.d.ts +2 -0
- package/dist/commands/__tests__/timeline-score.test.d.ts.map +1 -0
- package/dist/commands/__tests__/timeline-score.test.js +100 -0
- package/dist/commands/__tests__/timeline-score.test.js.map +1 -0
- package/dist/commands/affected.d.ts +9 -0
- package/dist/commands/affected.d.ts.map +1 -0
- package/dist/commands/affected.js +122 -0
- package/dist/commands/affected.js.map +1 -0
- package/dist/commands/agent.d.ts +26 -4
- package/dist/commands/agent.d.ts.map +1 -1
- package/dist/commands/agent.js +328 -306
- package/dist/commands/agent.js.map +1 -1
- package/dist/commands/app.d.ts +3 -0
- package/dist/commands/app.d.ts.map +1 -0
- package/dist/commands/app.js +405 -0
- package/dist/commands/app.js.map +1 -0
- package/dist/commands/apps.d.ts +15 -0
- package/dist/commands/apps.d.ts.map +1 -0
- package/dist/commands/apps.js +180 -0
- package/dist/commands/apps.js.map +1 -0
- package/dist/commands/auth.d.ts +12 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +154 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/collections.d.ts +10 -0
- package/dist/commands/collections.d.ts.map +1 -0
- package/dist/commands/collections.js +257 -0
- package/dist/commands/collections.js.map +1 -0
- package/dist/commands/costs.d.ts +15 -0
- package/dist/commands/costs.d.ts.map +1 -0
- package/dist/commands/costs.js +201 -0
- package/dist/commands/costs.js.map +1 -0
- package/dist/commands/db.d.ts +3 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +176 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/debug-summary-output.d.ts +22 -0
- package/dist/commands/debug-summary-output.d.ts.map +1 -0
- package/dist/commands/debug-summary-output.js +28 -0
- package/dist/commands/debug-summary-output.js.map +1 -0
- package/dist/commands/debug.d.ts +13 -0
- package/dist/commands/debug.d.ts.map +1 -0
- package/dist/commands/debug.js +138 -0
- package/dist/commands/debug.js.map +1 -0
- package/dist/commands/deploy-helpers.d.ts +49 -18
- package/dist/commands/deploy-helpers.d.ts.map +1 -1
- package/dist/commands/deploy-helpers.js +10 -276
- package/dist/commands/deploy-helpers.js.map +1 -1
- package/dist/commands/deploy.d.ts +0 -1
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +21 -217
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/errors.d.ts +11 -0
- package/dist/commands/errors.d.ts.map +1 -0
- package/dist/commands/errors.js +177 -0
- package/dist/commands/errors.js.map +1 -0
- package/dist/commands/eval.d.ts +152 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +690 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/extension.d.ts +12 -0
- package/dist/commands/extension.d.ts.map +1 -0
- package/dist/commands/extension.js +30 -0
- package/dist/commands/extension.js.map +1 -0
- package/dist/commands/game-benchmark.d.ts +34 -0
- package/dist/commands/game-benchmark.d.ts.map +1 -0
- package/dist/commands/game-benchmark.js +95 -0
- package/dist/commands/game-benchmark.js.map +1 -0
- package/dist/commands/game-smoke.d.ts +3 -0
- package/dist/commands/game-smoke.d.ts.map +1 -0
- package/dist/commands/game-smoke.js +23 -0
- package/dist/commands/game-smoke.js.map +1 -0
- package/dist/commands/game.d.ts +4 -0
- package/dist/commands/game.d.ts.map +1 -0
- package/dist/commands/game.js +624 -0
- package/dist/commands/game.js.map +1 -0
- package/dist/commands/generate.d.ts +17 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +324 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/generations.d.ts +17 -0
- package/dist/commands/generations.d.ts.map +1 -0
- package/dist/commands/generations.js +408 -0
- package/dist/commands/generations.js.map +1 -0
- package/dist/commands/harness.d.ts +69 -0
- package/dist/commands/harness.d.ts.map +1 -0
- package/dist/commands/harness.js +575 -0
- package/dist/commands/harness.js.map +1 -0
- package/dist/commands/js-script-validation-output.d.ts +7 -0
- package/dist/commands/js-script-validation-output.d.ts.map +1 -0
- package/dist/commands/js-script-validation-output.js +5 -0
- package/dist/commands/js-script-validation-output.js.map +1 -0
- package/dist/commands/js-script-versions.d.ts +53 -0
- package/dist/commands/js-script-versions.d.ts.map +1 -0
- package/dist/commands/js-script-versions.js +89 -0
- package/dist/commands/js-script-versions.js.map +1 -0
- package/dist/commands/js-script.d.ts +29 -0
- package/dist/commands/js-script.d.ts.map +1 -0
- package/dist/commands/js-script.js +211 -0
- package/dist/commands/js-script.js.map +1 -0
- package/dist/commands/jtbd.d.ts +38 -0
- package/dist/commands/jtbd.d.ts.map +1 -0
- package/dist/commands/jtbd.js +261 -0
- package/dist/commands/jtbd.js.map +1 -0
- package/dist/commands/local-db.d.ts +16 -0
- package/dist/commands/local-db.d.ts.map +1 -0
- package/dist/commands/local-db.js +33 -0
- package/dist/commands/local-db.js.map +1 -0
- package/dist/commands/mcp.d.ts +21 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +164 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/migrate-code-inputs.d.ts +24 -0
- package/dist/commands/migrate-code-inputs.d.ts.map +1 -0
- package/dist/commands/migrate-code-inputs.js +120 -0
- package/dist/commands/migrate-code-inputs.js.map +1 -0
- package/dist/commands/models-hf.js +4 -4
- package/dist/commands/models-hf.js.map +1 -1
- package/dist/commands/models-recommended.d.ts.map +1 -1
- package/dist/commands/models-recommended.js +16 -24
- package/dist/commands/models-recommended.js.map +1 -1
- package/dist/commands/node.d.ts +10 -0
- package/dist/commands/node.d.ts.map +1 -0
- package/dist/commands/node.js +72 -0
- package/dist/commands/node.js.map +1 -0
- package/dist/commands/output.d.ts +24 -0
- package/dist/commands/output.d.ts.map +1 -0
- package/dist/commands/output.js +132 -0
- package/dist/commands/output.js.map +1 -0
- package/dist/commands/package-helpers.d.ts +1 -7
- package/dist/commands/package-helpers.d.ts.map +1 -1
- package/dist/commands/package-helpers.js +3 -26
- package/dist/commands/package-helpers.js.map +1 -1
- package/dist/commands/package.d.ts.map +1 -1
- package/dist/commands/package.js +14 -14
- package/dist/commands/package.js.map +1 -1
- package/dist/commands/packs.d.ts +13 -0
- package/dist/commands/packs.d.ts.map +1 -0
- package/dist/commands/packs.js +60 -0
- package/dist/commands/packs.js.map +1 -0
- package/dist/commands/reliability.d.ts +14 -0
- package/dist/commands/reliability.d.ts.map +1 -0
- package/dist/commands/reliability.js +80 -0
- package/dist/commands/reliability.js.map +1 -0
- package/dist/commands/resource-read.d.ts +28 -0
- package/dist/commands/resource-read.d.ts.map +1 -0
- package/dist/commands/resource-read.js +316 -0
- package/dist/commands/resource-read.js.map +1 -0
- package/dist/commands/runs.d.ts +7 -0
- package/dist/commands/runs.d.ts.map +1 -0
- package/dist/commands/runs.js +302 -0
- package/dist/commands/runs.js.map +1 -0
- package/dist/commands/sketch-validation-output.d.ts +7 -0
- package/dist/commands/sketch-validation-output.d.ts.map +1 -0
- package/dist/commands/sketch-validation-output.js +5 -0
- package/dist/commands/sketch-validation-output.js.map +1 -0
- package/dist/commands/sketch-versions.d.ts +66 -0
- package/dist/commands/sketch-versions.d.ts.map +1 -0
- package/dist/commands/sketch-versions.js +108 -0
- package/dist/commands/sketch-versions.js.map +1 -0
- package/dist/commands/sketch.d.ts +21 -0
- package/dist/commands/sketch.d.ts.map +1 -0
- package/dist/commands/sketch.js +101 -0
- package/dist/commands/sketch.js.map +1 -0
- package/dist/commands/storage.d.ts +24 -0
- package/dist/commands/storage.d.ts.map +1 -0
- package/dist/commands/storage.js +112 -0
- package/dist/commands/storage.js.map +1 -0
- package/dist/commands/telegram.d.ts +11 -0
- package/dist/commands/telegram.d.ts.map +1 -0
- package/dist/commands/telegram.js +66 -0
- package/dist/commands/telegram.js.map +1 -0
- package/dist/commands/timeline-render.d.ts +85 -0
- package/dist/commands/timeline-render.d.ts.map +1 -0
- package/dist/commands/timeline-render.js +474 -0
- package/dist/commands/timeline-render.js.map +1 -0
- package/dist/commands/timeline-score.d.ts +16 -0
- package/dist/commands/timeline-score.d.ts.map +1 -0
- package/dist/commands/timeline-score.js +89 -0
- package/dist/commands/timeline-score.js.map +1 -0
- package/dist/commands/timeline-validation-output.d.ts +7 -0
- package/dist/commands/timeline-validation-output.d.ts.map +1 -0
- package/dist/commands/timeline-validation-output.js +9 -0
- package/dist/commands/timeline-validation-output.js.map +1 -0
- package/dist/commands/timeline-versions.d.ts +72 -0
- package/dist/commands/timeline-versions.d.ts.map +1 -0
- package/dist/commands/timeline-versions.js +108 -0
- package/dist/commands/timeline-versions.js.map +1 -0
- package/dist/commands/timeline.d.ts +22 -0
- package/dist/commands/timeline.d.ts.map +1 -0
- package/dist/commands/timeline.js +105 -0
- package/dist/commands/timeline.js.map +1 -0
- package/dist/commands/validate.d.ts +22 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +127 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/validation-output.d.ts +25 -0
- package/dist/commands/validation-output.d.ts.map +1 -0
- package/dist/commands/validation-output.js +29 -0
- package/dist/commands/validation-output.js.map +1 -0
- package/dist/commands/version-commands.d.ts +94 -0
- package/dist/commands/version-commands.d.ts.map +1 -0
- package/dist/commands/version-commands.js +227 -0
- package/dist/commands/version-commands.js.map +1 -0
- package/dist/commands/worker-models.d.ts +13 -0
- package/dist/commands/worker-models.d.ts.map +1 -0
- package/dist/commands/worker-models.js +207 -0
- package/dist/commands/worker-models.js.map +1 -0
- package/dist/commands/worker.d.ts +23 -0
- package/dist/commands/worker.d.ts.map +1 -0
- package/dist/commands/worker.js +374 -0
- package/dist/commands/worker.js.map +1 -0
- package/dist/debug/browser-runner.d.ts +21 -0
- package/dist/debug/browser-runner.d.ts.map +1 -0
- package/dist/debug/browser-runner.js +196 -0
- package/dist/debug/browser-runner.js.map +1 -0
- package/dist/debug/collector.d.ts +9 -0
- package/dist/debug/collector.d.ts.map +1 -0
- package/dist/debug/collector.js +9 -0
- package/dist/debug/collector.js.map +1 -0
- package/dist/debug/diff.d.ts +48 -0
- package/dist/debug/diff.d.ts.map +1 -0
- package/dist/debug/diff.js +68 -0
- package/dist/debug/diff.js.map +1 -0
- package/dist/debug/harness.d.ts +11 -0
- package/dist/debug/harness.d.ts.map +1 -0
- package/dist/debug/harness.js +103 -0
- package/dist/debug/harness.js.map +1 -0
- package/dist/debug/index.d.ts +17 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +16 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/debug/markdown.d.ts +3 -0
- package/dist/debug/markdown.d.ts.map +1 -0
- package/dist/debug/markdown.js +127 -0
- package/dist/debug/markdown.js.map +1 -0
- package/dist/debug/server-runner.d.ts +24 -0
- package/dist/debug/server-runner.d.ts.map +1 -0
- package/dist/debug/server-runner.js +197 -0
- package/dist/debug/server-runner.js.map +1 -0
- package/dist/debug/target.d.ts +34 -0
- package/dist/debug/target.d.ts.map +1 -0
- package/dist/debug/target.js +104 -0
- package/dist/debug/target.js.map +1 -0
- package/dist/debug/trace.d.ts +30 -0
- package/dist/debug/trace.d.ts.map +1 -0
- package/dist/debug/trace.js +87 -0
- package/dist/debug/trace.js.map +1 -0
- package/dist/debug/types.d.ts +82 -0
- package/dist/debug/types.d.ts.map +1 -0
- package/dist/debug/types.js +13 -0
- package/dist/debug/types.js.map +1 -0
- package/dist/debug/verdict.d.ts +3 -0
- package/dist/debug/verdict.d.ts.map +1 -0
- package/dist/debug/verdict.js +78 -0
- package/dist/debug/verdict.js.map +1 -0
- package/dist/debug/watch.d.ts +23 -0
- package/dist/debug/watch.d.ts.map +1 -0
- package/dist/debug/watch.js +68 -0
- package/dist/debug/watch.js.map +1 -0
- package/dist/diagnose.d.ts +139 -0
- package/dist/diagnose.d.ts.map +1 -0
- package/dist/diagnose.js +418 -0
- package/dist/diagnose.js.map +1 -0
- package/dist/evals/graph-runner.d.ts +8 -0
- package/dist/evals/graph-runner.d.ts.map +1 -0
- package/dist/evals/graph-runner.js +136 -0
- package/dist/evals/graph-runner.js.map +1 -0
- package/dist/harness/capability-coverage.d.ts +161 -0
- package/dist/harness/capability-coverage.d.ts.map +1 -0
- package/dist/harness/capability-coverage.js +266 -0
- package/dist/harness/capability-coverage.js.map +1 -0
- package/dist/harness/capability-table.d.ts +17 -0
- package/dist/harness/capability-table.d.ts.map +1 -0
- package/dist/harness/capability-table.js +3844 -0
- package/dist/harness/capability-table.js.map +1 -0
- package/dist/harness/changed-files.d.ts +20 -0
- package/dist/harness/changed-files.d.ts.map +1 -0
- package/dist/harness/changed-files.js +90 -0
- package/dist/harness/changed-files.js.map +1 -0
- package/dist/harness/declared-capabilities.d.ts +12 -0
- package/dist/harness/declared-capabilities.d.ts.map +1 -0
- package/dist/harness/declared-capabilities.js +21 -0
- package/dist/harness/declared-capabilities.js.map +1 -0
- package/dist/harness/registry.d.ts +190 -0
- package/dist/harness/registry.d.ts.map +1 -0
- package/dist/harness/registry.js +2034 -0
- package/dist/harness/registry.js.map +1 -0
- package/dist/index.js +122 -131
- package/dist/index.js.map +1 -1
- package/dist/interaction-script.d.ts +40 -0
- package/dist/interaction-script.d.ts.map +1 -0
- package/dist/interaction-script.js +96 -0
- package/dist/interaction-script.js.map +1 -0
- package/dist/js-script-debug/harness.d.ts +124 -0
- package/dist/js-script-debug/harness.d.ts.map +1 -0
- package/dist/js-script-debug/harness.js +230 -0
- package/dist/js-script-debug/harness.js.map +1 -0
- package/dist/js-script-debug/index.d.ts +9 -0
- package/dist/js-script-debug/index.d.ts.map +1 -0
- package/dist/js-script-debug/index.js +9 -0
- package/dist/js-script-debug/index.js.map +1 -0
- package/dist/js-script-debug/interactions.d.ts +19 -0
- package/dist/js-script-debug/interactions.d.ts.map +1 -0
- package/dist/js-script-debug/interactions.js +17 -0
- package/dist/js-script-debug/interactions.js.map +1 -0
- package/dist/js-script-debug/target.d.ts +20 -0
- package/dist/js-script-debug/target.d.ts.map +1 -0
- package/dist/js-script-debug/target.js +78 -0
- package/dist/js-script-debug/target.js.map +1 -0
- package/dist/local-model-interfaces.d.ts +20 -0
- package/dist/local-model-interfaces.d.ts.map +1 -0
- package/dist/local-model-interfaces.js +41 -0
- package/dist/local-model-interfaces.js.map +1 -0
- package/dist/local-secrets.d.ts +3 -0
- package/dist/local-secrets.d.ts.map +1 -0
- package/dist/local-secrets.js +16 -0
- package/dist/local-secrets.js.map +1 -0
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +7 -2
- package/dist/markdown.js.map +1 -1
- package/dist/node/run-node.d.ts +28 -0
- package/dist/node/run-node.d.ts.map +1 -0
- package/dist/node/run-node.js +76 -0
- package/dist/node/run-node.js.map +1 -0
- package/dist/node-registry.d.ts +27 -0
- package/dist/node-registry.d.ts.map +1 -0
- package/dist/node-registry.js +33 -0
- package/dist/node-registry.js.map +1 -0
- package/dist/nodetool-main.d.ts +15 -0
- package/dist/nodetool-main.d.ts.map +1 -0
- package/dist/nodetool-main.js +1368 -0
- package/dist/nodetool-main.js.map +1 -0
- package/dist/nodetool.d.ts +0 -13
- package/dist/nodetool.d.ts.map +1 -1
- package/dist/nodetool.js +17 -1147
- package/dist/nodetool.js.map +1 -1
- package/dist/numeric-options.d.ts +22 -0
- package/dist/numeric-options.d.ts.map +1 -0
- package/dist/numeric-options.js +45 -0
- package/dist/numeric-options.js.map +1 -0
- package/dist/permission-gate.d.ts +55 -0
- package/dist/permission-gate.d.ts.map +1 -0
- package/dist/permission-gate.js +118 -0
- package/dist/permission-gate.js.map +1 -0
- package/dist/predicates.d.ts +6 -0
- package/dist/predicates.d.ts.map +1 -0
- package/dist/predicates.js +6 -0
- package/dist/predicates.js.map +1 -0
- package/dist/providers.d.ts +73 -10
- package/dist/providers.d.ts.map +1 -1
- package/dist/providers.js +339 -97
- package/dist/providers.js.map +1 -1
- package/dist/readline-input.d.ts +13 -19
- package/dist/readline-input.d.ts.map +1 -1
- package/dist/readline-input.js +201 -190
- package/dist/readline-input.js.map +1 -1
- package/dist/run-budget.d.ts +40 -0
- package/dist/run-budget.d.ts.map +1 -0
- package/dist/run-budget.js +119 -0
- package/dist/run-budget.js.map +1 -0
- package/dist/run-dsl-supervised.d.ts +11 -0
- package/dist/run-dsl-supervised.d.ts.map +1 -0
- package/dist/run-dsl-supervised.js +82 -0
- package/dist/run-dsl-supervised.js.map +1 -0
- package/dist/run-dsl.d.ts +29 -0
- package/dist/run-dsl.d.ts.map +1 -1
- package/dist/run-dsl.js +44 -10
- package/dist/run-dsl.js.map +1 -1
- package/dist/run-json.d.ts +24 -0
- package/dist/run-json.d.ts.map +1 -0
- package/dist/run-json.js +132 -0
- package/dist/run-json.js.map +1 -0
- package/dist/sandbox-catalog.d.ts +24 -0
- package/dist/sandbox-catalog.d.ts.map +1 -0
- package/dist/sandbox-catalog.js +78 -0
- package/dist/sandbox-catalog.js.map +1 -0
- package/dist/settings.d.ts +11 -10
- package/dist/settings.d.ts.map +1 -1
- package/dist/settings.js +71 -13
- package/dist/settings.js.map +1 -1
- package/dist/sketch-debug/harness.d.ts +87 -0
- package/dist/sketch-debug/harness.d.ts.map +1 -0
- package/dist/sketch-debug/harness.js +145 -0
- package/dist/sketch-debug/harness.js.map +1 -0
- package/dist/sketch-debug/index.d.ts +9 -0
- package/dist/sketch-debug/index.d.ts.map +1 -0
- package/dist/sketch-debug/index.js +9 -0
- package/dist/sketch-debug/index.js.map +1 -0
- package/dist/sketch-debug/interactions.d.ts +19 -0
- package/dist/sketch-debug/interactions.d.ts.map +1 -0
- package/dist/sketch-debug/interactions.js +17 -0
- package/dist/sketch-debug/interactions.js.map +1 -0
- package/dist/sketch-debug/target.d.ts +48 -0
- package/dist/sketch-debug/target.d.ts.map +1 -0
- package/dist/sketch-debug/target.js +138 -0
- package/dist/sketch-debug/target.js.map +1 -0
- package/dist/stdin.d.ts +18 -19
- package/dist/stdin.d.ts.map +1 -1
- package/dist/stdin.js +160 -157
- package/dist/stdin.js.map +1 -1
- package/dist/supervisor.d.ts +97 -0
- package/dist/supervisor.d.ts.map +1 -0
- package/dist/supervisor.js +194 -0
- package/dist/supervisor.js.map +1 -0
- package/dist/terminal-clipboard.d.ts +3 -0
- package/dist/terminal-clipboard.d.ts.map +1 -0
- package/dist/terminal-clipboard.js +24 -0
- package/dist/terminal-clipboard.js.map +1 -0
- package/dist/terminal-mouse.d.ts +24 -0
- package/dist/terminal-mouse.d.ts.map +1 -0
- package/dist/terminal-mouse.js +84 -0
- package/dist/terminal-mouse.js.map +1 -0
- package/dist/terminal-screen.d.ts +41 -0
- package/dist/terminal-screen.d.ts.map +1 -0
- package/dist/terminal-screen.js +228 -0
- package/dist/terminal-screen.js.map +1 -0
- package/dist/timeline-debug/harness.d.ts +79 -0
- package/dist/timeline-debug/harness.d.ts.map +1 -0
- package/dist/timeline-debug/harness.js +122 -0
- package/dist/timeline-debug/harness.js.map +1 -0
- package/dist/timeline-debug/index.d.ts +9 -0
- package/dist/timeline-debug/index.d.ts.map +1 -0
- package/dist/timeline-debug/index.js +9 -0
- package/dist/timeline-debug/index.js.map +1 -0
- package/dist/timeline-debug/interactions.d.ts +19 -0
- package/dist/timeline-debug/interactions.d.ts.map +1 -0
- package/dist/timeline-debug/interactions.js +17 -0
- package/dist/timeline-debug/interactions.js.map +1 -0
- package/dist/timeline-debug/target.d.ts +34 -0
- package/dist/timeline-debug/target.d.ts.map +1 -0
- package/dist/timeline-debug/target.js +132 -0
- package/dist/timeline-debug/target.js.map +1 -0
- package/dist/tool-format.d.ts +54 -0
- package/dist/tool-format.d.ts.map +1 -0
- package/dist/tool-format.js +360 -0
- package/dist/tool-format.js.map +1 -0
- package/dist/useExecutionState.d.ts.map +1 -1
- package/dist/useExecutionState.js +8 -4
- package/dist/useExecutionState.js.map +1 -1
- package/dist/validate/index.d.ts +28 -0
- package/dist/validate/index.d.ts.map +1 -0
- package/dist/validate/index.js +51 -0
- package/dist/validate/index.js.map +1 -0
- package/dist/websocket-client.d.ts +78 -15
- package/dist/websocket-client.d.ts.map +1 -1
- package/dist/websocket-client.js +497 -171
- package/dist/websocket-client.js.map +1 -1
- package/package.json +65 -31
package/dist/providers.js
CHANGED
|
@@ -1,133 +1,375 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Provider factory for the chat CLI.
|
|
3
|
-
*
|
|
3
|
+
*
|
|
4
|
+
* Construction and credential wiring are delegated to the runtime provider
|
|
5
|
+
* registry (`@nodetool-ai/runtime`), so every provider registered there is
|
|
6
|
+
* reachable from the CLI without a hand-maintained switch. The curated lists
|
|
7
|
+
* below (`KNOWN_PROVIDERS`, `DEFAULT_MODELS`) only drive the interactive
|
|
8
|
+
* autocomplete and default-model hints for the common chat providers.
|
|
9
|
+
*/
|
|
10
|
+
import { BaseProvider as BaseProviderClass, createPythonBridge, getProvider, getProviderSecretKey, isProviderConfigured, listRegisteredProviderIds, PythonProvider, registerProvider, syncCustomProviders, RECOMMENDED_MODELS } from "@nodetool-ai/runtime";
|
|
11
|
+
import { readCachedHfModels } from "@nodetool-ai/huggingface";
|
|
12
|
+
import { CUSTOM_PROVIDERS_SETTING_KEY, parseCustomProviderCatalog } from "@nodetool-ai/protocol";
|
|
13
|
+
import { getSecret, Setting } from "@nodetool-ai/models";
|
|
14
|
+
import { registerTransformersJsProvider } from "@nodetool-ai/transformers-js-provider";
|
|
15
|
+
import { registerWhisperCppProviders } from "@nodetool-ai/whisper-cpp";
|
|
16
|
+
registerTransformersJsProvider();
|
|
17
|
+
registerWhisperCppProviders();
|
|
18
|
+
/**
|
|
19
|
+
* Chat-capable providers surfaced in interactive autocomplete (`/provider <tab>`)
|
|
20
|
+
* and the `--provider` help text. This is a curated subset of the registry —
|
|
21
|
+
* the well-known LLM chat APIs plus the local servers. Any other registered
|
|
22
|
+
* provider (evolink, vllm, llama_cpp, …) still works when passed explicitly via
|
|
23
|
+
* `--provider <id>`; it just isn't listed here.
|
|
4
24
|
*/
|
|
5
|
-
import { AnthropicProvider, OpenAIProvider, OllamaProvider, GeminiProvider, MistralProvider, GroqProvider, MoonshotProvider, AkiProvider, LMStudioProvider, ClaudeAgentProvider, BaseProvider as BaseProviderClass } from "@nodetool-ai/runtime";
|
|
6
|
-
import { getSecret } from "@nodetool-ai/models";
|
|
7
25
|
export const KNOWN_PROVIDERS = [
|
|
8
26
|
"anthropic",
|
|
27
|
+
"claude_agent_sdk",
|
|
9
28
|
"openai",
|
|
10
|
-
"
|
|
29
|
+
"codex",
|
|
11
30
|
"gemini",
|
|
12
|
-
"
|
|
13
|
-
"lmstudio",
|
|
31
|
+
"xai",
|
|
14
32
|
"groq",
|
|
33
|
+
"mistral",
|
|
34
|
+
"deepseek",
|
|
15
35
|
"moonshot",
|
|
36
|
+
"minimax",
|
|
37
|
+
"cerebras",
|
|
38
|
+
"gmi",
|
|
39
|
+
"meta",
|
|
40
|
+
"alibaba",
|
|
41
|
+
"together",
|
|
42
|
+
"openrouter",
|
|
43
|
+
"requesty",
|
|
44
|
+
"huggingface",
|
|
45
|
+
"replicate",
|
|
46
|
+
"kie",
|
|
16
47
|
"aki",
|
|
17
|
-
"
|
|
48
|
+
"ollama",
|
|
49
|
+
"lmstudio",
|
|
50
|
+
"mlx",
|
|
51
|
+
"node_llama_cpp"
|
|
18
52
|
];
|
|
19
|
-
/**
|
|
53
|
+
/**
|
|
54
|
+
* Providers reachable without an API key: the local servers plus the Claude
|
|
55
|
+
* Agent SDK (which authenticates with the machine's logged-in `claude` CLI
|
|
56
|
+
* subscription instead of a key).
|
|
57
|
+
*/
|
|
58
|
+
const LOCAL_PROVIDERS = [
|
|
59
|
+
"whisper_cpp",
|
|
60
|
+
"whisper_cpp_server",
|
|
61
|
+
"lmstudio",
|
|
62
|
+
"ollama",
|
|
63
|
+
"mlx",
|
|
64
|
+
"claude_agent_sdk",
|
|
65
|
+
"node_llama_cpp"
|
|
66
|
+
];
|
|
67
|
+
/**
|
|
68
|
+
* Providers served only through the local Python worker (no TS implementation).
|
|
69
|
+
* They aren't in the runtime registry until the stdio bridge connects and
|
|
70
|
+
* advertises them, so `createProvider` connects the bridge on demand for these.
|
|
71
|
+
*/
|
|
72
|
+
const PYTHON_ONLY_PROVIDERS = ["mlx"];
|
|
73
|
+
/** MLX (and other Python-local models) only run on Apple Silicon. */
|
|
74
|
+
function isAppleSilicon() {
|
|
75
|
+
return process.platform === "darwin" && process.arch === "arm64";
|
|
76
|
+
}
|
|
77
|
+
/** Default model shown when switching to a provider in interactive mode. */
|
|
20
78
|
export const DEFAULT_MODELS = {
|
|
21
79
|
anthropic: "claude-sonnet-4-6",
|
|
80
|
+
claude_agent_sdk: "sonnet",
|
|
22
81
|
openai: "gpt-5.4",
|
|
23
|
-
|
|
82
|
+
codex: "gpt-5.5",
|
|
24
83
|
gemini: "gemini-2.5-flash",
|
|
25
|
-
|
|
26
|
-
lmstudio: "qwen/qwen3.5-9b",
|
|
84
|
+
xai: "grok-4",
|
|
27
85
|
groq: "llama-3.3-70b-versatile",
|
|
28
|
-
|
|
86
|
+
mistral: "mistral-large-latest",
|
|
87
|
+
deepseek: "deepseek-chat",
|
|
88
|
+
moonshot: "kimi-k2.7",
|
|
89
|
+
minimax: "MiniMax-M2",
|
|
90
|
+
cerebras: "llama-3.3-70b",
|
|
91
|
+
gmi: "meta-llama/Llama-3.3-70B-Instruct",
|
|
92
|
+
meta: "muse-spark-1.2",
|
|
93
|
+
alibaba: "qwen3-max",
|
|
94
|
+
together: "meta-llama/Llama-3.3-70B-Instruct-Turbo",
|
|
95
|
+
openrouter: "openai/gpt-5.4-mini",
|
|
96
|
+
requesty: "openai/gpt-4o-mini",
|
|
97
|
+
huggingface: "meta-llama/Llama-3.3-70B-Instruct",
|
|
98
|
+
replicate: "anthropic/claude-4.5-sonnet",
|
|
99
|
+
kie: "gpt-5-5",
|
|
29
100
|
aki: "llama3_chat",
|
|
30
|
-
|
|
101
|
+
ollama: "qwen-3.5:4b",
|
|
102
|
+
lmstudio: "qwen/qwen3.5-9b",
|
|
103
|
+
mlx: "mlx-community/Qwen3.5-0.8B-OptiQ-4bit",
|
|
104
|
+
node_llama_cpp: "qwen2.5-3b-instruct-q4_k_m.gguf"
|
|
31
105
|
};
|
|
32
|
-
/** Resolve a secret
|
|
33
|
-
|
|
34
|
-
|
|
106
|
+
/** Resolve a secret from the encrypted DB (user "1"); env fallback handled by the registry. */
|
|
107
|
+
const resolveForUser1 = (key) => getSecret(key, "1");
|
|
108
|
+
/**
|
|
109
|
+
* Lazily spawn the local Python worker bridge and register the Python-only
|
|
110
|
+
* providers it advertises (e.g. `mlx`, local HuggingFace) into the runtime
|
|
111
|
+
* registry. Idempotent: the bridge is connected once per process and the
|
|
112
|
+
* promise cached. On failure the cache is cleared so a later call can retry,
|
|
113
|
+
* and the error is rethrown so the caller can explain why the provider is
|
|
114
|
+
* unavailable.
|
|
115
|
+
*/
|
|
116
|
+
let pythonProvidersPromise = null;
|
|
117
|
+
async function ensurePythonProvidersRegistered() {
|
|
118
|
+
if (!pythonProvidersPromise) {
|
|
119
|
+
pythonProvidersPromise = (async () => {
|
|
120
|
+
const bridge = createPythonBridge();
|
|
121
|
+
await bridge.connect();
|
|
122
|
+
for (const info of await bridge.listProviders()) {
|
|
123
|
+
// Don't shadow a TS-native provider that owns the same id (e.g. the
|
|
124
|
+
// hosted HuggingFace provider vs. the Python local one).
|
|
125
|
+
if (listRegisteredProviderIds().includes(info.id))
|
|
126
|
+
continue;
|
|
127
|
+
registerProvider(info.id, PythonProvider, {
|
|
128
|
+
_bridge: bridge,
|
|
129
|
+
_id: info.id,
|
|
130
|
+
_capabilities: info.capabilities
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
})().catch((err) => {
|
|
134
|
+
pythonProvidersPromise = null;
|
|
135
|
+
throw err;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
return pythonProvidersPromise;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Register the user's OpenAI-compatible endpoints into the runtime registry.
|
|
142
|
+
* The server does this on every request; the CLI has no request, so every
|
|
143
|
+
* entrance that resolves a provider calls it once. Non-fatal: an unreachable
|
|
144
|
+
* database leaves the built-in providers working.
|
|
145
|
+
*/
|
|
146
|
+
let customProvidersPromise = null;
|
|
147
|
+
export async function ensureCustomProvidersRegistered() {
|
|
148
|
+
if (!customProvidersPromise) {
|
|
149
|
+
customProvidersPromise = (async () => {
|
|
150
|
+
const setting = await Setting.find("1", CUSTOM_PROVIDERS_SETTING_KEY);
|
|
151
|
+
if (setting) {
|
|
152
|
+
syncCustomProviders(parseCustomProviderCatalog(setting.getValue()));
|
|
153
|
+
}
|
|
154
|
+
})().catch(() => undefined);
|
|
155
|
+
}
|
|
156
|
+
return customProvidersPromise;
|
|
157
|
+
}
|
|
158
|
+
/** Build a registered provider, rejecting unknown ids instead of falling back. */
|
|
159
|
+
export async function createProviderStrict(providerId) {
|
|
160
|
+
const id = providerId.toLowerCase();
|
|
161
|
+
await ensureCustomProvidersRegistered();
|
|
162
|
+
if (PYTHON_ONLY_PROVIDERS.includes(id) &&
|
|
163
|
+
!listRegisteredProviderIds().includes(id)) {
|
|
164
|
+
try {
|
|
165
|
+
await ensurePythonProvidersRegistered();
|
|
166
|
+
}
|
|
167
|
+
catch (err) {
|
|
168
|
+
throw new Error(`Provider "${id}" needs the local Python worker, which could not be started ` +
|
|
169
|
+
`(${err instanceof Error ? err.message : String(err)}). Ensure the nodetool ` +
|
|
170
|
+
`Python environment is installed and activated (e.g. \`conda activate nodetool\`).`);
|
|
171
|
+
}
|
|
172
|
+
if (!listRegisteredProviderIds().includes(id)) {
|
|
173
|
+
throw new Error(`Provider "${id}" is not available from the Python worker on this machine` +
|
|
174
|
+
(id === "mlx" && !isAppleSilicon() ? " (MLX requires Apple Silicon)." : "."));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
if (!listRegisteredProviderIds().includes(id)) {
|
|
178
|
+
throw new Error(`Unknown provider "${id}"`);
|
|
179
|
+
}
|
|
180
|
+
return getProvider(id, resolveForUser1);
|
|
35
181
|
}
|
|
182
|
+
/** Build a provider, preserving the chat CLI's Ollama fallback for unknown ids. */
|
|
36
183
|
export async function createProvider(providerId) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
case "openai":
|
|
43
|
-
return new OpenAIProvider({
|
|
44
|
-
OPENAI_API_KEY: await resolveKey("OPENAI_API_KEY")
|
|
45
|
-
});
|
|
46
|
-
case "ollama":
|
|
47
|
-
return new OllamaProvider({
|
|
48
|
-
OLLAMA_API_URL: (await resolveKey("OLLAMA_API_URL")) ?? "http://127.0.0.1:11434"
|
|
49
|
-
});
|
|
50
|
-
case "gemini":
|
|
51
|
-
return new GeminiProvider({
|
|
52
|
-
GEMINI_API_KEY: await resolveKey("GEMINI_API_KEY")
|
|
53
|
-
});
|
|
54
|
-
case "lmstudio":
|
|
55
|
-
return new LMStudioProvider({}, { baseURL: "http://127.0.0.1:1234" });
|
|
56
|
-
case "mistral":
|
|
57
|
-
return new MistralProvider({
|
|
58
|
-
MISTRAL_API_KEY: await resolveKey("MISTRAL_API_KEY")
|
|
59
|
-
});
|
|
60
|
-
case "groq":
|
|
61
|
-
return new GroqProvider({
|
|
62
|
-
GROQ_API_KEY: await resolveKey("GROQ_API_KEY")
|
|
63
|
-
});
|
|
64
|
-
case "moonshot":
|
|
65
|
-
return new MoonshotProvider({
|
|
66
|
-
KIMI_API_KEY: await resolveKey("KIMI_API_KEY")
|
|
67
|
-
});
|
|
68
|
-
case "aki":
|
|
69
|
-
return new AkiProvider({
|
|
70
|
-
AKI_API_KEY: await resolveKey("AKI_API_KEY")
|
|
71
|
-
});
|
|
72
|
-
case "claude_agent":
|
|
73
|
-
return new ClaudeAgentProvider();
|
|
74
|
-
default:
|
|
75
|
-
return new OllamaProvider({
|
|
76
|
-
OLLAMA_API_URL: (await resolveKey("OLLAMA_API_URL")) ?? "http://127.0.0.1:11434"
|
|
77
|
-
});
|
|
184
|
+
const id = providerId.toLowerCase();
|
|
185
|
+
await ensureCustomProvidersRegistered();
|
|
186
|
+
if (!PYTHON_ONLY_PROVIDERS.includes(id) &&
|
|
187
|
+
!listRegisteredProviderIds().includes(id)) {
|
|
188
|
+
return getProvider("ollama", resolveForUser1);
|
|
78
189
|
}
|
|
190
|
+
return createProviderStrict(id);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The secret/env key a provider needs (e.g. `"OPENROUTER_API_KEY"`), or null
|
|
194
|
+
* for local/keyless providers. Used to tell the user which key to set when a
|
|
195
|
+
* provider can't be constructed.
|
|
196
|
+
*/
|
|
197
|
+
export function providerSecretKey(providerId) {
|
|
198
|
+
return getProviderSecretKey(providerId.toLowerCase());
|
|
79
199
|
}
|
|
80
200
|
/**
|
|
81
201
|
* Build a map of `{providerId -> BaseProvider}` for use by the agent's
|
|
82
|
-
* `find_model` tool
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* Provider instances are constructed eagerly. If a key is wrong/expired,
|
|
86
|
-
* the model-listing call inside `FindModelTool` is wrapped in try/catch
|
|
87
|
-
* and the provider is silently skipped at lookup time.
|
|
202
|
+
* `find_model` tool and media tool dispatch. Includes every registered
|
|
203
|
+
* provider whose required credentials resolve (local providers have none, so
|
|
204
|
+
* they're always present). Construction failures are skipped silently.
|
|
88
205
|
*/
|
|
89
206
|
export async function buildConfiguredProviders() {
|
|
90
207
|
const result = {};
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
["groq", "GROQ_API_KEY"],
|
|
101
|
-
["moonshot", "KIMI_API_KEY"],
|
|
102
|
-
["aki", "AKI_API_KEY"]
|
|
103
|
-
];
|
|
104
|
-
for (const [id, key] of hostedChecks) {
|
|
105
|
-
const value = await resolveKey(key);
|
|
106
|
-
if (value) {
|
|
107
|
-
result[id] = await createProvider(id);
|
|
208
|
+
await ensureCustomProvidersRegistered();
|
|
209
|
+
for (const id of listRegisteredProviderIds()) {
|
|
210
|
+
try {
|
|
211
|
+
if (await isProviderConfigured(id, resolveForUser1)) {
|
|
212
|
+
result[id] = await getProvider(id, resolveForUser1);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
// Provider failed to construct (bad/missing config) — skip it.
|
|
108
217
|
}
|
|
109
218
|
}
|
|
110
219
|
return result;
|
|
111
220
|
}
|
|
112
|
-
|
|
221
|
+
export async function listConfiguredProviderInfo() {
|
|
222
|
+
const providers = await buildConfiguredProviders();
|
|
223
|
+
return Object.entries(providers).map(([provider, instance]) => ({
|
|
224
|
+
provider,
|
|
225
|
+
capabilities: instance.getCapabilities()
|
|
226
|
+
}));
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Language models exposed by every configured provider. A provider whose
|
|
230
|
+
* catalog is temporarily unavailable remains selectable by an explicit
|
|
231
|
+
* `provider/model` spec, while the other providers still populate the picker.
|
|
232
|
+
*/
|
|
233
|
+
export async function listConfiguredLanguageModels() {
|
|
234
|
+
const providers = await buildConfiguredProviders();
|
|
235
|
+
const models = await Promise.all(Object.entries(providers).map(async ([provider, instance]) => {
|
|
236
|
+
try {
|
|
237
|
+
return (await instance.getAvailableLanguageModels()).map((model) => ({
|
|
238
|
+
id: model.id,
|
|
239
|
+
name: model.name,
|
|
240
|
+
provider
|
|
241
|
+
}));
|
|
242
|
+
}
|
|
243
|
+
catch {
|
|
244
|
+
return [];
|
|
245
|
+
}
|
|
246
|
+
}));
|
|
247
|
+
return {
|
|
248
|
+
providers: Object.keys(providers),
|
|
249
|
+
models: models.flat()
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
function toUnifiedModel(model, type) {
|
|
253
|
+
return {
|
|
254
|
+
id: model.id,
|
|
255
|
+
type,
|
|
256
|
+
name: model.name,
|
|
257
|
+
provider: model.provider,
|
|
258
|
+
repo_id: null,
|
|
259
|
+
path: null,
|
|
260
|
+
downloaded: model.provider === "ollama" ||
|
|
261
|
+
model.provider === "llama_cpp" ||
|
|
262
|
+
model.provider === "node_llama_cpp" ||
|
|
263
|
+
model.provider === "whisper_cpp" ||
|
|
264
|
+
model.provider === "whisper_cpp_server",
|
|
265
|
+
tags: [model.provider],
|
|
266
|
+
voices: model.voices ?? null,
|
|
267
|
+
supported_tasks: model.supportedTasks ?? null,
|
|
268
|
+
durations: model.durations ?? null,
|
|
269
|
+
resolutions: model.resolutions ?? null,
|
|
270
|
+
aspect_ratios: model.aspectRatios ?? null
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
export async function listProviderModels(providerId, kind) {
|
|
274
|
+
const provider = await createProviderStrict(providerId);
|
|
275
|
+
if (kind === "llm") {
|
|
276
|
+
const models = await provider.getAvailableLanguageModels();
|
|
277
|
+
const toolSupport = await Promise.all(models.map((model) => provider.hasToolSupport(model.id).catch(() => null)));
|
|
278
|
+
return models.map((model, index) => ({
|
|
279
|
+
...toUnifiedModel(model, "language_model"),
|
|
280
|
+
supports_tools: toolSupport[index]
|
|
281
|
+
}));
|
|
282
|
+
}
|
|
283
|
+
switch (kind) {
|
|
284
|
+
case "image":
|
|
285
|
+
return (await provider.getAvailableImageModels()).map((model) => toUnifiedModel(model, "image_model"));
|
|
286
|
+
case "tts":
|
|
287
|
+
return (await provider.getAvailableTTSModels()).map((model) => toUnifiedModel(model, "tts_model"));
|
|
288
|
+
case "asr":
|
|
289
|
+
return (await provider.getAvailableASRModels()).map((model) => toUnifiedModel(model, "asr_model"));
|
|
290
|
+
case "video":
|
|
291
|
+
return (await provider.getAvailableVideoModels()).map((model) => toUnifiedModel(model, "video_model"));
|
|
292
|
+
case "embedding":
|
|
293
|
+
return (await provider.getAvailableEmbeddingModels()).map((model) => toUnifiedModel(model, "embedding_model"));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
/**
|
|
297
|
+
* The full model catalog assembled locally, mirroring the server's
|
|
298
|
+
* `models.all` endpoint without a running server: the recommended models, the
|
|
299
|
+
* language models of every configured provider (tagged with tool support), and
|
|
300
|
+
* the locally cached HuggingFace repos. Provider and cache failures are skipped
|
|
301
|
+
* so one broken provider never sinks the whole list.
|
|
302
|
+
*/
|
|
303
|
+
export async function listAllModels() {
|
|
304
|
+
const all = [...RECOMMENDED_MODELS];
|
|
305
|
+
const providers = await buildConfiguredProviders();
|
|
306
|
+
const perProvider = await Promise.all(Object.values(providers).map(async (instance) => {
|
|
307
|
+
try {
|
|
308
|
+
const models = await instance.getAvailableLanguageModels();
|
|
309
|
+
const toolFlags = await Promise.all(models.map((model) => instance.hasToolSupport(model.id).catch(() => null)));
|
|
310
|
+
return models.map((model, index) => ({
|
|
311
|
+
...toUnifiedModel(model, "language_model"),
|
|
312
|
+
supports_tools: toolFlags[index]
|
|
313
|
+
}));
|
|
314
|
+
}
|
|
315
|
+
catch {
|
|
316
|
+
// Provider unavailable — skip it.
|
|
317
|
+
return [];
|
|
318
|
+
}
|
|
319
|
+
}));
|
|
320
|
+
for (const models of perProvider)
|
|
321
|
+
all.push(...models);
|
|
322
|
+
try {
|
|
323
|
+
all.push(...(await readCachedHfModels()));
|
|
324
|
+
}
|
|
325
|
+
catch {
|
|
326
|
+
// HuggingFace cache unavailable — continue without it.
|
|
327
|
+
}
|
|
328
|
+
return all;
|
|
329
|
+
}
|
|
330
|
+
/** Ollama's locally installed language models, read straight from the daemon. */
|
|
331
|
+
export async function listOllamaModels() {
|
|
332
|
+
return listProviderModels("ollama", "llm");
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* The set of chat providers currently usable: local/keyless providers plus any
|
|
336
|
+
* hosted provider whose key resolves from the encrypted DB or env. Async
|
|
337
|
+
* because it consults the secret store; the interactive picker uses this to
|
|
338
|
+
* disable providers that can't be selected. Mirrors `availableProviders()` but
|
|
339
|
+
* also picks up DB-stored keys (not just env).
|
|
340
|
+
*/
|
|
341
|
+
export async function configuredProviderIds() {
|
|
342
|
+
const flags = await Promise.all(KNOWN_PROVIDERS.map((id) => {
|
|
343
|
+
// mlx is keyless but registered lazily (via the Python bridge), so
|
|
344
|
+
// isProviderConfigured() reports false until the bridge connects. Treat
|
|
345
|
+
// it as selectable on the only platform that can run it.
|
|
346
|
+
if (id === "mlx")
|
|
347
|
+
return Promise.resolve(isAppleSilicon());
|
|
348
|
+
return isProviderConfigured(id, resolveForUser1);
|
|
349
|
+
}));
|
|
350
|
+
return new Set(KNOWN_PROVIDERS.filter((_, i) => flags[i]));
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Which chat providers have credentials configured (env-only — a fast sync
|
|
354
|
+
* check used by autocomplete). Local providers are always listed, with
|
|
355
|
+
* `ollama` kept last for stable display ordering.
|
|
356
|
+
*/
|
|
113
357
|
export function availableProviders() {
|
|
114
358
|
const available = [];
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
available.push("lmstudio"); // always available (local)
|
|
130
|
-
available.push("ollama"); // always available (local)
|
|
359
|
+
for (const id of KNOWN_PROVIDERS) {
|
|
360
|
+
if (LOCAL_PROVIDERS.includes(id))
|
|
361
|
+
continue;
|
|
362
|
+
const key = getProviderSecretKey(id);
|
|
363
|
+
if (key && process.env[key])
|
|
364
|
+
available.push(id);
|
|
365
|
+
}
|
|
366
|
+
if (isAppleSilicon())
|
|
367
|
+
available.push("mlx");
|
|
368
|
+
// Keyless: surfaced like the local servers (the `claude` CLI carries its own
|
|
369
|
+
// subscription auth).
|
|
370
|
+
available.push("claude_agent_sdk");
|
|
371
|
+
available.push("lmstudio");
|
|
372
|
+
available.push("ollama");
|
|
131
373
|
return available;
|
|
132
374
|
}
|
|
133
375
|
/**
|
package/dist/providers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,IAAI,iBAAiB,EAClC,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAGhD,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,WAAW;IACX,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,UAAU;IACV,MAAM;IACN,UAAU;IACV,KAAK;IACL,cAAc;CACN,CAAC;AAGX,wCAAwC;AACxC,MAAM,CAAC,MAAM,cAAc,GAA2B;IACpD,SAAS,EAAE,mBAAmB;IAC9B,MAAM,EAAE,SAAS;IACjB,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,kBAAkB;IAC1B,OAAO,EAAE,sBAAsB;IAC/B,QAAQ,EAAE,iBAAiB;IAC3B,IAAI,EAAE,yBAAyB;IAC/B,QAAQ,EAAE,WAAW;IACrB,GAAG,EAAE,aAAa;IAClB,YAAY,EAAE,iBAAiB;CAChC,CAAC;AAEF,qEAAqE;AACrE,KAAK,UAAU,UAAU,CAAC,GAAW;IACnC,OAAO,CAAC,MAAM,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAkB;IAElB,QAAQ,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;QACjC,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,iBAAiB,EAAE,MAAM,UAAU,CAAC,mBAAmB,CAAC;aACzD,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC;gBACxB,cAAc,EAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC;aACnD,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC;gBACxB,cAAc,EACZ,CAAC,MAAM,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,wBAAwB;aACnE,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC;gBACxB,cAAc,EAAE,MAAM,UAAU,CAAC,gBAAgB,CAAC;aACnD,CAAC,CAAC;QACL,KAAK,UAAU;YACb,OAAO,IAAI,gBAAgB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,CAAA;QACvE,KAAK,SAAS;YACZ,OAAO,IAAI,eAAe,CAAC;gBACzB,eAAe,EAAE,MAAM,UAAU,CAAC,iBAAiB,CAAC;aACrD,CAAC,CAAC;QACL,KAAK,MAAM;YACT,OAAO,IAAI,YAAY,CAAC;gBACtB,YAAY,EAAE,MAAM,UAAU,CAAC,cAAc,CAAC;aAC/C,CAAC,CAAC;QACL,KAAK,UAAU;YACb,OAAO,IAAI,gBAAgB,CAAC;gBAC1B,YAAY,EAAE,MAAM,UAAU,CAAC,cAAc,CAAC;aAC/C,CAAC,CAAC;QACL,KAAK,KAAK;YACR,OAAO,IAAI,WAAW,CAAC;gBACrB,WAAW,EAAE,MAAM,UAAU,CAAC,aAAa,CAAC;aAC7C,CAAC,CAAC;QACL,KAAK,cAAc;YACjB,OAAO,IAAI,mBAAmB,EAAE,CAAC;QACnC;YACE,OAAO,IAAI,cAAc,CAAC;gBACxB,cAAc,EACZ,CAAC,MAAM,UAAU,CAAC,gBAAgB,CAAC,CAAC,IAAI,wBAAwB;aACnE,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB;IAG5C,MAAM,MAAM,GAAiC,EAAE,CAAC;IAChD,sCAAsC;IACtC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;IAClD,MAAM,CAAC,UAAU,CAAC,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACtD,6CAA6C;IAC7C,MAAM,YAAY,GAA4B;QAC5C,CAAC,WAAW,EAAE,mBAAmB,CAAC;QAClC,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QAC5B,CAAC,QAAQ,EAAE,gBAAgB,CAAC;QAC5B,CAAC,SAAS,EAAE,iBAAiB,CAAC;QAC9B,CAAC,MAAM,EAAE,cAAc,CAAC;QACxB,CAAC,UAAU,EAAE,cAAc,CAAC;QAC5B,CAAC,KAAK,EAAE,aAAa,CAAC;KACvB,CAAC;IACF,KAAK,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,cAAc,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB;IAChC,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,2BAA2B;IACvD,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,2BAA2B;IACrD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,OAAO,iBAAkB,SAAQ,iBAAiB;IAEnC;IACA;IACA;IAHnB,YACmB,MAA2B,EAC3B,YAAoB,EACpB,UAAkB;QAEnC,gFAAgF;QAChF,KAAK,CAAC,UAAoB,CAAC,CAAC;QALX,WAAM,GAAN,MAAM,CAAqB;QAC3B,iBAAY,GAAZ,YAAY,CAAQ;QACpB,eAAU,GAAV,UAAU,CAAQ;IAIrC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAKrB;QACC,IAAI,OAAO,GAAG,EAAE,CAAC;QACjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,IAAI,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5C,OAAO,IAAK,IAAc,CAAC,OAAO,IAAI,EAAE,CAAC;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,CAAC,gBAAgB,CAAC,IAIvB;QACC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,YAAY,CAAC;QAC9C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAC7C,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,KAAK,CACX,EAAE,CAAC;YACF,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAW,CAAC;YAC3D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACtC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"providers.js","sourceRoot":"","sources":["../src/providers.ts"],"names":[],"mappings":"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"}
|
package/dist/readline-input.d.ts
CHANGED
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* Supports standard readline keybindings:
|
|
5
|
-
* Ctrl+A / Home — move to beginning of line
|
|
6
|
-
* Ctrl+E / End — move to end of line
|
|
7
|
-
* Ctrl+B / ← — move back one character
|
|
8
|
-
* Ctrl+F / → — move forward one character
|
|
9
|
-
* Alt+B — move back one word
|
|
10
|
-
* Alt+F — move forward one word
|
|
11
|
-
* Ctrl+W / Alt+Bksp — delete word backward
|
|
12
|
-
* Alt+D — delete word forward
|
|
13
|
-
* Ctrl+U — delete from cursor to start of line
|
|
14
|
-
* Ctrl+K — delete from cursor to end of line
|
|
15
|
-
* Ctrl+D — delete character under cursor
|
|
16
|
-
* Ctrl+H / Backspace — delete character before cursor
|
|
17
|
-
* Ctrl+T — transpose characters
|
|
18
|
-
*/
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type Key } from "ink";
|
|
19
3
|
interface ReadlineInputProps {
|
|
20
4
|
value: string;
|
|
21
5
|
onChange: (value: string) => void;
|
|
@@ -23,7 +7,17 @@ interface ReadlineInputProps {
|
|
|
23
7
|
focus?: boolean;
|
|
24
8
|
placeholder?: string;
|
|
25
9
|
showCursor?: boolean;
|
|
10
|
+
width?: number;
|
|
11
|
+
maxRows?: number;
|
|
12
|
+
onHistory?: (direction: "up" | "down") => void;
|
|
13
|
+
onComplete?: (direction: "up" | "down" | "accept" | "submit") => void;
|
|
26
14
|
}
|
|
27
|
-
export
|
|
15
|
+
export interface EditorState {
|
|
16
|
+
readonly value: string;
|
|
17
|
+
readonly cursor: number;
|
|
18
|
+
}
|
|
19
|
+
/** Pure editing boundary shared by keyboard handling and terminal tests. */
|
|
20
|
+
export declare function editInput(state: EditorState, input: string, key: Partial<Key>): EditorState;
|
|
21
|
+
export default function ReadlineInput({ value, onChange, onSubmit, focus, placeholder, showCursor, width, maxRows, onHistory, onComplete }: ReadlineInputProps): React.ReactElement;
|
|
28
22
|
export {};
|
|
29
23
|
//# sourceMappingURL=readline-input.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"readline-input.d.ts","sourceRoot":"","sources":["../src/readline-input.tsx"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"readline-input.d.ts","sourceRoot":"","sources":["../src/readline-input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAMN,MAAM,OAAO,CAAC;AACf,OAAO,EAAkB,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAI/C,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,KAAK,IAAI,CAAC;IAC/C,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;CACvE;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAmCD,4EAA4E;AAC5E,wBAAgB,SAAS,CACvB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,GAChB,WAAW,CA2Fb;AAED,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EACpC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,KAAY,EACZ,WAA6B,EAC7B,UAAiB,EACjB,KAAU,EACV,OAAW,EACX,SAAS,EACT,UAAU,EACX,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CAgHzC"}
|