@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
|
@@ -0,0 +1,778 @@
|
|
|
1
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
2
|
+
import { invocationBelongsToApplication, deriveGenerationStatus, Prediction } from "@nodetool-ai/models";
|
|
3
|
+
import { generateMediaDataSchema } from "@nodetool-ai/protocol";
|
|
4
|
+
import { isSdkV1RetryableError } from "@nodetool-ai/protocol/api-schemas/sdk-v1.js";
|
|
5
|
+
import { chatTurnRegistry } from "../chat-turn-registry.js";
|
|
6
|
+
import { isDraining } from "../drain.js";
|
|
7
|
+
import { isAppSessionCommandAllowed } from "../lib/app-session-scope.js";
|
|
8
|
+
import { isFiniteNumber, isNonEmptyString, isNumber, isObjectLike, isRecord, isString } from "../lib/wire-values.js";
|
|
9
|
+
import { createCallerFactory } from "../trpc/index.js";
|
|
10
|
+
import { appRouter } from "../trpc/router.js";
|
|
11
|
+
const log = createLogger("nodetool.websocket.runner");
|
|
12
|
+
const referenceMediaDataSchema = generateMediaDataSchema.pick({
|
|
13
|
+
capability: true,
|
|
14
|
+
reference_asset_ids: true,
|
|
15
|
+
entity_ids: true,
|
|
16
|
+
reference_images: true,
|
|
17
|
+
reference_videos: true,
|
|
18
|
+
use_reference_video_audio: true
|
|
19
|
+
});
|
|
20
|
+
const PUBLIC_GENERATION_STATUSES = new Set([
|
|
21
|
+
"pending",
|
|
22
|
+
"running",
|
|
23
|
+
"recovering",
|
|
24
|
+
"completed",
|
|
25
|
+
"failed",
|
|
26
|
+
"cancelled",
|
|
27
|
+
"needs_attention",
|
|
28
|
+
"interrupted"
|
|
29
|
+
]);
|
|
30
|
+
function publicGenerationStatus(row) {
|
|
31
|
+
if (row.status === "interrupted")
|
|
32
|
+
return "interrupted";
|
|
33
|
+
if (row.lifecycle_owner !== "durable") {
|
|
34
|
+
return PUBLIC_GENERATION_STATUSES.has(row.status) ? row.status : "pending";
|
|
35
|
+
}
|
|
36
|
+
return deriveGenerationStatus(row);
|
|
37
|
+
}
|
|
38
|
+
function lifecycleError(row, key) {
|
|
39
|
+
const value = row.metadata?.[key];
|
|
40
|
+
return isString(value) ? value : null;
|
|
41
|
+
}
|
|
42
|
+
function durableLifecycleFields(row) {
|
|
43
|
+
if (row.lifecycle_owner !== "durable")
|
|
44
|
+
return {};
|
|
45
|
+
return {
|
|
46
|
+
submission_status: row.submission_status,
|
|
47
|
+
provider_status: row.provider_status,
|
|
48
|
+
output_status: row.output_status,
|
|
49
|
+
attachment_status: row.attachment_status,
|
|
50
|
+
submission_error: lifecycleError(row, "submission_error"),
|
|
51
|
+
provider_error: lifecycleError(row, "provider_error"),
|
|
52
|
+
output_error: lifecycleError(row, "output_error"),
|
|
53
|
+
attachment_error: lifecycleError(row, "attachment_error")
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/** Highest `job_seq` a resubscribing client claims to already hold. */
|
|
57
|
+
function resumeLastSeq(data) {
|
|
58
|
+
const raw = data["last_seq"];
|
|
59
|
+
return isFiniteNumber(raw) && raw > 0 ? raw : 0;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* The client's command surface: one dispatch table over the wire commands,
|
|
63
|
+
* plus the two guards a deployed app's visitor is held to. It is the one place
|
|
64
|
+
* that composes the other domain classes, and it composes them through their
|
|
65
|
+
* methods — `get_status` and `stop` ask the job region, `set_permission_mode`
|
|
66
|
+
* and `chat_message` ask the chat handler, `inference` and the direct
|
|
67
|
+
* generation commands ask the inference handler. None of their state is
|
|
68
|
+
* reachable from here.
|
|
69
|
+
*/
|
|
70
|
+
export class CommandRouter {
|
|
71
|
+
deps;
|
|
72
|
+
constructor(deps) {
|
|
73
|
+
this.deps = deps;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Answer one command. Returns the legacy reply frame the caller sends, or
|
|
77
|
+
* `null` when the handler already sent its own frame (every RPC command
|
|
78
|
+
* does, in {@link runRpc}).
|
|
79
|
+
*
|
|
80
|
+
* Unknown commands answer `{ error: "Unknown command" }` — a build that does
|
|
81
|
+
* not implement a command is not a malformed frame.
|
|
82
|
+
*/
|
|
83
|
+
async handle(command, data, requestId) {
|
|
84
|
+
const session = this.deps.session;
|
|
85
|
+
const jobId = isString(data.job_id) ? data.job_id : undefined;
|
|
86
|
+
const workflowId = isString(data.workflow_id)
|
|
87
|
+
? data.workflow_id
|
|
88
|
+
: undefined;
|
|
89
|
+
log.debug("Command", { command });
|
|
90
|
+
// A deployed app's visitor reaches this runner as the app's owner, so the
|
|
91
|
+
// dispatch below would answer them the way it answers the owner. It is an
|
|
92
|
+
// allowlist rather than a denylist so that a command added later is
|
|
93
|
+
// refused here until someone decides it belongs — the alternative is a
|
|
94
|
+
// stranger reading somebody's assets because a table entry grew.
|
|
95
|
+
if (session.appSession && !isAppSessionCommandAllowed(command)) {
|
|
96
|
+
log.warn("Command refused for an app session", {
|
|
97
|
+
command,
|
|
98
|
+
applicationId: session.appSession.applicationId
|
|
99
|
+
});
|
|
100
|
+
return { error: "This command is not available for a published app" };
|
|
101
|
+
}
|
|
102
|
+
// Every allowed command except `run_job` and `get_status` addresses a run
|
|
103
|
+
// that already exists, by id, and
|
|
104
|
+
// the runner resolves a run by (user, job id) — where the user is the app's
|
|
105
|
+
// *owner*. Without this, a job id from the owner's editor would replay
|
|
106
|
+
// that run's frames, or cancel it, over a visitor's connection. The
|
|
107
|
+
// ledger is what says which runs belong to this app: an app run reserves
|
|
108
|
+
// its row before the job exists, so a job with no row here was not started
|
|
109
|
+
// by this app. `run_job` is excluded because it *creates* the row — it
|
|
110
|
+
// reserves against the app's budget inside `admitApplicationRun`, and
|
|
111
|
+
// `confineAppSessionRun` above is what confines it.
|
|
112
|
+
if (session.appSession && jobId && command !== "run_job") {
|
|
113
|
+
const owned = await invocationBelongsToApplication(session.appSession.applicationId, jobId).catch((err) => {
|
|
114
|
+
// Fail closed: a ledger read that never completed is not evidence the
|
|
115
|
+
// run belongs to this app.
|
|
116
|
+
session.logError("app-session job ownership check failed", err);
|
|
117
|
+
return false;
|
|
118
|
+
});
|
|
119
|
+
if (!owned) {
|
|
120
|
+
log.warn("Job command refused for an app session", {
|
|
121
|
+
command,
|
|
122
|
+
jobId,
|
|
123
|
+
applicationId: session.appSession.applicationId
|
|
124
|
+
});
|
|
125
|
+
return { error: "That run does not belong to this app" };
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const handler = this.handlers[command];
|
|
129
|
+
if (!handler)
|
|
130
|
+
return { error: "Unknown command" };
|
|
131
|
+
return handler({ command, data, jobId, workflowId, requestId });
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Invoke a tRPC procedure and send back a single `rpc_response` frame
|
|
135
|
+
* correlating to the command's `request_id`. Returns `null` so the receive
|
|
136
|
+
* loop skips the legacy auto-send (the frame has already been sent here).
|
|
137
|
+
*
|
|
138
|
+
* Errors thrown by the procedure are mapped to `rpc_response.error` using
|
|
139
|
+
* the `apiCode` cause attached by `throwApiError` in the tRPC layer.
|
|
140
|
+
*
|
|
141
|
+
* Public because the lifecycle suite drives an RPC frame straight at it,
|
|
142
|
+
* without a tRPC caller behind the command it names.
|
|
143
|
+
*/
|
|
144
|
+
async runRpc(command, requestId, fn) {
|
|
145
|
+
if (!isNonEmptyString(requestId)) {
|
|
146
|
+
return { error: "request_id is required for RPC commands" };
|
|
147
|
+
}
|
|
148
|
+
try {
|
|
149
|
+
const result = await fn();
|
|
150
|
+
await this.deps.session.send({
|
|
151
|
+
type: "rpc_response",
|
|
152
|
+
request_id: requestId,
|
|
153
|
+
command,
|
|
154
|
+
result
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
const trpc = err;
|
|
159
|
+
const code = trpc.cause?.apiCode ?? trpc.code ?? "INTERNAL_ERROR";
|
|
160
|
+
const internalMessage = trpc.message ?? String(err);
|
|
161
|
+
const error = {
|
|
162
|
+
code,
|
|
163
|
+
message: internalMessage,
|
|
164
|
+
retryable: isSdkV1RetryableError(code, internalMessage),
|
|
165
|
+
apiCode: trpc.cause?.apiCode ?? null,
|
|
166
|
+
trpcCode: trpc.code
|
|
167
|
+
};
|
|
168
|
+
await this.deps.session.send({
|
|
169
|
+
type: "rpc_response",
|
|
170
|
+
request_id: requestId,
|
|
171
|
+
command,
|
|
172
|
+
error
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Refuse work that would start on a machine that is going away, then close
|
|
179
|
+
* the socket so the client's retry connects to one that is staying — as soon
|
|
180
|
+
* as the turn or run this connection is already driving has settled, since
|
|
181
|
+
* closing on top of that one would only strand its output. The error frame
|
|
182
|
+
* is sent here, so the caller returns `null` and the receive loop adds
|
|
183
|
+
* nothing after it.
|
|
184
|
+
*/
|
|
185
|
+
async refuseWhileDraining(scope) {
|
|
186
|
+
await this.deps.session.send({
|
|
187
|
+
type: "error",
|
|
188
|
+
message: "This server is restarting. Reconnect and try again.",
|
|
189
|
+
thread_id: scope.threadId ?? null,
|
|
190
|
+
workflow_id: scope.workflowId ?? null
|
|
191
|
+
});
|
|
192
|
+
this.deps.host.closeForDrain();
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Build a tRPC caller bound to this connection's `userId`. Used to dispatch
|
|
197
|
+
* the read-only RPC commands (list_workflows, get_workflow, list_assets,
|
|
198
|
+
* get_asset, list_nodes, get_node) onto the existing tRPC routers — single
|
|
199
|
+
* source of truth, no logic duplication.
|
|
200
|
+
*/
|
|
201
|
+
getTrpcCaller() {
|
|
202
|
+
const { session, apiOptions } = this.deps;
|
|
203
|
+
if (!session.nodeRegistry || !apiOptions || !session.pythonBridge) {
|
|
204
|
+
throw new Error("RPC commands require nodeRegistry, apiOptions, and pythonBridge");
|
|
205
|
+
}
|
|
206
|
+
const factory = createCallerFactory(appRouter);
|
|
207
|
+
return factory({
|
|
208
|
+
userId: session.userId,
|
|
209
|
+
registry: session.nodeRegistry,
|
|
210
|
+
apiOptions,
|
|
211
|
+
pythonBridge: session.pythonBridge,
|
|
212
|
+
getPythonBridgeReady: this.deps.getPythonBridgeReady ?? (() => true)
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
handlers = {
|
|
216
|
+
clear_models: () => this.deps.host.clearModels(),
|
|
217
|
+
run_job: async ({ data, workflowId }) => {
|
|
218
|
+
if (isDraining())
|
|
219
|
+
return this.refuseWhileDraining({ workflowId });
|
|
220
|
+
// SAFETY: the wire command's `data` is the run request. Every read
|
|
221
|
+
// is `req.workflow_id ?? …`, so the field the interface declares
|
|
222
|
+
// required is in practice optional — making it so in `@nodetool-ai/
|
|
223
|
+
// protocol` is the truthful fix and reaches every client.
|
|
224
|
+
await this.deps.jobs.runJob(data);
|
|
225
|
+
return { message: "Job started", workflow_id: workflowId ?? null };
|
|
226
|
+
},
|
|
227
|
+
reconnect_job: async ({ data, jobId, workflowId }) => {
|
|
228
|
+
if (!jobId)
|
|
229
|
+
return { error: "job_id is required" };
|
|
230
|
+
// Await so an error can't escape as an unhandled rejection; reconnectJob
|
|
231
|
+
// only replays state (it does not run the job), so this stays quick.
|
|
232
|
+
await this.deps.jobs
|
|
233
|
+
.reconnectJob(jobId, workflowId, resumeLastSeq(data))
|
|
234
|
+
.catch((err) => {
|
|
235
|
+
log.warn("reconnect_job failed", { jobId, error: String(err) });
|
|
236
|
+
});
|
|
237
|
+
return {
|
|
238
|
+
message: `Reconnecting to job ${jobId}`,
|
|
239
|
+
job_id: jobId,
|
|
240
|
+
workflow_id: workflowId ?? null
|
|
241
|
+
};
|
|
242
|
+
},
|
|
243
|
+
stream_input: async ({ data, jobId, workflowId }) => {
|
|
244
|
+
if (!jobId)
|
|
245
|
+
return { error: "job_id is required" };
|
|
246
|
+
const target = this.deps.jobs.resolveJobControl(jobId);
|
|
247
|
+
log.info("stream_input command", {
|
|
248
|
+
jobId,
|
|
249
|
+
hasActive: !!target,
|
|
250
|
+
inputName: data.input,
|
|
251
|
+
handle: data.handle,
|
|
252
|
+
hasValue: data.value !== undefined,
|
|
253
|
+
activeJobIds: this.deps.jobs.activeJobIds()
|
|
254
|
+
});
|
|
255
|
+
if (!target)
|
|
256
|
+
return { error: "No active job/context" };
|
|
257
|
+
const inputName = isString(data.input) ? data.input : "";
|
|
258
|
+
if (!inputName.trim())
|
|
259
|
+
return { error: "Invalid input name" };
|
|
260
|
+
const value = data.value;
|
|
261
|
+
const handle = isString(data.handle) ? data.handle : undefined;
|
|
262
|
+
try {
|
|
263
|
+
await target.hooks.pushInput(inputName, value, handle);
|
|
264
|
+
return {
|
|
265
|
+
message: "Input item streamed",
|
|
266
|
+
job_id: jobId,
|
|
267
|
+
workflow_id: workflowId ?? target.workflowId
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
catch (err) {
|
|
271
|
+
log.error("stream_input failed", {
|
|
272
|
+
error: err instanceof Error ? err.message : String(err)
|
|
273
|
+
});
|
|
274
|
+
return {
|
|
275
|
+
error: err instanceof Error ? err.message : String(err),
|
|
276
|
+
job_id: jobId,
|
|
277
|
+
workflow_id: workflowId ?? target.workflowId
|
|
278
|
+
};
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
end_input_stream: async ({ data, jobId, workflowId }) => {
|
|
282
|
+
if (!jobId)
|
|
283
|
+
return { error: "job_id is required" };
|
|
284
|
+
const target = this.deps.jobs.resolveJobControl(jobId);
|
|
285
|
+
if (!target)
|
|
286
|
+
return { error: "No active job/context" };
|
|
287
|
+
const inputName = isString(data.input) ? data.input : "";
|
|
288
|
+
if (!inputName.trim())
|
|
289
|
+
return { error: "Invalid input name" };
|
|
290
|
+
const handle = isString(data.handle) ? data.handle : undefined;
|
|
291
|
+
try {
|
|
292
|
+
target.hooks.finishInputStream(inputName, handle);
|
|
293
|
+
return {
|
|
294
|
+
message: "Input stream ended",
|
|
295
|
+
job_id: jobId,
|
|
296
|
+
workflow_id: workflowId ?? target.workflowId
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
catch (err) {
|
|
300
|
+
return {
|
|
301
|
+
error: err instanceof Error ? err.message : String(err),
|
|
302
|
+
job_id: jobId,
|
|
303
|
+
workflow_id: workflowId ?? target.workflowId
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
cancel_job: async ({ jobId, workflowId }) => {
|
|
308
|
+
if (!jobId)
|
|
309
|
+
return { error: "job_id is required" };
|
|
310
|
+
return this.deps.jobs.cancelJob(jobId, workflowId);
|
|
311
|
+
},
|
|
312
|
+
// Live parameter path: push property changes into a running job's
|
|
313
|
+
// node executors (e.g. synth knobs while a patch plays). Misses are
|
|
314
|
+
// not errors — the canvas already holds the value for the next run.
|
|
315
|
+
update_node_properties: async ({ data, jobId }) => {
|
|
316
|
+
if (!jobId)
|
|
317
|
+
return { error: "job_id is required" };
|
|
318
|
+
const nodeId = data.node_id;
|
|
319
|
+
const properties = data.properties;
|
|
320
|
+
if (!isNonEmptyString(nodeId)) {
|
|
321
|
+
return { error: "node_id is required" };
|
|
322
|
+
}
|
|
323
|
+
if (!isObjectLike(properties)) {
|
|
324
|
+
return { error: "properties must be an object" };
|
|
325
|
+
}
|
|
326
|
+
const target = this.deps.jobs.resolveJobControl(jobId);
|
|
327
|
+
const applied = target?.hooks.updateNodeProperties(nodeId, properties) ?? false;
|
|
328
|
+
return { applied };
|
|
329
|
+
},
|
|
330
|
+
get_status: async ({ jobId }) => this.deps.jobs.getStatus(jobId),
|
|
331
|
+
set_mode: async ({ data }) => {
|
|
332
|
+
const mode = data.mode;
|
|
333
|
+
if (mode !== "binary" && mode !== "text") {
|
|
334
|
+
return { error: "mode must be binary or text" };
|
|
335
|
+
}
|
|
336
|
+
this.deps.host.setMode(mode);
|
|
337
|
+
return { message: `Mode set to ${mode}` };
|
|
338
|
+
},
|
|
339
|
+
set_permission_mode: async ({ data }) => {
|
|
340
|
+
const threadId = data.thread_id;
|
|
341
|
+
const mode = data.permission_mode;
|
|
342
|
+
if (!isNonEmptyString(threadId)) {
|
|
343
|
+
return { error: "thread_id is required for set_permission_mode" };
|
|
344
|
+
}
|
|
345
|
+
if (mode !== "plan" && mode !== "default" && mode !== "auto") {
|
|
346
|
+
return { error: "permission_mode must be plan, default, or auto" };
|
|
347
|
+
}
|
|
348
|
+
this.deps.chat.setPermissionMode(threadId, mode);
|
|
349
|
+
return {
|
|
350
|
+
message: `Permission mode set to ${mode}`,
|
|
351
|
+
thread_id: threadId
|
|
352
|
+
};
|
|
353
|
+
},
|
|
354
|
+
chat_message: async ({ data }) => {
|
|
355
|
+
const { session, chat, host } = this.deps;
|
|
356
|
+
const threadId = data.thread_id;
|
|
357
|
+
if (!isNonEmptyString(threadId)) {
|
|
358
|
+
return { error: "thread_id is required for chat_message command" };
|
|
359
|
+
}
|
|
360
|
+
// Before the user message is persisted: a row written here would be
|
|
361
|
+
// answered by nothing, and the client's retry would send it twice.
|
|
362
|
+
if (isDraining())
|
|
363
|
+
return this.refuseWhileDraining({ threadId });
|
|
364
|
+
const { seq, signal, controller } = chat.beginTurn();
|
|
365
|
+
// A resilient session decouples the turn from this socket: frames are
|
|
366
|
+
// seq-stamped and buffered so a client that disconnects mid-turn can
|
|
367
|
+
// replay what it missed. Opening supersedes (aborts) any prior turn
|
|
368
|
+
// still running for this thread — including one detached from a dead
|
|
369
|
+
// connection.
|
|
370
|
+
const turn = chatTurnRegistry.open(session.requireUserId(), threadId, controller, host.chatTurnHooks());
|
|
371
|
+
turn.attach(host.chatDeliveryTarget, turn.lastSeq);
|
|
372
|
+
host.forgetAdoptedSession(threadId);
|
|
373
|
+
host.setChatTurnSession(turn);
|
|
374
|
+
// Error frames must be sent (and buffered) before the session
|
|
375
|
+
// finishes, so the catch runs inside the chain the finally closes.
|
|
376
|
+
void chat
|
|
377
|
+
.handleChatMessage(data, seq, signal)
|
|
378
|
+
.catch(async (err) => {
|
|
379
|
+
session.logError("chat_message processing failed", err);
|
|
380
|
+
await session.send({
|
|
381
|
+
type: "error",
|
|
382
|
+
message: err instanceof Error ? err.message : String(err),
|
|
383
|
+
thread_id: threadId
|
|
384
|
+
});
|
|
385
|
+
})
|
|
386
|
+
.finally(() => {
|
|
387
|
+
chat.endTurn(controller);
|
|
388
|
+
turn.finish();
|
|
389
|
+
if (host.getChatTurnSession() === turn) {
|
|
390
|
+
host.setChatTurnSession(null);
|
|
391
|
+
}
|
|
392
|
+
});
|
|
393
|
+
return {
|
|
394
|
+
message: "Chat message processing started",
|
|
395
|
+
thread_id: threadId
|
|
396
|
+
};
|
|
397
|
+
},
|
|
398
|
+
// Discovery for a client that starts with no local state (a page
|
|
399
|
+
// reload): report every turn of this user still running so the
|
|
400
|
+
// client can reattach each thread with `resume_chat`.
|
|
401
|
+
list_chat_turns: async () => {
|
|
402
|
+
const { session, host } = this.deps;
|
|
403
|
+
const sessions = chatTurnRegistry.listRunningForUser(session.requireUserId());
|
|
404
|
+
for (const s of sessions) {
|
|
405
|
+
await host.sendToSocket({
|
|
406
|
+
type: "chat_turn_active",
|
|
407
|
+
thread_id: s.threadId,
|
|
408
|
+
status: "running",
|
|
409
|
+
last_seq: s.lastSeq
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
return { message: "Chat turns listed", count: sessions.length };
|
|
413
|
+
},
|
|
414
|
+
resume_chat: async ({ data }) => {
|
|
415
|
+
const { session, host } = this.deps;
|
|
416
|
+
const threadId = isString(data.thread_id) ? data.thread_id : "";
|
|
417
|
+
if (!threadId) {
|
|
418
|
+
return { error: "thread_id is required for resume_chat command" };
|
|
419
|
+
}
|
|
420
|
+
const lastSeq = isFiniteNumber(data.last_seq) ? data.last_seq : 0;
|
|
421
|
+
const turn = chatTurnRegistry.get(session.requireUserId(), threadId);
|
|
422
|
+
if (!turn) {
|
|
423
|
+
// Nothing to replay: no turn ran here, or retention elapsed. The
|
|
424
|
+
// persisted thread history over REST is the client's fallback.
|
|
425
|
+
await host.sendToSocket({
|
|
426
|
+
type: "chat_resumed",
|
|
427
|
+
thread_id: threadId,
|
|
428
|
+
status: "unknown",
|
|
429
|
+
last_seq: 0,
|
|
430
|
+
replay_count: 0,
|
|
431
|
+
replay_incomplete: false
|
|
432
|
+
});
|
|
433
|
+
return { message: "No chat turn to resume", thread_id: threadId };
|
|
434
|
+
}
|
|
435
|
+
// last_seq <= 0 is a fresh client (page reload): it has no frame
|
|
436
|
+
// state, but the persisted head of the turn is reachable over REST.
|
|
437
|
+
// Replay only what REST cannot provide — frames after the turn's
|
|
438
|
+
// last `message` frame — and flag the replay incomplete so the
|
|
439
|
+
// client reconciles history from REST.
|
|
440
|
+
const fresh = lastSeq <= 0;
|
|
441
|
+
const { replay, incomplete } = turn.attach(host.chatDeliveryTarget, fresh ? turn.freshAttachSeq() : lastSeq);
|
|
442
|
+
if (turn.status === "running" && host.getChatTurnSession() !== turn) {
|
|
443
|
+
host.adoptSession(threadId, turn);
|
|
444
|
+
}
|
|
445
|
+
// Header first, then the missed tail; live frames queue behind them
|
|
446
|
+
// on the session's ordered delivery chain.
|
|
447
|
+
await turn.deliverReplay(host.chatDeliveryTarget, [
|
|
448
|
+
{
|
|
449
|
+
type: "chat_resumed",
|
|
450
|
+
thread_id: threadId,
|
|
451
|
+
status: turn.status,
|
|
452
|
+
last_seq: turn.lastSeq,
|
|
453
|
+
replay_count: replay.length,
|
|
454
|
+
replay_incomplete: fresh || incomplete
|
|
455
|
+
},
|
|
456
|
+
...replay
|
|
457
|
+
]);
|
|
458
|
+
return {
|
|
459
|
+
message: "Chat resumed",
|
|
460
|
+
thread_id: threadId,
|
|
461
|
+
replay_count: replay.length
|
|
462
|
+
};
|
|
463
|
+
},
|
|
464
|
+
inference: async ({ data }) => {
|
|
465
|
+
const { session, chat, inference } = this.deps;
|
|
466
|
+
const { seq, signal, controller } = chat.beginTurn();
|
|
467
|
+
const task = inference
|
|
468
|
+
.handleInference(data, seq, signal)
|
|
469
|
+
.finally(() => chat.endTurn(controller));
|
|
470
|
+
void task.catch(async (err) => {
|
|
471
|
+
session.logError("inference processing failed", err);
|
|
472
|
+
await session.send({
|
|
473
|
+
type: "error",
|
|
474
|
+
message: err instanceof Error ? err.message : String(err)
|
|
475
|
+
});
|
|
476
|
+
});
|
|
477
|
+
return { message: "Inference started" };
|
|
478
|
+
},
|
|
479
|
+
stop: async ({ data, jobId }) => {
|
|
480
|
+
const { session, chat, jobs, host } = this.deps;
|
|
481
|
+
const threadId = isString(data.thread_id) ? data.thread_id : undefined;
|
|
482
|
+
// Always increment seq to cancel any in-progress chat or inference
|
|
483
|
+
chat.bumpRequestSeq();
|
|
484
|
+
// …and abort it for real. The seq bump alone only discards output at
|
|
485
|
+
// yield boundaries; the signal interrupts blocked awaits and stops
|
|
486
|
+
// providers that own a subprocess.
|
|
487
|
+
chat.cancel();
|
|
488
|
+
host.cancelRpcCalls();
|
|
489
|
+
if (jobId) {
|
|
490
|
+
await jobs.stopJob(jobId);
|
|
491
|
+
}
|
|
492
|
+
const stopScope = threadId ?? jobId;
|
|
493
|
+
if (stopScope) {
|
|
494
|
+
host.cancelToolScope(stopScope);
|
|
495
|
+
}
|
|
496
|
+
// The thread's turn may be executing on a previous connection's
|
|
497
|
+
// runner (detached or adopted after a reconnect) — abort it there.
|
|
498
|
+
if (threadId) {
|
|
499
|
+
const registered = chatTurnRegistry.get(session.requireUserId(), threadId);
|
|
500
|
+
if (registered && registered.status === "running") {
|
|
501
|
+
registered.abort("stop");
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
await session.send({
|
|
505
|
+
type: "generation_stopped",
|
|
506
|
+
message: "Generation stopped by user",
|
|
507
|
+
job_id: jobId ?? null,
|
|
508
|
+
thread_id: threadId ?? null
|
|
509
|
+
});
|
|
510
|
+
return {
|
|
511
|
+
message: "Stop command processed",
|
|
512
|
+
job_id: jobId ?? null,
|
|
513
|
+
thread_id: threadId ?? null
|
|
514
|
+
};
|
|
515
|
+
},
|
|
516
|
+
list_workflows: async ({ command, data, requestId }) => {
|
|
517
|
+
const caller = this.getTrpcCaller();
|
|
518
|
+
return this.runRpc(command, requestId, () => caller.workflows.list(data));
|
|
519
|
+
},
|
|
520
|
+
get_workflow: async ({ command, data, requestId }) => {
|
|
521
|
+
const caller = this.getTrpcCaller();
|
|
522
|
+
return this.runRpc(command, requestId, () => caller.workflows.get({ id: String(data.id ?? "") }));
|
|
523
|
+
},
|
|
524
|
+
list_assets: async ({ command, data, requestId }) => {
|
|
525
|
+
const caller = this.getTrpcCaller();
|
|
526
|
+
return this.runRpc(command, requestId, () => caller.assets.list(data));
|
|
527
|
+
},
|
|
528
|
+
get_asset: async ({ command, data, requestId }) => {
|
|
529
|
+
const caller = this.getTrpcCaller();
|
|
530
|
+
return this.runRpc(command, requestId, () => caller.assets.get({ id: String(data.id ?? "") }));
|
|
531
|
+
},
|
|
532
|
+
list_nodes: async ({ command, data, requestId }) => {
|
|
533
|
+
const caller = this.getTrpcCaller();
|
|
534
|
+
return this.runRpc(command, requestId, () => caller.nodes.list(data));
|
|
535
|
+
},
|
|
536
|
+
get_node: async ({ command, data, requestId }) => {
|
|
537
|
+
const caller = this.getTrpcCaller();
|
|
538
|
+
return this.runRpc(command, requestId, () => caller.nodes.get({ node_type: String(data.node_type ?? "") }));
|
|
539
|
+
},
|
|
540
|
+
/**
|
|
541
|
+
* What became of a set of `generate_media` requests (PRD § 7.4).
|
|
542
|
+
*
|
|
543
|
+
* A `generate_media` reply is an `rpc_response` with no `job_id` and no
|
|
544
|
+
* `thread_id`, so it is written to the socket that asked and dropped if
|
|
545
|
+
* that socket has gone. A client that reloads mid-render therefore cannot
|
|
546
|
+
* receive it by re-subscribing — the frame was already delivered to a dead
|
|
547
|
+
* socket. The generation row outlives the socket, so it asks here instead,
|
|
548
|
+
* naming the request ids it persisted before sending.
|
|
549
|
+
*
|
|
550
|
+
* Answers only for the caller's own rows, and only for the ids it named:
|
|
551
|
+
* an id with no row comes back absent, which the client reads as "still
|
|
552
|
+
* unknown" rather than as a failure.
|
|
553
|
+
*/
|
|
554
|
+
lookup_generations: async ({ command, data, requestId }) => {
|
|
555
|
+
const userId = this.deps.session.requireUserId();
|
|
556
|
+
const ids = Array.isArray(data.request_ids)
|
|
557
|
+
? data.request_ids.filter(isString)
|
|
558
|
+
: [];
|
|
559
|
+
return this.runRpc(command, requestId, async () => {
|
|
560
|
+
const rows = await Prediction.byRequestIds(userId, ids);
|
|
561
|
+
// Newest first out of the query, so the first row for an id wins and
|
|
562
|
+
// a retry's later row does not lose to the attempt it replaced.
|
|
563
|
+
const seen = new Set();
|
|
564
|
+
const generations = [];
|
|
565
|
+
for (const row of rows) {
|
|
566
|
+
const id = row.request_id;
|
|
567
|
+
if (!id || seen.has(id)) {
|
|
568
|
+
continue;
|
|
569
|
+
}
|
|
570
|
+
seen.add(id);
|
|
571
|
+
const referenceFields = {};
|
|
572
|
+
if (row.parameters?.media_edit_references) {
|
|
573
|
+
referenceFields.media_edit_references = row.parameters.media_edit_references;
|
|
574
|
+
}
|
|
575
|
+
generations.push({
|
|
576
|
+
request_id: id,
|
|
577
|
+
generation_id: row.id,
|
|
578
|
+
status: publicGenerationStatus(row),
|
|
579
|
+
asset_ids: row.asset_ids ?? [],
|
|
580
|
+
error: row.error ?? null,
|
|
581
|
+
...referenceFields,
|
|
582
|
+
...durableLifecycleFields(row)
|
|
583
|
+
});
|
|
584
|
+
}
|
|
585
|
+
return { generations };
|
|
586
|
+
});
|
|
587
|
+
},
|
|
588
|
+
generate_text: async ({ command, data, requestId }) => {
|
|
589
|
+
const { defaults, inference } = this.deps;
|
|
590
|
+
const provider = String(data.provider ?? defaults.provider);
|
|
591
|
+
const model = String(data.model ?? defaults.model);
|
|
592
|
+
const rawMessages = Array.isArray(data.messages) ? data.messages : [];
|
|
593
|
+
// Content travels as a string or as content blocks. The blocks are how a
|
|
594
|
+
// caller sends a picture to look at — the storyboard's "Add your own
|
|
595
|
+
// style" reads reference images this way — and the providers take the
|
|
596
|
+
// same shape here as they do from a chat turn.
|
|
597
|
+
const messages = rawMessages.length > 0
|
|
598
|
+
? rawMessages.map((m) => {
|
|
599
|
+
const msg = m;
|
|
600
|
+
return {
|
|
601
|
+
role: isString(msg.role) ? msg.role : "user",
|
|
602
|
+
content: isString(msg.content)
|
|
603
|
+
? msg.content
|
|
604
|
+
: Array.isArray(msg.content)
|
|
605
|
+
? msg.content
|
|
606
|
+
: ""
|
|
607
|
+
};
|
|
608
|
+
})
|
|
609
|
+
: [];
|
|
610
|
+
if (messages.length === 0) {
|
|
611
|
+
const system = isString(data.system) ? data.system.trim() : "";
|
|
612
|
+
const prompt = isString(data.prompt) ? data.prompt : "";
|
|
613
|
+
if (system)
|
|
614
|
+
messages.push({ role: "system", content: system });
|
|
615
|
+
if (prompt.trim())
|
|
616
|
+
messages.push({ role: "user", content: prompt });
|
|
617
|
+
}
|
|
618
|
+
const schema = isRecord(data.schema)
|
|
619
|
+
? data.schema
|
|
620
|
+
: undefined;
|
|
621
|
+
return this.runRpc(command, requestId, () => inference.runDirectTextGeneration({
|
|
622
|
+
provider,
|
|
623
|
+
model,
|
|
624
|
+
messages,
|
|
625
|
+
maxTokens: isNumber(data.max_tokens)
|
|
626
|
+
? data.max_tokens
|
|
627
|
+
: undefined,
|
|
628
|
+
schema,
|
|
629
|
+
schemaName: isString(data.schema_name)
|
|
630
|
+
? data.schema_name
|
|
631
|
+
: "result",
|
|
632
|
+
schemaDescription: isString(data.schema_description)
|
|
633
|
+
? data.schema_description
|
|
634
|
+
: "Answer with the requested structure."
|
|
635
|
+
}));
|
|
636
|
+
},
|
|
637
|
+
generate_media: async ({ command, data, requestId }) => {
|
|
638
|
+
const { defaults, inference } = this.deps;
|
|
639
|
+
const rawMode = data.mode;
|
|
640
|
+
const mode = rawMode === "image_edit"
|
|
641
|
+
? "image_edit"
|
|
642
|
+
: rawMode === "inpaint"
|
|
643
|
+
? "inpaint"
|
|
644
|
+
: rawMode === "video"
|
|
645
|
+
? "video"
|
|
646
|
+
: rawMode === "video_edit"
|
|
647
|
+
? "video_edit"
|
|
648
|
+
: rawMode === "video_extend"
|
|
649
|
+
? "video_extend"
|
|
650
|
+
: rawMode === "audio"
|
|
651
|
+
? "audio"
|
|
652
|
+
: rawMode === "music"
|
|
653
|
+
? "music"
|
|
654
|
+
: "image";
|
|
655
|
+
const provider = String(data.provider ?? defaults.provider);
|
|
656
|
+
const model = String(data.model ?? defaults.model);
|
|
657
|
+
const prompt = String(data.prompt ?? "");
|
|
658
|
+
const sourceAssetId = isString(data.source_asset_id)
|
|
659
|
+
? data.source_asset_id
|
|
660
|
+
: undefined;
|
|
661
|
+
const maskAssetId = isString(data.mask_asset_id)
|
|
662
|
+
? data.mask_asset_id
|
|
663
|
+
: undefined;
|
|
664
|
+
const width = isNumber(data.width) ? data.width : undefined;
|
|
665
|
+
const height = isNumber(data.height)
|
|
666
|
+
? data.height
|
|
667
|
+
: undefined;
|
|
668
|
+
const aspectRatio = isString(data.aspect_ratio)
|
|
669
|
+
? data.aspect_ratio
|
|
670
|
+
: undefined;
|
|
671
|
+
const resolution = isString(data.resolution)
|
|
672
|
+
? data.resolution
|
|
673
|
+
: undefined;
|
|
674
|
+
const strength = isNumber(data.strength)
|
|
675
|
+
? data.strength
|
|
676
|
+
: undefined;
|
|
677
|
+
const numInferenceSteps = isNumber(data.num_inference_steps)
|
|
678
|
+
? data.num_inference_steps
|
|
679
|
+
: undefined;
|
|
680
|
+
const seed = isNumber(data.seed) ? data.seed : undefined;
|
|
681
|
+
const durationSeconds = isNumber(data.duration)
|
|
682
|
+
? data.duration
|
|
683
|
+
: undefined;
|
|
684
|
+
const variations = isNumber(data.variations)
|
|
685
|
+
? data.variations
|
|
686
|
+
: undefined;
|
|
687
|
+
const voice = isString(data.voice) ? data.voice : undefined;
|
|
688
|
+
const speed = isNumber(data.speed) ? data.speed : undefined;
|
|
689
|
+
const language = isString(data.language)
|
|
690
|
+
? data.language
|
|
691
|
+
: undefined;
|
|
692
|
+
const instructions = isString(data.instructions)
|
|
693
|
+
? data.instructions
|
|
694
|
+
: undefined;
|
|
695
|
+
const audioFormat = isString(data.audio_format)
|
|
696
|
+
? data.audio_format
|
|
697
|
+
: undefined;
|
|
698
|
+
const projectId = isString(data.project_id) ? data.project_id : undefined;
|
|
699
|
+
const rawSourceContext = isRecord(data.source_context)
|
|
700
|
+
? data.source_context
|
|
701
|
+
: undefined;
|
|
702
|
+
let sourceContext = rawSourceContext &&
|
|
703
|
+
isString(rawSourceContext.sequence_id) &&
|
|
704
|
+
isString(rawSourceContext.clip_id) &&
|
|
705
|
+
isString(rawSourceContext.source_asset_id) &&
|
|
706
|
+
isNumber(rawSourceContext.source_start_ms) &&
|
|
707
|
+
isNumber(rawSourceContext.source_end_ms) &&
|
|
708
|
+
isNumber(rawSourceContext.timeline_start_ms) &&
|
|
709
|
+
isNumber(rawSourceContext.timeline_duration_ms) &&
|
|
710
|
+
isNumber(rawSourceContext.speed_multiplier)
|
|
711
|
+
? {
|
|
712
|
+
sequenceId: rawSourceContext.sequence_id,
|
|
713
|
+
clipId: rawSourceContext.clip_id,
|
|
714
|
+
sourceAssetId: rawSourceContext.source_asset_id,
|
|
715
|
+
sourceStartMs: rawSourceContext.source_start_ms,
|
|
716
|
+
sourceEndMs: rawSourceContext.source_end_ms,
|
|
717
|
+
timelineStartMs: rawSourceContext.timeline_start_ms,
|
|
718
|
+
timelineDurationMs: rawSourceContext.timeline_duration_ms,
|
|
719
|
+
speedMultiplier: rawSourceContext.speed_multiplier
|
|
720
|
+
}
|
|
721
|
+
: undefined;
|
|
722
|
+
if (sourceContext && isString(rawSourceContext?.source_take_id)) {
|
|
723
|
+
sourceContext = {
|
|
724
|
+
...sourceContext,
|
|
725
|
+
sourceTakeId: rawSourceContext.source_take_id
|
|
726
|
+
};
|
|
727
|
+
}
|
|
728
|
+
return this.runRpc(command, requestId, () => {
|
|
729
|
+
const references = referenceMediaDataSchema.parse(data);
|
|
730
|
+
return inference.runDirectMediaGeneration({
|
|
731
|
+
mode,
|
|
732
|
+
provider,
|
|
733
|
+
model,
|
|
734
|
+
prompt,
|
|
735
|
+
sourceAssetId,
|
|
736
|
+
maskAssetId,
|
|
737
|
+
width,
|
|
738
|
+
height,
|
|
739
|
+
aspectRatio,
|
|
740
|
+
resolution,
|
|
741
|
+
strength,
|
|
742
|
+
numInferenceSteps,
|
|
743
|
+
seed,
|
|
744
|
+
durationSeconds,
|
|
745
|
+
extensionMode: data.extension_mode === "start" || data.extension_mode === "end"
|
|
746
|
+
? data.extension_mode
|
|
747
|
+
: undefined,
|
|
748
|
+
variations,
|
|
749
|
+
voice,
|
|
750
|
+
speed,
|
|
751
|
+
language,
|
|
752
|
+
instructions,
|
|
753
|
+
audioFormat,
|
|
754
|
+
capability: references.capability,
|
|
755
|
+
referenceAssetIds: references.reference_asset_ids,
|
|
756
|
+
entityIds: references.entity_ids,
|
|
757
|
+
referenceImages: references.reference_images,
|
|
758
|
+
referenceVideos: references.reference_videos,
|
|
759
|
+
useReferenceVideoAudio: references.use_reference_video_audio,
|
|
760
|
+
projectId,
|
|
761
|
+
sourceContext,
|
|
762
|
+
requestId
|
|
763
|
+
});
|
|
764
|
+
});
|
|
765
|
+
},
|
|
766
|
+
transcribe_audio: async ({ command, data, requestId }) => {
|
|
767
|
+
const { defaults, inference } = this.deps;
|
|
768
|
+
const provider = String(data.provider ?? defaults.provider);
|
|
769
|
+
const model = String(data.model ?? defaults.model);
|
|
770
|
+
const assetId = isString(data.asset_id) ? data.asset_id : "";
|
|
771
|
+
const language = isString(data.language)
|
|
772
|
+
? data.language
|
|
773
|
+
: undefined;
|
|
774
|
+
return this.runRpc(command, requestId, () => inference.runDirectTranscription({ provider, model, assetId, language }));
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
}
|
|
778
|
+
//# sourceMappingURL=commands.js.map
|