@nodetool-ai/websocket 0.7.0-rc.22 → 0.8.1
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 +50 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/agent/run-node-tool.d.ts +39 -0
- package/dist/agent/run-node-tool.d.ts.map +1 -0
- package/dist/agent/run-node-tool.js +55 -0
- package/dist/agent/run-node-tool.js.map +1 -0
- package/dist/chat-prediction-forwarder.d.ts +13 -0
- package/dist/chat-prediction-forwarder.d.ts.map +1 -0
- package/dist/chat-prediction-forwarder.js +22 -0
- package/dist/chat-prediction-forwarder.js.map +1 -0
- package/dist/chat-tool-call-repair.d.ts +45 -0
- package/dist/chat-tool-call-repair.d.ts.map +1 -0
- package/dist/chat-tool-call-repair.js +100 -0
- package/dist/chat-tool-call-repair.js.map +1 -0
- package/dist/chat-turn-registry.d.ts +169 -0
- package/dist/chat-turn-registry.d.ts.map +1 -0
- package/dist/chat-turn-registry.js +326 -0
- package/dist/chat-turn-registry.js.map +1 -0
- package/dist/collection-api.d.ts +2 -2
- package/dist/collection-api.d.ts.map +1 -1
- package/dist/collection-api.js +44 -13
- package/dist/collection-api.js.map +1 -1
- package/dist/configured-providers.d.ts +52 -0
- package/dist/configured-providers.d.ts.map +1 -0
- package/dist/configured-providers.js +85 -0
- package/dist/configured-providers.js.map +1 -0
- package/dist/cors.d.ts +22 -0
- package/dist/cors.d.ts.map +1 -0
- package/dist/cors.js +91 -0
- package/dist/cors.js.map +1 -0
- package/dist/credit-gate.d.ts +36 -0
- package/dist/credit-gate.d.ts.map +1 -0
- package/dist/credit-gate.js +76 -0
- package/dist/credit-gate.js.map +1 -0
- package/dist/custom-providers.d.ts +40 -0
- package/dist/custom-providers.d.ts.map +1 -0
- package/dist/custom-providers.js +134 -0
- package/dist/custom-providers.js.map +1 -0
- package/dist/debug-sessions.d.ts +10 -0
- package/dist/debug-sessions.d.ts.map +1 -0
- package/dist/debug-sessions.js +9 -0
- package/dist/debug-sessions.js.map +1 -0
- package/dist/drain.d.ts +34 -0
- package/dist/drain.d.ts.map +1 -0
- package/dist/drain.js +68 -0
- package/dist/drain.js.map +1 -0
- package/dist/e2e-server.d.ts +30 -0
- package/dist/e2e-server.d.ts.map +1 -0
- package/dist/e2e-server.js +111 -0
- package/dist/e2e-server.js.map +1 -0
- package/dist/example-workflows.d.ts +20 -0
- package/dist/example-workflows.d.ts.map +1 -0
- package/dist/example-workflows.js +123 -0
- package/dist/example-workflows.js.map +1 -0
- package/dist/extension-cdp-bridge.d.ts +85 -0
- package/dist/extension-cdp-bridge.d.ts.map +1 -0
- package/dist/extension-cdp-bridge.js +163 -0
- package/dist/extension-cdp-bridge.js.map +1 -0
- package/dist/external-mcp.d.ts +58 -0
- package/dist/external-mcp.d.ts.map +1 -0
- package/dist/external-mcp.js +288 -0
- package/dist/external-mcp.js.map +1 -0
- package/dist/fake-runtime.d.ts +114 -0
- package/dist/fake-runtime.d.ts.map +1 -0
- package/dist/fake-runtime.js +270 -0
- package/dist/fake-runtime.js.map +1 -0
- package/dist/file-api.d.ts +4 -7
- package/dist/file-api.d.ts.map +1 -1
- package/dist/file-api.js +122 -39
- package/dist/file-api.js.map +1 -1
- package/dist/frontend-renderer-registry.d.ts +75 -0
- package/dist/frontend-renderer-registry.d.ts.map +1 -0
- package/dist/frontend-renderer-registry.js +111 -0
- package/dist/frontend-renderer-registry.js.map +1 -0
- package/dist/generation-recovery.d.ts +13 -0
- package/dist/generation-recovery.d.ts.map +1 -0
- package/dist/generation-recovery.js +197 -0
- package/dist/generation-recovery.js.map +1 -0
- package/dist/headless-job-runner.d.ts +71 -0
- package/dist/headless-job-runner.d.ts.map +1 -0
- package/dist/headless-job-runner.js +198 -0
- package/dist/headless-job-runner.js.map +1 -0
- package/dist/http-api.d.ts +157 -24
- package/dist/http-api.d.ts.map +1 -1
- package/dist/http-api.js +613 -646
- package/dist/http-api.js.map +1 -1
- package/dist/http-body-schemas.d.ts +109 -0
- package/dist/http-body-schemas.d.ts.map +1 -0
- package/dist/http-body-schemas.js +146 -0
- package/dist/http-body-schemas.js.map +1 -0
- package/dist/index.d.ts +11 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/job-control.d.ts +57 -0
- package/dist/job-control.d.ts.map +1 -0
- package/dist/job-control.js +134 -0
- package/dist/job-control.js.map +1 -0
- package/dist/job-queue.d.ts +47 -0
- package/dist/job-queue.d.ts.map +1 -0
- package/dist/job-queue.js +52 -0
- package/dist/job-queue.js.map +1 -0
- package/dist/job-run-registry.d.ts +176 -0
- package/dist/job-run-registry.d.ts.map +1 -0
- package/dist/job-run-registry.js +312 -0
- package/dist/job-run-registry.js.map +1 -0
- package/dist/lib/app-build-service.d.ts +16 -0
- package/dist/lib/app-build-service.d.ts.map +1 -0
- package/dist/lib/app-build-service.js +39 -0
- package/dist/lib/app-build-service.js.map +1 -0
- package/dist/lib/app-debug-service.d.ts +16 -0
- package/dist/lib/app-debug-service.d.ts.map +1 -0
- package/dist/lib/app-debug-service.js +48 -0
- package/dist/lib/app-debug-service.js.map +1 -0
- package/dist/lib/app-deployment-service.d.ts +82 -0
- package/dist/lib/app-deployment-service.d.ts.map +1 -0
- package/dist/lib/app-deployment-service.js +282 -0
- package/dist/lib/app-deployment-service.js.map +1 -0
- package/dist/lib/app-run-server.d.ts +7 -0
- package/dist/lib/app-run-server.d.ts.map +1 -0
- package/dist/lib/app-run-server.js +6 -0
- package/dist/lib/app-run-server.js.map +1 -0
- package/dist/lib/app-session-scope.d.ts +91 -0
- package/dist/lib/app-session-scope.d.ts.map +1 -0
- package/dist/lib/app-session-scope.js +91 -0
- package/dist/lib/app-session-scope.js.map +1 -0
- package/dist/lib/applications-service.d.ts +173 -0
- package/dist/lib/applications-service.d.ts.map +1 -0
- package/dist/lib/applications-service.js +491 -0
- package/dist/lib/applications-service.js.map +1 -0
- package/dist/lib/asset-duration.d.ts +7 -0
- package/dist/lib/asset-duration.d.ts.map +1 -0
- package/dist/lib/asset-duration.js +24 -0
- package/dist/lib/asset-duration.js.map +1 -0
- package/dist/lib/asset-export.d.ts +34 -0
- package/dist/lib/asset-export.d.ts.map +1 -0
- package/dist/lib/asset-export.js +113 -0
- package/dist/lib/asset-export.js.map +1 -0
- package/dist/lib/asset-model-interface.d.ts +41 -0
- package/dist/lib/asset-model-interface.d.ts.map +1 -0
- package/dist/lib/asset-model-interface.js +74 -0
- package/dist/lib/asset-model-interface.js.map +1 -0
- package/dist/lib/asset-paths.d.ts +52 -0
- package/dist/lib/asset-paths.d.ts.map +1 -1
- package/dist/lib/asset-paths.js +145 -1
- package/dist/lib/asset-paths.js.map +1 -1
- package/dist/lib/asset-response.d.ts +12 -0
- package/dist/lib/asset-response.d.ts.map +1 -0
- package/dist/lib/asset-response.js +88 -0
- package/dist/lib/asset-response.js.map +1 -0
- package/dist/lib/audio-peaks.d.ts +23 -0
- package/dist/lib/audio-peaks.d.ts.map +1 -0
- package/dist/lib/audio-peaks.js +331 -0
- package/dist/lib/audio-peaks.js.map +1 -0
- package/dist/lib/bridge.d.ts +9 -1
- package/dist/lib/bridge.d.ts.map +1 -1
- package/dist/lib/bridge.js +27 -4
- package/dist/lib/bridge.js.map +1 -1
- package/dist/lib/compression.d.ts +3 -0
- package/dist/lib/compression.d.ts.map +1 -0
- package/dist/lib/compression.js +3 -0
- package/dist/lib/compression.js.map +1 -0
- package/dist/lib/document-model-interfaces.d.ts +30 -0
- package/dist/lib/document-model-interfaces.d.ts.map +1 -0
- package/dist/lib/document-model-interfaces.js +295 -0
- package/dist/lib/document-model-interfaces.js.map +1 -0
- package/dist/lib/env-config.d.ts +9 -0
- package/dist/lib/env-config.d.ts.map +1 -0
- package/dist/lib/env-config.js +18 -0
- package/dist/lib/env-config.js.map +1 -0
- package/dist/lib/example-apps.d.ts +43 -0
- package/dist/lib/example-apps.d.ts.map +1 -0
- package/dist/lib/example-apps.js +145 -0
- package/dist/lib/example-apps.js.map +1 -0
- package/dist/lib/example-games.d.ts +5 -0
- package/dist/lib/example-games.d.ts.map +1 -0
- package/dist/lib/example-games.js +13 -0
- package/dist/lib/example-games.js.map +1 -0
- package/dist/lib/example-recipes.d.ts +33 -0
- package/dist/lib/example-recipes.d.ts.map +1 -0
- package/dist/lib/example-recipes.js +213 -0
- package/dist/lib/example-recipes.js.map +1 -0
- package/dist/lib/example-storyboards.d.ts +40 -0
- package/dist/lib/example-storyboards.d.ts.map +1 -0
- package/dist/lib/example-storyboards.js +131 -0
- package/dist/lib/example-storyboards.js.map +1 -0
- package/dist/lib/example-thumbnail.d.ts +21 -0
- package/dist/lib/example-thumbnail.d.ts.map +1 -0
- package/dist/lib/example-thumbnail.js +50 -0
- package/dist/lib/example-thumbnail.js.map +1 -0
- package/dist/lib/example-timelines.d.ts +9 -0
- package/dist/lib/example-timelines.d.ts.map +1 -0
- package/dist/lib/example-timelines.js +25 -0
- package/dist/lib/example-timelines.js.map +1 -0
- package/dist/lib/extension-dist.d.ts +24 -0
- package/dist/lib/extension-dist.d.ts.map +1 -0
- package/dist/lib/extension-dist.js +67 -0
- package/dist/lib/extension-dist.js.map +1 -0
- package/dist/lib/external-asset-lookup.d.ts +30 -0
- package/dist/lib/external-asset-lookup.d.ts.map +1 -0
- package/dist/lib/external-asset-lookup.js +99 -0
- package/dist/lib/external-asset-lookup.js.map +1 -0
- package/dist/lib/external-assets.d.ts +13 -0
- package/dist/lib/external-assets.d.ts.map +1 -0
- package/dist/lib/external-assets.js +46 -0
- package/dist/lib/external-assets.js.map +1 -0
- package/dist/lib/fly-replay.d.ts +34 -0
- package/dist/lib/fly-replay.d.ts.map +1 -0
- package/dist/lib/fly-replay.js +111 -0
- package/dist/lib/fly-replay.js.map +1 -0
- package/dist/lib/http-rate-limit.d.ts +32 -0
- package/dist/lib/http-rate-limit.d.ts.map +1 -0
- package/dist/lib/http-rate-limit.js +47 -0
- package/dist/lib/http-rate-limit.js.map +1 -0
- package/dist/lib/instance-id.d.ts +25 -0
- package/dist/lib/instance-id.d.ts.map +1 -0
- package/dist/lib/instance-id.js +44 -0
- package/dist/lib/instance-id.js.map +1 -0
- package/dist/lib/link-codes.d.ts +82 -0
- package/dist/lib/link-codes.d.ts.map +1 -0
- package/dist/lib/link-codes.js +100 -0
- package/dist/lib/link-codes.js.map +1 -0
- package/dist/lib/local-asset-upload.d.ts +5 -0
- package/dist/lib/local-asset-upload.d.ts.map +1 -0
- package/dist/lib/local-asset-upload.js +69 -0
- package/dist/lib/local-asset-upload.js.map +1 -0
- package/dist/lib/local-file-access.d.ts +31 -0
- package/dist/lib/local-file-access.d.ts.map +1 -0
- package/dist/lib/local-file-access.js +169 -0
- package/dist/lib/local-file-access.js.map +1 -0
- package/dist/lib/localhost-trust.d.ts +59 -0
- package/dist/lib/localhost-trust.d.ts.map +1 -0
- package/dist/lib/localhost-trust.js +139 -0
- package/dist/lib/localhost-trust.js.map +1 -0
- package/dist/lib/mcp-mount.d.ts +25 -0
- package/dist/lib/mcp-mount.d.ts.map +1 -0
- package/dist/lib/mcp-mount.js +32 -0
- package/dist/lib/mcp-mount.js.map +1 -0
- package/dist/lib/media-size.d.ts +21 -0
- package/dist/lib/media-size.d.ts.map +1 -0
- package/dist/lib/media-size.js +48 -0
- package/dist/lib/media-size.js.map +1 -0
- package/dist/lib/media.d.ts +38 -0
- package/dist/lib/media.d.ts.map +1 -0
- package/dist/lib/media.js +146 -0
- package/dist/lib/media.js.map +1 -0
- package/dist/lib/package-asset-export.d.ts +83 -0
- package/dist/lib/package-asset-export.d.ts.map +1 -0
- package/dist/lib/package-asset-export.js +212 -0
- package/dist/lib/package-asset-export.js.map +1 -0
- package/dist/lib/package-assets.d.ts +41 -0
- package/dist/lib/package-assets.d.ts.map +1 -0
- package/dist/lib/package-assets.js +155 -0
- package/dist/lib/package-assets.js.map +1 -0
- package/dist/lib/project-delete.d.ts +11 -0
- package/dist/lib/project-delete.d.ts.map +1 -0
- package/dist/lib/project-delete.js +67 -0
- package/dist/lib/project-delete.js.map +1 -0
- package/dist/lib/project-document-copy.d.ts +31 -0
- package/dist/lib/project-document-copy.d.ts.map +1 -0
- package/dist/lib/project-document-copy.js +473 -0
- package/dist/lib/project-document-copy.js.map +1 -0
- package/dist/lib/public-app-assets.d.ts +8 -0
- package/dist/lib/public-app-assets.d.ts.map +1 -0
- package/dist/lib/public-app-assets.js +77 -0
- package/dist/lib/public-app-assets.js.map +1 -0
- package/dist/lib/public-routes.d.ts +95 -0
- package/dist/lib/public-routes.d.ts.map +1 -0
- package/dist/lib/public-routes.js +154 -0
- package/dist/lib/public-routes.js.map +1 -0
- package/dist/lib/runtime-detection.d.ts +17 -0
- package/dist/lib/runtime-detection.d.ts.map +1 -0
- package/dist/lib/runtime-detection.js +90 -0
- package/dist/lib/runtime-detection.js.map +1 -0
- package/dist/lib/storage-access.d.ts +21 -0
- package/dist/lib/storage-access.d.ts.map +1 -0
- package/dist/lib/storage-access.js +74 -0
- package/dist/lib/storage-access.js.map +1 -0
- package/dist/lib/storage.d.ts +9 -0
- package/dist/lib/storage.d.ts.map +1 -0
- package/dist/lib/storage.js +28 -0
- package/dist/lib/storage.js.map +1 -0
- package/dist/lib/storyboard-export.d.ts +64 -0
- package/dist/lib/storyboard-export.d.ts.map +1 -0
- package/dist/lib/storyboard-export.js +183 -0
- package/dist/lib/storyboard-export.js.map +1 -0
- package/dist/lib/style-presets.d.ts +34 -0
- package/dist/lib/style-presets.d.ts.map +1 -0
- package/dist/lib/style-presets.js +62 -0
- package/dist/lib/style-presets.js.map +1 -0
- package/dist/lib/temp-url-resolver.d.ts +35 -0
- package/dist/lib/temp-url-resolver.d.ts.map +1 -0
- package/dist/lib/temp-url-resolver.js +88 -0
- package/dist/lib/temp-url-resolver.js.map +1 -0
- package/dist/lib/thumbnail.d.ts +74 -0
- package/dist/lib/thumbnail.d.ts.map +1 -0
- package/dist/lib/thumbnail.js +302 -0
- package/dist/lib/thumbnail.js.map +1 -0
- package/dist/lib/timeline-bundle.d.ts +1689 -0
- package/dist/lib/timeline-bundle.d.ts.map +1 -0
- package/dist/lib/timeline-bundle.js +330 -0
- package/dist/lib/timeline-bundle.js.map +1 -0
- package/dist/lib/video-proxy.d.ts +114 -0
- package/dist/lib/video-proxy.d.ts.map +1 -0
- package/dist/lib/video-proxy.js +545 -0
- package/dist/lib/video-proxy.js.map +1 -0
- package/dist/lib/wire-values.d.ts +31 -0
- package/dist/lib/wire-values.d.ts.map +1 -0
- package/dist/lib/wire-values.js +49 -0
- package/dist/lib/wire-values.js.map +1 -0
- package/dist/lib/workflow-bundle.d.ts +102 -0
- package/dist/lib/workflow-bundle.d.ts.map +1 -0
- package/dist/lib/workflow-bundle.js +306 -0
- package/dist/lib/workflow-bundle.js.map +1 -0
- package/dist/lib/workflow-service.d.ts +82 -0
- package/dist/lib/workflow-service.d.ts.map +1 -0
- package/dist/lib/workflow-service.js +194 -0
- package/dist/lib/workflow-service.js.map +1 -0
- package/dist/lib/workflow-workspace.d.ts +20 -0
- package/dist/lib/workflow-workspace.d.ts.map +1 -0
- package/dist/lib/workflow-workspace.js +65 -0
- package/dist/lib/workflow-workspace.js.map +1 -0
- package/dist/lib/ws-connection-health.d.ts +10 -0
- package/dist/lib/ws-connection-health.d.ts.map +1 -0
- package/dist/lib/ws-connection-health.js +38 -0
- package/dist/lib/ws-connection-health.js.map +1 -0
- package/dist/lib/ws-rate-limit.d.ts +22 -0
- package/dist/lib/ws-rate-limit.d.ts.map +1 -0
- package/dist/lib/ws-rate-limit.js +45 -0
- package/dist/lib/ws-rate-limit.js.map +1 -0
- package/dist/lib/ws-upgrade.d.ts +40 -0
- package/dist/lib/ws-upgrade.d.ts.map +1 -0
- package/dist/lib/ws-upgrade.js +66 -0
- package/dist/lib/ws-upgrade.js.map +1 -0
- package/dist/lib/zip-stream.d.ts +46 -0
- package/dist/lib/zip-stream.d.ts.map +1 -0
- package/dist/lib/zip-stream.js +140 -0
- package/dist/lib/zip-stream.js.map +1 -0
- package/dist/mcp-agent-tools.d.ts +56 -0
- package/dist/mcp-agent-tools.d.ts.map +1 -0
- package/dist/mcp-agent-tools.js +1216 -0
- package/dist/mcp-agent-tools.js.map +1 -0
- package/dist/mcp-server.d.ts +56 -7
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +255 -762
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tool-deps.d.ts +20 -0
- package/dist/mcp-tool-deps.d.ts.map +1 -0
- package/dist/mcp-tool-deps.js +61 -0
- package/dist/mcp-tool-deps.js.map +1 -0
- package/dist/messagepack.d.ts +7 -0
- package/dist/messagepack.d.ts.map +1 -0
- package/dist/messagepack.js +19 -0
- package/dist/messagepack.js.map +1 -0
- package/dist/model-download-runtime.d.ts +9 -0
- package/dist/model-download-runtime.d.ts.map +1 -0
- package/dist/model-download-runtime.js +77 -0
- package/dist/model-download-runtime.js.map +1 -0
- package/dist/model-execution-availability.d.ts +14 -0
- package/dist/model-execution-availability.d.ts.map +1 -0
- package/dist/model-execution-availability.js +161 -0
- package/dist/model-execution-availability.js.map +1 -0
- package/dist/models-api.d.ts +51 -5
- package/dist/models-api.d.ts.map +1 -1
- package/dist/models-api.js +160 -690
- package/dist/models-api.js.map +1 -1
- package/dist/node-registry-setup.d.ts +84 -0
- package/dist/node-registry-setup.d.ts.map +1 -0
- package/dist/node-registry-setup.js +256 -0
- package/dist/node-registry-setup.js.map +1 -0
- package/dist/oauth/cimd.d.ts +28 -0
- package/dist/oauth/cimd.d.ts.map +1 -0
- package/dist/oauth/cimd.js +177 -0
- package/dist/oauth/cimd.js.map +1 -0
- package/dist/oauth/gate.d.ts +38 -0
- package/dist/oauth/gate.d.ts.map +1 -0
- package/dist/oauth/gate.js +77 -0
- package/dist/oauth/gate.js.map +1 -0
- package/dist/oauth/metadata.d.ts +35 -0
- package/dist/oauth/metadata.d.ts.map +1 -0
- package/dist/oauth/metadata.js +56 -0
- package/dist/oauth/metadata.js.map +1 -0
- package/dist/oauth/pending-store.d.ts +79 -0
- package/dist/oauth/pending-store.d.ts.map +1 -0
- package/dist/oauth/pending-store.js +133 -0
- package/dist/oauth/pending-store.js.map +1 -0
- package/dist/oauth/pkce.d.ts +16 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +29 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/validate.d.ts +25 -0
- package/dist/oauth/validate.d.ts.map +1 -0
- package/dist/oauth/validate.js +62 -0
- package/dist/oauth/validate.js.map +1 -0
- package/dist/oauth/www-authenticate.d.ts +9 -0
- package/dist/oauth/www-authenticate.d.ts.map +1 -0
- package/dist/oauth/www-authenticate.js +33 -0
- package/dist/oauth/www-authenticate.js.map +1 -0
- package/dist/oauth-api.d.ts +19 -0
- package/dist/oauth-api.d.ts.map +1 -1
- package/dist/oauth-api.js +531 -12
- package/dist/oauth-api.js.map +1 -1
- package/dist/openai-api.d.ts.map +1 -1
- package/dist/openai-api.js +4 -9
- package/dist/openai-api.js.map +1 -1
- package/dist/pack-snapshot.d.ts +24 -0
- package/dist/pack-snapshot.d.ts.map +1 -0
- package/dist/pack-snapshot.js +35 -0
- package/dist/pack-snapshot.js.map +1 -0
- package/dist/plugins/websocket.d.ts +21 -4
- package/dist/plugins/websocket.d.ts.map +1 -1
- package/dist/plugins/websocket.js +136 -290
- package/dist/plugins/websocket.js.map +1 -1
- package/dist/resolve-media-urls.d.ts +17 -3
- package/dist/resolve-media-urls.d.ts.map +1 -1
- package/dist/resolve-media-urls.js +117 -31
- package/dist/resolve-media-urls.js.map +1 -1
- package/dist/resource-events.d.ts +28 -0
- package/dist/resource-events.d.ts.map +1 -0
- package/dist/resource-events.js +20 -0
- package/dist/resource-events.js.map +1 -0
- package/dist/routes/account.d.ts +100 -0
- package/dist/routes/account.d.ts.map +1 -0
- package/dist/routes/account.js +197 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/applications.d.ts +36 -0
- package/dist/routes/applications.d.ts.map +1 -0
- package/dist/routes/applications.js +183 -0
- package/dist/routes/applications.js.map +1 -0
- package/dist/routes/assets.d.ts +3 -3
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +78 -44
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/atlascloud-webhook.d.ts +93 -0
- package/dist/routes/atlascloud-webhook.d.ts.map +1 -0
- package/dist/routes/atlascloud-webhook.js +369 -0
- package/dist/routes/atlascloud-webhook.js.map +1 -0
- package/dist/routes/collections.d.ts.map +1 -1
- package/dist/routes/config.d.ts +26 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +64 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/documents.d.ts +27 -0
- package/dist/routes/documents.d.ts.map +1 -0
- package/dist/routes/documents.js +155 -0
- package/dist/routes/documents.js.map +1 -0
- package/dist/routes/fal-credits.d.ts +4 -0
- package/dist/routes/fal-credits.d.ts.map +1 -0
- package/dist/routes/fal-credits.js +101 -0
- package/dist/routes/fal-credits.js.map +1 -0
- package/dist/routes/fal-pricing-estimate.d.ts +4 -0
- package/dist/routes/fal-pricing-estimate.d.ts.map +1 -0
- package/dist/routes/fal-pricing-estimate.js +114 -0
- package/dist/routes/fal-pricing-estimate.js.map +1 -0
- package/dist/routes/fal-pricing.d.ts +4 -0
- package/dist/routes/fal-pricing.d.ts.map +1 -0
- package/dist/routes/fal-pricing.js +93 -0
- package/dist/routes/fal-pricing.js.map +1 -0
- package/dist/routes/fal-webhook.d.ts +102 -0
- package/dist/routes/fal-webhook.d.ts.map +1 -0
- package/dist/routes/fal-webhook.js +379 -0
- package/dist/routes/fal-webhook.js.map +1 -0
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +4 -3
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/health.d.ts +1 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +41 -7
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/integrations.d.ts +39 -0
- package/dist/routes/integrations.d.ts.map +1 -0
- package/dist/routes/integrations.js +211 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/js-scripts.d.ts +26 -0
- package/dist/routes/js-scripts.d.ts.map +1 -0
- package/dist/routes/js-scripts.js +116 -0
- package/dist/routes/js-scripts.js.map +1 -0
- package/dist/routes/kie-credits.d.ts +4 -0
- package/dist/routes/kie-credits.d.ts.map +1 -0
- package/dist/routes/kie-credits.js +93 -0
- package/dist/routes/kie-credits.js.map +1 -0
- package/dist/routes/kie-pricing.d.ts +4 -0
- package/dist/routes/kie-pricing.d.ts.map +1 -0
- package/dist/routes/kie-pricing.js +45 -0
- package/dist/routes/kie-pricing.js.map +1 -0
- package/dist/routes/kie-webhook.d.ts +4 -0
- package/dist/routes/kie-webhook.d.ts.map +1 -0
- package/dist/routes/kie-webhook.js +70 -0
- package/dist/routes/kie-webhook.js.map +1 -0
- package/dist/routes/nodes.d.ts.map +1 -1
- package/dist/routes/nodes.js +6 -59
- package/dist/routes/nodes.js.map +1 -1
- package/dist/routes/oauth-as.d.ts +30 -0
- package/dist/routes/oauth-as.d.ts.map +1 -0
- package/dist/routes/oauth-as.js +412 -0
- package/dist/routes/oauth-as.js.map +1 -0
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/openai.d.ts.map +1 -1
- package/dist/routes/public-apps.d.ts +27 -0
- package/dist/routes/public-apps.d.ts.map +1 -0
- package/dist/routes/public-apps.js +99 -0
- package/dist/routes/public-apps.js.map +1 -0
- package/dist/routes/sandbox-modules.d.ts +17 -0
- package/dist/routes/sandbox-modules.d.ts.map +1 -0
- package/dist/routes/sandbox-modules.js +85 -0
- package/dist/routes/sandbox-modules.js.map +1 -0
- package/dist/routes/sdk-v1.d.ts +24 -0
- package/dist/routes/sdk-v1.d.ts.map +1 -0
- package/dist/routes/sdk-v1.js +320 -0
- package/dist/routes/sdk-v1.js.map +1 -0
- package/dist/routes/storage.d.ts.map +1 -1
- package/dist/routes/storyboards.d.ts +16 -0
- package/dist/routes/storyboards.d.ts.map +1 -0
- package/dist/routes/storyboards.js +97 -0
- package/dist/routes/storyboards.js.map +1 -0
- package/dist/routes/timeline-animations.d.ts +23 -0
- package/dist/routes/timeline-animations.d.ts.map +1 -0
- package/dist/routes/timeline-animations.js +99 -0
- package/dist/routes/timeline-animations.js.map +1 -0
- package/dist/routes/timeline-audio-bake.d.ts +51 -0
- package/dist/routes/timeline-audio-bake.d.ts.map +1 -0
- package/dist/routes/timeline-audio-bake.js +110 -0
- package/dist/routes/timeline-audio-bake.js.map +1 -0
- package/dist/routes/timeline-fonts.d.ts +29 -0
- package/dist/routes/timeline-fonts.d.ts.map +1 -0
- package/dist/routes/timeline-fonts.js +64 -0
- package/dist/routes/timeline-fonts.js.map +1 -0
- package/dist/routes/timeline-isolate-subject.d.ts +55 -0
- package/dist/routes/timeline-isolate-subject.d.ts.map +1 -0
- package/dist/routes/timeline-isolate-subject.js +128 -0
- package/dist/routes/timeline-isolate-subject.js.map +1 -0
- package/dist/routes/timeline-track-object.d.ts +39 -0
- package/dist/routes/timeline-track-object.d.ts.map +1 -0
- package/dist/routes/timeline-track-object.js +97 -0
- package/dist/routes/timeline-track-object.js.map +1 -0
- package/dist/routes/timelines.d.ts +18 -0
- package/dist/routes/timelines.d.ts.map +1 -0
- package/dist/routes/timelines.js +191 -0
- package/dist/routes/timelines.js.map +1 -0
- package/dist/routes/workflows.d.ts +6 -9
- package/dist/routes/workflows.d.ts.map +1 -1
- package/dist/routes/workflows.js +100 -11
- package/dist/routes/workflows.js.map +1 -1
- package/dist/routes/workspace.d.ts.map +1 -1
- package/dist/run-supervisor.d.ts +30 -0
- package/dist/run-supervisor.d.ts.map +1 -0
- package/dist/run-supervisor.js +86 -0
- package/dist/run-supervisor.js.map +1 -0
- package/dist/sandbox-catalog.d.ts +28 -0
- package/dist/sandbox-catalog.d.ts.map +1 -0
- package/dist/sandbox-catalog.js +74 -0
- package/dist/sandbox-catalog.js.map +1 -0
- package/dist/screenshot-projects.d.ts +27 -0
- package/dist/screenshot-projects.d.ts.map +1 -0
- package/dist/screenshot-projects.js +880 -0
- package/dist/screenshot-projects.js.map +1 -0
- package/dist/screenshot-server.js +947 -43
- package/dist/screenshot-server.js.map +1 -1
- package/dist/sdk/sdk-cached-model-inventory.d.ts +21 -0
- package/dist/sdk/sdk-cached-model-inventory.d.ts.map +1 -0
- package/dist/sdk/sdk-cached-model-inventory.js +51 -0
- package/dist/sdk/sdk-cached-model-inventory.js.map +1 -0
- package/dist/sdk/sdk-capabilities-service.d.ts +32 -0
- package/dist/sdk/sdk-capabilities-service.d.ts.map +1 -0
- package/dist/sdk/sdk-capabilities-service.js +47 -0
- package/dist/sdk/sdk-capabilities-service.js.map +1 -0
- package/dist/sdk/sdk-execution-readiness-probe.d.ts +19 -0
- package/dist/sdk/sdk-execution-readiness-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-execution-readiness-probe.js +90 -0
- package/dist/sdk/sdk-execution-readiness-probe.js.map +1 -0
- package/dist/sdk/sdk-execution-target-readiness.d.ts +15 -0
- package/dist/sdk/sdk-execution-target-readiness.d.ts.map +1 -0
- package/dist/sdk/sdk-execution-target-readiness.js +50 -0
- package/dist/sdk/sdk-execution-target-readiness.js.map +1 -0
- package/dist/sdk/sdk-feature-flags.d.ts +18 -0
- package/dist/sdk/sdk-feature-flags.d.ts.map +1 -0
- package/dist/sdk/sdk-feature-flags.js +30 -0
- package/dist/sdk/sdk-feature-flags.js.map +1 -0
- package/dist/sdk/sdk-huggingface-download-state.d.ts +15 -0
- package/dist/sdk/sdk-huggingface-download-state.d.ts.map +1 -0
- package/dist/sdk/sdk-huggingface-download-state.js +25 -0
- package/dist/sdk/sdk-huggingface-download-state.js.map +1 -0
- package/dist/sdk/sdk-live-runner-registry.d.ts +21 -0
- package/dist/sdk/sdk-live-runner-registry.d.ts.map +1 -0
- package/dist/sdk/sdk-live-runner-registry.js +26 -0
- package/dist/sdk/sdk-live-runner-registry.js.map +1 -0
- package/dist/sdk/sdk-model-catalog-service.d.ts +20 -0
- package/dist/sdk/sdk-model-catalog-service.d.ts.map +1 -0
- package/dist/sdk/sdk-model-catalog-service.js +219 -0
- package/dist/sdk/sdk-model-catalog-service.js.map +1 -0
- package/dist/sdk/sdk-model-download-service.d.ts +39 -0
- package/dist/sdk/sdk-model-download-service.d.ts.map +1 -0
- package/dist/sdk/sdk-model-download-service.js +274 -0
- package/dist/sdk/sdk-model-download-service.js.map +1 -0
- package/dist/sdk/sdk-model-requirement-probe.d.ts +30 -0
- package/dist/sdk/sdk-model-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-model-requirement-probe.js +120 -0
- package/dist/sdk/sdk-model-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-node-package-requirement-probe.d.ts +20 -0
- package/dist/sdk/sdk-node-package-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-node-package-requirement-probe.js +44 -0
- package/dist/sdk/sdk-node-package-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-node-type-inventory-service.d.ts +11 -0
- package/dist/sdk/sdk-node-type-inventory-service.d.ts.map +1 -0
- package/dist/sdk/sdk-node-type-inventory-service.js +36 -0
- package/dist/sdk/sdk-node-type-inventory-service.js.map +1 -0
- package/dist/sdk/sdk-preflight-orchestrator.d.ts +54 -0
- package/dist/sdk/sdk-preflight-orchestrator.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-orchestrator.js +63 -0
- package/dist/sdk/sdk-preflight-orchestrator.js.map +1 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.d.ts +35 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.js +67 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.js.map +1 -0
- package/dist/sdk/sdk-preflight-service.d.ts +61 -0
- package/dist/sdk/sdk-preflight-service.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-service.js +104 -0
- package/dist/sdk/sdk-preflight-service.js.map +1 -0
- package/dist/sdk/sdk-preflight-workflow-source.d.ts +18 -0
- package/dist/sdk/sdk-preflight-workflow-source.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-workflow-source.js +42 -0
- package/dist/sdk/sdk-preflight-workflow-source.js.map +1 -0
- package/dist/sdk/sdk-route-policy.d.ts +3 -0
- package/dist/sdk/sdk-route-policy.d.ts.map +1 -0
- package/dist/sdk/sdk-route-policy.js +18 -0
- package/dist/sdk/sdk-route-policy.js.map +1 -0
- package/dist/sdk/sdk-runtime-capabilities-service.d.ts +60 -0
- package/dist/sdk/sdk-runtime-capabilities-service.d.ts.map +1 -0
- package/dist/sdk/sdk-runtime-capabilities-service.js +30 -0
- package/dist/sdk/sdk-runtime-capabilities-service.js.map +1 -0
- package/dist/sdk/sdk-runtime-requirement-probe.d.ts +13 -0
- package/dist/sdk/sdk-runtime-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-runtime-requirement-probe.js +55 -0
- package/dist/sdk/sdk-runtime-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-static-preflight-service.d.ts +66 -0
- package/dist/sdk/sdk-static-preflight-service.d.ts.map +1 -0
- package/dist/sdk/sdk-static-preflight-service.js +492 -0
- package/dist/sdk/sdk-static-preflight-service.js.map +1 -0
- package/dist/sdk/sdk-temporary-asset-service.d.ts +18 -0
- package/dist/sdk/sdk-temporary-asset-service.d.ts.map +1 -0
- package/dist/sdk/sdk-temporary-asset-service.js +33 -0
- package/dist/sdk/sdk-temporary-asset-service.js.map +1 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts +9 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts.map +1 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.js +65 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.js.map +1 -0
- package/dist/sdk/sdk-v1-handler-map.d.ts +44 -0
- package/dist/sdk/sdk-v1-handler-map.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-handler-map.js +37 -0
- package/dist/sdk/sdk-v1-handler-map.js.map +1 -0
- package/dist/sdk/sdk-v1-service-error.d.ts +21 -0
- package/dist/sdk/sdk-v1-service-error.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-service-error.js +62 -0
- package/dist/sdk/sdk-v1-service-error.js.map +1 -0
- package/dist/sdk/sdk-v1-service.d.ts +74 -0
- package/dist/sdk/sdk-v1-service.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-service.js +219 -0
- package/dist/sdk/sdk-v1-service.js.map +1 -0
- package/dist/sdk/sdk-worker-readiness-adapter.d.ts +22 -0
- package/dist/sdk/sdk-worker-readiness-adapter.d.ts.map +1 -0
- package/dist/sdk/sdk-worker-readiness-adapter.js +29 -0
- package/dist/sdk/sdk-worker-readiness-adapter.js.map +1 -0
- package/dist/server.js +1019 -201
- package/dist/server.js.map +1 -1
- package/dist/session/asset-autosave.d.ts +80 -0
- package/dist/session/asset-autosave.d.ts.map +1 -0
- package/dist/session/asset-autosave.js +456 -0
- package/dist/session/asset-autosave.js.map +1 -0
- package/dist/session/chat-compaction.d.ts +107 -0
- package/dist/session/chat-compaction.d.ts.map +1 -0
- package/dist/session/chat-compaction.js +191 -0
- package/dist/session/chat-compaction.js.map +1 -0
- package/dist/session/chat-history.d.ts +75 -0
- package/dist/session/chat-history.d.ts.map +1 -0
- package/dist/session/chat-history.js +194 -0
- package/dist/session/chat-history.js.map +1 -0
- package/dist/session/chat-prompt.d.ts +45 -0
- package/dist/session/chat-prompt.d.ts.map +1 -0
- package/dist/session/chat-prompt.js +480 -0
- package/dist/session/chat-prompt.js.map +1 -0
- package/dist/session/chat-turn.d.ts +336 -0
- package/dist/session/chat-turn.d.ts.map +1 -0
- package/dist/session/chat-turn.js +3516 -0
- package/dist/session/chat-turn.js.map +1 -0
- package/dist/session/client-session.d.ts +59 -0
- package/dist/session/client-session.d.ts.map +1 -0
- package/dist/session/client-session.js +2 -0
- package/dist/session/client-session.js.map +1 -0
- package/dist/session/commands.d.ts +133 -0
- package/dist/session/commands.d.ts.map +1 -0
- package/dist/session/commands.js +778 -0
- package/dist/session/commands.js.map +1 -0
- package/dist/session/inference.d.ts +213 -0
- package/dist/session/inference.d.ts.map +1 -0
- package/dist/session/inference.js +1072 -0
- package/dist/session/inference.js.map +1 -0
- package/dist/session/job-execution.d.ts +477 -0
- package/dist/session/job-execution.d.ts.map +1 -0
- package/dist/session/job-execution.js +2089 -0
- package/dist/session/job-execution.js.map +1 -0
- package/dist/session/media-generation.d.ts +94 -0
- package/dist/session/media-generation.d.ts.map +1 -0
- package/dist/session/media-generation.js +234 -0
- package/dist/session/media-generation.js.map +1 -0
- package/dist/session/model-interfaces.d.ts +27 -0
- package/dist/session/model-interfaces.d.ts.map +1 -0
- package/dist/session/model-interfaces.js +132 -0
- package/dist/session/model-interfaces.js.map +1 -0
- package/dist/session/sanitize.d.ts +7 -0
- package/dist/session/sanitize.d.ts.map +1 -0
- package/dist/session/sanitize.js +64 -0
- package/dist/session/sanitize.js.map +1 -0
- package/dist/settings-registry.d.ts +6 -15
- package/dist/settings-registry.d.ts.map +1 -1
- package/dist/settings-registry.js +6 -103
- package/dist/settings-registry.js.map +1 -1
- package/dist/storage-api.d.ts +20 -0
- package/dist/storage-api.d.ts.map +1 -1
- package/dist/storage-api.js +260 -77
- package/dist/storage-api.js.map +1 -1
- package/dist/storage-retention.d.ts +9 -0
- package/dist/storage-retention.d.ts.map +1 -0
- package/dist/storage-retention.js +74 -0
- package/dist/storage-retention.js.map +1 -0
- package/dist/system-stats.d.ts +52 -0
- package/dist/system-stats.d.ts.map +1 -0
- package/dist/system-stats.js +134 -0
- package/dist/system-stats.js.map +1 -0
- package/dist/test-ui-server.d.ts +46 -0
- package/dist/test-ui-server.d.ts.map +1 -1
- package/dist/test-ui-server.js +188 -41
- package/dist/test-ui-server.js.map +1 -1
- package/dist/triggers/boot.d.ts +73 -0
- package/dist/triggers/boot.d.ts.map +1 -0
- package/dist/triggers/boot.js +149 -0
- package/dist/triggers/boot.js.map +1 -0
- package/dist/triggers/dispatcher.d.ts +234 -0
- package/dist/triggers/dispatcher.d.ts.map +1 -0
- package/dist/triggers/dispatcher.js +525 -0
- package/dist/triggers/dispatcher.js.map +1 -0
- package/dist/triggers/file-watch.d.ts +90 -0
- package/dist/triggers/file-watch.d.ts.map +1 -0
- package/dist/triggers/file-watch.js +405 -0
- package/dist/triggers/file-watch.js.map +1 -0
- package/dist/triggers/registration-sync.d.ts +34 -0
- package/dist/triggers/registration-sync.d.ts.map +1 -0
- package/dist/triggers/registration-sync.js +162 -0
- package/dist/triggers/registration-sync.js.map +1 -0
- package/dist/triggers/schedule-timing.d.ts +52 -0
- package/dist/triggers/schedule-timing.d.ts.map +1 -0
- package/dist/triggers/schedule-timing.js +90 -0
- package/dist/triggers/schedule-timing.js.map +1 -0
- package/dist/triggers/scheduler.d.ts +55 -0
- package/dist/triggers/scheduler.d.ts.map +1 -0
- package/dist/triggers/scheduler.js +122 -0
- package/dist/triggers/scheduler.js.map +1 -0
- package/dist/triggers/settle.d.ts +66 -0
- package/dist/triggers/settle.d.ts.map +1 -0
- package/dist/triggers/settle.js +99 -0
- package/dist/triggers/settle.js.map +1 -0
- package/dist/triggers/stores.d.ts +38 -0
- package/dist/triggers/stores.d.ts.map +1 -0
- package/dist/triggers/stores.js +168 -0
- package/dist/triggers/stores.js.map +1 -0
- package/dist/triggers/webhook-route.d.ts +49 -0
- package/dist/triggers/webhook-route.d.ts.map +1 -0
- package/dist/triggers/webhook-route.js +148 -0
- package/dist/triggers/webhook-route.js.map +1 -0
- package/dist/trpc/context.d.ts +52 -5
- package/dist/trpc/context.d.ts.map +1 -1
- package/dist/trpc/context.js +4 -1
- package/dist/trpc/context.js.map +1 -1
- package/dist/trpc/error-formatter.d.ts.map +1 -1
- package/dist/trpc/error-formatter.js +23 -2
- package/dist/trpc/error-formatter.js.map +1 -1
- package/dist/trpc/error-logging.d.ts +14 -0
- package/dist/trpc/error-logging.d.ts.map +1 -0
- package/dist/trpc/error-logging.js +27 -0
- package/dist/trpc/error-logging.js.map +1 -0
- package/dist/trpc/index.d.ts +2 -2
- package/dist/trpc/index.d.ts.map +1 -1
- package/dist/trpc/index.js +0 -2
- package/dist/trpc/index.js.map +1 -1
- package/dist/trpc/middleware.d.ts +6 -3
- package/dist/trpc/middleware.d.ts.map +1 -1
- package/dist/trpc/router.d.ts +29791 -1303
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +46 -3
- package/dist/trpc/router.js.map +1 -1
- package/dist/trpc/routers/agent-access.d.ts +149 -0
- package/dist/trpc/routers/agent-access.d.ts.map +1 -0
- package/dist/trpc/routers/agent-access.js +224 -0
- package/dist/trpc/routers/agent-access.js.map +1 -0
- package/dist/trpc/routers/applications.d.ts +1117 -0
- package/dist/trpc/routers/applications.d.ts.map +1 -0
- package/dist/trpc/routers/applications.js +218 -0
- package/dist/trpc/routers/applications.js.map +1 -0
- package/dist/trpc/routers/assets.d.ts +184 -42
- package/dist/trpc/routers/assets.d.ts.map +1 -1
- package/dist/trpc/routers/assets.js +499 -105
- package/dist/trpc/routers/assets.js.map +1 -1
- package/dist/trpc/routers/code-gen.d.ts +99 -0
- package/dist/trpc/routers/code-gen.d.ts.map +1 -0
- package/dist/trpc/routers/code-gen.js +164 -0
- package/dist/trpc/routers/code-gen.js.map +1 -0
- package/dist/trpc/routers/collections.d.ts +1 -26
- package/dist/trpc/routers/collections.d.ts.map +1 -1
- package/dist/trpc/routers/collections.js +145 -78
- package/dist/trpc/routers/collections.js.map +1 -1
- package/dist/trpc/routers/costs.d.ts +40 -96
- package/dist/trpc/routers/costs.d.ts.map +1 -1
- package/dist/trpc/routers/costs.js +14 -89
- package/dist/trpc/routers/costs.js.map +1 -1
- package/dist/trpc/routers/credits.d.ts +110 -0
- package/dist/trpc/routers/credits.d.ts.map +1 -0
- package/dist/trpc/routers/credits.js +69 -0
- package/dist/trpc/routers/credits.js.map +1 -0
- package/dist/trpc/routers/custom-providers.d.ts +88 -0
- package/dist/trpc/routers/custom-providers.d.ts.map +1 -0
- package/dist/trpc/routers/custom-providers.js +140 -0
- package/dist/trpc/routers/custom-providers.js.map +1 -0
- package/dist/trpc/routers/documents.d.ts +61 -0
- package/dist/trpc/routers/documents.d.ts.map +1 -0
- package/dist/trpc/routers/documents.js +23 -0
- package/dist/trpc/routers/documents.js.map +1 -0
- package/dist/trpc/routers/extension.d.ts +24 -0
- package/dist/trpc/routers/extension.d.ts.map +1 -0
- package/dist/trpc/routers/extension.js +28 -0
- package/dist/trpc/routers/extension.js.map +1 -0
- package/dist/trpc/routers/external-mcp.d.ts +108 -0
- package/dist/trpc/routers/external-mcp.d.ts.map +1 -0
- package/dist/trpc/routers/external-mcp.js +70 -0
- package/dist/trpc/routers/external-mcp.js.map +1 -0
- package/dist/trpc/routers/files.d.ts +9 -2
- package/dist/trpc/routers/files.d.ts.map +1 -1
- package/dist/trpc/routers/files.js +67 -37
- package/dist/trpc/routers/files.js.map +1 -1
- package/dist/trpc/routers/fonts.d.ts +30 -0
- package/dist/trpc/routers/fonts.d.ts.map +1 -0
- package/dist/trpc/routers/fonts.js +112 -0
- package/dist/trpc/routers/fonts.js.map +1 -0
- package/dist/trpc/routers/games.d.ts +7610 -0
- package/dist/trpc/routers/games.d.ts.map +1 -0
- package/dist/trpc/routers/games.js +456 -0
- package/dist/trpc/routers/games.js.map +1 -0
- package/dist/trpc/routers/integrations.d.ts +86 -0
- package/dist/trpc/routers/integrations.d.ts.map +1 -0
- package/dist/trpc/routers/integrations.js +129 -0
- package/dist/trpc/routers/integrations.js.map +1 -0
- package/dist/trpc/routers/jobs.d.ts +88 -27
- package/dist/trpc/routers/jobs.d.ts.map +1 -1
- package/dist/trpc/routers/jobs.js +113 -35
- package/dist/trpc/routers/jobs.js.map +1 -1
- package/dist/trpc/routers/js-scripts.d.ts +410 -0
- package/dist/trpc/routers/js-scripts.d.ts.map +1 -0
- package/dist/trpc/routers/js-scripts.js +303 -0
- package/dist/trpc/routers/js-scripts.js.map +1 -0
- package/dist/trpc/routers/mcp-config.d.ts +1 -1
- package/dist/trpc/routers/mcp-config.js +5 -3
- package/dist/trpc/routers/mcp-config.js.map +1 -1
- package/dist/trpc/routers/memories.d.ts +79 -0
- package/dist/trpc/routers/memories.d.ts.map +1 -0
- package/dist/trpc/routers/memories.js +66 -0
- package/dist/trpc/routers/memories.js.map +1 -0
- package/dist/trpc/routers/messages.d.ts +4 -77
- package/dist/trpc/routers/messages.d.ts.map +1 -1
- package/dist/trpc/routers/messages.js +9 -58
- package/dist/trpc/routers/messages.js.map +1 -1
- package/dist/trpc/routers/models.d.ts +1403 -238
- package/dist/trpc/routers/models.d.ts.map +1 -1
- package/dist/trpc/routers/models.js +532 -294
- package/dist/trpc/routers/models.js.map +1 -1
- package/dist/trpc/routers/nodes.d.ts +32 -16
- package/dist/trpc/routers/nodes.d.ts.map +1 -1
- package/dist/trpc/routers/nodes.js +70 -31
- package/dist/trpc/routers/nodes.js.map +1 -1
- package/dist/trpc/routers/packs.d.ts +184 -0
- package/dist/trpc/routers/packs.d.ts.map +1 -0
- package/dist/trpc/routers/packs.js +259 -0
- package/dist/trpc/routers/packs.js.map +1 -0
- package/dist/trpc/routers/projects.d.ts +422 -0
- package/dist/trpc/routers/projects.d.ts.map +1 -0
- package/dist/trpc/routers/projects.js +373 -0
- package/dist/trpc/routers/projects.js.map +1 -0
- package/dist/trpc/routers/resources.d.ts +120 -0
- package/dist/trpc/routers/resources.d.ts.map +1 -0
- package/dist/trpc/routers/resources.js +212 -0
- package/dist/trpc/routers/resources.js.map +1 -0
- package/dist/trpc/routers/scripts.d.ts +1116 -0
- package/dist/trpc/routers/scripts.d.ts.map +1 -0
- package/dist/trpc/routers/scripts.js +131 -0
- package/dist/trpc/routers/scripts.js.map +1 -0
- package/dist/trpc/routers/segmentation.d.ts +62 -0
- package/dist/trpc/routers/segmentation.d.ts.map +1 -0
- package/dist/trpc/routers/segmentation.js +146 -0
- package/dist/trpc/routers/segmentation.js.map +1 -0
- package/dist/trpc/routers/settings.d.ts +177 -10
- package/dist/trpc/routers/settings.d.ts.map +1 -1
- package/dist/trpc/routers/settings.js +123 -33
- package/dist/trpc/routers/settings.js.map +1 -1
- package/dist/trpc/routers/sketch.d.ts +854 -0
- package/dist/trpc/routers/sketch.d.ts.map +1 -0
- package/dist/trpc/routers/sketch.js +617 -0
- package/dist/trpc/routers/sketch.js.map +1 -0
- package/dist/trpc/routers/skills.d.ts +76 -22
- package/dist/trpc/routers/skills.d.ts.map +1 -1
- package/dist/trpc/routers/skills.js +195 -170
- package/dist/trpc/routers/skills.js.map +1 -1
- package/dist/trpc/routers/storage.d.ts +3 -30
- package/dist/trpc/routers/storage.d.ts.map +1 -1
- package/dist/trpc/routers/storage.js +60 -117
- package/dist/trpc/routers/storage.js.map +1 -1
- package/dist/trpc/routers/storyboards.d.ts +5907 -0
- package/dist/trpc/routers/storyboards.d.ts.map +1 -0
- package/dist/trpc/routers/storyboards.js +156 -0
- package/dist/trpc/routers/storyboards.js.map +1 -0
- package/dist/trpc/routers/threads.d.ts +33 -21
- package/dist/trpc/routers/threads.d.ts.map +1 -1
- package/dist/trpc/routers/threads.js +36 -30
- package/dist/trpc/routers/threads.js.map +1 -1
- package/dist/trpc/routers/timeline.d.ts +8516 -0
- package/dist/trpc/routers/timeline.d.ts.map +1 -0
- package/dist/trpc/routers/timeline.js +493 -0
- package/dist/trpc/routers/timeline.js.map +1 -0
- package/dist/trpc/routers/triggers.d.ts +46 -0
- package/dist/trpc/routers/triggers.d.ts.map +1 -0
- package/dist/trpc/routers/triggers.js +117 -0
- package/dist/trpc/routers/triggers.js.map +1 -0
- package/dist/trpc/routers/users.d.ts +1 -14
- package/dist/trpc/routers/users.d.ts.map +1 -1
- package/dist/trpc/routers/users.js +1 -12
- package/dist/trpc/routers/users.js.map +1 -1
- package/dist/trpc/routers/worker.d.ts +242 -0
- package/dist/trpc/routers/worker.d.ts.map +1 -0
- package/dist/trpc/routers/worker.js +220 -0
- package/dist/trpc/routers/worker.js.map +1 -0
- package/dist/trpc/routers/workflows.d.ts +385 -197
- package/dist/trpc/routers/workflows.d.ts.map +1 -1
- package/dist/trpc/routers/workflows.js +326 -345
- package/dist/trpc/routers/workflows.js.map +1 -1
- package/dist/trpc/routers/workspace.d.ts +59 -33
- package/dist/trpc/routers/workspace.d.ts.map +1 -1
- package/dist/trpc/routers/workspace.js +230 -93
- package/dist/trpc/routers/workspace.js.map +1 -1
- package/dist/trpc/sandbox-coverage.d.ts +64 -0
- package/dist/trpc/sandbox-coverage.d.ts.map +1 -0
- package/dist/trpc/sandbox-coverage.js +1049 -0
- package/dist/trpc/sandbox-coverage.js.map +1 -0
- package/dist/websocket-client-session.d.ts +320 -0
- package/dist/websocket-client-session.d.ts.map +1 -0
- package/dist/websocket-client-session.js +1253 -0
- package/dist/websocket-client-session.js.map +1 -0
- package/dist/workflow-interface-service.d.ts +87 -0
- package/dist/workflow-interface-service.d.ts.map +1 -0
- package/dist/workflow-interface-service.js +131 -0
- package/dist/workflow-interface-service.js.map +1 -0
- package/dist/workspace-api.d.ts.map +1 -1
- package/dist/workspace-api.js +33 -23
- package/dist/workspace-api.js.map +1 -1
- package/dist/ws-adapter.d.ts +46 -3
- package/dist/ws-adapter.d.ts.map +1 -1
- package/dist/ws-adapter.js +164 -26
- package/dist/ws-adapter.js.map +1 -1
- package/package.json +81 -35
- package/dist/agent/agent-runtime.d.ts +0 -47
- package/dist/agent/agent-runtime.d.ts.map +0 -1
- package/dist/agent/agent-runtime.js +0 -579
- package/dist/agent/agent-runtime.js.map +0 -1
- package/dist/agent/codex-agent.d.ts +0 -41
- package/dist/agent/codex-agent.d.ts.map +0 -1
- package/dist/agent/codex-agent.js +0 -334
- package/dist/agent/codex-agent.js.map +0 -1
- package/dist/agent/index.d.ts +0 -6
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -4
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/llm-agent.d.ts +0 -51
- package/dist/agent/llm-agent.d.ts.map +0 -1
- package/dist/agent/llm-agent.js +0 -526
- package/dist/agent/llm-agent.js.map +0 -1
- package/dist/agent/mcp-tool-server.d.ts +0 -33
- package/dist/agent/mcp-tool-server.d.ts.map +0 -1
- package/dist/agent/mcp-tool-server.js +0 -292
- package/dist/agent/mcp-tool-server.js.map +0 -1
- package/dist/agent/opencode-agent.d.ts +0 -32
- package/dist/agent/opencode-agent.d.ts.map +0 -1
- package/dist/agent/opencode-agent.js +0 -332
- package/dist/agent/opencode-agent.js.map +0 -1
- package/dist/agent/pi-agent.d.ts +0 -42
- package/dist/agent/pi-agent.d.ts.map +0 -1
- package/dist/agent/pi-agent.js +0 -429
- package/dist/agent/pi-agent.js.map +0 -1
- package/dist/agent/sdk-provider.d.ts +0 -46
- package/dist/agent/sdk-provider.d.ts.map +0 -1
- package/dist/agent/sdk-provider.js +0 -50
- package/dist/agent/sdk-provider.js.map +0 -1
- package/dist/agent/socket-route.d.ts +0 -11
- package/dist/agent/socket-route.d.ts.map +0 -1
- package/dist/agent/socket-route.js +0 -262
- package/dist/agent/socket-route.js.map +0 -1
- package/dist/agent/transport.d.ts +0 -39
- package/dist/agent/transport.d.ts.map +0 -1
- package/dist/agent/transport.js +0 -17
- package/dist/agent/transport.js.map +0 -1
- package/dist/agent/types.d.ts +0 -11
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -10
- package/dist/agent/types.js.map +0 -1
- package/dist/routes/jobs.d.ts +0 -16
- package/dist/routes/jobs.d.ts.map +0 -1
- package/dist/routes/jobs.js +0 -25
- package/dist/routes/jobs.js.map +0 -1
- package/dist/trpc/routers/sandboxes.d.ts +0 -64
- package/dist/trpc/routers/sandboxes.d.ts.map +0 -1
- package/dist/trpc/routers/sandboxes.js +0 -327
- package/dist/trpc/routers/sandboxes.js.map +0 -1
- package/dist/unified-websocket-runner.d.ts +0 -280
- package/dist/unified-websocket-runner.d.ts.map +0 -1
- package/dist/unified-websocket-runner.js +0 -3840
- package/dist/unified-websocket-runner.js.map +0 -1
package/dist/models-api.js
CHANGED
|
@@ -1,173 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { getProvider, isProviderConfigured, listRegisteredProviderIds, providerCapabilities, RECOMMENDED_MODELS } from "@nodetool-ai/runtime";
|
|
6
|
-
import { readCachedHfModels, searchCachedHfModels, getModelsByHfType, deleteCachedHfModel, getHuggingfaceFileInfos } from "@nodetool-ai/huggingface";
|
|
7
|
-
const LLAMA_CPP_MODEL_TYPES = new Set([
|
|
8
|
-
"llama_cpp_model",
|
|
9
|
-
"llama_cpp",
|
|
10
|
-
"hf.gguf"
|
|
11
|
-
]);
|
|
12
|
-
function jsonResponse(data, init) {
|
|
13
|
-
return new Response(JSON.stringify(data), {
|
|
14
|
-
status: init?.status ?? 200,
|
|
15
|
-
headers: {
|
|
16
|
-
"content-type": "application/json",
|
|
17
|
-
...(init?.headers ?? {})
|
|
18
|
-
}
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
function errorResponse(status, detail) {
|
|
22
|
-
return jsonResponse({ detail }, { status });
|
|
23
|
-
}
|
|
24
|
-
function isProduction() {
|
|
25
|
-
const value = (process.env.NODETOOL_ENV ??
|
|
26
|
-
process.env.NODE_ENV ??
|
|
27
|
-
"").toLowerCase();
|
|
28
|
-
return value === "production";
|
|
29
|
-
}
|
|
30
|
-
function dedupeModels(models) {
|
|
31
|
-
const seen = new Set();
|
|
32
|
-
const deduped = [];
|
|
33
|
-
for (const model of models) {
|
|
34
|
-
const key = `${model.repo_id ?? ""}::${model.path ?? ""}`;
|
|
35
|
-
if (!seen.has(key)) {
|
|
36
|
-
seen.add(key);
|
|
37
|
-
deduped.push(model);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return deduped;
|
|
41
|
-
}
|
|
42
|
-
function normalizePatterns(patterns) {
|
|
43
|
-
if (patterns == null)
|
|
44
|
-
return null;
|
|
45
|
-
if (typeof patterns === "string")
|
|
46
|
-
return patterns ? [patterns] : null;
|
|
47
|
-
const cleaned = patterns.filter((p) => Boolean(p));
|
|
48
|
-
return cleaned.length > 0 ? cleaned : null;
|
|
49
|
-
}
|
|
50
|
-
function wildcardToRegExp(pattern) {
|
|
51
|
-
const escaped = pattern.replace(/[.+^${}()|[\]\\]/g, "\\$&");
|
|
52
|
-
const regex = `^${escaped.replaceAll("*", ".*").replaceAll("?", ".")}$`;
|
|
53
|
-
return new RegExp(regex);
|
|
54
|
-
}
|
|
55
|
-
function matchesPattern(value, pattern) {
|
|
56
|
-
return wildcardToRegExp(pattern).test(value);
|
|
57
|
-
}
|
|
58
|
-
function isIgnored(path, ignorePatterns) {
|
|
59
|
-
if (!ignorePatterns || ignorePatterns.length === 0)
|
|
60
|
-
return false;
|
|
61
|
-
return ignorePatterns.some((pattern) => matchesPattern(path, pattern));
|
|
62
|
-
}
|
|
63
|
-
function isDownloadedFromFiles(files, allowPatterns, ignorePatterns) {
|
|
64
|
-
if (files.length === 0)
|
|
65
|
-
return false;
|
|
66
|
-
if (allowPatterns && allowPatterns.length > 0) {
|
|
67
|
-
return allowPatterns.every((pattern) => files.some((path) => matchesPattern(path, pattern) && !isIgnored(path, ignorePatterns)));
|
|
68
|
-
}
|
|
69
|
-
return files.some((path) => !isIgnored(path, ignorePatterns));
|
|
70
|
-
}
|
|
71
|
-
function getHfCacheRoot() {
|
|
72
|
-
const cacheEnv = process.env.HUGGINGFACE_HUB_CACHE ?? process.env.HF_HOME;
|
|
73
|
-
return cacheEnv
|
|
74
|
-
? join(cacheEnv, "hub")
|
|
75
|
-
: join(homedir(), ".cache", "huggingface", "hub");
|
|
76
|
-
}
|
|
77
|
-
function repoToCacheDir(repoId) {
|
|
78
|
-
return `models--${repoId.replaceAll("/", "--")}`;
|
|
79
|
-
}
|
|
80
|
-
async function pathExists(path) {
|
|
81
|
-
try {
|
|
82
|
-
await access(path, fsConstants.F_OK);
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
catch {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
async function listSnapshotDirs(repoId) {
|
|
90
|
-
const snapshotsRoot = join(getHfCacheRoot(), repoToCacheDir(repoId), "snapshots");
|
|
91
|
-
if (!(await pathExists(snapshotsRoot)))
|
|
92
|
-
return [];
|
|
93
|
-
const entries = await readdir(snapshotsRoot, { withFileTypes: true });
|
|
94
|
-
return entries
|
|
95
|
-
.filter((entry) => entry.isDirectory())
|
|
96
|
-
.map((entry) => join(snapshotsRoot, entry.name));
|
|
97
|
-
}
|
|
98
|
-
async function repoFileInCache(repoId, relativePath) {
|
|
99
|
-
const snapshotDirs = await listSnapshotDirs(repoId);
|
|
100
|
-
for (const snapshotDir of snapshotDirs) {
|
|
101
|
-
if (await pathExists(join(snapshotDir, relativePath))) {
|
|
102
|
-
return true;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
return false;
|
|
106
|
-
}
|
|
107
|
-
async function listRepoCachedFiles(repoId) {
|
|
108
|
-
const snapshotDirs = await listSnapshotDirs(repoId);
|
|
109
|
-
const collected = new Set();
|
|
110
|
-
async function walk(root, current) {
|
|
111
|
-
const entries = await readdir(current, { withFileTypes: true });
|
|
112
|
-
for (const entry of entries) {
|
|
113
|
-
const full = join(current, entry.name);
|
|
114
|
-
if (entry.isDirectory()) {
|
|
115
|
-
await walk(root, full);
|
|
116
|
-
continue;
|
|
117
|
-
}
|
|
118
|
-
if (entry.isFile() || entry.isSymbolicLink()) {
|
|
119
|
-
const rel = full.slice(root.length + 1).replaceAll("\\", "/");
|
|
120
|
-
collected.add(rel);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
for (const snapshotDir of snapshotDirs) {
|
|
125
|
-
await walk(snapshotDir, snapshotDir);
|
|
126
|
-
}
|
|
127
|
-
return [...collected];
|
|
128
|
-
}
|
|
129
|
-
async function hasCachedFiles(repoId) {
|
|
130
|
-
return (await listRepoCachedFiles(repoId)).length > 0;
|
|
131
|
-
}
|
|
132
|
-
function toUnifiedLanguageModel(model) {
|
|
133
|
-
return {
|
|
134
|
-
id: model.id,
|
|
135
|
-
type: "language_model",
|
|
136
|
-
name: model.name,
|
|
137
|
-
repo_id: null,
|
|
138
|
-
path: model.id,
|
|
139
|
-
downloaded: model.provider === "ollama" || model.provider === "llama_cpp",
|
|
140
|
-
tags: [model.provider]
|
|
141
|
-
};
|
|
142
|
-
}
|
|
143
|
-
function toUnifiedModel(model, type) {
|
|
144
|
-
return {
|
|
145
|
-
id: model.id,
|
|
146
|
-
type,
|
|
147
|
-
name: model.name,
|
|
148
|
-
repo_id: null,
|
|
149
|
-
path: model.id,
|
|
150
|
-
downloaded: model.provider === "ollama" || model.provider === "llama_cpp",
|
|
151
|
-
tags: [model.provider]
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
function toOllamaModel(model) {
|
|
155
|
-
return {
|
|
156
|
-
type: "llama_model",
|
|
157
|
-
name: model.name,
|
|
158
|
-
repo_id: model.id,
|
|
159
|
-
modified_at: "",
|
|
160
|
-
size: 0,
|
|
161
|
-
digest: "",
|
|
162
|
-
details: {}
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
// ---------------------------------------------------------------------------
|
|
166
|
-
// Provider access — delegates to the runtime's single provider registry.
|
|
167
|
-
// No duplicate registry here; the runtime's registerProvider() calls in
|
|
168
|
-
// providers/index.ts are the single source of truth.
|
|
169
|
-
// ---------------------------------------------------------------------------
|
|
170
|
-
import { PythonProvider, registerProvider } from "@nodetool-ai/runtime";
|
|
1
|
+
import { getSecret as getStoredSecret } from "@nodetool-ai/models";
|
|
2
|
+
import { listRegisteredProviderIds, PythonProvider, registerProvider } from "@nodetool-ai/runtime";
|
|
3
|
+
import { resolveWorkerHfToken } from "@nodetool-ai/huggingface";
|
|
4
|
+
import { modelRankings, rankedForTask } from "@nodetool-ai/model-pricing";
|
|
171
5
|
/**
|
|
172
6
|
* Register Python-only providers (HuggingFace Local, MLX) discovered
|
|
173
7
|
* via the Python stdio bridge. Call after the bridge has connected.
|
|
@@ -176,555 +10,191 @@ export async function registerPythonProviders(bridge) {
|
|
|
176
10
|
const providers = await bridge.listProviders();
|
|
177
11
|
const registered = [];
|
|
178
12
|
for (const info of providers) {
|
|
179
|
-
|
|
13
|
+
const existingIds = listRegisteredProviderIds();
|
|
14
|
+
// The TypeScript runtime already owns `huggingface` for the hosted
|
|
15
|
+
// Inference API, while the Python worker uses the same id for local model
|
|
16
|
+
// execution. Keep both available under stable public ids and retain the
|
|
17
|
+
// worker id separately for bridge calls.
|
|
18
|
+
const publicId = info.id === "huggingface" && existingIds.includes(info.id)
|
|
19
|
+
? "huggingface-local"
|
|
20
|
+
: info.id;
|
|
21
|
+
if (existingIds.includes(publicId))
|
|
180
22
|
continue;
|
|
181
23
|
const secrets = {};
|
|
182
|
-
registerProvider(
|
|
24
|
+
registerProvider(publicId, PythonProvider, {
|
|
183
25
|
_bridge: bridge,
|
|
184
|
-
_id:
|
|
26
|
+
_id: publicId,
|
|
27
|
+
_bridgeProviderId: info.id,
|
|
28
|
+
_capabilities: info.capabilities,
|
|
185
29
|
...secrets
|
|
30
|
+
}, {}, {
|
|
31
|
+
access: info.access ?? "in_process",
|
|
32
|
+
displayName: info.display_name ?? publicId
|
|
186
33
|
});
|
|
187
|
-
registered.push(
|
|
34
|
+
registered.push(publicId);
|
|
188
35
|
}
|
|
189
36
|
return registered;
|
|
190
37
|
}
|
|
191
|
-
/**
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
38
|
+
/**
|
|
39
|
+
* The `type` a merged entry carries, by task — the same value the hand-pinned
|
|
40
|
+
* RECOMMENDED_MODELS entries of that task carry. A task absent from this table
|
|
41
|
+
* has no ranked surface here, so the merge is a no-op for it.
|
|
42
|
+
*/
|
|
43
|
+
const RANKED_TASK_MODEL_TYPE = {
|
|
44
|
+
text_to_image: "image_model",
|
|
45
|
+
image_to_image: "image_model",
|
|
46
|
+
text_to_video: "video_model",
|
|
47
|
+
image_to_video: "video_model",
|
|
48
|
+
video_to_video: "video_model",
|
|
49
|
+
reference_to_video: "video_model",
|
|
50
|
+
text_to_speech: "tts_model",
|
|
51
|
+
text_to_music: "music_model"
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Append the ranked leaderboard for one task to the hand-pinned entries that
|
|
55
|
+
* already answer an endpoint. RECOMMENDED_MODELS is the override list: its
|
|
56
|
+
* entries keep their order and always come first; ranked models follow, best
|
|
57
|
+
* rank first.
|
|
58
|
+
*
|
|
59
|
+
* One entry per canonical model, taking its first route — a model reachable
|
|
60
|
+
* through FAL and kie is one row, not two. A canonical model any of whose
|
|
61
|
+
* routes is already pinned is skipped, so an override is never duplicated by
|
|
62
|
+
* the leaderboard.
|
|
63
|
+
*
|
|
64
|
+
* An empty artifact returns `base` unchanged, which is the shipped state until
|
|
65
|
+
* the rankings sync writes a snapshot.
|
|
66
|
+
*/
|
|
67
|
+
export function mergeRankedRecommendations(base, task, artifact = modelRankings) {
|
|
68
|
+
const type = RANKED_TASK_MODEL_TYPE[task];
|
|
69
|
+
if (!type)
|
|
70
|
+
return base;
|
|
71
|
+
const seen = new Set(base.map((model) => `${model.provider ?? ""}::${model.id}`));
|
|
72
|
+
const merged = [...base];
|
|
73
|
+
for (const entry of rankedForTask(task, artifact)) {
|
|
74
|
+
const keys = entry.routes.map((route) => `${route.provider}::${route.modelId}`);
|
|
75
|
+
if (keys.some((key) => seen.has(key)))
|
|
215
76
|
continue;
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
const instance = await instantiateProvider(provider, userId);
|
|
222
|
-
if (!instance) {
|
|
223
|
-
throw new Error(`Provider ${provider} not available`);
|
|
224
|
-
}
|
|
225
|
-
return run(instance);
|
|
226
|
-
}
|
|
227
|
-
async function getLanguageModelsByProvider(provider, userId = "1") {
|
|
228
|
-
try {
|
|
229
|
-
return await withProvider(provider, (instance) => instance.getAvailableLanguageModels(), userId);
|
|
230
|
-
}
|
|
231
|
-
catch {
|
|
232
|
-
return [];
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
async function getImageModelsByProvider(provider, userId = "1") {
|
|
236
|
-
try {
|
|
237
|
-
return await withProvider(provider, (instance) => instance.getAvailableImageModels(), userId);
|
|
238
|
-
}
|
|
239
|
-
catch {
|
|
240
|
-
return [];
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
async function getTtsModelsByProvider(provider, userId = "1") {
|
|
244
|
-
try {
|
|
245
|
-
return await withProvider(provider, (instance) => instance.getAvailableTTSModels(), userId);
|
|
246
|
-
}
|
|
247
|
-
catch {
|
|
248
|
-
return [];
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
async function getAsrModelsByProvider(provider, userId = "1") {
|
|
252
|
-
try {
|
|
253
|
-
return await withProvider(provider, (instance) => instance.getAvailableASRModels(), userId);
|
|
254
|
-
}
|
|
255
|
-
catch {
|
|
256
|
-
return [];
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
async function getVideoModelsByProvider(provider, userId = "1") {
|
|
260
|
-
try {
|
|
261
|
-
return await withProvider(provider, (instance) => instance.getAvailableVideoModels(), userId);
|
|
262
|
-
}
|
|
263
|
-
catch {
|
|
264
|
-
return [];
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
async function getEmbeddingModelsByProvider(provider, userId = "1") {
|
|
268
|
-
try {
|
|
269
|
-
return await withProvider(provider, (instance) => instance.getAvailableEmbeddingModels(), userId);
|
|
270
|
-
}
|
|
271
|
-
catch {
|
|
272
|
-
return [];
|
|
273
|
-
}
|
|
274
|
-
}
|
|
275
|
-
async function isServerReachable(url) {
|
|
276
|
-
const controller = new AbortController();
|
|
277
|
-
const timer = setTimeout(() => controller.abort(), 2000);
|
|
278
|
-
try {
|
|
279
|
-
const response = await fetch(url, { signal: controller.signal });
|
|
280
|
-
return response.ok;
|
|
281
|
-
}
|
|
282
|
-
catch {
|
|
283
|
-
return false;
|
|
284
|
-
}
|
|
285
|
-
finally {
|
|
286
|
-
clearTimeout(timer);
|
|
287
|
-
}
|
|
288
|
-
}
|
|
289
|
-
async function serverAllowsModel(model, servers) {
|
|
290
|
-
// Local server providers need reachability check
|
|
291
|
-
if (model.provider === "ollama")
|
|
292
|
-
return servers.ollama ?? false;
|
|
293
|
-
if (model.provider === "llama_cpp")
|
|
294
|
-
return servers.llama_cpp ?? false;
|
|
295
|
-
if (model.provider === "lmstudio")
|
|
296
|
-
return servers.lmstudio ?? false;
|
|
297
|
-
if (model.provider === "vllm")
|
|
298
|
-
return servers.vllm ?? false;
|
|
299
|
-
// API-key providers: available if key is set (env or secrets DB)
|
|
300
|
-
if (model.provider)
|
|
301
|
-
return await isProviderConfigured(model.provider);
|
|
302
|
-
return true;
|
|
303
|
-
}
|
|
304
|
-
async function getServerAvailability() {
|
|
305
|
-
// Skip localhost probes in production — local servers won't be available
|
|
306
|
-
if (isProduction())
|
|
307
|
-
return { ollama: false, llama_cpp: false };
|
|
308
|
-
const ollamaUrl = (process.env.OLLAMA_API_URL ?? "http://127.0.0.1:11434").replace(/\/+$/, "");
|
|
309
|
-
const llamaUrl = process.env.LLAMA_CPP_URL?.replace(/\/+$/, "") ?? "";
|
|
310
|
-
const [ollama, llama] = await Promise.all([
|
|
311
|
-
isServerReachable(`${ollamaUrl}/api/tags`),
|
|
312
|
-
llamaUrl
|
|
313
|
-
? isServerReachable(`${llamaUrl}/v1/models`)
|
|
314
|
-
: Promise.resolve(false)
|
|
315
|
-
]);
|
|
316
|
-
return { ollama, llama_cpp: llama };
|
|
317
|
-
}
|
|
318
|
-
async function recommendedModels(checkServers) {
|
|
319
|
-
const models = [...RECOMMENDED_MODELS];
|
|
320
|
-
if (!checkServers)
|
|
321
|
-
return models;
|
|
322
|
-
const servers = await getServerAvailability();
|
|
323
|
-
const filtered = [];
|
|
324
|
-
for (const model of models) {
|
|
325
|
-
if (await serverAllowsModel(model, servers)) {
|
|
326
|
-
filtered.push(model);
|
|
77
|
+
const route = entry.routes[0];
|
|
78
|
+
if (!route)
|
|
79
|
+
continue;
|
|
80
|
+
for (const key of keys) {
|
|
81
|
+
seen.add(key);
|
|
327
82
|
}
|
|
83
|
+
merged.push({
|
|
84
|
+
id: route.modelId,
|
|
85
|
+
type,
|
|
86
|
+
name: entry.name,
|
|
87
|
+
repo_id: null,
|
|
88
|
+
path: null,
|
|
89
|
+
downloaded: false,
|
|
90
|
+
provider: route.provider
|
|
91
|
+
});
|
|
328
92
|
}
|
|
329
|
-
return
|
|
330
|
-
}
|
|
331
|
-
function selectRecommended(modality, task) {
|
|
332
|
-
return RECOMMENDED_MODELS.filter((model) => model.modality === modality && (!task || model.task === task));
|
|
93
|
+
return merged;
|
|
333
94
|
}
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
95
|
+
/**
|
|
96
|
+
* Relay a worker-scoped model download: forward each bridge `progress` frame
|
|
97
|
+
* onto the /ws/download socket using the same JSON shape the local download
|
|
98
|
+
* manager emits, so the web ModelDownloadStore consumes it unchanged.
|
|
99
|
+
*
|
|
100
|
+
* No attached worker (or an image too old for `models.*`) yields an `error`
|
|
101
|
+
* progress frame instead. A mid-download failure (e.g. the worker detaching)
|
|
102
|
+
* surfaces as an `error` frame too.
|
|
103
|
+
*
|
|
104
|
+
* `requestId` is the stable cancel key: it must match the id the web sends in
|
|
105
|
+
* `cancel_download` (`path ? repo_id + "/" + path : repo_id`) so the bridge can
|
|
106
|
+
* correlate a later `cancelModelDownload(requestId)` to this download. The
|
|
107
|
+
* default reproduces that composite so callers that don't track cancellation
|
|
108
|
+
* still get a sensible, matching id.
|
|
109
|
+
*/
|
|
110
|
+
export async function relayWorkerDownload(socket, bridge, workerManager, msg, requestId = msg.path
|
|
111
|
+
? `${msg.repo_id ?? ""}/${msg.path}`
|
|
112
|
+
: (msg.repo_id ?? ""), userId = "1") {
|
|
113
|
+
const repoId = msg.repo_id ?? "";
|
|
114
|
+
// The worker already emits a terminal `error`-status progress frame on
|
|
115
|
+
// failure (forwarded verbatim below); track it so the catch doesn't send a
|
|
116
|
+
// second, redundant error frame.
|
|
117
|
+
let sawError = false;
|
|
118
|
+
const fail = (error) => {
|
|
351
119
|
try {
|
|
352
|
-
|
|
353
|
-
|
|
120
|
+
socket.send(JSON.stringify({
|
|
121
|
+
status: "error",
|
|
122
|
+
repo_id: repoId,
|
|
123
|
+
path: msg.path ?? null,
|
|
124
|
+
model_type: msg.model_type ?? null,
|
|
125
|
+
downloaded_bytes: 0,
|
|
126
|
+
total_bytes: 0,
|
|
127
|
+
downloaded_files: 0,
|
|
128
|
+
current_files: [],
|
|
129
|
+
total_files: 0,
|
|
130
|
+
error
|
|
131
|
+
}));
|
|
354
132
|
}
|
|
355
133
|
catch {
|
|
356
|
-
|
|
134
|
+
/* socket gone */
|
|
357
135
|
}
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
136
|
+
};
|
|
137
|
+
if (!workerManager) {
|
|
138
|
+
fail("Worker support is not configured on this server");
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const active = await workerManager.getActiveWorker();
|
|
142
|
+
if (!active) {
|
|
143
|
+
fail("No worker attached");
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (!bridge || !bridge.supportsModelManagement()) {
|
|
147
|
+
fail("This worker's image is too old for model management.");
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
// The worker has no HuggingFace credential of its own, so a gated repo 401s
|
|
151
|
+
// unless this server supplies one. Resolved here, never taken from `msg` —
|
|
152
|
+
// that JSON comes from the client.
|
|
153
|
+
const token = await resolveWorkerHfToken((key) => getStoredSecret(key, userId));
|
|
366
154
|
try {
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
return null;
|
|
371
|
-
}
|
|
372
|
-
}
|
|
373
|
-
function pathFromModelsPrefix(pathname) {
|
|
374
|
-
const base = "/api/models";
|
|
375
|
-
if (pathname === base)
|
|
376
|
-
return "";
|
|
377
|
-
if (pathname.startsWith(`${base}/`))
|
|
378
|
-
return pathname.slice(base.length);
|
|
379
|
-
return pathname;
|
|
380
|
-
}
|
|
381
|
-
function parseProvider(path, prefix) {
|
|
382
|
-
if (!path.startsWith(prefix))
|
|
383
|
-
return null;
|
|
384
|
-
const value = decodeURIComponent(path.slice(prefix.length));
|
|
385
|
-
if (!value)
|
|
386
|
-
return null;
|
|
387
|
-
return value;
|
|
388
|
-
}
|
|
389
|
-
async function checkHfCache(body) {
|
|
390
|
-
const allowPatterns = normalizePatterns(body.allow_pattern);
|
|
391
|
-
const ignorePatterns = normalizePatterns(body.ignore_pattern);
|
|
392
|
-
const files = await listRepoCachedFiles(body.repo_id);
|
|
393
|
-
const missing = [];
|
|
394
|
-
if (allowPatterns) {
|
|
395
|
-
for (const pattern of allowPatterns) {
|
|
396
|
-
const matched = files.some((path) => matchesPattern(path, pattern) && !isIgnored(path, ignorePatterns));
|
|
397
|
-
if (!matched) {
|
|
398
|
-
missing.push(pattern);
|
|
155
|
+
const onProgress = (update) => {
|
|
156
|
+
if (update.status === "error") {
|
|
157
|
+
sawError = true;
|
|
399
158
|
}
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
return {
|
|
403
|
-
repo_id: body.repo_id,
|
|
404
|
-
all_present: missing.length === 0,
|
|
405
|
-
total_files: files.length,
|
|
406
|
-
missing
|
|
407
|
-
};
|
|
408
|
-
}
|
|
409
|
-
async function isLlamaCppModelCached(repoId, filePath) {
|
|
410
|
-
if (await repoFileInCache(repoId, filePath)) {
|
|
411
|
-
return true;
|
|
412
|
-
}
|
|
413
|
-
const cacheRoot = process.env.LLAMA_CPP_CACHE_DIR ??
|
|
414
|
-
join(homedir(), "Library", "Caches", "llama.cpp", "hf");
|
|
415
|
-
const repoDir = join(cacheRoot, repoToCacheDir(repoId), "snapshots");
|
|
416
|
-
if (!(await pathExists(repoDir)))
|
|
417
|
-
return false;
|
|
418
|
-
const snapshots = await readdir(repoDir, { withFileTypes: true });
|
|
419
|
-
for (const snapshot of snapshots) {
|
|
420
|
-
if (!snapshot.isDirectory())
|
|
421
|
-
continue;
|
|
422
|
-
if (await pathExists(join(repoDir, snapshot.name, filePath))) {
|
|
423
|
-
return true;
|
|
424
|
-
}
|
|
425
|
-
if (await pathExists(join(repoDir, snapshot.name, basename(filePath)))) {
|
|
426
|
-
return true;
|
|
427
|
-
}
|
|
428
|
-
}
|
|
429
|
-
return false;
|
|
430
|
-
}
|
|
431
|
-
async function fastCacheStatus(items) {
|
|
432
|
-
return Promise.all(items.map(async (item) => {
|
|
433
|
-
const allowPatterns = normalizePatterns(item.allow_patterns);
|
|
434
|
-
const ignorePatterns = normalizePatterns(item.ignore_patterns);
|
|
435
|
-
if (item.model_type && LLAMA_CPP_MODEL_TYPES.has(item.model_type)) {
|
|
436
|
-
if (!item.path)
|
|
437
|
-
return { key: item.key, downloaded: false };
|
|
438
|
-
return {
|
|
439
|
-
key: item.key,
|
|
440
|
-
downloaded: await isLlamaCppModelCached(item.repo_id, item.path)
|
|
441
|
-
};
|
|
442
|
-
}
|
|
443
|
-
if (item.path) {
|
|
444
|
-
return {
|
|
445
|
-
key: item.key,
|
|
446
|
-
downloaded: await repoFileInCache(item.repo_id, item.path)
|
|
447
|
-
};
|
|
448
|
-
}
|
|
449
|
-
const files = await listRepoCachedFiles(item.repo_id);
|
|
450
|
-
return {
|
|
451
|
-
key: item.key,
|
|
452
|
-
downloaded: isDownloadedFromFiles(files, allowPatterns, ignorePatterns)
|
|
453
|
-
};
|
|
454
|
-
}));
|
|
455
|
-
}
|
|
456
|
-
export async function handleModelsApiRequest(request) {
|
|
457
|
-
const url = new URL(request.url);
|
|
458
|
-
const path = pathFromModelsPrefix(url.pathname);
|
|
459
|
-
const userId = request.headers.get("x-user-id") ?? "1";
|
|
460
|
-
if (path === "/providers") {
|
|
461
|
-
if (request.method !== "GET")
|
|
462
|
-
return errorResponse(405, "Method not allowed");
|
|
463
|
-
return jsonResponse(await getProvidersInfo(userId));
|
|
464
|
-
}
|
|
465
|
-
if (path === "/recommended") {
|
|
466
|
-
if (request.method !== "GET")
|
|
467
|
-
return errorResponse(405, "Method not allowed");
|
|
468
|
-
const checkServers = url.searchParams.get("check_servers") === "true";
|
|
469
|
-
return jsonResponse(await recommendedModels(checkServers));
|
|
470
|
-
}
|
|
471
|
-
if (path === "/recommended/image") {
|
|
472
|
-
if (request.method !== "GET")
|
|
473
|
-
return errorResponse(405, "Method not allowed");
|
|
474
|
-
return jsonResponse(selectRecommended("image"));
|
|
475
|
-
}
|
|
476
|
-
if (path === "/recommended/image/text-to-image") {
|
|
477
|
-
if (request.method !== "GET")
|
|
478
|
-
return errorResponse(405, "Method not allowed");
|
|
479
|
-
return jsonResponse(selectRecommended("image", "text_to_image"));
|
|
480
|
-
}
|
|
481
|
-
if (path === "/recommended/image/image-to-image") {
|
|
482
|
-
if (request.method !== "GET")
|
|
483
|
-
return errorResponse(405, "Method not allowed");
|
|
484
|
-
return jsonResponse(selectRecommended("image", "image_to_image"));
|
|
485
|
-
}
|
|
486
|
-
if (path === "/recommended/language") {
|
|
487
|
-
if (request.method !== "GET")
|
|
488
|
-
return errorResponse(405, "Method not allowed");
|
|
489
|
-
return jsonResponse(selectRecommended("language"));
|
|
490
|
-
}
|
|
491
|
-
if (path === "/recommended/language/text-generation") {
|
|
492
|
-
if (request.method !== "GET")
|
|
493
|
-
return errorResponse(405, "Method not allowed");
|
|
494
|
-
return jsonResponse(selectRecommended("language", "text_generation"));
|
|
495
|
-
}
|
|
496
|
-
if (path === "/recommended/language/embedding") {
|
|
497
|
-
if (request.method !== "GET")
|
|
498
|
-
return errorResponse(405, "Method not allowed");
|
|
499
|
-
return jsonResponse(selectRecommended("language", "embedding"));
|
|
500
|
-
}
|
|
501
|
-
if (path === "/recommended/asr") {
|
|
502
|
-
if (request.method !== "GET")
|
|
503
|
-
return errorResponse(405, "Method not allowed");
|
|
504
|
-
return jsonResponse(selectRecommended("asr"));
|
|
505
|
-
}
|
|
506
|
-
if (path === "/recommended/tts") {
|
|
507
|
-
if (request.method !== "GET")
|
|
508
|
-
return errorResponse(405, "Method not allowed");
|
|
509
|
-
return jsonResponse(selectRecommended("tts"));
|
|
510
|
-
}
|
|
511
|
-
if (path === "/recommended/video/text-to-video") {
|
|
512
|
-
if (request.method !== "GET")
|
|
513
|
-
return errorResponse(405, "Method not allowed");
|
|
514
|
-
return jsonResponse(selectRecommended("video", "text_to_video"));
|
|
515
|
-
}
|
|
516
|
-
if (path === "/recommended/video/image-to-video") {
|
|
517
|
-
if (request.method !== "GET")
|
|
518
|
-
return errorResponse(405, "Method not allowed");
|
|
519
|
-
return jsonResponse(selectRecommended("video", "image_to_video"));
|
|
520
|
-
}
|
|
521
|
-
if (path === "/all") {
|
|
522
|
-
if (request.method !== "GET")
|
|
523
|
-
return errorResponse(405, "Method not allowed");
|
|
524
|
-
return jsonResponse(await getAllModels(userId));
|
|
525
|
-
}
|
|
526
|
-
if (path === "/huggingface") {
|
|
527
|
-
if (request.method === "GET") {
|
|
528
|
-
if (isProduction())
|
|
529
|
-
return jsonResponse([]);
|
|
530
159
|
try {
|
|
531
|
-
|
|
532
|
-
return jsonResponse(models);
|
|
160
|
+
socket.send(JSON.stringify(update));
|
|
533
161
|
}
|
|
534
162
|
catch {
|
|
535
|
-
|
|
163
|
+
/* socket gone */
|
|
536
164
|
}
|
|
537
|
-
}
|
|
538
|
-
if (
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
return
|
|
542
|
-
if (isProduction())
|
|
543
|
-
return jsonResponse(false);
|
|
544
|
-
try {
|
|
545
|
-
const deleted = await deleteCachedHfModel(repoId);
|
|
546
|
-
return jsonResponse(deleted);
|
|
165
|
+
};
|
|
166
|
+
if (msg.backend) {
|
|
167
|
+
if (!msg.model_type) {
|
|
168
|
+
fail("A model_type is required for worker model preparation");
|
|
169
|
+
return;
|
|
547
170
|
}
|
|
548
|
-
|
|
549
|
-
|
|
171
|
+
if (!bridge.supportsModelPreparation(msg.backend)) {
|
|
172
|
+
fail(`Worker does not provide model preparation backend: ${msg.backend}`);
|
|
173
|
+
return;
|
|
550
174
|
}
|
|
175
|
+
await bridge.prepareModel({
|
|
176
|
+
backend: msg.backend,
|
|
177
|
+
model_type: msg.model_type,
|
|
178
|
+
repo_id: repoId,
|
|
179
|
+
token
|
|
180
|
+
}, onProgress, requestId);
|
|
551
181
|
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
if (path === "/huggingface/search") {
|
|
555
|
-
if (request.method !== "GET")
|
|
556
|
-
return errorResponse(405, "Method not allowed");
|
|
557
|
-
if (isProduction())
|
|
558
|
-
return jsonResponse([]);
|
|
559
|
-
const rawQuery = url.searchParams.get("query") ?? undefined;
|
|
560
|
-
const type = url.searchParams.get("type") ?? undefined;
|
|
561
|
-
// Wrap bare queries with wildcards so "whisper" matches "openai/whisper-small"
|
|
562
|
-
const query = rawQuery && !rawQuery.includes("*") ? `*${rawQuery}*` : rawQuery;
|
|
563
|
-
try {
|
|
564
|
-
const models = await searchCachedHfModels(query ? [query] : undefined, type ? [type] : undefined);
|
|
565
|
-
return jsonResponse(models);
|
|
566
|
-
}
|
|
567
|
-
catch {
|
|
568
|
-
return jsonResponse([]);
|
|
569
|
-
}
|
|
570
|
-
}
|
|
571
|
-
if (path.startsWith("/huggingface/type/")) {
|
|
572
|
-
if (request.method !== "GET")
|
|
573
|
-
return errorResponse(405, "Method not allowed");
|
|
574
|
-
const modelType = decodeURIComponent(path.slice("/huggingface/type/".length));
|
|
575
|
-
if (!modelType)
|
|
576
|
-
return jsonResponse([]);
|
|
577
|
-
try {
|
|
578
|
-
const models = await getModelsByHfType(modelType);
|
|
579
|
-
return jsonResponse(models);
|
|
580
|
-
}
|
|
581
|
-
catch {
|
|
582
|
-
return jsonResponse([]);
|
|
583
|
-
}
|
|
584
|
-
}
|
|
585
|
-
if (path === "/ollama") {
|
|
586
|
-
if (request.method === "DELETE") {
|
|
587
|
-
if (isProduction())
|
|
588
|
-
return jsonResponse(false);
|
|
589
|
-
return jsonResponse(false);
|
|
590
|
-
}
|
|
591
|
-
if (request.method !== "GET")
|
|
592
|
-
return errorResponse(405, "Method not allowed");
|
|
593
|
-
const models = await getLanguageModelsByProvider("ollama", userId);
|
|
594
|
-
return jsonResponse(models.map((model) => toOllamaModel(model)));
|
|
595
|
-
}
|
|
596
|
-
const llmProvider = parseProvider(path, "/llm/");
|
|
597
|
-
if (llmProvider) {
|
|
598
|
-
if (request.method !== "GET")
|
|
599
|
-
return errorResponse(405, "Method not allowed");
|
|
600
|
-
return jsonResponse(await getLanguageModelsByProvider(llmProvider, userId));
|
|
601
|
-
}
|
|
602
|
-
const imageProvider = parseProvider(path, "/image/");
|
|
603
|
-
if (imageProvider) {
|
|
604
|
-
if (request.method !== "GET")
|
|
605
|
-
return errorResponse(405, "Method not allowed");
|
|
606
|
-
return jsonResponse(await getImageModelsByProvider(imageProvider, userId));
|
|
607
|
-
}
|
|
608
|
-
if (path === "/tts") {
|
|
609
|
-
if (request.method !== "GET")
|
|
610
|
-
return errorResponse(405, "Method not allowed");
|
|
611
|
-
const availableIds = await getAvailableProviderIds(userId);
|
|
612
|
-
const providers = await Promise.all(availableIds.map((provider) => getTtsModelsByProvider(provider, userId)));
|
|
613
|
-
return jsonResponse(providers.flat());
|
|
614
|
-
}
|
|
615
|
-
const ttsProvider = parseProvider(path, "/tts/");
|
|
616
|
-
if (ttsProvider) {
|
|
617
|
-
if (request.method !== "GET")
|
|
618
|
-
return errorResponse(405, "Method not allowed");
|
|
619
|
-
return jsonResponse(await getTtsModelsByProvider(ttsProvider, userId));
|
|
620
|
-
}
|
|
621
|
-
const asrProvider = parseProvider(path, "/asr/");
|
|
622
|
-
if (asrProvider) {
|
|
623
|
-
if (request.method !== "GET")
|
|
624
|
-
return errorResponse(405, "Method not allowed");
|
|
625
|
-
return jsonResponse(await getAsrModelsByProvider(asrProvider, userId));
|
|
626
|
-
}
|
|
627
|
-
const videoProvider = parseProvider(path, "/video/");
|
|
628
|
-
if (videoProvider) {
|
|
629
|
-
if (request.method !== "GET")
|
|
630
|
-
return errorResponse(405, "Method not allowed");
|
|
631
|
-
return jsonResponse(await getVideoModelsByProvider(videoProvider, userId));
|
|
632
|
-
}
|
|
633
|
-
const embeddingProvider = parseProvider(path, "/embedding/");
|
|
634
|
-
if (embeddingProvider) {
|
|
635
|
-
if (request.method !== "GET")
|
|
636
|
-
return errorResponse(405, "Method not allowed");
|
|
637
|
-
return jsonResponse(await getEmbeddingModelsByProvider(embeddingProvider, userId));
|
|
638
|
-
}
|
|
639
|
-
if (path === "/ollama_model_info") {
|
|
640
|
-
if (request.method !== "GET")
|
|
641
|
-
return errorResponse(405, "Method not allowed");
|
|
642
|
-
return jsonResponse(null);
|
|
643
|
-
}
|
|
644
|
-
if (path === "/huggingface/try_cache_files") {
|
|
645
|
-
if (request.method !== "POST")
|
|
646
|
-
return errorResponse(405, "Method not allowed");
|
|
647
|
-
const body = await parseJsonBody(request);
|
|
648
|
-
if (!body)
|
|
649
|
-
return errorResponse(400, "Invalid JSON body");
|
|
650
|
-
const checked = await Promise.all(body.map(async (entry) => {
|
|
651
|
-
const repoId = entry.repo_id ?? "";
|
|
652
|
-
const repoPath = entry.path ?? "";
|
|
653
|
-
return {
|
|
182
|
+
else {
|
|
183
|
+
await bridge.downloadModel({
|
|
654
184
|
repo_id: repoId,
|
|
655
|
-
path:
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
return jsonResponse(checked);
|
|
662
|
-
}
|
|
663
|
-
if (path === "/huggingface/try_cache_repos") {
|
|
664
|
-
if (request.method !== "POST")
|
|
665
|
-
return errorResponse(405, "Method not allowed");
|
|
666
|
-
const body = await parseJsonBody(request);
|
|
667
|
-
if (!body)
|
|
668
|
-
return errorResponse(400, "Invalid JSON body");
|
|
669
|
-
const checked = await Promise.all(body.map(async (repoId) => ({
|
|
670
|
-
repo_id: repoId,
|
|
671
|
-
downloaded: await hasCachedFiles(repoId)
|
|
672
|
-
})));
|
|
673
|
-
return jsonResponse(checked);
|
|
674
|
-
}
|
|
675
|
-
if (path === "/huggingface/check_cache") {
|
|
676
|
-
if (request.method !== "POST")
|
|
677
|
-
return errorResponse(405, "Method not allowed");
|
|
678
|
-
const body = await parseJsonBody(request);
|
|
679
|
-
if (!body ||
|
|
680
|
-
typeof body.repo_id !== "string" ||
|
|
681
|
-
body.repo_id.length === 0) {
|
|
682
|
-
return errorResponse(400, "Invalid JSON body");
|
|
185
|
+
path: msg.path ?? null,
|
|
186
|
+
allow_patterns: msg.allow_patterns ?? null,
|
|
187
|
+
ignore_patterns: msg.ignore_patterns ?? null,
|
|
188
|
+
model_type: msg.model_type ?? null,
|
|
189
|
+
token
|
|
190
|
+
}, onProgress, requestId);
|
|
683
191
|
}
|
|
684
|
-
return jsonResponse(await checkHfCache(body));
|
|
685
|
-
}
|
|
686
|
-
if (path === "/huggingface/cache_status") {
|
|
687
|
-
if (request.method !== "POST")
|
|
688
|
-
return errorResponse(405, "Method not allowed");
|
|
689
|
-
const body = await parseJsonBody(request);
|
|
690
|
-
if (!body)
|
|
691
|
-
return errorResponse(400, "Invalid JSON body");
|
|
692
|
-
return jsonResponse(await fastCacheStatus(body));
|
|
693
192
|
}
|
|
694
|
-
|
|
695
|
-
if
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
return errorResponse(503, {
|
|
699
|
-
status: "unavailable",
|
|
700
|
-
message: "Not available in production"
|
|
701
|
-
});
|
|
702
|
-
// Streaming Ollama model pulls require Server-Sent Events with progress deltas.
|
|
703
|
-
// The TS standalone server does not implement this streaming protocol yet.
|
|
704
|
-
// Clients should use the Python backend or manage Ollama pulls directly via the Ollama HTTP API.
|
|
705
|
-
return errorResponse(501, "Streaming Ollama model pulls are not available in the TS standalone server. Use the Ollama API directly or the Python backend.");
|
|
706
|
-
}
|
|
707
|
-
if (path === "/huggingface/file_info") {
|
|
708
|
-
if (request.method !== "POST")
|
|
709
|
-
return errorResponse(405, "Method not allowed");
|
|
710
|
-
if (isProduction())
|
|
711
|
-
return jsonResponse([]);
|
|
712
|
-
const body = await parseJsonBody(request);
|
|
713
|
-
if (!body)
|
|
714
|
-
return errorResponse(400, "Invalid JSON body");
|
|
715
|
-
try {
|
|
716
|
-
const { getSecret } = await import("@nodetool-ai/models");
|
|
717
|
-
const token = (await getSecret("HF_TOKEN", "1")) ?? undefined;
|
|
718
|
-
const infos = await getHuggingfaceFileInfos(body, token);
|
|
719
|
-
return jsonResponse(infos);
|
|
720
|
-
}
|
|
721
|
-
catch {
|
|
722
|
-
return jsonResponse([]);
|
|
193
|
+
catch (err) {
|
|
194
|
+
// Suppress the redundant error frame if the worker already forwarded one.
|
|
195
|
+
if (!sawError) {
|
|
196
|
+
fail(err instanceof Error ? err.message : String(err));
|
|
723
197
|
}
|
|
724
198
|
}
|
|
725
|
-
return null;
|
|
726
|
-
}
|
|
727
|
-
export function toUnifiedModelsFromLanguage(models) {
|
|
728
|
-
return models.map((model) => toUnifiedModel(model, "language_model"));
|
|
729
199
|
}
|
|
730
200
|
//# sourceMappingURL=models-api.js.map
|