@nodetool-ai/websocket 0.7.0-rc.23 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +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 +82 -14
- 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/error-traces.d.ts +56 -0
- package/dist/error-traces.d.ts.map +1 -0
- package/dist/error-traces.js +179 -0
- package/dist/error-traces.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/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 +307 -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 +219 -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 +628 -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 +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/interrupted-jobs.d.ts +14 -0
- package/dist/interrupted-jobs.d.ts.map +1 -0
- package/dist/interrupted-jobs.js +28 -0
- package/dist/interrupted-jobs.js.map +1 -0
- 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-instances-service.d.ts +1284 -0
- package/dist/lib/app-instances-service.d.ts.map +1 -0
- package/dist/lib/app-instances-service.js +378 -0
- package/dist/lib/app-instances-service.js.map +1 -0
- package/dist/lib/app-run-cancellation.d.ts +4 -0
- package/dist/lib/app-run-cancellation.d.ts.map +1 -0
- package/dist/lib/app-run-cancellation.js +28 -0
- package/dist/lib/app-run-cancellation.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 +354 -0
- package/dist/lib/applications-service.d.ts.map +1 -0
- package/dist/lib/applications-service.js +507 -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 +49 -1
- package/dist/lib/asset-paths.d.ts.map +1 -1
- package/dist/lib/asset-paths.js +127 -31
- 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 +89 -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 +335 -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 +296 -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 +52 -0
- package/dist/lib/example-apps.d.ts.map +1 -0
- package/dist/lib/example-apps.js +192 -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/http-tracing.d.ts +12 -0
- package/dist/lib/http-tracing.d.ts.map +1 -0
- package/dist/lib/http-tracing.js +81 -0
- package/dist/lib/http-tracing.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 +33 -0
- package/dist/lib/media.d.ts.map +1 -0
- package/dist/lib/media.js +110 -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 +102 -0
- package/dist/lib/public-routes.d.ts.map +1 -0
- package/dist/lib/public-routes.js +168 -0
- package/dist/lib/public-routes.js.map +1 -0
- package/dist/lib/public-workflow-share.d.ts +20 -0
- package/dist/lib/public-workflow-share.d.ts.map +1 -0
- package/dist/lib/public-workflow-share.js +45 -0
- package/dist/lib/public-workflow-share.js.map +1 -0
- package/dist/lib/run-trace-live-delivery.d.ts +25 -0
- package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
- package/dist/lib/run-trace-live-delivery.js +91 -0
- package/dist/lib/run-trace-live-delivery.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/test-ui-run-routes.d.ts +8 -0
- package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
- package/dist/lib/test-ui-run-routes.js +42 -0
- package/dist/lib/test-ui-run-routes.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 +305 -0
- package/dist/lib/thumbnail.js.map +1 -0
- package/dist/lib/timeline-bundle.d.ts +1821 -0
- package/dist/lib/timeline-bundle.d.ts.map +1 -0
- package/dist/lib/timeline-bundle.js +342 -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 +546 -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 +197 -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 +1147 -0
- package/dist/mcp-agent-tools.js.map +1 -0
- package/dist/mcp-client-config.d.ts +64 -0
- package/dist/mcp-client-config.d.ts.map +1 -0
- package/dist/mcp-client-config.js +353 -0
- package/dist/mcp-client-config.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 +61 -5
- package/dist/models-api.d.ts.map +1 -1
- package/dist/models-api.js +182 -689
- 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 +163 -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 +106 -297
- package/dist/plugins/websocket.js.map +1 -1
- package/dist/python-bridge-gate.d.ts +28 -0
- package/dist/python-bridge-gate.d.ts.map +1 -0
- package/dist/python-bridge-gate.js +36 -0
- package/dist/python-bridge-gate.js.map +1 -0
- 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/app-runs.d.ts +4 -0
- package/dist/routes/app-runs.d.ts.map +1 -0
- package/dist/routes/app-runs.js +173 -0
- package/dist/routes/app-runs.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 +32 -0
- package/dist/routes/js-scripts.d.ts.map +1 -0
- package/dist/routes/js-scripts.js +498 -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 +29 -51
- 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/public-shared-workflows.d.ts +16 -0
- package/dist/routes/public-shared-workflows.d.ts.map +1 -0
- package/dist/routes/public-shared-workflows.js +55 -0
- package/dist/routes/public-shared-workflows.js.map +1 -0
- package/dist/routes/run-spans.d.ts +4 -0
- package/dist/routes/run-spans.d.ts.map +1 -0
- package/dist/routes/run-spans.js +53 -0
- package/dist/routes/run-spans.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 +51 -0
- package/dist/routes/timeline-fonts.d.ts.map +1 -0
- package/dist/routes/timeline-fonts.js +195 -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 +950 -47
- 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 +277 -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 +1091 -206
- package/dist/server.js.map +1 -1
- package/dist/session/app-run-fold.d.ts +7 -0
- package/dist/session/app-run-fold.d.ts.map +1 -0
- package/dist/session/app-run-fold.js +45 -0
- package/dist/session/app-run-fold.js.map +1 -0
- 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 +502 -0
- package/dist/session/chat-prompt.js.map +1 -0
- package/dist/session/chat-turn.d.ts +337 -0
- package/dist/session/chat-turn.d.ts.map +1 -0
- package/dist/session/chat-turn.js +3612 -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 +784 -0
- package/dist/session/commands.js.map +1 -0
- package/dist/session/inference.d.ts +218 -0
- package/dist/session/inference.d.ts.map +1 -0
- package/dist/session/inference.js +1143 -0
- package/dist/session/inference.js.map +1 -0
- package/dist/session/job-execution.d.ts +484 -0
- package/dist/session/job-execution.d.ts.map +1 -0
- package/dist/session/job-execution.js +2379 -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 +28 -0
- package/dist/session/model-interfaces.d.ts.map +1 -0
- package/dist/session/model-interfaces.js +133 -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 +14 -0
- package/dist/storage-retention.d.ts.map +1 -0
- package/dist/storage-retention.js +95 -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 +207 -42
- package/dist/test-ui-server.js.map +1 -1
- package/dist/timeline-generation-recovery.d.ts +4 -0
- package/dist/timeline-generation-recovery.d.ts.map +1 -0
- package/dist/timeline-generation-recovery.js +72 -0
- package/dist/timeline-generation-recovery.js.map +1 -0
- 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 +24 -0
- package/dist/trpc/error-logging.d.ts.map +1 -0
- package/dist/trpc/error-logging.js +48 -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 +100 -2540
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +58 -6
- 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/app-instances.d.ts +2269 -0
- package/dist/trpc/routers/app-instances.d.ts.map +1 -0
- package/dist/trpc/routers/app-instances.js +52 -0
- package/dist/trpc/routers/app-instances.js.map +1 -0
- package/dist/trpc/routers/app-runs.d.ts +1092 -0
- package/dist/trpc/routers/app-runs.d.ts.map +1 -0
- package/dist/trpc/routers/app-runs.js +28 -0
- package/dist/trpc/routers/app-runs.js.map +1 -0
- package/dist/trpc/routers/applications.d.ts +2212 -0
- package/dist/trpc/routers/applications.d.ts.map +1 -0
- package/dist/trpc/routers/applications.js +221 -0
- package/dist/trpc/routers/applications.js.map +1 -0
- package/dist/trpc/routers/assets.d.ts +194 -42
- package/dist/trpc/routers/assets.d.ts.map +1 -1
- package/dist/trpc/routers/assets.js +503 -105
- package/dist/trpc/routers/assets.js.map +1 -1
- package/dist/trpc/routers/bug-reports.d.ts +33 -0
- package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
- package/dist/trpc/routers/bug-reports.js +69 -0
- package/dist/trpc/routers/bug-reports.js.map +1 -0
- 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 +29 -0
- package/dist/trpc/routers/documents.js.map +1 -0
- package/dist/trpc/routers/error-traces.d.ts +132 -0
- package/dist/trpc/routers/error-traces.d.ts.map +1 -0
- package/dist/trpc/routers/error-traces.js +118 -0
- package/dist/trpc/routers/error-traces.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/gameDraftHistory.d.ts +8 -0
- package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
- package/dist/trpc/routers/gameDraftHistory.js +40 -0
- package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
- package/dist/trpc/routers/games.d.ts +26502 -0
- package/dist/trpc/routers/games.d.ts.map +1 -0
- package/dist/trpc/routers/games.js +674 -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 +117 -21
- package/dist/trpc/routers/jobs.d.ts.map +1 -1
- package/dist/trpc/routers/jobs.js +191 -30
- 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 +4 -2
- package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
- package/dist/trpc/routers/mcp-config.js +46 -206
- 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 +1544 -249
- package/dist/trpc/routers/models.d.ts.map +1 -1
- package/dist/trpc/routers/models.js +624 -318
- 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/runs.d.ts +472 -0
- package/dist/trpc/routers/runs.d.ts.map +1 -0
- package/dist/trpc/routers/runs.js +40 -0
- package/dist/trpc/routers/runs.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 +180 -10
- package/dist/trpc/routers/settings.d.ts.map +1 -1
- package/dist/trpc/routers/settings.js +125 -33
- package/dist/trpc/routers/settings.js.map +1 -1
- package/dist/trpc/routers/sketch.d.ts +868 -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 +6639 -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 +9085 -0
- package/dist/trpc/routers/timeline.d.ts.map +1 -0
- package/dist/trpc/routers/timeline.js +669 -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 +243 -0
- package/dist/trpc/routers/worker.d.ts.map +1 -0
- package/dist/trpc/routers/worker.js +221 -0
- package/dist/trpc/routers/worker.js.map +1 -0
- package/dist/trpc/routers/workflows.d.ts +428 -187
- package/dist/trpc/routers/workflows.d.ts.map +1 -1
- package/dist/trpc/routers/workflows.js +347 -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 +1139 -0
- package/dist/trpc/sandbox-coverage.js.map +1 -0
- package/dist/websocket-client-session.d.ts +322 -0
- package/dist/websocket-client-session.d.ts.map +1 -0
- package/dist/websocket-client-session.js +1267 -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 +97 -36
- 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,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The auth-exemption allowlist predicates used by the server's `onRequest`
|
|
3
|
+
* hook.
|
|
4
|
+
*
|
|
5
|
+
* These live in their own module so they are testable without booting the
|
|
6
|
+
* server (`server.ts` is an entry point: importing it opens the database and
|
|
7
|
+
* binds a port). Getting an entry wrong here is an unauthenticated read of
|
|
8
|
+
* someone's data, so each predicate is deliberately an allowlist of exact
|
|
9
|
+
* paths or prefixes that carry no per-caller state.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Read-only workflow GETs that carry no per-user data: the shipped example
|
|
13
|
+
* templates and workflows the owner explicitly marked `access: "public"`.
|
|
14
|
+
*
|
|
15
|
+
* Nothing that reads the *caller's* library belongs here. The REST handlers
|
|
16
|
+
* resolve identity from the (server-set) `x-user-id` header and fall back to
|
|
17
|
+
* user "1" when it is absent, so an auth-exempt route serves the local user's
|
|
18
|
+
* private workflows — full graph included — to anyone who can reach the port.
|
|
19
|
+
* That is exactly the disclosure the "Remote access requires authentication"
|
|
20
|
+
* 401 exists to prevent, so `/api/workflows`, `/api/workflows/:id`,
|
|
21
|
+
* `/api/workflows/names`, `/api/workflows/tools`, and `:id/dsl-export` all
|
|
22
|
+
* stay behind auth. A genuinely public workflow is still reachable
|
|
23
|
+
* unauthenticated at `/api/workflows/public/:id`.
|
|
24
|
+
*/
|
|
25
|
+
export declare function isPublicWorkflowMetadataRequest(pathname: string, method: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* OAuth paths reachable without a session. Only the two browser redirect
|
|
28
|
+
* targets qualify: the identity provider sends the user back with no
|
|
29
|
+
* `Authorization` header, and the handlers authenticate the callback through
|
|
30
|
+
* the single-use PKCE `state` they minted at `/start`.
|
|
31
|
+
*
|
|
32
|
+
* Every other `/api/oauth/*` path reads or mutates stored credentials for the
|
|
33
|
+
* caller's user id, so exempting the whole prefix let an unauthenticated
|
|
34
|
+
* caller enumerate linked accounts (`/tokens`), pull the linked third-party
|
|
35
|
+
* profile and email (`/hf/whoami`, `/github/user`), force token refreshes, and
|
|
36
|
+
* delete credentials (`/openai/disconnect`) as user "1". The OpenAI (Codex)
|
|
37
|
+
* flow needs no entry: it redirects to a loopback listener this process binds,
|
|
38
|
+
* not to a server route.
|
|
39
|
+
*/
|
|
40
|
+
export declare function isPublicOAuthRequest(pathname: string): boolean;
|
|
41
|
+
/**
|
|
42
|
+
* The MCP OAuth 2.1 authorization-server + resource-metadata surface
|
|
43
|
+
* (`docs/mcp-oauth-design.md`, `routes/oauth-as.ts`). Every one of these
|
|
44
|
+
* paths authenticates on its own terms — well-known documents carry no
|
|
45
|
+
* per-caller state, and `/oauth/authorize|token|register|revoke` validate a
|
|
46
|
+
* client, a PKCE verifier, or a bearer token, never a session. The two
|
|
47
|
+
* well-known prefixes are matched with `startsWith` so the path-aware form
|
|
48
|
+
* (`…/oauth-protected-resource/mcp`) and the root form
|
|
49
|
+
* (`…/oauth-protected-resource`) both clear under one entry, same as the
|
|
50
|
+
* file's other prefix rules.
|
|
51
|
+
*
|
|
52
|
+
* `/oauth/consent` is deliberately absent: it is an SPA page, not an API
|
|
53
|
+
* route, and its data comes from an authenticated tRPC call
|
|
54
|
+
* (`agentAccess.getOauthRequest`) that goes through the normal auth hook.
|
|
55
|
+
* Exempting it here would serve the page's HTML shell to a caller with no
|
|
56
|
+
* session, which is fine, but the shell carries no data — the tRPC calls it
|
|
57
|
+
* makes still require login, so there is nothing to gain and a naming
|
|
58
|
+
* collision with the four API paths to avoid.
|
|
59
|
+
*/
|
|
60
|
+
export declare function isPublicMcpOauthAsRequest(pathname: string): boolean;
|
|
61
|
+
/**
|
|
62
|
+
* The two routes a deployed mini app is served from: read the app, and mint
|
|
63
|
+
* the short-lived session its runs go through. Both take the deployment token
|
|
64
|
+
* from the path, and that token is the credential — an unguessable 24-byte
|
|
65
|
+
* secret its owner minted and can revoke.
|
|
66
|
+
*
|
|
67
|
+
* The prefix is exact and shallow (`/api/apps/`, not `/api/applications/`) so
|
|
68
|
+
* it can never widen onto the owner-scoped application routes, which read the
|
|
69
|
+
* caller's own library and stay behind auth. Nothing here reads a caller's
|
|
70
|
+
* identity: both handlers resolve everything from the token, and both refuse
|
|
71
|
+
* outside production, where the surface does not exist at all.
|
|
72
|
+
*/
|
|
73
|
+
export declare function isPublicAppDeploymentRequest(pathname: string, method: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* The read behind a workflow's public share link. The token in the path is
|
|
76
|
+
* the credential: an unguessable 24-byte secret the owner minted and can
|
|
77
|
+
* revoke. Only a GET of exactly one segment qualifies, and the prefix sits
|
|
78
|
+
* outside `/api/workflows/` so it can never widen onto the caller's library.
|
|
79
|
+
*/
|
|
80
|
+
export declare function isPublicSharedWorkflowRequest(pathname: string, method: string): boolean;
|
|
81
|
+
/**
|
|
82
|
+
* The fal callback authenticates itself with the provider's Ed25519
|
|
83
|
+
* signature. Only POSTs to the exact callback shape are exempt; neighbouring
|
|
84
|
+
* provider routes and arbitrary path suffixes remain behind session auth.
|
|
85
|
+
*/
|
|
86
|
+
export declare function isPublicFalWebhookRequest(pathname: string, method: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* The AtlasCloud callback authenticates itself with the provider's Ed25519
|
|
89
|
+
* signature over the raw body. Only POSTs to the exact callback path are
|
|
90
|
+
* exempt; neighbouring provider routes stay behind session auth.
|
|
91
|
+
*/
|
|
92
|
+
export declare function isPublicAtlasCloudWebhookRequest(pathname: string, method: string): boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Paths that skip session auth in the server's `onRequest` hook. Every entry
|
|
95
|
+
* must carry no per-caller private state, or authenticate on its own (webhook
|
|
96
|
+
* secret, OAuth PKCE state, KIE webhook signature, fal and AtlasCloud Ed25519
|
|
97
|
+
* signatures).
|
|
98
|
+
* All of these are still
|
|
99
|
+
* covered by the global `@fastify/rate-limit` plugin registered before auth.
|
|
100
|
+
*/
|
|
101
|
+
export declare function isPublicAuthExemptRoute(pathname: string, method: string): boolean;
|
|
102
|
+
//# sourceMappingURL=public-routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-routes.d.ts","sourceRoot":"","sources":["../../src/lib/public-routes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;;;;;;;GAaG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAQT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAK9D;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CASnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,gCAAgC,CAC9C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAIT;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,CAyBT"}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The auth-exemption allowlist predicates used by the server's `onRequest`
|
|
3
|
+
* hook.
|
|
4
|
+
*
|
|
5
|
+
* These live in their own module so they are testable without booting the
|
|
6
|
+
* server (`server.ts` is an entry point: importing it opens the database and
|
|
7
|
+
* binds a port). Getting an entry wrong here is an unauthenticated read of
|
|
8
|
+
* someone's data, so each predicate is deliberately an allowlist of exact
|
|
9
|
+
* paths or prefixes that carry no per-caller state.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Read-only workflow GETs that carry no per-user data: the shipped example
|
|
13
|
+
* templates and workflows the owner explicitly marked `access: "public"`.
|
|
14
|
+
*
|
|
15
|
+
* Nothing that reads the *caller's* library belongs here. The REST handlers
|
|
16
|
+
* resolve identity from the (server-set) `x-user-id` header and fall back to
|
|
17
|
+
* user "1" when it is absent, so an auth-exempt route serves the local user's
|
|
18
|
+
* private workflows — full graph included — to anyone who can reach the port.
|
|
19
|
+
* That is exactly the disclosure the "Remote access requires authentication"
|
|
20
|
+
* 401 exists to prevent, so `/api/workflows`, `/api/workflows/:id`,
|
|
21
|
+
* `/api/workflows/names`, `/api/workflows/tools`, and `:id/dsl-export` all
|
|
22
|
+
* stay behind auth. A genuinely public workflow is still reachable
|
|
23
|
+
* unauthenticated at `/api/workflows/public/:id`.
|
|
24
|
+
*/
|
|
25
|
+
export function isPublicWorkflowMetadataRequest(pathname, method) {
|
|
26
|
+
if (method !== "GET")
|
|
27
|
+
return false;
|
|
28
|
+
return (pathname === "/api/workflows/public" ||
|
|
29
|
+
pathname.startsWith("/api/workflows/public/") ||
|
|
30
|
+
pathname === "/api/workflows/examples" ||
|
|
31
|
+
pathname.startsWith("/api/workflows/examples/"));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* OAuth paths reachable without a session. Only the two browser redirect
|
|
35
|
+
* targets qualify: the identity provider sends the user back with no
|
|
36
|
+
* `Authorization` header, and the handlers authenticate the callback through
|
|
37
|
+
* the single-use PKCE `state` they minted at `/start`.
|
|
38
|
+
*
|
|
39
|
+
* Every other `/api/oauth/*` path reads or mutates stored credentials for the
|
|
40
|
+
* caller's user id, so exempting the whole prefix let an unauthenticated
|
|
41
|
+
* caller enumerate linked accounts (`/tokens`), pull the linked third-party
|
|
42
|
+
* profile and email (`/hf/whoami`, `/github/user`), force token refreshes, and
|
|
43
|
+
* delete credentials (`/openai/disconnect`) as user "1". The OpenAI (Codex)
|
|
44
|
+
* flow needs no entry: it redirects to a loopback listener this process binds,
|
|
45
|
+
* not to a server route.
|
|
46
|
+
*/
|
|
47
|
+
export function isPublicOAuthRequest(pathname) {
|
|
48
|
+
return (pathname === "/api/oauth/hf/callback" ||
|
|
49
|
+
pathname === "/api/oauth/github/callback");
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The MCP OAuth 2.1 authorization-server + resource-metadata surface
|
|
53
|
+
* (`docs/mcp-oauth-design.md`, `routes/oauth-as.ts`). Every one of these
|
|
54
|
+
* paths authenticates on its own terms — well-known documents carry no
|
|
55
|
+
* per-caller state, and `/oauth/authorize|token|register|revoke` validate a
|
|
56
|
+
* client, a PKCE verifier, or a bearer token, never a session. The two
|
|
57
|
+
* well-known prefixes are matched with `startsWith` so the path-aware form
|
|
58
|
+
* (`…/oauth-protected-resource/mcp`) and the root form
|
|
59
|
+
* (`…/oauth-protected-resource`) both clear under one entry, same as the
|
|
60
|
+
* file's other prefix rules.
|
|
61
|
+
*
|
|
62
|
+
* `/oauth/consent` is deliberately absent: it is an SPA page, not an API
|
|
63
|
+
* route, and its data comes from an authenticated tRPC call
|
|
64
|
+
* (`agentAccess.getOauthRequest`) that goes through the normal auth hook.
|
|
65
|
+
* Exempting it here would serve the page's HTML shell to a caller with no
|
|
66
|
+
* session, which is fine, but the shell carries no data — the tRPC calls it
|
|
67
|
+
* makes still require login, so there is nothing to gain and a naming
|
|
68
|
+
* collision with the four API paths to avoid.
|
|
69
|
+
*/
|
|
70
|
+
export function isPublicMcpOauthAsRequest(pathname) {
|
|
71
|
+
return (pathname.startsWith("/.well-known/oauth-protected-resource") ||
|
|
72
|
+
pathname.startsWith("/.well-known/oauth-authorization-server") ||
|
|
73
|
+
pathname === "/oauth/authorize" ||
|
|
74
|
+
pathname === "/oauth/token" ||
|
|
75
|
+
pathname === "/oauth/register" ||
|
|
76
|
+
pathname === "/oauth/revoke");
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* The two routes a deployed mini app is served from: read the app, and mint
|
|
80
|
+
* the short-lived session its runs go through. Both take the deployment token
|
|
81
|
+
* from the path, and that token is the credential — an unguessable 24-byte
|
|
82
|
+
* secret its owner minted and can revoke.
|
|
83
|
+
*
|
|
84
|
+
* The prefix is exact and shallow (`/api/apps/`, not `/api/applications/`) so
|
|
85
|
+
* it can never widen onto the owner-scoped application routes, which read the
|
|
86
|
+
* caller's own library and stay behind auth. Nothing here reads a caller's
|
|
87
|
+
* identity: both handlers resolve everything from the token, and both refuse
|
|
88
|
+
* outside production, where the surface does not exist at all.
|
|
89
|
+
*/
|
|
90
|
+
export function isPublicAppDeploymentRequest(pathname, method) {
|
|
91
|
+
if (!pathname.startsWith("/api/apps/"))
|
|
92
|
+
return false;
|
|
93
|
+
const segments = pathname.slice("/api/apps/".length).split("/");
|
|
94
|
+
if (segments[0] === "")
|
|
95
|
+
return false;
|
|
96
|
+
if (method === "GET")
|
|
97
|
+
return segments.length === 1;
|
|
98
|
+
if (method === "POST") {
|
|
99
|
+
return segments.length === 2 && segments[1] === "session";
|
|
100
|
+
}
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* The read behind a workflow's public share link. The token in the path is
|
|
105
|
+
* the credential: an unguessable 24-byte secret the owner minted and can
|
|
106
|
+
* revoke. Only a GET of exactly one segment qualifies, and the prefix sits
|
|
107
|
+
* outside `/api/workflows/` so it can never widen onto the caller's library.
|
|
108
|
+
*/
|
|
109
|
+
export function isPublicSharedWorkflowRequest(pathname, method) {
|
|
110
|
+
const prefix = "/api/shared-workflows/";
|
|
111
|
+
if (method !== "GET" || !pathname.startsWith(prefix))
|
|
112
|
+
return false;
|
|
113
|
+
const token = pathname.slice(prefix.length);
|
|
114
|
+
return token.length > 0 && !token.includes("/");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The fal callback authenticates itself with the provider's Ed25519
|
|
118
|
+
* signature. Only POSTs to the exact callback shape are exempt; neighbouring
|
|
119
|
+
* provider routes and arbitrary path suffixes remain behind session auth.
|
|
120
|
+
*/
|
|
121
|
+
export function isPublicFalWebhookRequest(pathname, method) {
|
|
122
|
+
const prefix = "/api/providers/fal/webhook/";
|
|
123
|
+
if (method !== "POST" || !pathname.startsWith(prefix))
|
|
124
|
+
return false;
|
|
125
|
+
const token = pathname.slice(prefix.length);
|
|
126
|
+
return token.length > 0 && !token.includes("/");
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The AtlasCloud callback authenticates itself with the provider's Ed25519
|
|
130
|
+
* signature over the raw body. Only POSTs to the exact callback path are
|
|
131
|
+
* exempt; neighbouring provider routes stay behind session auth.
|
|
132
|
+
*/
|
|
133
|
+
export function isPublicAtlasCloudWebhookRequest(pathname, method) {
|
|
134
|
+
return (method === "POST" && pathname === "/api/providers/atlascloud/webhook");
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Paths that skip session auth in the server's `onRequest` hook. Every entry
|
|
138
|
+
* must carry no per-caller private state, or authenticate on its own (webhook
|
|
139
|
+
* secret, OAuth PKCE state, KIE webhook signature, fal and AtlasCloud Ed25519
|
|
140
|
+
* signatures).
|
|
141
|
+
* All of these are still
|
|
142
|
+
* covered by the global `@fastify/rate-limit` plugin registered before auth.
|
|
143
|
+
*/
|
|
144
|
+
export function isPublicAuthExemptRoute(pathname, method) {
|
|
145
|
+
return (pathname === "/health" ||
|
|
146
|
+
pathname === "/ready" ||
|
|
147
|
+
pathname === "/api/health" ||
|
|
148
|
+
pathname === "/api/config" ||
|
|
149
|
+
isPublicOAuthRequest(pathname) ||
|
|
150
|
+
pathname === "/api/assets/packages" ||
|
|
151
|
+
pathname.startsWith("/api/assets/packages/") ||
|
|
152
|
+
pathname === "/api/nodes/metadata" ||
|
|
153
|
+
pathname.startsWith("/api/kie/webhook") ||
|
|
154
|
+
pathname.startsWith("/api/webhooks/") ||
|
|
155
|
+
// Messaging-integration identity routes. Like the webhook routes, they
|
|
156
|
+
// authenticate themselves — every handler requires the server's
|
|
157
|
+
// NODETOOL_INTEGRATION_TOKEN, compared in constant time — and they carry
|
|
158
|
+
// no per-caller session. Without that env var they are not registered at
|
|
159
|
+
// all, so the exemption reaches a 404.
|
|
160
|
+
pathname.startsWith("/api/integrations/") ||
|
|
161
|
+
isPublicWorkflowMetadataRequest(pathname, method) ||
|
|
162
|
+
isPublicAppDeploymentRequest(pathname, method) ||
|
|
163
|
+
isPublicSharedWorkflowRequest(pathname, method) ||
|
|
164
|
+
isPublicFalWebhookRequest(pathname, method) ||
|
|
165
|
+
isPublicAtlasCloudWebhookRequest(pathname, method) ||
|
|
166
|
+
isPublicMcpOauthAsRequest(pathname));
|
|
167
|
+
}
|
|
168
|
+
//# sourceMappingURL=public-routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-routes.js","sourceRoot":"","sources":["../../src/lib/public-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads behind a workflow's public share link.
|
|
3
|
+
*
|
|
4
|
+
* A `public` share token lets anyone see one workflow and lets a signed-in
|
|
5
|
+
* user copy it into their own workflows. It never becomes a collaborator
|
|
6
|
+
* grant. Unknown, revoked, and non-public tokens all answer the same
|
|
7
|
+
* NOT_FOUND, so a caller cannot tell a view or edit token from a dead one.
|
|
8
|
+
*/
|
|
9
|
+
import type { Workflow as WorkflowModel } from "@nodetool-ai/models";
|
|
10
|
+
import { type PublicSharedWorkflow } from "@nodetool-ai/protocol/api-schemas/workflows.js";
|
|
11
|
+
/** The workflow behind an active public share token, else NOT_FOUND. */
|
|
12
|
+
export declare function loadPublicShareWorkflow(token: string): Promise<WorkflowModel>;
|
|
13
|
+
/** The graph a stored row carries, or null when it does not parse. */
|
|
14
|
+
export declare function parseSharedGraph(raw: unknown): PublicSharedWorkflow["graph"];
|
|
15
|
+
/**
|
|
16
|
+
* What a public link shows: the graph and its label. Nothing about the owner,
|
|
17
|
+
* the row id, or where the workflow lives.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getPublicSharedWorkflow(token: string): Promise<PublicSharedWorkflow>;
|
|
20
|
+
//# sourceMappingURL=public-workflow-share.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-workflow-share.d.ts","sourceRoot":"","sources":["../../src/lib/public-workflow-share.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,gDAAgD,CAAC;AAKxD,wEAAwE;AACxE,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,aAAa,CAAC,CAYxB;AAED,sEAAsE;AACtE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,OAAO,GACX,oBAAoB,CAAC,OAAO,CAAC,CAI/B;AAED;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,oBAAoB,CAAC,CAQ/B"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reads behind a workflow's public share link.
|
|
3
|
+
*
|
|
4
|
+
* A `public` share token lets anyone see one workflow and lets a signed-in
|
|
5
|
+
* user copy it into their own workflows. It never becomes a collaborator
|
|
6
|
+
* grant. Unknown, revoked, and non-public tokens all answer the same
|
|
7
|
+
* NOT_FOUND, so a caller cannot tell a view or edit token from a dead one.
|
|
8
|
+
*/
|
|
9
|
+
import { Workflow, WorkflowShare } from "@nodetool-ai/models";
|
|
10
|
+
import { graph as graphSchema } from "@nodetool-ai/protocol/api-schemas/workflows.js";
|
|
11
|
+
import { ApiErrorCode } from "../error-codes.js";
|
|
12
|
+
import { throwApiError } from "../trpc/error-formatter.js";
|
|
13
|
+
/** The workflow behind an active public share token, else NOT_FOUND. */
|
|
14
|
+
export async function loadPublicShareWorkflow(token) {
|
|
15
|
+
const share = await WorkflowShare.findByToken(token);
|
|
16
|
+
if (!share || share.isRevoked || share.role !== "public") {
|
|
17
|
+
throwApiError(ApiErrorCode.NOT_FOUND, "Share link is invalid or revoked");
|
|
18
|
+
}
|
|
19
|
+
const workflow = (await Workflow.get(share.workflow_id));
|
|
20
|
+
if (!workflow) {
|
|
21
|
+
throwApiError(ApiErrorCode.NOT_FOUND, "Share link is invalid or revoked");
|
|
22
|
+
}
|
|
23
|
+
return workflow;
|
|
24
|
+
}
|
|
25
|
+
/** The graph a stored row carries, or null when it does not parse. */
|
|
26
|
+
export function parseSharedGraph(raw) {
|
|
27
|
+
if (raw == null)
|
|
28
|
+
return null;
|
|
29
|
+
const parsed = graphSchema.safeParse(raw);
|
|
30
|
+
return parsed.success ? parsed.data : null;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* What a public link shows: the graph and its label. Nothing about the owner,
|
|
34
|
+
* the row id, or where the workflow lives.
|
|
35
|
+
*/
|
|
36
|
+
export async function getPublicSharedWorkflow(token) {
|
|
37
|
+
const workflow = await loadPublicShareWorkflow(token);
|
|
38
|
+
return {
|
|
39
|
+
name: workflow.name,
|
|
40
|
+
description: workflow.description ?? null,
|
|
41
|
+
tags: workflow.tags ?? [],
|
|
42
|
+
graph: parseSharedGraph(workflow.graph)
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=public-workflow-share.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"public-workflow-share.js","sourceRoot":"","sources":["../../src/lib/public-workflow-share.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EACL,KAAK,IAAI,WAAW,EAErB,MAAM,gDAAgD,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,wEAAwE;AACxE,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAa;IAEb,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACrD,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACzD,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAClC,KAAK,CAAC,WAAW,CAClB,CAAyB,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,kCAAkC,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,gBAAgB,CAC9B,GAAY;IAEZ,IAAI,GAAG,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7B,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,KAAa;IAEb,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,CAAC;IACtD,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,WAAW,EAAE,QAAQ,CAAC,WAAW,IAAI,IAAI;QACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE;QACzB,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { StoredRunTraceUpdate } from "@nodetool-ai/protocol";
|
|
2
|
+
export type LiveRunTraceUpdate = StoredRunTraceUpdate & {
|
|
3
|
+
resnapshot_required?: true;
|
|
4
|
+
};
|
|
5
|
+
/** One transport write at a time, with a bounded cache of each span's latest record. */
|
|
6
|
+
export declare class RunTraceLiveDelivery {
|
|
7
|
+
private readonly send;
|
|
8
|
+
private readonly onError;
|
|
9
|
+
private readonly limits;
|
|
10
|
+
private readonly queued;
|
|
11
|
+
private queuedBytes;
|
|
12
|
+
private sending;
|
|
13
|
+
private closed;
|
|
14
|
+
private resnapshotRequired;
|
|
15
|
+
constructor(send: (update: LiveRunTraceUpdate) => Promise<void>, onError: (error: unknown) => void, limits?: {
|
|
16
|
+
spans: number;
|
|
17
|
+
bytes: number;
|
|
18
|
+
});
|
|
19
|
+
get bufferedSpanCount(): number;
|
|
20
|
+
get bufferedBytes(): number;
|
|
21
|
+
enqueue(update: StoredRunTraceUpdate): void;
|
|
22
|
+
close(): void;
|
|
23
|
+
private flush;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=run-trace-live-delivery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-trace-live-delivery.d.ts","sourceRoot":"","sources":["../../src/lib/run-trace-live-delivery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,oBAAoB,GAAG;IAAE,mBAAmB,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAKvF,wFAAwF;AACxF,qBAAa,oBAAoB;IAQ7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATzB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsE;IAC7F,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,kBAAkB,CAAS;IAEnC,YACmB,IAAI,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,EACnD,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,EACjC,MAAM;;;KAA2D,EAChF;IAEJ,IAAI,iBAAiB,IAAI,MAAM,CAA6B;IAC5D,IAAI,aAAa,IAAI,MAAM,CAA6B;IAExD,OAAO,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAyB1C;IAED,KAAK,IAAI,IAAI,CAIZ;YAEa,KAAK;CAyBpB"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
const MAX_BUFFERED_SPANS = 128;
|
|
2
|
+
const MAX_BUFFERED_BYTES = 8 * 1024 * 1024;
|
|
3
|
+
/** One transport write at a time, with a bounded cache of each span's latest record. */
|
|
4
|
+
export class RunTraceLiveDelivery {
|
|
5
|
+
send;
|
|
6
|
+
onError;
|
|
7
|
+
limits;
|
|
8
|
+
queued = new Map();
|
|
9
|
+
queuedBytes = 0;
|
|
10
|
+
sending = false;
|
|
11
|
+
closed = false;
|
|
12
|
+
resnapshotRequired = false;
|
|
13
|
+
constructor(send, onError, limits = { spans: MAX_BUFFERED_SPANS, bytes: MAX_BUFFERED_BYTES }) {
|
|
14
|
+
this.send = send;
|
|
15
|
+
this.onError = onError;
|
|
16
|
+
this.limits = limits;
|
|
17
|
+
}
|
|
18
|
+
get bufferedSpanCount() { return this.queued.size; }
|
|
19
|
+
get bufferedBytes() { return this.queuedBytes; }
|
|
20
|
+
enqueue(update) {
|
|
21
|
+
if (this.closed) {
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
const key = `${update.run_id}:${update.record.span_id}`;
|
|
25
|
+
const previous = this.queued.get(key);
|
|
26
|
+
if (previous) {
|
|
27
|
+
this.queued.delete(key);
|
|
28
|
+
this.queuedBytes -= previous.bytes;
|
|
29
|
+
this.resnapshotRequired = true;
|
|
30
|
+
}
|
|
31
|
+
const bytes = Buffer.byteLength(JSON.stringify(update));
|
|
32
|
+
if (bytes > this.limits.bytes) {
|
|
33
|
+
this.resnapshotRequired = true;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
this.queued.set(key, { update, bytes });
|
|
37
|
+
this.queuedBytes += bytes;
|
|
38
|
+
while (this.queued.size > this.limits.spans || this.queuedBytes > this.limits.bytes) {
|
|
39
|
+
const oldestKey = this.queued.keys().next().value;
|
|
40
|
+
if (oldestKey === undefined) {
|
|
41
|
+
break;
|
|
42
|
+
}
|
|
43
|
+
const oldest = this.queued.get(oldestKey);
|
|
44
|
+
this.queued.delete(oldestKey);
|
|
45
|
+
this.queuedBytes -= oldest?.bytes ?? 0;
|
|
46
|
+
this.resnapshotRequired = true;
|
|
47
|
+
}
|
|
48
|
+
if (!this.sending) {
|
|
49
|
+
void this.flush();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
close() {
|
|
53
|
+
this.closed = true;
|
|
54
|
+
this.queued.clear();
|
|
55
|
+
this.queuedBytes = 0;
|
|
56
|
+
}
|
|
57
|
+
async flush() {
|
|
58
|
+
this.sending = true;
|
|
59
|
+
try {
|
|
60
|
+
while (!this.closed && this.queued.size > 0) {
|
|
61
|
+
const key = this.queued.keys().next().value;
|
|
62
|
+
if (key === undefined) {
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
const next = this.queued.get(key);
|
|
66
|
+
if (!next) {
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
this.queued.delete(key);
|
|
70
|
+
this.queuedBytes -= next.bytes;
|
|
71
|
+
const resnapshot = this.resnapshotRequired;
|
|
72
|
+
this.resnapshotRequired = false;
|
|
73
|
+
try {
|
|
74
|
+
const update = { ...next.update };
|
|
75
|
+
if (resnapshot) {
|
|
76
|
+
update.resnapshot_required = true;
|
|
77
|
+
}
|
|
78
|
+
await this.send(update);
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
this.resnapshotRequired = true;
|
|
82
|
+
this.onError(error);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
this.sending = false;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=run-trace-live-delivery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-trace-live-delivery.js","sourceRoot":"","sources":["../../src/lib/run-trace-live-delivery.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/** The runtimes a client gets when it asks for no particular ones. */
|
|
2
|
+
export declare const KNOWN_RUNTIMES: readonly ["python", "nodejs", "ffmpeg", "ffprobe", "pandoc", "pdftotext", "pdftoppm", "yt-dlp"];
|
|
3
|
+
/** Whether `command` resolves to an executable on PATH. */
|
|
4
|
+
export declare function hasExecutable(command: string): Promise<boolean>;
|
|
5
|
+
export interface RuntimeStatus {
|
|
6
|
+
id: string;
|
|
7
|
+
installed: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Report install status for each runtime id. Unknown-but-safe ids are probed
|
|
11
|
+
* under their own name; an id that isn't a bare command name reports
|
|
12
|
+
* `installed: false` rather than touching the filesystem with it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function detectRuntimes(ids?: readonly string[]): Promise<RuntimeStatus[]>;
|
|
15
|
+
/** Drop cached probe results (tests, and after an install changes PATH). */
|
|
16
|
+
export declare function clearRuntimeDetectionCache(): void;
|
|
17
|
+
//# sourceMappingURL=runtime-detection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-detection.d.ts","sourceRoot":"","sources":["../../src/lib/runtime-detection.ts"],"names":[],"mappings":"AA2BA,sEAAsE;AACtE,eAAO,MAAM,cAAc,YACzB,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,QAAQ,CACA,CAAC;AAuBX,2DAA2D;AAC3D,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAQrE;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,GAAG,GAAE,SAAS,MAAM,EAAmB,GACtC,OAAO,CAAC,aAAa,EAAE,CAAC,CAc1B;AAED,4EAA4E;AAC5E,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detects which external runtimes (ffmpeg, pandoc, yt-dlp, …) are present on
|
|
3
|
+
* the machine running the server.
|
|
4
|
+
*
|
|
5
|
+
* The desktop app answers this over Electron IPC, because it also installs the
|
|
6
|
+
* runtimes. A browser client — the web build, and every Docker/Fly deployment —
|
|
7
|
+
* has no such channel, so without this it assumed nothing was installed and
|
|
8
|
+
* showed "Requires FFmpeg" on nodes that run fine, since the container ships
|
|
9
|
+
* ffmpeg.
|
|
10
|
+
*
|
|
11
|
+
* Detection is a PATH scan for an executable file, not a spawn: it costs a few
|
|
12
|
+
* `access()` calls, cannot hang, and cannot run client-supplied strings.
|
|
13
|
+
* Results are cached briefly so a canvas full of video nodes probes once.
|
|
14
|
+
*/
|
|
15
|
+
import { constants as fsConstants, promises as fs } from "node:fs";
|
|
16
|
+
import path from "node:path";
|
|
17
|
+
/**
|
|
18
|
+
* Runtime ids whose executable is named differently from the id. Ids not
|
|
19
|
+
* listed here are probed under their own name (`ffmpeg`, `pandoc`, `yt-dlp`, …).
|
|
20
|
+
*/
|
|
21
|
+
const RUNTIME_COMMANDS = {
|
|
22
|
+
nodejs: "node",
|
|
23
|
+
pdftotext: "pdftotext",
|
|
24
|
+
pdftoppm: "pdftoppm"
|
|
25
|
+
};
|
|
26
|
+
/** The runtimes a client gets when it asks for no particular ones. */
|
|
27
|
+
export const KNOWN_RUNTIMES = [
|
|
28
|
+
"python",
|
|
29
|
+
"nodejs",
|
|
30
|
+
"ffmpeg",
|
|
31
|
+
"ffprobe",
|
|
32
|
+
"pandoc",
|
|
33
|
+
"pdftotext",
|
|
34
|
+
"pdftoppm",
|
|
35
|
+
"yt-dlp"
|
|
36
|
+
];
|
|
37
|
+
/** Ids that are safe to probe: a bare command name, nothing path-like. */
|
|
38
|
+
const SAFE_ID = /^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$/;
|
|
39
|
+
const CACHE_TTL_MS = 30_000;
|
|
40
|
+
const cache = new Map();
|
|
41
|
+
function candidateNames(command) {
|
|
42
|
+
if (process.platform !== "win32")
|
|
43
|
+
return [command];
|
|
44
|
+
const exts = (process.env["PATHEXT"] ?? ".EXE;.CMD;.BAT;.COM").split(";");
|
|
45
|
+
return [command, ...exts.filter(Boolean).map((ext) => command + ext)];
|
|
46
|
+
}
|
|
47
|
+
async function isExecutable(file) {
|
|
48
|
+
try {
|
|
49
|
+
await fs.access(file, fsConstants.X_OK);
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return false;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/** Whether `command` resolves to an executable on PATH. */
|
|
57
|
+
export async function hasExecutable(command) {
|
|
58
|
+
const dirs = (process.env["PATH"] ?? "").split(path.delimiter).filter(Boolean);
|
|
59
|
+
for (const dir of dirs) {
|
|
60
|
+
for (const name of candidateNames(command)) {
|
|
61
|
+
if (await isExecutable(path.join(dir, name)))
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Report install status for each runtime id. Unknown-but-safe ids are probed
|
|
69
|
+
* under their own name; an id that isn't a bare command name reports
|
|
70
|
+
* `installed: false` rather than touching the filesystem with it.
|
|
71
|
+
*/
|
|
72
|
+
export async function detectRuntimes(ids = KNOWN_RUNTIMES) {
|
|
73
|
+
const now = Date.now();
|
|
74
|
+
return Promise.all(ids.map(async (id) => {
|
|
75
|
+
if (!SAFE_ID.test(id))
|
|
76
|
+
return { id, installed: false };
|
|
77
|
+
const cached = cache.get(id);
|
|
78
|
+
if (cached && now - cached.at < CACHE_TTL_MS) {
|
|
79
|
+
return { id, installed: cached.installed };
|
|
80
|
+
}
|
|
81
|
+
const installed = await hasExecutable(RUNTIME_COMMANDS[id] ?? id);
|
|
82
|
+
cache.set(id, { installed, at: now });
|
|
83
|
+
return { id, installed };
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
/** Drop cached probe results (tests, and after an install changes PATH). */
|
|
87
|
+
export function clearRuntimeDetectionCache() {
|
|
88
|
+
cache.clear();
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=runtime-detection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-detection.js","sourceRoot":"","sources":["../../src/lib/runtime-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B;;;GAGG;AACH,MAAM,gBAAgB,GAA2B;IAC/C,MAAM,EAAE,MAAM;IACd,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,WAAW;IACX,UAAU;IACV,QAAQ;CACA,CAAC;AAEX,0EAA0E;AAC1E,MAAM,OAAO,GAAG,oCAAoC,CAAC;AAErD,MAAM,YAAY,GAAG,MAAM,CAAC;AAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,EAA8C,CAAC;AAEpE,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,qBAAqB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC1E,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,IAAY;IACtC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,2DAA2D;AAC3D,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3C,IAAI,MAAM,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,GAAG,GAAsB,cAAc;IAEvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QACvD,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7B,IAAI,MAAM,IAAI,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,YAAY,EAAE,CAAC;YAC7C,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;QAC7C,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;QAClE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC;IAC3B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,0BAA0B;IACxC,KAAK,CAAC,KAAK,EAAE,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare function isRuntimeScratchKey(key: string): boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Derive the owning asset id from a storage key. Asset files are stored flat
|
|
4
|
+
* as `<assetId>.<ext>` and `<assetId>_thumb.jpg`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function assetIdFromKey(key: string): string | null;
|
|
7
|
+
/**
|
|
8
|
+
* Whether `userId` owns the asset a key refers to. Fails closed: a key that
|
|
9
|
+
* maps to no asset row, or a lookup that throws, is not owned.
|
|
10
|
+
*/
|
|
11
|
+
export declare function callerOwnsStorageKey(userId: string, key: string): Promise<boolean>;
|
|
12
|
+
/**
|
|
13
|
+
* Whether `userId` may read the bytes at `key`.
|
|
14
|
+
*
|
|
15
|
+
* Owner-prefixed keys (`<userId>/<assetId>.<ext>`) are settled by the prefix
|
|
16
|
+
* alone — no database round trip, and the same rule a Supabase RLS policy or
|
|
17
|
+
* bucket policy applies to the object itself. Legacy flat keys, written
|
|
18
|
+
* before that layout, still need the `assets` lookup.
|
|
19
|
+
*/
|
|
20
|
+
export declare function canReadStorageKey(userId: string, key: string): Promise<boolean>;
|
|
21
|
+
//# sourceMappingURL=storage-access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage-access.d.ts","sourceRoot":"","sources":["../../src/lib/storage-access.ts"],"names":[],"mappings":"AA+BA,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKzD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,OAAO,CAAC,CAKlB"}
|