@nodetool-ai/websocket 0.7.0-rc.23 → 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,194 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one implementation of workflow create/update/delete.
|
|
3
|
+
*
|
|
4
|
+
* REST (`routes/workflows.ts` -> `http-api.ts`) and tRPC (`trpc/routers/
|
|
5
|
+
* workflows.ts`) both call these; each maps `WorkflowServiceError` onto its own
|
|
6
|
+
* wire shape. The three copies that preceded this had already drifted — REST
|
|
7
|
+
* deleted the row without the collaborator/share cascade, seeded an example's
|
|
8
|
+
* graph but not its `app_doc`, and re-implemented the collaborator role check.
|
|
9
|
+
*
|
|
10
|
+
* Authoring-quality validation (`normalizeWorkflowGraph`, model-selection and
|
|
11
|
+
* leftover-handle checks) deliberately stays in the agent capability: the
|
|
12
|
+
* editor saves in-progress graphs with unset models, so gating persistence on
|
|
13
|
+
* it would reject saves the UI makes today.
|
|
14
|
+
*/
|
|
15
|
+
import { Project, Workflow, WorkflowCollaborator } from "@nodetool-ai/models";
|
|
16
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
17
|
+
import { ApiErrorCode } from "../error-codes.js";
|
|
18
|
+
import { syncRegistrations } from "../triggers/registration-sync.js";
|
|
19
|
+
import { loadExampleGraph, defaultExamplePackageName } from "../example-workflows.js";
|
|
20
|
+
const log = createLogger("nodetool.websocket.workflow-service");
|
|
21
|
+
export const WORKFLOW_CONFLICT_MESSAGE = "Workflow was modified since last read (optimistic concurrency conflict)";
|
|
22
|
+
/** A failure both wire formats can map: tRPC reads `code`, REST reads `status`. */
|
|
23
|
+
export class WorkflowServiceError extends Error {
|
|
24
|
+
code;
|
|
25
|
+
status;
|
|
26
|
+
constructor(code, message, status) {
|
|
27
|
+
super(message);
|
|
28
|
+
this.code = code;
|
|
29
|
+
this.status = status;
|
|
30
|
+
this.name = "WorkflowServiceError";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function notFound() {
|
|
34
|
+
throw new WorkflowServiceError(ApiErrorCode.WORKFLOW_NOT_FOUND, "Workflow not found", 404);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Reconcile `trigger_registrations` against the workflow's current graph.
|
|
38
|
+
* Non-fatal by design — a broken trigger sync must not stop a graph from
|
|
39
|
+
* saving, so failures are logged and swallowed.
|
|
40
|
+
*/
|
|
41
|
+
export async function syncTriggerRegistrations(workflow) {
|
|
42
|
+
try {
|
|
43
|
+
await syncRegistrations(workflow, {});
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
log.error("Trigger registration sync failed", {
|
|
47
|
+
workflowId: workflow.id,
|
|
48
|
+
error: error instanceof Error ? error.message : String(error)
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
function requireGraph(input) {
|
|
53
|
+
if (input.name === undefined) {
|
|
54
|
+
throw new WorkflowServiceError(ApiErrorCode.INVALID_INPUT, "Invalid workflow", 400);
|
|
55
|
+
}
|
|
56
|
+
const graph = input.graph;
|
|
57
|
+
if (!graph || !Array.isArray(graph.nodes) || !Array.isArray(graph.edges)) {
|
|
58
|
+
throw new WorkflowServiceError(ApiErrorCode.INVALID_INPUT, "graph is required and must have nodes and edges arrays", 400);
|
|
59
|
+
}
|
|
60
|
+
return graph;
|
|
61
|
+
}
|
|
62
|
+
function createRow(userId, input, graph, appDoc, id) {
|
|
63
|
+
const row = {
|
|
64
|
+
user_id: userId,
|
|
65
|
+
name: input.name,
|
|
66
|
+
tool_name: input.tool_name ?? null,
|
|
67
|
+
package_name: input.package_name ?? null,
|
|
68
|
+
path: input.path ?? null,
|
|
69
|
+
tags: input.tags ?? [],
|
|
70
|
+
description: input.description ?? "",
|
|
71
|
+
thumbnail: input.thumbnail ?? null,
|
|
72
|
+
thumbnail_url: input.thumbnail_url ?? null,
|
|
73
|
+
access: input.access === "public" ? "public" : "private",
|
|
74
|
+
graph,
|
|
75
|
+
settings: input.settings ?? null,
|
|
76
|
+
run_mode: input.run_mode ?? "workflow",
|
|
77
|
+
workspace_id: input.workspace_id ?? null,
|
|
78
|
+
project_id: input.project_id ?? "default",
|
|
79
|
+
html_app: input.html_app ?? null,
|
|
80
|
+
app_doc: appDoc
|
|
81
|
+
};
|
|
82
|
+
// Upsert-on-PUT names the id; a plain create lets the model mint one.
|
|
83
|
+
if (id !== undefined)
|
|
84
|
+
row.id = id;
|
|
85
|
+
return Workflow.create(row);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Create a workflow, optionally seeding graph and app UI from a shipped
|
|
89
|
+
* example. Both the graph and the example's `app_doc` are carried over; only
|
|
90
|
+
* one of the two former copies did the latter.
|
|
91
|
+
*/
|
|
92
|
+
export async function createWorkflow(userId, input, seed) {
|
|
93
|
+
if (input.project_id !== undefined && input.project_id !== "default") {
|
|
94
|
+
await Project.requireOwned(userId, input.project_id);
|
|
95
|
+
}
|
|
96
|
+
let graph = input.graph ?? null;
|
|
97
|
+
let appDoc = input.app_doc ?? null;
|
|
98
|
+
if (seed && (!graph || graph.nodes?.length === 0)) {
|
|
99
|
+
const packageName = seed.packageName ?? defaultExamplePackageName(seed.apiOptions) ?? "nodetool-base";
|
|
100
|
+
const example = loadExampleGraph(packageName, seed.exampleName, seed.apiOptions);
|
|
101
|
+
if (example?.graph) {
|
|
102
|
+
graph = example.graph;
|
|
103
|
+
}
|
|
104
|
+
if (appDoc == null && example?.app_doc) {
|
|
105
|
+
appDoc = example.app_doc;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
const resolved = requireGraph({ ...input, graph });
|
|
109
|
+
const workflow = (await createRow(userId, input, resolved, appDoc));
|
|
110
|
+
await syncTriggerRegistrations(workflow);
|
|
111
|
+
return workflow;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Update a workflow, or create it under `id` when it does not exist (the
|
|
115
|
+
* upsert-on-PUT both wire formats rely on). Optional columns are written only
|
|
116
|
+
* when the caller sent them, so a partial save does not wipe stored values.
|
|
117
|
+
*/
|
|
118
|
+
export async function updateWorkflow(userId, id, input) {
|
|
119
|
+
const graph = requireGraph(input);
|
|
120
|
+
const existing = (await Workflow.get(id));
|
|
121
|
+
if (existing) {
|
|
122
|
+
const isOwner = existing.user_id === userId;
|
|
123
|
+
if (!isOwner) {
|
|
124
|
+
const grant = await WorkflowCollaborator.findFor(id, userId);
|
|
125
|
+
if (grant?.role !== "editor")
|
|
126
|
+
notFound();
|
|
127
|
+
}
|
|
128
|
+
if (input.project_id !== undefined &&
|
|
129
|
+
input.project_id !== existing.project_id) {
|
|
130
|
+
if (!isOwner)
|
|
131
|
+
notFound();
|
|
132
|
+
if (input.project_id !== "default") {
|
|
133
|
+
await Project.requireOwned(userId, input.project_id);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
const fields = {
|
|
137
|
+
name: input.name,
|
|
138
|
+
tool_name: input.tool_name ?? null,
|
|
139
|
+
description: input.description ?? "",
|
|
140
|
+
tags: input.tags ?? [],
|
|
141
|
+
package_name: input.package_name ?? null,
|
|
142
|
+
graph
|
|
143
|
+
};
|
|
144
|
+
// Only the owner can change visibility; editors keep it as-is.
|
|
145
|
+
if (isOwner) {
|
|
146
|
+
fields.access = input.access === "public" ? "public" : "private";
|
|
147
|
+
}
|
|
148
|
+
if (input.thumbnail !== undefined)
|
|
149
|
+
fields.thumbnail = input.thumbnail;
|
|
150
|
+
if (input.settings !== undefined)
|
|
151
|
+
fields.settings = input.settings ?? null;
|
|
152
|
+
if (input.run_mode !== undefined && input.run_mode !== null) {
|
|
153
|
+
fields.run_mode = input.run_mode;
|
|
154
|
+
}
|
|
155
|
+
if (input.workspace_id !== undefined) {
|
|
156
|
+
fields.workspace_id = input.workspace_id ?? null;
|
|
157
|
+
}
|
|
158
|
+
if (isOwner && input.project_id !== undefined) {
|
|
159
|
+
fields.project_id = input.project_id;
|
|
160
|
+
}
|
|
161
|
+
if (input.html_app !== undefined)
|
|
162
|
+
fields.html_app = input.html_app ?? null;
|
|
163
|
+
if (input.app_doc !== undefined)
|
|
164
|
+
fields.app_doc = input.app_doc;
|
|
165
|
+
const updated = await Workflow.updateFieldsIfUnchanged(id, input.expected_updated_at ?? existing.updated_at, fields);
|
|
166
|
+
if (!updated) {
|
|
167
|
+
throw new WorkflowServiceError(ApiErrorCode.ALREADY_EXISTS, WORKFLOW_CONFLICT_MESSAGE, 409);
|
|
168
|
+
}
|
|
169
|
+
await syncTriggerRegistrations(updated);
|
|
170
|
+
return updated;
|
|
171
|
+
}
|
|
172
|
+
// An `expected_updated_at` names a row the caller believes it read, so a
|
|
173
|
+
// missing row is a conflict, not an upsert.
|
|
174
|
+
if (input.expected_updated_at)
|
|
175
|
+
notFound();
|
|
176
|
+
if (input.project_id !== undefined && input.project_id !== "default") {
|
|
177
|
+
await Project.requireOwned(userId, input.project_id);
|
|
178
|
+
}
|
|
179
|
+
const workflow = (await createRow(userId, input, graph, input.app_doc ?? null, id));
|
|
180
|
+
await syncTriggerRegistrations(workflow);
|
|
181
|
+
return workflow;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Delete a workflow the caller owns. `deleteOwned` carries the collaborator
|
|
185
|
+
* and share rows with it: a workflow row can be recreated under the same id,
|
|
186
|
+
* and a grant left behind would then apply to a workflow its holder was never
|
|
187
|
+
* given.
|
|
188
|
+
*/
|
|
189
|
+
export async function deleteWorkflow(userId, id) {
|
|
190
|
+
const deleted = await Workflow.deleteOwned(userId, id);
|
|
191
|
+
if (!deleted)
|
|
192
|
+
notFound();
|
|
193
|
+
}
|
|
194
|
+
//# sourceMappingURL=workflow-service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-service.js","sourceRoot":"","sources":["../../src/lib/workflow-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export { resolveWorkflowWorkspace, workspaceFromRow, usesCloudWorkspaces, buildWorkspaceExecutionContext } from "@nodetool-ai/execution/service";
|
|
2
|
+
/**
|
|
3
|
+
* Point virtual workspaces at the deployment's asset storage.
|
|
4
|
+
*
|
|
5
|
+
* Called once at startup. The adapter is the same one assets use — one bucket,
|
|
6
|
+
* one set of credentials — with each user's workspace carved out under its own
|
|
7
|
+
* key prefix. On a local install this is a no-op: workspaces are folders and
|
|
8
|
+
* the resolver never asks for cloud storage.
|
|
9
|
+
*/
|
|
10
|
+
export declare function initWorkspaceStorage(): void;
|
|
11
|
+
/**
|
|
12
|
+
* Push workspace file writes to the clients browsing that workspace.
|
|
13
|
+
*
|
|
14
|
+
* Workspace files are not database rows, so `ModelObserver` never sees them and
|
|
15
|
+
* the Workspace Explorer had no way to learn that a chat turn had written one —
|
|
16
|
+
* it showed whatever the panel happened to fetch when it mounted. This closes
|
|
17
|
+
* that gap with the emitter the other non-DBModel resources already use.
|
|
18
|
+
*/
|
|
19
|
+
export declare function initWorkspaceChangeEvents(): void;
|
|
20
|
+
//# sourceMappingURL=workflow-workspace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-workspace.d.ts","sourceRoot":"","sources":["../../src/lib/workflow-workspace.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC/B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAiBD;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAoBhD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workspace resolution for a run. The implementation moved to
|
|
3
|
+
* `@nodetool-ai/execution/service` so every host — the server, the CLI, the
|
|
4
|
+
* agent tools — resolves a workflow's workspace the same way. This module is
|
|
5
|
+
* the server's import site for it, and the one place that tells the resolver
|
|
6
|
+
* which object store backs a virtual workspace.
|
|
7
|
+
*/
|
|
8
|
+
import { setWorkspaceChangeNotifier, setWorkspaceCloudStorage, usesCloudWorkspaces } from "@nodetool-ai/execution/service";
|
|
9
|
+
import { getAssetAdapter } from "./storage.js";
|
|
10
|
+
import { notifyResourceChange } from "../resource-events.js";
|
|
11
|
+
export { resolveWorkflowWorkspace, workspaceFromRow, usesCloudWorkspaces, buildWorkspaceExecutionContext } from "@nodetool-ai/execution/service";
|
|
12
|
+
/**
|
|
13
|
+
* Point virtual workspaces at the deployment's asset storage.
|
|
14
|
+
*
|
|
15
|
+
* Called once at startup. The adapter is the same one assets use — one bucket,
|
|
16
|
+
* one set of credentials — with each user's workspace carved out under its own
|
|
17
|
+
* key prefix. On a local install this is a no-op: workspaces are folders and
|
|
18
|
+
* the resolver never asks for cloud storage.
|
|
19
|
+
*/
|
|
20
|
+
export function initWorkspaceStorage() {
|
|
21
|
+
if (!usesCloudWorkspaces())
|
|
22
|
+
return;
|
|
23
|
+
setWorkspaceCloudStorage(getAssetAdapter());
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* How long writes are pooled before the browser is told, in ms.
|
|
27
|
+
*
|
|
28
|
+
* An agent that unpacks an archive writes hundreds of files in a burst, and
|
|
29
|
+
* every one of them would otherwise be a websocket frame and a full re-listing.
|
|
30
|
+
* The explorer only ever refetches, so one message per workspace per window
|
|
31
|
+
* says everything a hundred would.
|
|
32
|
+
*/
|
|
33
|
+
const WORKSPACE_CHANGE_COALESCE_MS = 400;
|
|
34
|
+
const pendingWorkspaceChanges = new Map();
|
|
35
|
+
/**
|
|
36
|
+
* Push workspace file writes to the clients browsing that workspace.
|
|
37
|
+
*
|
|
38
|
+
* Workspace files are not database rows, so `ModelObserver` never sees them and
|
|
39
|
+
* the Workspace Explorer had no way to learn that a chat turn had written one —
|
|
40
|
+
* it showed whatever the panel happened to fetch when it mounted. This closes
|
|
41
|
+
* that gap with the emitter the other non-DBModel resources already use.
|
|
42
|
+
*/
|
|
43
|
+
export function initWorkspaceChangeEvents() {
|
|
44
|
+
setWorkspaceChangeNotifier((change) => {
|
|
45
|
+
const pending = pendingWorkspaceChanges.get(change.workspaceId);
|
|
46
|
+
if (pending)
|
|
47
|
+
return;
|
|
48
|
+
const timer = setTimeout(() => {
|
|
49
|
+
pendingWorkspaceChanges.delete(change.workspaceId);
|
|
50
|
+
notifyResourceChange({
|
|
51
|
+
event: "updated",
|
|
52
|
+
resource_type: "workspacefile",
|
|
53
|
+
resource: { id: change.workspaceId },
|
|
54
|
+
userId: change.userId
|
|
55
|
+
});
|
|
56
|
+
}, WORKSPACE_CHANGE_COALESCE_MS);
|
|
57
|
+
// A pending flush must not hold the process open at shutdown.
|
|
58
|
+
timer.unref?.();
|
|
59
|
+
pendingWorkspaceChanges.set(change.workspaceId, {
|
|
60
|
+
userId: change.userId,
|
|
61
|
+
timer
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=workflow-workspace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-workspace.js","sourceRoot":"","sources":["../../src/lib/workflow-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,mBAAmB,EAEpB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,EACL,wBAAwB,EACxB,gBAAgB,EAChB,mBAAmB,EACnB,8BAA8B,EAC/B,MAAM,gCAAgC,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,CAAC,mBAAmB,EAAE;QAAE,OAAO;IACnC,wBAAwB,CAAC,eAAe,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEzC,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAGpC,CAAC;AAEJ;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB;IACvC,0BAA0B,CAAC,CAAC,MAA2B,EAAE,EAAE;QACzD,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChE,IAAI,OAAO;YAAE,OAAO;QACpB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACnD,oBAAoB,CAAC;gBACnB,KAAK,EAAE,SAAS;gBAChB,aAAa,EAAE,eAAe;gBAC9B,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE;gBACpC,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC,EAAE,4BAA4B,CAAC,CAAC;QACjC,8DAA8D;QAC9D,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAChB,uBAAuB,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE;YAC9C,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,KAAK;SACN,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface WsConnectionHealthConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
pingIntervalMs: number;
|
|
4
|
+
idleTimeoutMs: number;
|
|
5
|
+
maxBufferedBytes: number;
|
|
6
|
+
drainTimeoutMs: number;
|
|
7
|
+
maxQueuedFrames: number;
|
|
8
|
+
}
|
|
9
|
+
export declare function getWsConnectionHealthConfig(): WsConnectionHealthConfig;
|
|
10
|
+
//# sourceMappingURL=ws-connection-health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-connection-health.d.ts","sourceRoot":"","sources":["../../src/lib/ws-connection-health.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,2BAA2B,IAAI,wBAAwB,CAWtE"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection health limits for the long-lived `/ws` socket.
|
|
3
|
+
*
|
|
4
|
+
* Two failure modes these bound, both invisible to `close` handlers:
|
|
5
|
+
*
|
|
6
|
+
* Half-open peer — a client that vanished without a close frame (laptop
|
|
7
|
+
* sleep, NAT rebind, killed browser). The socket stays "open" forever, and
|
|
8
|
+
* with it the runner, its observers, its timers and its running jobs. A
|
|
9
|
+
* protocol-level ping plus an idle deadline turns that into a real close.
|
|
10
|
+
*
|
|
11
|
+
* Slow consumer — a client that reads slower than the server streams. `send`
|
|
12
|
+
* buffers in memory with no upper bound, so one stalled reader can grow the
|
|
13
|
+
* server's heap until it dies. Sends wait for the buffer to drain, and a peer
|
|
14
|
+
* that never drains is dropped.
|
|
15
|
+
*
|
|
16
|
+
* Tunable via:
|
|
17
|
+
*
|
|
18
|
+
* NODETOOL_WS_HEALTH_DISABLED Set truthy to disable ping/idle checks.
|
|
19
|
+
* NODETOOL_WS_PING_INTERVAL_MS Ping cadence (default 20000).
|
|
20
|
+
* NODETOOL_WS_IDLE_TIMEOUT_MS Silence before the peer is dropped (default 70000).
|
|
21
|
+
* NODETOOL_WS_MAX_BUFFERED_BYTES Outbound buffer before sends wait (default 8388608).
|
|
22
|
+
* NODETOOL_WS_DRAIN_TIMEOUT_MS How long a send waits for drain (default 30000).
|
|
23
|
+
* NODETOOL_WS_MAX_QUEUED_FRAMES Undelivered inbound frames before close (default 2000).
|
|
24
|
+
*/
|
|
25
|
+
import { parseIntEnv, parseBoolEnv } from "./env-config.js";
|
|
26
|
+
export function getWsConnectionHealthConfig() {
|
|
27
|
+
return {
|
|
28
|
+
enabled: !parseBoolEnv("NODETOOL_WS_HEALTH_DISABLED"),
|
|
29
|
+
pingIntervalMs: parseIntEnv("NODETOOL_WS_PING_INTERVAL_MS", 20_000),
|
|
30
|
+
// Above the client's own 45s silence threshold, so the client gets to
|
|
31
|
+
// notice and reconnect on its own before the server gives up on it.
|
|
32
|
+
idleTimeoutMs: parseIntEnv("NODETOOL_WS_IDLE_TIMEOUT_MS", 70_000),
|
|
33
|
+
maxBufferedBytes: parseIntEnv("NODETOOL_WS_MAX_BUFFERED_BYTES", 8 * 1024 * 1024),
|
|
34
|
+
drainTimeoutMs: parseIntEnv("NODETOOL_WS_DRAIN_TIMEOUT_MS", 30_000),
|
|
35
|
+
maxQueuedFrames: parseIntEnv("NODETOOL_WS_MAX_QUEUED_FRAMES", 2000)
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ws-connection-health.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-connection-health.js","sourceRoot":"","sources":["../../src/lib/ws-connection-health.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW5D,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,OAAO,EAAE,CAAC,YAAY,CAAC,6BAA6B,CAAC;QACrD,cAAc,EAAE,WAAW,CAAC,8BAA8B,EAAE,MAAM,CAAC;QACnE,sEAAsE;QACtE,oEAAoE;QACpE,aAAa,EAAE,WAAW,CAAC,6BAA6B,EAAE,MAAM,CAAC;QACjE,gBAAgB,EAAE,WAAW,CAAC,gCAAgC,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;QAChF,cAAc,EAAE,WAAW,CAAC,8BAA8B,EAAE,MAAM,CAAC;QACnE,eAAe,EAAE,WAAW,CAAC,+BAA+B,EAAE,IAAI,CAAC;KACpE,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
interface WsRateLimitConfig {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
maxMessages: number;
|
|
4
|
+
windowMs: number;
|
|
5
|
+
}
|
|
6
|
+
export declare function getWsRateLimitConfig(): WsRateLimitConfig;
|
|
7
|
+
/**
|
|
8
|
+
* Fixed-window message counter. O(1) per check, one instance per connection.
|
|
9
|
+
*/
|
|
10
|
+
export declare class WsMessageRateLimiter {
|
|
11
|
+
private readonly config;
|
|
12
|
+
private windowStart;
|
|
13
|
+
private count;
|
|
14
|
+
constructor(config?: WsRateLimitConfig);
|
|
15
|
+
/**
|
|
16
|
+
* Record one inbound message. Returns false once the cap for the current
|
|
17
|
+
* window is exceeded, signalling the caller to drop or close the connection.
|
|
18
|
+
*/
|
|
19
|
+
allow(now?: number): boolean;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=ws-rate-limit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-rate-limit.d.ts","sourceRoot":"","sources":["../../src/lib/ws-rate-limit.ts"],"names":[],"mappings":"AAaA,UAAU,iBAAiB;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,oBAAoB,IAAI,iBAAiB,CAMxD;AAED;;GAEG;AACH,qBAAa,oBAAoB;IAK7B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,KAAK,CAAK;IAElB,YACmB,MAAM,GAAE,iBAA0C,EACjE;IAEJ;;;OAGG;IACH,KAAK,CAAC,GAAG,GAAE,MAAmB,GAAG,OAAO,CAQvC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-connection WebSocket message rate cap.
|
|
3
|
+
*
|
|
4
|
+
* Bounds how fast a single client can push inbound frames at the server, blunting
|
|
5
|
+
* message-flood DoS on the long-lived /ws socket (which sits past the one-time
|
|
6
|
+
* HTTP handshake the per-IP HTTP limiter sees). Tunable via:
|
|
7
|
+
*
|
|
8
|
+
* NODETOOL_WS_RATE_LIMIT_DISABLED Set truthy to turn the cap off.
|
|
9
|
+
* NODETOOL_WS_RATE_LIMIT_MAX Max inbound messages per window (default 200).
|
|
10
|
+
* NODETOOL_WS_RATE_LIMIT_WINDOW_MS Window length in ms (default 1000).
|
|
11
|
+
*/
|
|
12
|
+
import { parseIntEnv, parseBoolEnv } from "./env-config.js";
|
|
13
|
+
export function getWsRateLimitConfig() {
|
|
14
|
+
return {
|
|
15
|
+
enabled: !parseBoolEnv("NODETOOL_WS_RATE_LIMIT_DISABLED"),
|
|
16
|
+
maxMessages: parseIntEnv("NODETOOL_WS_RATE_LIMIT_MAX", 200),
|
|
17
|
+
windowMs: parseIntEnv("NODETOOL_WS_RATE_LIMIT_WINDOW_MS", 1000)
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Fixed-window message counter. O(1) per check, one instance per connection.
|
|
22
|
+
*/
|
|
23
|
+
export class WsMessageRateLimiter {
|
|
24
|
+
config;
|
|
25
|
+
windowStart = 0;
|
|
26
|
+
count = 0;
|
|
27
|
+
constructor(config = getWsRateLimitConfig()) {
|
|
28
|
+
this.config = config;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Record one inbound message. Returns false once the cap for the current
|
|
32
|
+
* window is exceeded, signalling the caller to drop or close the connection.
|
|
33
|
+
*/
|
|
34
|
+
allow(now = Date.now()) {
|
|
35
|
+
if (!this.config.enabled)
|
|
36
|
+
return true;
|
|
37
|
+
if (now - this.windowStart >= this.config.windowMs) {
|
|
38
|
+
this.windowStart = now;
|
|
39
|
+
this.count = 0;
|
|
40
|
+
}
|
|
41
|
+
this.count += 1;
|
|
42
|
+
return this.count <= this.config.maxMessages;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=ws-rate-limit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-rate-limit.js","sourceRoot":"","sources":["../../src/lib/ws-rate-limit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQ5D,MAAM,UAAU,oBAAoB;IAClC,OAAO;QACL,OAAO,EAAE,CAAC,YAAY,CAAC,iCAAiC,CAAC;QACzD,WAAW,EAAE,WAAW,CAAC,4BAA4B,EAAE,GAAG,CAAC;QAC3D,QAAQ,EAAE,WAAW,CAAC,kCAAkC,EAAE,IAAI,CAAC;KAChE,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,oBAAoB;IAKZ,MAAM;IAJjB,WAAW,GAAG,CAAC,CAAC;IAChB,KAAK,GAAG,CAAC,CAAC;IAElB,YACmB,MAAM,GAAsB,oBAAoB,EAAE;sBAAlD,MAAM;IACtB,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,GAAG,GAAW,IAAI,CAAC,GAAG,EAAE;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QACtC,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACnD,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;YACvB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;QAChB,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IAC/C,CAAC;CACF"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { FastifyReply, FastifyRequest } from "fastify";
|
|
2
|
+
/** True when this request is a WebSocket handshake rather than a plain call. */
|
|
3
|
+
export declare function isWebSocketUpgrade(req: FastifyRequest): boolean;
|
|
4
|
+
/**
|
|
5
|
+
* Refuse a request with 401, closing the connection when it is a WebSocket
|
|
6
|
+
* handshake.
|
|
7
|
+
*
|
|
8
|
+
* An upgrade cannot be refused through `reply.send()`. @fastify/websocket
|
|
9
|
+
* dispatches the handshake through the normal Fastify stack against a
|
|
10
|
+
* `ServerResponse` it assigned to the raw socket by hand, so that socket is
|
|
11
|
+
* outside the HTTP server's connection bookkeeping: writing a response to it
|
|
12
|
+
* closes nothing. The plugin does clean up after a refused upgrade, but from an
|
|
13
|
+
* `onResponse` hook gated on the `request.ws` flag its own `onRequest` hook
|
|
14
|
+
* sets — and hooks run in registration order, so an auth hook registered before
|
|
15
|
+
* the plugin short-circuits first and that cleanup never runs.
|
|
16
|
+
*
|
|
17
|
+
* The socket then outlives the request. The peer goes away, it parks in
|
|
18
|
+
* CLOSE_WAIT, and its descriptor is never released — one leaked fd per rejected
|
|
19
|
+
* connect. A client retrying a stale token exhausts the process's fd limit in
|
|
20
|
+
* hours, after which `accept()` fails and the server resets every incoming
|
|
21
|
+
* connection, health checks included.
|
|
22
|
+
*
|
|
23
|
+
* So answer the handshake on the socket and destroy it. `reply.hijack()` takes
|
|
24
|
+
* the request out of Fastify's lifecycle first, since we own the response from
|
|
25
|
+
* that point on.
|
|
26
|
+
*/
|
|
27
|
+
export declare function denyUnauthorized(req: FastifyRequest, reply: FastifyReply, body: {
|
|
28
|
+
error: string;
|
|
29
|
+
}, challenge?: string): void;
|
|
30
|
+
/**
|
|
31
|
+
* Refuse a WebSocket handshake with 503 while the process is draining, using
|
|
32
|
+
* the same socket-level answer {@link denyUnauthorized} documents — an upgrade
|
|
33
|
+
* cannot be refused through `reply.send()`, and a response written to the
|
|
34
|
+
* hijacked socket without destroying it leaks the descriptor.
|
|
35
|
+
*
|
|
36
|
+
* The client's own reconnect backoff then lands on a machine whose health
|
|
37
|
+
* check still passes.
|
|
38
|
+
*/
|
|
39
|
+
export declare function denyDraining(req: FastifyRequest, reply: FastifyReply): void;
|
|
40
|
+
//# sourceMappingURL=ws-upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-upgrade.d.ts","sourceRoot":"","sources":["../../src/lib/ws-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE5D,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAE/D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,YAAY,EACnB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EACvB,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAoBN;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAY3E"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/** True when this request is a WebSocket handshake rather than a plain call. */
|
|
2
|
+
export function isWebSocketUpgrade(req) {
|
|
3
|
+
return req.headers["upgrade"]?.toLowerCase() === "websocket";
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Refuse a request with 401, closing the connection when it is a WebSocket
|
|
7
|
+
* handshake.
|
|
8
|
+
*
|
|
9
|
+
* An upgrade cannot be refused through `reply.send()`. @fastify/websocket
|
|
10
|
+
* dispatches the handshake through the normal Fastify stack against a
|
|
11
|
+
* `ServerResponse` it assigned to the raw socket by hand, so that socket is
|
|
12
|
+
* outside the HTTP server's connection bookkeeping: writing a response to it
|
|
13
|
+
* closes nothing. The plugin does clean up after a refused upgrade, but from an
|
|
14
|
+
* `onResponse` hook gated on the `request.ws` flag its own `onRequest` hook
|
|
15
|
+
* sets — and hooks run in registration order, so an auth hook registered before
|
|
16
|
+
* the plugin short-circuits first and that cleanup never runs.
|
|
17
|
+
*
|
|
18
|
+
* The socket then outlives the request. The peer goes away, it parks in
|
|
19
|
+
* CLOSE_WAIT, and its descriptor is never released — one leaked fd per rejected
|
|
20
|
+
* connect. A client retrying a stale token exhausts the process's fd limit in
|
|
21
|
+
* hours, after which `accept()` fails and the server resets every incoming
|
|
22
|
+
* connection, health checks included.
|
|
23
|
+
*
|
|
24
|
+
* So answer the handshake on the socket and destroy it. `reply.hijack()` takes
|
|
25
|
+
* the request out of Fastify's lifecycle first, since we own the response from
|
|
26
|
+
* that point on.
|
|
27
|
+
*/
|
|
28
|
+
export function denyUnauthorized(req, reply, body, challenge) {
|
|
29
|
+
if (!isWebSocketUpgrade(req)) {
|
|
30
|
+
if (challenge) {
|
|
31
|
+
reply.header("WWW-Authenticate", challenge);
|
|
32
|
+
}
|
|
33
|
+
reply.status(401).send(body);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
reply.hijack();
|
|
37
|
+
const socket = req.raw.socket;
|
|
38
|
+
if (!socket || socket.destroyed)
|
|
39
|
+
return;
|
|
40
|
+
socket.write("HTTP/1.1 401 Unauthorized\r\n" +
|
|
41
|
+
"Connection: close\r\n" +
|
|
42
|
+
"Content-Length: 0\r\n" +
|
|
43
|
+
"\r\n");
|
|
44
|
+
socket.destroy();
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Refuse a WebSocket handshake with 503 while the process is draining, using
|
|
48
|
+
* the same socket-level answer {@link denyUnauthorized} documents — an upgrade
|
|
49
|
+
* cannot be refused through `reply.send()`, and a response written to the
|
|
50
|
+
* hijacked socket without destroying it leaks the descriptor.
|
|
51
|
+
*
|
|
52
|
+
* The client's own reconnect backoff then lands on a machine whose health
|
|
53
|
+
* check still passes.
|
|
54
|
+
*/
|
|
55
|
+
export function denyDraining(req, reply) {
|
|
56
|
+
reply.hijack();
|
|
57
|
+
const socket = req.raw.socket;
|
|
58
|
+
if (!socket || socket.destroyed)
|
|
59
|
+
return;
|
|
60
|
+
socket.write("HTTP/1.1 503 Service Unavailable\r\n" +
|
|
61
|
+
"Connection: close\r\n" +
|
|
62
|
+
"Content-Length: 0\r\n" +
|
|
63
|
+
"\r\n");
|
|
64
|
+
socket.destroy();
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=ws-upgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ws-upgrade.js","sourceRoot":"","sources":["../../src/lib/ws-upgrade.ts"],"names":[],"mappings":"AAEA,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,GAAmB;IACpD,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,KAAK,WAAW,CAAC;AAC/D,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAmB,EACnB,KAAmB,EACnB,IAAuB,EACvB,SAAkB;IAElB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,IAAI,SAAS,EAAE,CAAC;YACd,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,OAAO;IACT,CAAC;IAED,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO;IACxC,MAAM,CAAC,KAAK,CACV,+BAA+B;QAC7B,uBAAuB;QACvB,uBAAuB;QACvB,MAAM,CACT,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAAC,GAAmB,EAAE,KAAmB;IACnE,KAAK,CAAC,MAAM,EAAE,CAAC;IAEf,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;IAC9B,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,SAAS;QAAE,OAAO;IACxC,MAAM,CAAC,KAAK,CACV,sCAAsC;QACpC,uBAAuB;QACvB,uBAAuB;QACvB,MAAM,CACT,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Readable } from "node:stream";
|
|
2
|
+
/** A local file to read in place. */
|
|
3
|
+
export interface LocalFileSource {
|
|
4
|
+
path: string;
|
|
5
|
+
size: number;
|
|
6
|
+
}
|
|
7
|
+
/** What an export entry reads from: bytes in memory or a local file. */
|
|
8
|
+
export type ExportSource = Uint8Array | LocalFileSource;
|
|
9
|
+
/** Largest entry fflate can write without Zip64. */
|
|
10
|
+
export declare const MAX_ZIP_ENTRY_BYTES = 4294967295;
|
|
11
|
+
export declare function isLocalFileSource(source: ExportSource): source is LocalFileSource;
|
|
12
|
+
export declare function exportSourceSize(source: ExportSource): number;
|
|
13
|
+
/** Hex sha256 of `source`, streaming a local file. */
|
|
14
|
+
export declare function sha256OfSource(source: ExportSource): Promise<string>;
|
|
15
|
+
/** Receives archive chunks in order and resolves when it can take more. */
|
|
16
|
+
export type ZipChunkSink = (chunk: Uint8Array) => Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Writes zip entries one after another to a sink, waiting on the sink between
|
|
19
|
+
* chunks so a slow reader holds back the file reads.
|
|
20
|
+
*/
|
|
21
|
+
export declare class ZipStreamWriter {
|
|
22
|
+
private readonly sink;
|
|
23
|
+
private readonly zip;
|
|
24
|
+
private pending;
|
|
25
|
+
private failure;
|
|
26
|
+
constructor(sink: ZipChunkSink);
|
|
27
|
+
private flush;
|
|
28
|
+
/**
|
|
29
|
+
* Add one entry. `compress` deflates it, which suits text; media is already
|
|
30
|
+
* compressed and is stored as-is.
|
|
31
|
+
*/
|
|
32
|
+
add(name: string, source: ExportSource, options?: {
|
|
33
|
+
compress?: boolean;
|
|
34
|
+
}): Promise<void>;
|
|
35
|
+
/** Write the central directory. No entry may be added afterwards. */
|
|
36
|
+
finish(): Promise<void>;
|
|
37
|
+
}
|
|
38
|
+
/** Run `write` against a writer that collects the whole archive in memory. */
|
|
39
|
+
export declare function collectZip(write: (writer: ZipStreamWriter) => Promise<void>): Promise<Uint8Array>;
|
|
40
|
+
/**
|
|
41
|
+
* A readable stream of the archive `write` produces. Writing starts at once
|
|
42
|
+
* and waits whenever the reader falls behind; a failure or a reader that goes
|
|
43
|
+
* away destroys the stream, which ends the download early.
|
|
44
|
+
*/
|
|
45
|
+
export declare function streamZip(write: (writer: ZipStreamWriter) => Promise<void>): Readable;
|
|
46
|
+
//# sourceMappingURL=zip-stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zip-stream.d.ts","sourceRoot":"","sources":["../../src/lib/zip-stream.ts"],"names":[],"mappings":"AAeA,OAAO,EAAe,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGpD,qCAAqC;AACrC,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wEAAwE;AACxE,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,eAAe,CAAC;AAExD,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,aAAc,CAAC;AAE/C,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,YAAY,GACnB,MAAM,IAAI,eAAe,CAE3B;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE7D;AAaD,sDAAsD;AACtD,wBAAsB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAM1E;AAED,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhE;;;GAGG;AACH,qBAAa,eAAe;IAKd,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJjC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAM;IAC1B,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,OAAO,CAAsB;IAErC,YAA6B,IAAI,EAAE,YAAY,EAQ9C;YAEa,KAAK;IAQnB;;;OAGG;IACG,GAAG,CACP,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAO,GACnC,OAAO,CAAC,IAAI,CAAC,CAWf;IAED,qEAAqE;IAC/D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAG5B;CACF;AAED,8EAA8E;AAC9E,wBAAsB,UAAU,CAC9B,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAChD,OAAO,CAAC,UAAU,CAAC,CAQrB;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAC,IAAI,CAAC,GAChD,QAAQ,CAgCV"}
|