@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,456 @@
|
|
|
1
|
+
import { generationsForNode, linkGenerationAssets } from "@nodetool-ai/execution";
|
|
2
|
+
import { createLogger, getDefaultAssetsPath } from "@nodetool-ai/config";
|
|
3
|
+
import { Asset } from "@nodetool-ai/models";
|
|
4
|
+
import { buildAssetGenerationMetadata, isRawRgbaImage } from "@nodetool-ai/protocol";
|
|
5
|
+
import { encodeRawRgbaToPng, fetchExternalMedia } from "@nodetool-ai/runtime";
|
|
6
|
+
import { getAssetFileName } from "../lib/asset-paths.js";
|
|
7
|
+
import { storeAssetWithThumbnail } from "../lib/thumbnail.js";
|
|
8
|
+
import { isNonEmptyString, isObjectLike, isRecord, isString } from "../lib/wire-values.js";
|
|
9
|
+
const log = createLogger("nodetool.websocket.runner");
|
|
10
|
+
export function getAssetStoragePath() {
|
|
11
|
+
return getDefaultAssetsPath();
|
|
12
|
+
}
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
// Auto-save assets — persists generated media as Asset records
|
|
15
|
+
// ---------------------------------------------------------------------------
|
|
16
|
+
const ASSET_MEDIA_TYPES = new Set(["image", "audio", "video"]);
|
|
17
|
+
/** Byte cap for inline-preview text stored in a text generation's asset metadata. */
|
|
18
|
+
const TEXT_GENERATION_PREVIEW_CAP = 200_000;
|
|
19
|
+
/**
|
|
20
|
+
* The model property a generative node ran with, as the actor forwards it:
|
|
21
|
+
* `{type: "image_model", id, name, provider}`. Which key holds it varies by
|
|
22
|
+
* node, so the first model-shaped property wins.
|
|
23
|
+
*/
|
|
24
|
+
function modelProperty(properties) {
|
|
25
|
+
for (const value of Object.values(properties ?? {})) {
|
|
26
|
+
if (!isRecord(value))
|
|
27
|
+
continue;
|
|
28
|
+
if (isString(value.type) && value.type.endsWith("_model") && isString(value.id)) {
|
|
29
|
+
return value;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Lift the prompt and the generation settings out of a generation's input
|
|
36
|
+
* properties into asset metadata, so the asset says what produced it and can
|
|
37
|
+
* seed a variant later. Returns `{}` when nothing worth keeping is present.
|
|
38
|
+
*/
|
|
39
|
+
function generationMetadata(properties, nodeType) {
|
|
40
|
+
const model = modelProperty(properties);
|
|
41
|
+
return buildAssetGenerationMetadata({
|
|
42
|
+
prompt: properties?.prompt,
|
|
43
|
+
provider: model?.provider,
|
|
44
|
+
model: model?.id,
|
|
45
|
+
modelName: model?.name,
|
|
46
|
+
nodeType,
|
|
47
|
+
params: properties ?? null
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resolve a node's primary output name when it is a text/str type, so its value
|
|
52
|
+
* can be persisted as a text generation. Mirrors the frontend's
|
|
53
|
+
* `getPrimaryOutput` (honor `primary_output`, else first output). Returns
|
|
54
|
+
* undefined for non-text primaries (media, structured data, …).
|
|
55
|
+
*/
|
|
56
|
+
export function primaryTextOutputName(meta) {
|
|
57
|
+
const outputs = meta?.outputs ?? [];
|
|
58
|
+
if (outputs.length === 0)
|
|
59
|
+
return undefined;
|
|
60
|
+
const named = meta?.primary_output;
|
|
61
|
+
const primary = (named && outputs.find((o) => o.name === named)) || outputs[0];
|
|
62
|
+
const t = primary?.type?.type;
|
|
63
|
+
return t === "str" || t === "text" ? primary.name : undefined;
|
|
64
|
+
}
|
|
65
|
+
const ASSET_TYPE_MIME = {
|
|
66
|
+
image: "image/png",
|
|
67
|
+
audio: "audio/wav",
|
|
68
|
+
video: "video/mp4"
|
|
69
|
+
};
|
|
70
|
+
function isAssetLikeValue(value) {
|
|
71
|
+
if (!isRecord(value))
|
|
72
|
+
return false;
|
|
73
|
+
const v = value;
|
|
74
|
+
return (isString(v.type) &&
|
|
75
|
+
ASSET_MEDIA_TYPES.has(v.type) &&
|
|
76
|
+
("data" in v || "uri" in v));
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A chunk whose content is the native in-process `Float32Array` sample
|
|
80
|
+
* payload (see protocol `Chunk.content`). Must be encoded before crossing
|
|
81
|
+
* the websocket: msgpack/JSON would mangle the typed array.
|
|
82
|
+
*/
|
|
83
|
+
function isNativeAudioChunk(value) {
|
|
84
|
+
if (!isObjectLike(value))
|
|
85
|
+
return false;
|
|
86
|
+
const v = value;
|
|
87
|
+
return v.type === "chunk" && v.content instanceof Float32Array;
|
|
88
|
+
}
|
|
89
|
+
/** Encode a native audio chunk's samples to base64 f32le for the wire. */
|
|
90
|
+
function encodeAudioChunkForWire(chunk) {
|
|
91
|
+
const samples = chunk.content;
|
|
92
|
+
const bytes = Buffer.from(samples.buffer, samples.byteOffset, samples.byteLength);
|
|
93
|
+
return {
|
|
94
|
+
...chunk,
|
|
95
|
+
content: bytes.toString("base64"),
|
|
96
|
+
content_metadata: {
|
|
97
|
+
...chunk.content_metadata,
|
|
98
|
+
encoding: "f32le"
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Replace native-Float32Array chunk payloads in an outgoing message with
|
|
104
|
+
* their base64 wire form. Chunks appear as the message itself (chat
|
|
105
|
+
* streaming), as `value` (output_update), or as `result`/array elements
|
|
106
|
+
* (node_update); nested generic walks are deliberately avoided — this runs
|
|
107
|
+
* per message on the hot streaming path.
|
|
108
|
+
*/
|
|
109
|
+
export function encodeNativeAudioChunks(message) {
|
|
110
|
+
if (isNativeAudioChunk(message))
|
|
111
|
+
return encodeAudioChunkForWire(message);
|
|
112
|
+
let out = message;
|
|
113
|
+
for (const key of ["value", "result", "chunk"]) {
|
|
114
|
+
const v = out[key];
|
|
115
|
+
if (isNativeAudioChunk(v)) {
|
|
116
|
+
out = { ...out, [key]: encodeAudioChunkForWire(v) };
|
|
117
|
+
}
|
|
118
|
+
else if (Array.isArray(v) && v.some(isNativeAudioChunk)) {
|
|
119
|
+
out = {
|
|
120
|
+
...out,
|
|
121
|
+
[key]: v.map((item) => isNativeAudioChunk(item) ? encodeAudioChunkForWire(item) : item)
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
function decodeAssetBytes(data) {
|
|
128
|
+
if (data === null || data === undefined)
|
|
129
|
+
return null;
|
|
130
|
+
if (data instanceof Uint8Array)
|
|
131
|
+
return data;
|
|
132
|
+
if (Buffer.isBuffer(data))
|
|
133
|
+
return new Uint8Array(data);
|
|
134
|
+
if (Array.isArray(data) && data.every((v) => Number.isInteger(v))) {
|
|
135
|
+
return new Uint8Array(data);
|
|
136
|
+
}
|
|
137
|
+
if (isString(data)) {
|
|
138
|
+
return Uint8Array.from(Buffer.from(data, "base64"));
|
|
139
|
+
}
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
/** Parse a `data:` URI into its mime type and decoded bytes. */
|
|
143
|
+
function parseImageDataUri(uri) {
|
|
144
|
+
const match = /^data:([^;,]+)?(;base64)?,([\s\S]*)$/.exec(uri);
|
|
145
|
+
if (!match)
|
|
146
|
+
return null;
|
|
147
|
+
const mimeType = match[1] || "image/png";
|
|
148
|
+
const payload = match[3] ?? "";
|
|
149
|
+
const bytes = match[2]
|
|
150
|
+
? Uint8Array.from(Buffer.from(payload, "base64"))
|
|
151
|
+
: new TextEncoder().encode(decodeURIComponent(payload));
|
|
152
|
+
return { bytes, mimeType };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Pull image bytes (+mime) out of an embedded image payload — `{ data, mimeType }`
|
|
156
|
+
* or `{ uri }` — so it can be materialized into a temp asset. A non-data
|
|
157
|
+
* remote/storage URI is surfaced as a passthrough handle (view_image fetches it).
|
|
158
|
+
*/
|
|
159
|
+
export function extractEmbeddedImage(source) {
|
|
160
|
+
const declaredMime = isString(source.mimeType) ? source.mimeType : undefined;
|
|
161
|
+
const data = isString(source.data) ? source.data : undefined;
|
|
162
|
+
const uri = isString(source.uri) ? source.uri : undefined;
|
|
163
|
+
if (data) {
|
|
164
|
+
if (data.startsWith("data:")) {
|
|
165
|
+
const parsed = parseImageDataUri(data);
|
|
166
|
+
if (parsed) {
|
|
167
|
+
return {
|
|
168
|
+
bytes: parsed.bytes,
|
|
169
|
+
mimeType: declaredMime ?? parsed.mimeType
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
const bytes = decodeAssetBytes(data);
|
|
175
|
+
if (bytes)
|
|
176
|
+
return { bytes, mimeType: declaredMime ?? "image/png" };
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
if (uri) {
|
|
180
|
+
if (uri.startsWith("data:")) {
|
|
181
|
+
const parsed = parseImageDataUri(uri);
|
|
182
|
+
if (parsed) {
|
|
183
|
+
return {
|
|
184
|
+
bytes: parsed.bytes,
|
|
185
|
+
mimeType: declaredMime ?? parsed.mimeType
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
return { uri };
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
async function readBytesFromUri(uri) {
|
|
196
|
+
if (!uri)
|
|
197
|
+
return null;
|
|
198
|
+
try {
|
|
199
|
+
if (uri.startsWith("file://")) {
|
|
200
|
+
const { readFile } = await import("node:fs/promises");
|
|
201
|
+
const { fileURLToPath } = await import("node:url");
|
|
202
|
+
return new Uint8Array(await readFile(fileURLToPath(uri)));
|
|
203
|
+
}
|
|
204
|
+
if (uri.startsWith("data:")) {
|
|
205
|
+
const commaIdx = uri.indexOf(",");
|
|
206
|
+
if (commaIdx < 0)
|
|
207
|
+
return null;
|
|
208
|
+
return Uint8Array.from(Buffer.from(uri.slice(commaIdx + 1), "base64"));
|
|
209
|
+
}
|
|
210
|
+
if (uri.startsWith("http://") || uri.startsWith("https://")) {
|
|
211
|
+
// The uri comes from a user-authored workflow's output, so it is fetched
|
|
212
|
+
// under the media-ref egress policy — otherwise an auto-save node could
|
|
213
|
+
// make the server read cloud-metadata / internal services. A refusal
|
|
214
|
+
// throws; the catch below reports it and answers "no bytes".
|
|
215
|
+
const resp = await fetchExternalMedia(uri);
|
|
216
|
+
if (!resp.ok)
|
|
217
|
+
return null;
|
|
218
|
+
return new Uint8Array(await resp.arrayBuffer());
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
catch (err) {
|
|
222
|
+
// Failed to read bytes — non-fatal, but say which uri and why: a refused
|
|
223
|
+
// URL and a dead host are different problems for whoever reads the log.
|
|
224
|
+
log.warn("readBytesFromUri failed", {
|
|
225
|
+
uri,
|
|
226
|
+
error: err instanceof Error ? err.message : String(err)
|
|
227
|
+
});
|
|
228
|
+
}
|
|
229
|
+
return null;
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Recursively find asset-like values in a result object and persist them as
|
|
233
|
+
* Asset records in the database + on disk.
|
|
234
|
+
*
|
|
235
|
+
* Mutates the result in-place: sets `asset_id` and updates `uri` to
|
|
236
|
+
* `asset://{id}.{ext}`.
|
|
237
|
+
*/
|
|
238
|
+
export async function autoSaveAssets(result, opts) {
|
|
239
|
+
// Prompt + settings lifted into each media asset's metadata: what produced
|
|
240
|
+
// this, and what to re-run to get another one like it.
|
|
241
|
+
const generationMeta = generationMetadata(opts.properties, opts.nodeType);
|
|
242
|
+
// Generations the seam opened for this node that no asset names yet: the
|
|
243
|
+
// node returned an inline ref, so the link is made here, on save
|
|
244
|
+
// (docs/media-generation-tracking-design.md § 8, S3).
|
|
245
|
+
const generationIds = generationsForNode(opts.jobId, opts.nodeId);
|
|
246
|
+
const savedAssetIds = [];
|
|
247
|
+
// Each entry keeps the top-level output handle it was found under, so a node
|
|
248
|
+
// with several media outputs (a video and its last frame, say) persists
|
|
249
|
+
// assets that name which handle produced them. Without it, a reloaded
|
|
250
|
+
// Preview wired to one handle cannot tell the node's saved assets apart and
|
|
251
|
+
// shows whichever one its priority order happens to pick — for every handle.
|
|
252
|
+
const queue = [];
|
|
253
|
+
// Collect all asset-like values from the result (may be nested)
|
|
254
|
+
function collect(value, outputName) {
|
|
255
|
+
if (value === null || value === undefined)
|
|
256
|
+
return;
|
|
257
|
+
if (Array.isArray(value)) {
|
|
258
|
+
for (const item of value)
|
|
259
|
+
collect(item, outputName);
|
|
260
|
+
return;
|
|
261
|
+
}
|
|
262
|
+
if (isAssetLikeValue(value)) {
|
|
263
|
+
queue.push({ value, outputName });
|
|
264
|
+
return;
|
|
265
|
+
}
|
|
266
|
+
if (isRecord(value)) {
|
|
267
|
+
for (const v of Object.values(value)) {
|
|
268
|
+
collect(v, outputName);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
for (const [outputName, value] of Object.entries(result)) {
|
|
273
|
+
collect(value, outputName);
|
|
274
|
+
}
|
|
275
|
+
// Whether this result carries media at all — used to gate the structured
|
|
276
|
+
// (JSON) generation fallback below so a media node never also persists a
|
|
277
|
+
// redundant JSON copy of its output dict (true even on replay, where the
|
|
278
|
+
// media value already carries an asset_id and is skipped by the save loop).
|
|
279
|
+
const hasMedia = queue.length > 0;
|
|
280
|
+
for (const { value: assetValue, outputName } of queue) {
|
|
281
|
+
// Skip if already saved
|
|
282
|
+
if (assetValue.asset_id)
|
|
283
|
+
continue;
|
|
284
|
+
const assetType = String(assetValue.type);
|
|
285
|
+
// Get bytes. Raw in-flight RGBA is encoded to PNG first so the stored
|
|
286
|
+
// asset (and its thumbnail) is a real image.
|
|
287
|
+
const isRaw = isRawRgbaImage(assetValue);
|
|
288
|
+
let bytes;
|
|
289
|
+
if (isRaw) {
|
|
290
|
+
bytes = await encodeRawRgbaToPng(assetValue.data, assetValue.width, assetValue.height);
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
bytes = decodeAssetBytes(assetValue.data);
|
|
294
|
+
if (!bytes && isString(assetValue.uri)) {
|
|
295
|
+
bytes = await readBytesFromUri(assetValue.uri);
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
if (!bytes)
|
|
299
|
+
continue;
|
|
300
|
+
// Determine mime/ext, preferring explicit content_type.
|
|
301
|
+
const explicitMime = isRaw
|
|
302
|
+
? "image/png"
|
|
303
|
+
: (assetValue.mime_type ?? assetValue.content_type);
|
|
304
|
+
const contentType = isString(explicitMime) && explicitMime
|
|
305
|
+
? explicitMime
|
|
306
|
+
: (ASSET_TYPE_MIME[assetType] ?? "application/octet-stream");
|
|
307
|
+
// Create Asset record
|
|
308
|
+
const asset = new Asset({
|
|
309
|
+
user_id: opts.userId,
|
|
310
|
+
workflow_id: opts.workflowId ?? null,
|
|
311
|
+
node_id: opts.nodeId,
|
|
312
|
+
job_id: opts.jobId,
|
|
313
|
+
name: `${assetType}_${opts.nodeId.slice(0, 8)}`,
|
|
314
|
+
content_type: contentType,
|
|
315
|
+
parent_id: null
|
|
316
|
+
});
|
|
317
|
+
const mediaMeta = { ...generationMeta };
|
|
318
|
+
if (opts.generationIndex != null) {
|
|
319
|
+
mediaMeta.generation_index = opts.generationIndex;
|
|
320
|
+
}
|
|
321
|
+
if (generationIds.length > 0) {
|
|
322
|
+
mediaMeta.generation_ids = generationIds;
|
|
323
|
+
}
|
|
324
|
+
if (outputName) {
|
|
325
|
+
mediaMeta.output_name = outputName;
|
|
326
|
+
}
|
|
327
|
+
if (Object.keys(mediaMeta).length > 0) {
|
|
328
|
+
asset.metadata = mediaMeta;
|
|
329
|
+
}
|
|
330
|
+
const fileName = getAssetFileName(asset.id, contentType);
|
|
331
|
+
try {
|
|
332
|
+
await storeAssetWithThumbnail(asset.user_id, asset.id, fileName, bytes, contentType);
|
|
333
|
+
asset.size = bytes.length;
|
|
334
|
+
await asset.save();
|
|
335
|
+
savedAssetIds.push(asset.id);
|
|
336
|
+
// Mutate the result value in-place. For raw assets, also drop the raw
|
|
337
|
+
// pixels and fix the mime so later normalization treats it as the saved
|
|
338
|
+
// PNG, not raw RGBA.
|
|
339
|
+
assetValue.asset_id = asset.id;
|
|
340
|
+
assetValue.uri = `asset://${fileName}`;
|
|
341
|
+
if (isRaw) {
|
|
342
|
+
const mutable = assetValue;
|
|
343
|
+
mutable.data = undefined;
|
|
344
|
+
mutable.mimeType = "image/png";
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
catch (err) {
|
|
348
|
+
log.warn("Auto-save asset failed", {
|
|
349
|
+
nodeId: opts.nodeId,
|
|
350
|
+
error: String(err)
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
// Persist the primary text output as a generation (a text/plain asset), so
|
|
355
|
+
// text content-card nodes get the same reload-surviving, browsable generation
|
|
356
|
+
// history as media nodes. The text is stored both as the asset bytes and
|
|
357
|
+
if (generationIds.length > 0 && savedAssetIds.length > 0) {
|
|
358
|
+
await linkGenerationAssets(generationIds, savedAssetIds);
|
|
359
|
+
}
|
|
360
|
+
// (capped) inline in metadata so the UI can preview it without a fetch.
|
|
361
|
+
let savedText = false;
|
|
362
|
+
const textKey = opts.textOutputName;
|
|
363
|
+
if (textKey) {
|
|
364
|
+
const textVal = result[textKey];
|
|
365
|
+
if (isNonEmptyString(textVal)) {
|
|
366
|
+
savedText = true;
|
|
367
|
+
const bytes = new TextEncoder().encode(textVal);
|
|
368
|
+
const previewText = new TextDecoder().decode(bytes.slice(0, TEXT_GENERATION_PREVIEW_CAP));
|
|
369
|
+
const asset = new Asset({
|
|
370
|
+
user_id: opts.userId,
|
|
371
|
+
workflow_id: opts.workflowId ?? null,
|
|
372
|
+
node_id: opts.nodeId,
|
|
373
|
+
job_id: opts.jobId,
|
|
374
|
+
name: `text_${opts.nodeId.slice(0, 8)}`,
|
|
375
|
+
content_type: "text/plain",
|
|
376
|
+
parent_id: null
|
|
377
|
+
});
|
|
378
|
+
asset.metadata =
|
|
379
|
+
opts.generationIndex != null
|
|
380
|
+
? { text: previewText, generation_index: opts.generationIndex }
|
|
381
|
+
: { text: previewText };
|
|
382
|
+
const fileName = `${asset.id}.txt`;
|
|
383
|
+
try {
|
|
384
|
+
await storeAssetWithThumbnail(asset.user_id, asset.id, fileName, bytes, "text/plain");
|
|
385
|
+
asset.size = bytes.length;
|
|
386
|
+
await asset.save();
|
|
387
|
+
}
|
|
388
|
+
catch (err) {
|
|
389
|
+
log.warn("Auto-save text generation failed", {
|
|
390
|
+
nodeId: opts.nodeId,
|
|
391
|
+
error: String(err)
|
|
392
|
+
});
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
// Structured (JSON) generation fallback. Nodes whose primary output is neither
|
|
397
|
+
// media nor a plain string — the generator family (List/Data/Chart/SVG/
|
|
398
|
+
// StructuredOutput), which emit lists, dicts, dataframes, chart configs, etc.
|
|
399
|
+
// — persist their whole output dict as an `application/json` asset so they get
|
|
400
|
+
// the same reload-surviving, browsable generation history as media/text nodes.
|
|
401
|
+
// The full value lives in the asset bytes; a copy is stored inline in
|
|
402
|
+
// `metadata.json` (when small enough) for fetch-free reload. Gated on
|
|
403
|
+
// !hasMedia && !savedText so media/text nodes never double-persist.
|
|
404
|
+
if (!hasMedia && !savedText) {
|
|
405
|
+
const structured = {};
|
|
406
|
+
for (const [key, value] of Object.entries(result)) {
|
|
407
|
+
if (value !== null && value !== undefined)
|
|
408
|
+
structured[key] = value;
|
|
409
|
+
}
|
|
410
|
+
if (Object.keys(structured).length > 0) {
|
|
411
|
+
let serialized = null;
|
|
412
|
+
try {
|
|
413
|
+
serialized = JSON.stringify(structured);
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
serialized = null;
|
|
417
|
+
}
|
|
418
|
+
if (serialized) {
|
|
419
|
+
const bytes = new TextEncoder().encode(serialized);
|
|
420
|
+
const asset = new Asset({
|
|
421
|
+
user_id: opts.userId,
|
|
422
|
+
workflow_id: opts.workflowId ?? null,
|
|
423
|
+
node_id: opts.nodeId,
|
|
424
|
+
job_id: opts.jobId,
|
|
425
|
+
name: `json_${opts.nodeId.slice(0, 8)}`,
|
|
426
|
+
content_type: "application/json",
|
|
427
|
+
parent_id: null
|
|
428
|
+
});
|
|
429
|
+
// Inline the full value only when it fits — a truncated JSON string
|
|
430
|
+
// would not parse on reload. Oversized values reload from the bytes.
|
|
431
|
+
const inline = bytes.length <= TEXT_GENERATION_PREVIEW_CAP ? structured : undefined;
|
|
432
|
+
const metadata = {};
|
|
433
|
+
if (inline !== undefined) {
|
|
434
|
+
metadata.json = inline;
|
|
435
|
+
}
|
|
436
|
+
if (opts.generationIndex != null) {
|
|
437
|
+
metadata.generation_index = opts.generationIndex;
|
|
438
|
+
}
|
|
439
|
+
asset.metadata = metadata;
|
|
440
|
+
const fileName = `${asset.id}.json`;
|
|
441
|
+
try {
|
|
442
|
+
await storeAssetWithThumbnail(asset.user_id, asset.id, fileName, bytes, "application/json");
|
|
443
|
+
asset.size = bytes.length;
|
|
444
|
+
await asset.save();
|
|
445
|
+
}
|
|
446
|
+
catch (err) {
|
|
447
|
+
log.warn("Auto-save JSON generation failed", {
|
|
448
|
+
nodeId: opts.nodeId,
|
|
449
|
+
error: String(err)
|
|
450
|
+
});
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
//# sourceMappingURL=asset-autosave.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"asset-autosave.js","sourceRoot":"","sources":["../../src/session/asset-autosave.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replacing the earlier part of a chat thread with a summary the provider is
|
|
3
|
+
* handed instead.
|
|
4
|
+
*
|
|
5
|
+
* A stateless provider is sent the whole transcript every turn, so a long
|
|
6
|
+
* session eventually stops fitting and every turn from then on fails with an
|
|
7
|
+
* error the user cannot act on. Compaction cuts the view a provider gets: the
|
|
8
|
+
* turns before the cut become one summary row, the rows themselves stay in the
|
|
9
|
+
* database for the UI and `nodetool.threads.*`.
|
|
10
|
+
*
|
|
11
|
+
* The record and the history assembly that reads it live in
|
|
12
|
+
* `@nodetool-ai/models` and `chat-history.ts`. This module holds what decides
|
|
13
|
+
* to write one: where the cut goes, what the summarizer is asked, and what the
|
|
14
|
+
* summarizer is allowed to see.
|
|
15
|
+
*/
|
|
16
|
+
import { type BaseProvider, type Message as ProviderMessage } from "@nodetool-ai/runtime";
|
|
17
|
+
/** Documented default for how many recent user turns survive a compaction. */
|
|
18
|
+
export declare const COMPACTION_DEFAULTS: {
|
|
19
|
+
readonly keepUserTurns: 4;
|
|
20
|
+
};
|
|
21
|
+
/** Share of the model's input window at which a chat turn compacts. */
|
|
22
|
+
export declare const COMPACTION_WINDOW_FRACTION = 0.9;
|
|
23
|
+
/** Ceiling on the summary itself, so a compaction cannot grow the prompt. */
|
|
24
|
+
export declare const COMPACTION_SUMMARY_MAX_TOKENS = 4000;
|
|
25
|
+
/**
|
|
26
|
+
* The prompt size at which a turn compacts: {@link COMPACTION_WINDOW_FRACTION}
|
|
27
|
+
* of the input window, lowered on a small window so the summarizer request
|
|
28
|
+
* (the transcript plus its instructions plus the summary it writes) still
|
|
29
|
+
* fits. An explicit `NODETOOL_CHAT_COMPACTION_TOKENS` wins over both.
|
|
30
|
+
*/
|
|
31
|
+
export declare function compactionThreshold(settings: Pick<CompactionSettings, "thresholdTokens">, contextWindowTokens: number): number;
|
|
32
|
+
/** What a compaction reads out of the settings store. */
|
|
33
|
+
export interface CompactionSettings {
|
|
34
|
+
/**
|
|
35
|
+
* Explicit `NODETOOL_CHAT_COMPACTION_TOKENS`, or null to derive the
|
|
36
|
+
* threshold from the model's context window ({@link compactionThreshold}).
|
|
37
|
+
*/
|
|
38
|
+
thresholdTokens: number | null;
|
|
39
|
+
keepUserTurns: number;
|
|
40
|
+
/** `provider/model`, a bare model id, or null to use the turn's own. */
|
|
41
|
+
model: string | null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read the three settings. The store is best-effort, the same rule the rest of
|
|
45
|
+
* the runner follows: an unreachable database falls back to the documented
|
|
46
|
+
* default rather than failing the turn.
|
|
47
|
+
*/
|
|
48
|
+
export declare function readCompactionSettings(): Promise<CompactionSettings>;
|
|
49
|
+
/**
|
|
50
|
+
* Whether the provider, not NodeTool, is holding this conversation.
|
|
51
|
+
*
|
|
52
|
+
* Such a provider is sent only the turns since its session token, so the size
|
|
53
|
+
* of what it actually has is not ours to estimate — the proactive trigger
|
|
54
|
+
* would fire off a number that describes a fraction of the prompt. They get
|
|
55
|
+
* the reactive trigger instead: the provider itself says when it no longer
|
|
56
|
+
* fits.
|
|
57
|
+
*/
|
|
58
|
+
export declare function holdsTranscriptServerSide(providerId: string, hasSession: boolean): boolean;
|
|
59
|
+
/** Where a compaction cuts: what the summary replaces, and what survives it. */
|
|
60
|
+
export interface CompactionCut<T> {
|
|
61
|
+
summarize: T[];
|
|
62
|
+
keep: T[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Cut the thread at the `keepUserTurns`-th user message from the end.
|
|
66
|
+
*
|
|
67
|
+
* A user message is the one boundary that is safe by construction: an
|
|
68
|
+
* assistant's tool call and the result answering it always sit between two of
|
|
69
|
+
* them, so neither side of the cut can hold half a tool round — which
|
|
70
|
+
* Anthropic rejects outright. Null when the thread has nothing to summarize:
|
|
71
|
+
* fewer than `keepUserTurns` user messages, or a cut that would land at the
|
|
72
|
+
* very start. With a token budget, keep fewer turns when needed, but always
|
|
73
|
+
* keep the latest user turn. A prior summary alone is never summarized again.
|
|
74
|
+
*/
|
|
75
|
+
export declare function chooseCompactionCut<T extends {
|
|
76
|
+
role: string;
|
|
77
|
+
execution_event_type?: string | null;
|
|
78
|
+
}>(rows: readonly T[], keepUserTurns: number, budget?: {
|
|
79
|
+
maxTokens: number;
|
|
80
|
+
countTokens: (row: T) => number;
|
|
81
|
+
}): CompactionCut<T> | null;
|
|
82
|
+
/**
|
|
83
|
+
* What the summarizer is told. The sections are the parts of a conversation a
|
|
84
|
+
* later turn cannot recover on its own — an artifact reference above all, since
|
|
85
|
+
* a paraphrased `asset://` uri names nothing.
|
|
86
|
+
*/
|
|
87
|
+
export declare const COMPACTION_SUMMARY_PROMPT = "You are compacting the earlier part of a conversation. Those turns are about to be replaced by what you write, and nothing else about them survives.\n\nWrite a bulleted list under these headings, in this order, skipping a heading only when the conversation holds nothing for it:\n\nGoals and constraints \u2014 what the user is trying to do, and every rule they set, in their own terms.\nDecisions \u2014 what was settled, and what was ruled out.\nArtifacts \u2014 every reference verbatim: asset:// uris, workflow, document, thread and job ids, file paths, urls. Copy each one character for character. Never shorten one, re-format one, or describe a thing instead of quoting its reference.\nOpen questions \u2014 what is unresolved, and what is waiting on the user.\nResults \u2014 what the last tool calls established, as conclusions rather than transcripts.\n\nWrite nothing else: no preamble, no closing line, no detail the conversation does not contain.";
|
|
88
|
+
/**
|
|
89
|
+
* The transcript the summarizer reads: one line per message, redacted through
|
|
90
|
+
* the same {@link sanitizeForLog} the provider debug dump uses, so a
|
|
91
|
+
* credential a tool call carried does not leave the process a second time.
|
|
92
|
+
*/
|
|
93
|
+
export declare function renderTranscriptForSummary(messages: readonly ProviderMessage[]): string;
|
|
94
|
+
/** One summarizer call. */
|
|
95
|
+
export interface CompactionSummaryRequest {
|
|
96
|
+
provider: BaseProvider;
|
|
97
|
+
model: string;
|
|
98
|
+
messages: readonly ProviderMessage[];
|
|
99
|
+
signal?: AbortSignal;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Summarize the region a compaction replaces, or null when the model answered
|
|
103
|
+
* with nothing. Throws whatever the provider throws — the caller decides what
|
|
104
|
+
* a failed summary costs, and for a chat turn it costs nothing but the cut.
|
|
105
|
+
*/
|
|
106
|
+
export declare function summarizeForCompaction(request: CompactionSummaryRequest): Promise<string | null>;
|
|
107
|
+
//# sourceMappingURL=chat-compaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-compaction.d.ts","sourceRoot":"","sources":["../../src/session/chat-compaction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,OAAO,IAAI,eAAe,EAChC,MAAM,sBAAsB,CAAC;AAI9B,8EAA8E;AAC9E,eAAO,MAAM,mBAAmB;aAC9B,aAAa,EAAE,CAAC;CACR,CAAC;AAEX,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,MAAM,CAAC;AAE9C,6EAA6E;AAC7E,eAAO,MAAM,6BAA6B,OAAQ,CAAC;AAQnD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,EACrD,mBAAmB,EAAE,MAAM,GAC1B,MAAM,CAWR;AASD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,wEAAwE;IACxE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CA6B1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,OAAO,GAClB,OAAO,CAET;AAED,gFAAgF;AAChF,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,SAAS,EAAE,CAAC,EAAE,CAAC;IACf,IAAI,EAAE,CAAC,EAAE,CAAC;CACX;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS;IACR,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtC,EAED,IAAI,EAAE,SAAS,CAAC,EAAE,EAClB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,CAAA;CAAE,GAC9D,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAkBzB;AAED;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,m8BAUyD,CAAC;AAEhG;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,SAAS,eAAe,EAAE,GACnC,MAAM,CAkBR;AAED,2BAA2B;AAC3B,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAcxB"}
|