@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,525 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Trigger dispatcher — turns durable `trigger_inputs` into runs.
|
|
3
|
+
*
|
|
4
|
+
* Ingestion adapters (webhook route, scheduler, file watcher) only *store*
|
|
5
|
+
* events. This is the single consumer: for every enabled `trigger_registrations`
|
|
6
|
+
* row it drains the unprocessed inputs addressed to that registration's
|
|
7
|
+
* (workflow, node) and starts one headless run per input, handing the payload
|
|
8
|
+
* to the trigger node as the run's `trigger_event`.
|
|
9
|
+
*
|
|
10
|
+
* Two paths feed it, following the `startReaper` shape
|
|
11
|
+
* (`@nodetool-ai/compute`): a coarse poll timer, and an in-process `notify()`
|
|
12
|
+
* that adapters call right after appending. `notify()` is what makes a
|
|
13
|
+
* same-process event dispatch immediately; the poll is only the
|
|
14
|
+
* crash-recovery path (a server that died mid-dispatch, or an input written by
|
|
15
|
+
* another process).
|
|
16
|
+
*
|
|
17
|
+
* ## Delivered vs. failed
|
|
18
|
+
*
|
|
19
|
+
* `startJob` **rejecting** means the run was never accepted (workflow missing,
|
|
20
|
+
* DB/infra hiccup): the input stays unprocessed so the next tick redelivers it,
|
|
21
|
+
* and the reason lands in `registration.last_error`.
|
|
22
|
+
*
|
|
23
|
+
* `startJob` **resolving with `status: "failed"`** is a different thing — the
|
|
24
|
+
* run was accepted and executed, and the *graph* failed. That is a delivered
|
|
25
|
+
* event: the input is marked processed (retrying a deterministic graph failure
|
|
26
|
+
* would loop forever) and the run error is still written to
|
|
27
|
+
* `registration.last_error` so the UI shows the last outcome.
|
|
28
|
+
*
|
|
29
|
+
* ## Acceptance vs. completion
|
|
30
|
+
*
|
|
31
|
+
* `startJob` resolves on *terminal* status — it does not come back until the
|
|
32
|
+
* workflow has finished. A pass that awaited that would hold every other
|
|
33
|
+
* registration behind the slowest run in flight: a webhook arriving one second
|
|
34
|
+
* into a ten-minute triggered run waited ten minutes for its own dispatch.
|
|
35
|
+
*
|
|
36
|
+
* So a pass awaits **acceptance**, not completion. `startHeadlessJob` reports
|
|
37
|
+
* acceptance through `onAccepted` the moment the workflow resolves and the
|
|
38
|
+
* `Job` row exists; the run itself settles later, on its own. `drain()` is what
|
|
39
|
+
* awaits the runs, for shutdown and for tests.
|
|
40
|
+
*
|
|
41
|
+
* A `startJob` that never calls `onAccepted` (the test fakes, any other job
|
|
42
|
+
* starter) still works: acceptance then resolves when the job promise does,
|
|
43
|
+
* which is exactly the old behaviour.
|
|
44
|
+
*
|
|
45
|
+
* ## Idempotency and the crash window
|
|
46
|
+
*
|
|
47
|
+
* An input is marked processed **when the run is accepted**, never before. In
|
|
48
|
+
* process, `inflight` (keyed by `inputId`) makes overlapping passes and
|
|
49
|
+
* concurrent `dispatchInput` calls join the same dispatch instead of starting a
|
|
50
|
+
* second run.
|
|
51
|
+
*
|
|
52
|
+
* The uncovered window is a crash *between* run acceptance and
|
|
53
|
+
* `markProcessed`: the input is still unprocessed on restart, so it is
|
|
54
|
+
* redelivered and the run happens twice. This is deliberate — at-least-once
|
|
55
|
+
* delivery. Dropping an event is worse than repeating one, and marking first
|
|
56
|
+
* would turn any crash before acceptance into a silently lost event.
|
|
57
|
+
*
|
|
58
|
+
* A run that was never accepted (`startJob` rejected) leaves `last_fired_at`
|
|
59
|
+
* alone: nothing fired, and stamping it made the editor report a delivery that
|
|
60
|
+
* never happened.
|
|
61
|
+
*
|
|
62
|
+
* ## Who writes `last_fired_at`
|
|
63
|
+
*
|
|
64
|
+
* A kind whose ingestion adapter runs in this process stamps the column when
|
|
65
|
+
* it delivers the event: `schedule` (where the column doubles as the
|
|
66
|
+
* scheduler's due-computation cursor, so moving it again here would shift the
|
|
67
|
+
* schedule) and `file_watch`. The dispatcher leaves those rows alone.
|
|
68
|
+
*
|
|
69
|
+
* `webhook` and `manual` arrive from outside and have no such owner, and
|
|
70
|
+
* leaving the column untouched made a webhook that had been delivering all
|
|
71
|
+
* week still report "Never" in the editor. For those the dispatcher stamps it
|
|
72
|
+
* on a delivered dispatch — the same write that records the run's outcome.
|
|
73
|
+
*/
|
|
74
|
+
import { createLogger } from "@nodetool-ai/config";
|
|
75
|
+
import { TriggerWakeupService } from "@nodetool-ai/kernel";
|
|
76
|
+
import { getDb, RunEvent, TriggerInput as TriggerInputModel, TriggerRegistration } from "@nodetool-ai/models";
|
|
77
|
+
import { startHeadlessJob } from "../headless-job-runner.js";
|
|
78
|
+
import { SCHEDULE_KIND } from "./schedule-timing.js";
|
|
79
|
+
import { checkTriggerBounds, disableTrigger, settleTriggerOutcome, triggerRunParams } from "./settle.js";
|
|
80
|
+
import { isFunctionValue } from "../lib/wire-values.js";
|
|
81
|
+
// Stryker disable next-line StringLiteral: logger name is a diagnostic label, not a behavioural contract
|
|
82
|
+
const log = createLogger("nodetool.websocket.triggers.dispatcher");
|
|
83
|
+
const DEFAULT_POLL_INTERVAL_MS = 15_000;
|
|
84
|
+
const DEFAULT_BATCH_SIZE = 100;
|
|
85
|
+
/**
|
|
86
|
+
* Kinds whose in-process ingestion adapter already stamps `last_fired_at` at
|
|
87
|
+
* delivery time (see the module docs). The dispatcher stamps every other kind.
|
|
88
|
+
*/
|
|
89
|
+
const ADAPTER_STAMPS_FIRED_AT = new Set([
|
|
90
|
+
SCHEDULE_KIND,
|
|
91
|
+
"file_watch"
|
|
92
|
+
]);
|
|
93
|
+
function deferred() {
|
|
94
|
+
let resolve;
|
|
95
|
+
let reject;
|
|
96
|
+
const promise = new Promise((res, rej) => {
|
|
97
|
+
resolve = res;
|
|
98
|
+
reject = rej;
|
|
99
|
+
});
|
|
100
|
+
const d = {
|
|
101
|
+
promise,
|
|
102
|
+
settled: false,
|
|
103
|
+
resolve: () => {
|
|
104
|
+
if (d.settled)
|
|
105
|
+
return;
|
|
106
|
+
d.settled = true;
|
|
107
|
+
resolve();
|
|
108
|
+
},
|
|
109
|
+
reject: (reason) => {
|
|
110
|
+
if (d.settled)
|
|
111
|
+
return;
|
|
112
|
+
d.settled = true;
|
|
113
|
+
reject(reason);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
return d;
|
|
117
|
+
}
|
|
118
|
+
function readPolicy(registration) {
|
|
119
|
+
const raw = registration.config_json?.concurrency;
|
|
120
|
+
if (raw === "queue" || raw === "skip" || raw === "parallel")
|
|
121
|
+
return raw;
|
|
122
|
+
return "parallel";
|
|
123
|
+
}
|
|
124
|
+
async function listEnabledRegistrations() {
|
|
125
|
+
const rows = await getDb().query.triggerRegistrations.findMany({
|
|
126
|
+
where: (t, { eq }) => eq(t.enabled, 1),
|
|
127
|
+
orderBy: (t, { asc }) => asc(t.created_at)
|
|
128
|
+
});
|
|
129
|
+
return rows.map((r) => new TriggerRegistration(r));
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* The registration an input belongs to. Adapters address inputs by
|
|
133
|
+
* `(workflow_id, node_id)` — the input's `runId` *is* the workflow id — so the
|
|
134
|
+
* lookup is a workflow scan plus a node-id match.
|
|
135
|
+
*/
|
|
136
|
+
async function findRegistrationForInput(input) {
|
|
137
|
+
const registrations = await TriggerRegistration.findByWorkflow(input.runId);
|
|
138
|
+
return registrations.find((r) => r.node_id === input.nodeId) ?? null;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Consumes stored trigger inputs. One instance owns the per-registration
|
|
142
|
+
* concurrency state and the per-input in-flight map, so both survive across
|
|
143
|
+
* passes.
|
|
144
|
+
*/
|
|
145
|
+
export class TriggerDispatcher {
|
|
146
|
+
store;
|
|
147
|
+
startJob;
|
|
148
|
+
registry;
|
|
149
|
+
batchSize;
|
|
150
|
+
states = new Map();
|
|
151
|
+
inflight = new Map();
|
|
152
|
+
/** Runs a pass handed off but that have not finished. `drain()` awaits these. */
|
|
153
|
+
outstanding = new Set();
|
|
154
|
+
pass = null;
|
|
155
|
+
pending = false;
|
|
156
|
+
stopped = false;
|
|
157
|
+
constructor(options) {
|
|
158
|
+
this.store = options.store;
|
|
159
|
+
this.startJob = options.startJob ?? startHeadlessJob;
|
|
160
|
+
this.registry = options.registry;
|
|
161
|
+
this.batchSize = options.batchSize ?? DEFAULT_BATCH_SIZE;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Drain every enabled registration's unprocessed inputs once. Resolves when
|
|
165
|
+
* every input this pass picked up has been *accepted* — not when its run has
|
|
166
|
+
* finished, so one slow workflow cannot hold up the next pass (see the
|
|
167
|
+
* acceptance-vs-completion note above). Use `drain()` to await the runs. A
|
|
168
|
+
* single input's failure does not abort the pass.
|
|
169
|
+
*/
|
|
170
|
+
async runOnce() {
|
|
171
|
+
const registrations = await listEnabledRegistrations();
|
|
172
|
+
const accepted = [];
|
|
173
|
+
for (const registration of registrations) {
|
|
174
|
+
const inputs = await this.store.findUnprocessed(registration.workflow_id, registration.node_id, this.batchSize);
|
|
175
|
+
for (const input of inputs) {
|
|
176
|
+
// Swallow here only: each dispatch already records its own error.
|
|
177
|
+
accepted.push(this.enqueue(input, registration).accepted.catch(() => undefined));
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
await Promise.all(accepted);
|
|
181
|
+
}
|
|
182
|
+
/** Adapter hint: run a pass now, coalescing concurrent notifies. */
|
|
183
|
+
notify = () => {
|
|
184
|
+
if (this.stopped)
|
|
185
|
+
return;
|
|
186
|
+
this.pending = true;
|
|
187
|
+
if (this.pass)
|
|
188
|
+
return;
|
|
189
|
+
this.pass = this.runPasses().finally(() => {
|
|
190
|
+
this.pass = null;
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Await the currently running pass (and any pass it coalesced) *and* every
|
|
195
|
+
* run those passes handed off. A settling run can enqueue nothing new, but a
|
|
196
|
+
* pass can, so both are re-checked until the two are quiet together.
|
|
197
|
+
*/
|
|
198
|
+
async drain() {
|
|
199
|
+
while (this.pass || this.outstanding.size > 0) {
|
|
200
|
+
if (this.pass)
|
|
201
|
+
await this.pass;
|
|
202
|
+
await Promise.all([...this.outstanding].map((p) => p.catch(() => undefined)));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
stop() {
|
|
206
|
+
this.stopped = true;
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Deliver one already-stored input immediately. The synchronous-dispatch
|
|
210
|
+
* contract used by the manual-fire API: resolves with the started job id,
|
|
211
|
+
* rejects with an `Error` whose message starts with `"input not found"` or
|
|
212
|
+
* `"registration disabled"` for those two cases. A concurrent call for the
|
|
213
|
+
* same input joins the in-flight dispatch rather than starting a second run.
|
|
214
|
+
*/
|
|
215
|
+
async dispatchInput(inputId) {
|
|
216
|
+
const existing = this.inflight.get(inputId);
|
|
217
|
+
const settled = existing
|
|
218
|
+
? await existing.done
|
|
219
|
+
: await this.dispatchStoredInput(inputId);
|
|
220
|
+
if (settled.status !== "dispatched") {
|
|
221
|
+
throw new Error(`dispatch skipped: ${settled.reason}`);
|
|
222
|
+
}
|
|
223
|
+
return { jobId: settled.jobId };
|
|
224
|
+
}
|
|
225
|
+
async dispatchStoredInput(inputId) {
|
|
226
|
+
const input = await this.findInput(inputId);
|
|
227
|
+
if (!input) {
|
|
228
|
+
throw new Error(`input not found: ${inputId}`);
|
|
229
|
+
}
|
|
230
|
+
const registration = await findRegistrationForInput(input);
|
|
231
|
+
if (!registration) {
|
|
232
|
+
throw new Error(`input not found: no trigger registration for input ${inputId}`);
|
|
233
|
+
}
|
|
234
|
+
if (registration.enabled !== 1) {
|
|
235
|
+
throw new Error(`registration disabled: ${registration.id}`);
|
|
236
|
+
}
|
|
237
|
+
return this.enqueue(input, registration).done;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Look an input up by id. The `TriggerInputStore` interface addresses inputs
|
|
241
|
+
* by (run, node) only, so the by-id read goes through the model — the same
|
|
242
|
+
* table the Drizzle store writes.
|
|
243
|
+
*/
|
|
244
|
+
async findInput(inputId) {
|
|
245
|
+
const row = await TriggerInputModel.findByInputId(inputId);
|
|
246
|
+
if (!row || row.processed !== 0)
|
|
247
|
+
return null;
|
|
248
|
+
return {
|
|
249
|
+
runId: row.run_id,
|
|
250
|
+
nodeId: row.node_id,
|
|
251
|
+
inputId: row.input_id,
|
|
252
|
+
payload: row.payload_json,
|
|
253
|
+
cursor: row.cursor ?? undefined,
|
|
254
|
+
processed: false,
|
|
255
|
+
createdAt: new Date(row.created_at)
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
async runPasses() {
|
|
259
|
+
while (this.pending && !this.stopped) {
|
|
260
|
+
this.pending = false;
|
|
261
|
+
try {
|
|
262
|
+
await this.runOnce();
|
|
263
|
+
}
|
|
264
|
+
catch (err) {
|
|
265
|
+
log.warn("Trigger dispatch pass failed", err instanceof Error ? err : new Error(String(err)));
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
stateFor(registrationId) {
|
|
270
|
+
let state = this.states.get(registrationId);
|
|
271
|
+
if (!state) {
|
|
272
|
+
state = { running: 0, chain: Promise.resolve() };
|
|
273
|
+
this.states.set(registrationId, state);
|
|
274
|
+
}
|
|
275
|
+
return state;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Start (or join) the dispatch of one input under its registration's
|
|
279
|
+
* concurrency policy.
|
|
280
|
+
*/
|
|
281
|
+
enqueue(input, registration) {
|
|
282
|
+
const existing = this.inflight.get(input.inputId);
|
|
283
|
+
if (existing)
|
|
284
|
+
return existing;
|
|
285
|
+
const policy = readPolicy(registration);
|
|
286
|
+
const state = this.stateFor(registration.id);
|
|
287
|
+
const acceptance = deferred();
|
|
288
|
+
/**
|
|
289
|
+
* The handoff point: the input is marked processed and the pass that
|
|
290
|
+
* picked it up is released. Idempotent, because a `startJob` that reports
|
|
291
|
+
* acceptance early also resolves when it finishes.
|
|
292
|
+
*/
|
|
293
|
+
const accept = async () => {
|
|
294
|
+
if (acceptance.settled)
|
|
295
|
+
return;
|
|
296
|
+
await this.store.markProcessed(input.inputId);
|
|
297
|
+
acceptance.resolve();
|
|
298
|
+
};
|
|
299
|
+
// The synchronous prefix of `run` (the `running` bump) executes as soon as
|
|
300
|
+
// `run()` is called, so a second input enqueued in the same tick sees it.
|
|
301
|
+
const run = async () => {
|
|
302
|
+
if (policy === "skip" && state.running > 0) {
|
|
303
|
+
await this.emitReceived(input, registration, policy, false);
|
|
304
|
+
await accept();
|
|
305
|
+
log.debug("Trigger input skipped (run already in flight)", {
|
|
306
|
+
inputId: input.inputId,
|
|
307
|
+
registrationId: registration.id
|
|
308
|
+
});
|
|
309
|
+
return {
|
|
310
|
+
status: "skipped",
|
|
311
|
+
reason: `a run is already in flight for input ${input.inputId}`
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
state.running += 1;
|
|
315
|
+
try {
|
|
316
|
+
return await this.dispatchOne(input, registration, policy, accept);
|
|
317
|
+
}
|
|
318
|
+
finally {
|
|
319
|
+
state.running -= 1;
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
let done;
|
|
323
|
+
if (policy === "queue") {
|
|
324
|
+
// Both handlers run the dispatch: a failed predecessor must not cancel
|
|
325
|
+
// its successors.
|
|
326
|
+
done = state.chain.then(run, run);
|
|
327
|
+
state.chain = done.catch(() => undefined);
|
|
328
|
+
}
|
|
329
|
+
else {
|
|
330
|
+
done = run();
|
|
331
|
+
}
|
|
332
|
+
const dispatch = { accepted: acceptance.promise, done };
|
|
333
|
+
this.inflight.set(input.inputId, dispatch);
|
|
334
|
+
this.outstanding.add(done);
|
|
335
|
+
const forget = (err) => {
|
|
336
|
+
this.inflight.delete(input.inputId);
|
|
337
|
+
this.outstanding.delete(done);
|
|
338
|
+
// A dispatch that failed before it was ever accepted must not leave the
|
|
339
|
+
// pass awaiting an acceptance that will never come.
|
|
340
|
+
acceptance.reject(err);
|
|
341
|
+
};
|
|
342
|
+
void done.then(() => forget(), forget);
|
|
343
|
+
// The pass attaches its own handler, but `dispatchInput` callers only take
|
|
344
|
+
// `done` — keep a rejected acceptance from surfacing as unhandled.
|
|
345
|
+
void acceptance.promise.catch(() => undefined);
|
|
346
|
+
return dispatch;
|
|
347
|
+
}
|
|
348
|
+
async dispatchOne(input, registration, policy, accept) {
|
|
349
|
+
const nowMs = Date.now();
|
|
350
|
+
const gate = checkTriggerBounds(registration, nowMs);
|
|
351
|
+
if (!gate.allowed) {
|
|
352
|
+
// Exhausted: drop the event rather than leave it to redeliver forever,
|
|
353
|
+
// and disarm so the next one never gets this far.
|
|
354
|
+
await this.emitReceived(input, registration, policy, false);
|
|
355
|
+
await accept();
|
|
356
|
+
disableTrigger(registration, gate.reason);
|
|
357
|
+
await registration.save();
|
|
358
|
+
log.info("Trigger registration disabled before dispatch", {
|
|
359
|
+
registrationId: registration.id,
|
|
360
|
+
reason: gate.reason
|
|
361
|
+
});
|
|
362
|
+
return { status: "skipped", reason: `registration ${gate.reason}` };
|
|
363
|
+
}
|
|
364
|
+
await this.emitReceived(input, registration, policy, true);
|
|
365
|
+
let job;
|
|
366
|
+
try {
|
|
367
|
+
const jobRequest = {
|
|
368
|
+
workflowId: registration.workflow_id,
|
|
369
|
+
userId: registration.user_id,
|
|
370
|
+
params: triggerRunParams(registration, nowMs),
|
|
371
|
+
// Per-registration opt-in, off unless the row says otherwise.
|
|
372
|
+
supervise: registration.supervise === 1,
|
|
373
|
+
triggerEvent: {
|
|
374
|
+
node_id: input.nodeId,
|
|
375
|
+
payload: input.payload,
|
|
376
|
+
input_id: input.inputId
|
|
377
|
+
},
|
|
378
|
+
// Release the pass as soon as the run is taken on, so a long workflow
|
|
379
|
+
// doesn't hold up every other registration's dispatch.
|
|
380
|
+
onAccepted: () => {
|
|
381
|
+
void accept();
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
if (this.registry) {
|
|
385
|
+
jobRequest.registry = this.registry;
|
|
386
|
+
}
|
|
387
|
+
job = await this.startJob(jobRequest);
|
|
388
|
+
}
|
|
389
|
+
catch (err) {
|
|
390
|
+
// The run was never accepted: leave the input unprocessed so the next
|
|
391
|
+
// tick redelivers it. It still counts as a failure — a registration
|
|
392
|
+
// whose workflow has gone missing redelivers forever otherwise. Nothing
|
|
393
|
+
// fired, so `last_fired_at` is left alone.
|
|
394
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
395
|
+
await this.settle(registration, `dispatch failed: ${error.message}`, nowMs, { fired: false });
|
|
396
|
+
log.warn(`Trigger dispatch failed for input ${input.inputId} (registration ${registration.id})`, error);
|
|
397
|
+
throw error;
|
|
398
|
+
}
|
|
399
|
+
// Accepted — mark processed only now (see the crash-window note above).
|
|
400
|
+
// A no-op when `onAccepted` already fired mid-run.
|
|
401
|
+
await accept();
|
|
402
|
+
await this.settle(registration, job.status === "failed"
|
|
403
|
+
? `run failed: ${job.error ?? "unknown error"}`
|
|
404
|
+
: null, nowMs);
|
|
405
|
+
log.info("Trigger input dispatched", {
|
|
406
|
+
inputId: input.inputId,
|
|
407
|
+
registrationId: registration.id,
|
|
408
|
+
jobId: job.jobId,
|
|
409
|
+
status: job.status ?? "unknown"
|
|
410
|
+
});
|
|
411
|
+
return { status: "dispatched", jobId: job.jobId };
|
|
412
|
+
}
|
|
413
|
+
/** Append the audit event. Never lets a logging failure block a dispatch. */
|
|
414
|
+
async emitReceived(input, registration, policy, dispatched) {
|
|
415
|
+
try {
|
|
416
|
+
await RunEvent.appendEvent(input.runId, "TriggerInputReceived", {
|
|
417
|
+
input_id: input.inputId,
|
|
418
|
+
registration_id: registration.id,
|
|
419
|
+
kind: registration.kind,
|
|
420
|
+
concurrency: policy,
|
|
421
|
+
dispatched
|
|
422
|
+
}, input.nodeId);
|
|
423
|
+
}
|
|
424
|
+
catch (err) {
|
|
425
|
+
log.warn("Failed to append TriggerInputReceived event", err instanceof Error ? err : new Error(String(err)));
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
/**
|
|
429
|
+
* Record what the run did to the registration: its outcome, the failure
|
|
430
|
+
* counters, and — for the kinds no ingestion adapter stamps — the fire time
|
|
431
|
+
* the editor shows as "Last fired".
|
|
432
|
+
*
|
|
433
|
+
* `fired: false` marks an outcome where no run ever started, so there is no
|
|
434
|
+
* fire time to record however the kind is owned.
|
|
435
|
+
*/
|
|
436
|
+
async settle(registration, error, nowMs, opts = { fired: true }) {
|
|
437
|
+
const stampFiredAt = opts.fired && !ADAPTER_STAMPS_FIRED_AT.has(registration.kind);
|
|
438
|
+
const disabled = settleTriggerOutcome(registration, {
|
|
439
|
+
error,
|
|
440
|
+
stampFiredAt,
|
|
441
|
+
firedAt: new Date(nowMs).toISOString()
|
|
442
|
+
});
|
|
443
|
+
await registration.save();
|
|
444
|
+
if (disabled) {
|
|
445
|
+
log.info("Trigger registration disabled", {
|
|
446
|
+
registrationId: registration.id,
|
|
447
|
+
reason: disabled,
|
|
448
|
+
error
|
|
449
|
+
});
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
/** Construct a dispatcher without starting its poll timer (tests, boot code). */
|
|
454
|
+
export function createTriggerDispatcher(options) {
|
|
455
|
+
return new TriggerDispatcher(options);
|
|
456
|
+
}
|
|
457
|
+
// ── Process-wide handles ──────────────────────────────────────────────
|
|
458
|
+
//
|
|
459
|
+
// The manual-fire API (`trpc/routers/triggers.ts`) reaches the running
|
|
460
|
+
// dispatcher and wakeup service by module function, not by injection.
|
|
461
|
+
let activeDispatcher = null;
|
|
462
|
+
let wakeupService = null;
|
|
463
|
+
/**
|
|
464
|
+
* The process's `TriggerWakeupService`. Boot wiring installs the DB-backed
|
|
465
|
+
* instance via `setTriggerWakeupService`; until then a default (memory inbox)
|
|
466
|
+
* instance is created lazily so callers always get a usable service.
|
|
467
|
+
*/
|
|
468
|
+
export function getTriggerWakeupService() {
|
|
469
|
+
if (!wakeupService) {
|
|
470
|
+
wakeupService = new TriggerWakeupService();
|
|
471
|
+
}
|
|
472
|
+
return wakeupService;
|
|
473
|
+
}
|
|
474
|
+
/** Install (or clear, with `null`) the process-wide wakeup service. */
|
|
475
|
+
export function setTriggerWakeupService(service) {
|
|
476
|
+
wakeupService = service;
|
|
477
|
+
}
|
|
478
|
+
/** The running dispatcher, or `null` before boot wiring / after shutdown. */
|
|
479
|
+
export function getActiveDispatcher() {
|
|
480
|
+
return activeDispatcher;
|
|
481
|
+
}
|
|
482
|
+
/**
|
|
483
|
+
* Deliver one already-stored input immediately through the running dispatcher.
|
|
484
|
+
* Resolves with the started job id; rejects with an `Error` whose message
|
|
485
|
+
* starts with `"input not found"` or `"registration disabled"` for those cases.
|
|
486
|
+
*
|
|
487
|
+
* Note that the promise settles when the run *finishes*, because the headless
|
|
488
|
+
* runner resolves on terminal status.
|
|
489
|
+
*/
|
|
490
|
+
export async function dispatchInput(inputId) {
|
|
491
|
+
if (!activeDispatcher) {
|
|
492
|
+
throw new Error("trigger dispatcher not started");
|
|
493
|
+
}
|
|
494
|
+
return activeDispatcher.dispatchInput(inputId);
|
|
495
|
+
}
|
|
496
|
+
/**
|
|
497
|
+
* Start the dispatcher: one unref'd poll timer for crash recovery plus an
|
|
498
|
+
* immediate backlog pass. The returned handle stops the timer and also exposes
|
|
499
|
+
* `notify` (for adapters) and `drain`/`dispatchInput`.
|
|
500
|
+
*/
|
|
501
|
+
export function startDispatcher(options) {
|
|
502
|
+
const dispatcher = new TriggerDispatcher(options);
|
|
503
|
+
const intervalMs = options.intervalMs ?? DEFAULT_POLL_INTERVAL_MS;
|
|
504
|
+
activeDispatcher = dispatcher;
|
|
505
|
+
const timer = setInterval(() => {
|
|
506
|
+
dispatcher.notify();
|
|
507
|
+
}, intervalMs);
|
|
508
|
+
if (isFunctionValue(timer.unref)) {
|
|
509
|
+
timer.unref();
|
|
510
|
+
}
|
|
511
|
+
// Any input left unprocessed by a previous process life goes out now.
|
|
512
|
+
dispatcher.notify();
|
|
513
|
+
const handle = () => {
|
|
514
|
+
clearInterval(timer);
|
|
515
|
+
dispatcher.stop();
|
|
516
|
+
if (activeDispatcher === dispatcher) {
|
|
517
|
+
activeDispatcher = null;
|
|
518
|
+
}
|
|
519
|
+
};
|
|
520
|
+
handle.notify = dispatcher.notify;
|
|
521
|
+
handle.drain = () => dispatcher.drain();
|
|
522
|
+
handle.dispatchInput = (inputId) => dispatcher.dispatchInput(inputId);
|
|
523
|
+
return handle;
|
|
524
|
+
}
|
|
525
|
+
//# sourceMappingURL=dispatcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../../src/triggers/dispatcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File-watch adapter — the host-owned ingestion adapter for `file_watch`
|
|
3
|
+
* registrations (compiled from `FileWatchTriggerNode`s, see
|
|
4
|
+
* `registration-sync.ts`).
|
|
5
|
+
*
|
|
6
|
+
* File events arrive live through `fs.watch`, unlike the scheduler's poll
|
|
7
|
+
* sweep — so the sweep timer here only reconciles *which* registrations are
|
|
8
|
+
* watched: it opens a watcher for every enabled `file_watch` registration
|
|
9
|
+
* that isn't already watched with the current config (skipping — and
|
|
10
|
+
* recording `last_error` for — paths that don't exist), and closes the
|
|
11
|
+
* watcher for any registration that is no longer enabled, no longer exists,
|
|
12
|
+
* or whose watched path/recursion setting changed. Pattern/ignore-pattern
|
|
13
|
+
* matching and debounce reuse `FileWatchTriggerNode`'s own logic via the
|
|
14
|
+
* shared `@nodetool-ai/automation-nodes` helper, so the adapter and the
|
|
15
|
+
* in-editor live-test path can never drift apart.
|
|
16
|
+
*
|
|
17
|
+
* Follows `scheduler.ts`'s shape: a pure-ish sweep function callers can drive
|
|
18
|
+
* directly in tests, a thin `setInterval` wrapper for production, and a stop
|
|
19
|
+
* handle. The one difference is unavoidable statefulness — `fs.watch` handles
|
|
20
|
+
* must persist across sweeps — so the sweep function takes an explicit state
|
|
21
|
+
* map instead of being fully pure.
|
|
22
|
+
*/
|
|
23
|
+
import * as fs from "node:fs";
|
|
24
|
+
import { TriggerRegistration } from "@nodetool-ai/models";
|
|
25
|
+
import type { TriggerWakeupService } from "@nodetool-ai/kernel";
|
|
26
|
+
import { type FileWatchFilter } from "@nodetool-ai/automation-nodes";
|
|
27
|
+
/** Fired once per registration each time a watcher delivers a new event. */
|
|
28
|
+
interface FileWatchNotifyEvent {
|
|
29
|
+
registrationId: string;
|
|
30
|
+
inputId: string;
|
|
31
|
+
}
|
|
32
|
+
interface RunFileWatchSweepOptions {
|
|
33
|
+
wakeupService: TriggerWakeupService;
|
|
34
|
+
/** Same-process dispatch hint — called after a new event is delivered. */
|
|
35
|
+
notify?: (event: FileWatchNotifyEvent) => void;
|
|
36
|
+
/** Injectable clock for deterministic tests. Defaults to `Date.now`. */
|
|
37
|
+
now?: () => number;
|
|
38
|
+
/** Injectable watcher boundary for deterministic tests. */
|
|
39
|
+
watch?: (watchPath: string, options: {
|
|
40
|
+
recursive: boolean;
|
|
41
|
+
persistent: boolean;
|
|
42
|
+
}, listener: (eventType: "rename" | "change", filename: string | Buffer | null) => void) => fs.FSWatcher;
|
|
43
|
+
}
|
|
44
|
+
interface StartFileWatchOptions extends RunFileWatchSweepOptions {
|
|
45
|
+
/** Reconciliation sweep period — how often new/disabled/changed
|
|
46
|
+
* registrations are picked up. Defaults to 5s; live events do not wait for
|
|
47
|
+
* this timer, only registration churn does. */
|
|
48
|
+
intervalMs?: number;
|
|
49
|
+
}
|
|
50
|
+
/** Cancels a running `startFileWatch` timer and closes every open watcher,
|
|
51
|
+
* persisting catch-up snapshots along the way — see `stopFileWatch`. */
|
|
52
|
+
export type FileWatchHandle = () => Promise<void>;
|
|
53
|
+
interface WatchedRegistration {
|
|
54
|
+
watcher: fs.FSWatcher;
|
|
55
|
+
/** Identifies the watched path + recursion setting; a change here forces a
|
|
56
|
+
* watcher restart on the next sweep. */
|
|
57
|
+
configSnapshot: string;
|
|
58
|
+
/** Kept so `stopFileWatch` can capture a catch-up snapshot without a DB
|
|
59
|
+
* round trip and without re-deriving path/recursion/filter from config. */
|
|
60
|
+
registration: TriggerRegistration;
|
|
61
|
+
watchPath: string;
|
|
62
|
+
recursive: boolean;
|
|
63
|
+
filter: FileWatchFilter;
|
|
64
|
+
catchUp: boolean;
|
|
65
|
+
}
|
|
66
|
+
/** One `startFileWatch`/`runFileWatchSweepOnce` instance's set of currently
|
|
67
|
+
* open watchers, keyed by registration id. Exported so tests can drive
|
|
68
|
+
* `runFileWatchSweepOnce` deterministically without a real timer. */
|
|
69
|
+
export type FileWatchState = Map<string, WatchedRegistration>;
|
|
70
|
+
export declare function createFileWatchState(): FileWatchState;
|
|
71
|
+
/**
|
|
72
|
+
* Run one reconciliation sweep against the current set of enabled
|
|
73
|
+
* `file_watch` registrations: closes watchers for registrations that are no
|
|
74
|
+
* longer enabled/present/unchanged, and opens watchers for the rest. Skips —
|
|
75
|
+
* and records `last_error` for — a registration whose path does not exist.
|
|
76
|
+
*/
|
|
77
|
+
export declare function runFileWatchSweepOnce(state: FileWatchState, opts: RunFileWatchSweepOptions): Promise<void>;
|
|
78
|
+
/** Close every watcher tracked by `state`, persisting a catch-up snapshot
|
|
79
|
+
* for each catch-up-enabled registration, and clear the state. */
|
|
80
|
+
export declare function stopFileWatch(state: FileWatchState): Promise<void>;
|
|
81
|
+
/**
|
|
82
|
+
* Start the file-watch adapter: an immediate sweep plus a periodic
|
|
83
|
+
* reconciliation timer (`startReaper`/`startScheduler` shape). File events
|
|
84
|
+
* themselves are not polled — they arrive live through each registration's
|
|
85
|
+
* `fs.watch` handle; only registration churn (new/disabled/changed) waits for
|
|
86
|
+
* the sweep.
|
|
87
|
+
*/
|
|
88
|
+
export declare function startFileWatch(opts: StartFileWatchOptions): FileWatchHandle;
|
|
89
|
+
export {};
|
|
90
|
+
//# sourceMappingURL=file-watch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watch.d.ts","sourceRoot":"","sources":["../../src/triggers/file-watch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAkCvC,4EAA4E;AAC5E,UAAU,oBAAoB;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,wBAAwB;IAChC,aAAa,EAAE,oBAAoB,CAAC;IACpC,0EAA0E;IAC1E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C,wEAAwE;IACxE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2DAA2D;IAC3D,KAAK,CAAC,EAAE,CACN,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,EACpD,QAAQ,EAAE,CACR,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,KAC7B,IAAI,KACN,EAAE,CAAC,SAAS,CAAC;CACnB;AAED,UAAU,qBAAsB,SAAQ,wBAAwB;IAC9D;;mDAE+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;wEACwE;AACxE,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AAElD,UAAU,mBAAmB;IAC3B,OAAO,EAAE,EAAE,CAAC,SAAS,CAAC;IACtB;4CACwC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB;+EAC2E;IAC3E,YAAY,EAAE,mBAAmB,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;qEAEqE;AACrE,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,wBAAgB,oBAAoB,IAAI,cAAc,CAErD;AA6TD;;;;;GAKG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,IAAI,CAAC,CA8Ef;AAqCD;kEACkE;AAClE,wBAAsB,aAAa,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAMxE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CAmC3E"}
|