@nodetool-ai/websocket 0.7.0-rc.23 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -0
- package/dist/.nodetool-build-stamp +1 -0
- package/dist/agent/run-node-tool.d.ts +39 -0
- package/dist/agent/run-node-tool.d.ts.map +1 -0
- package/dist/agent/run-node-tool.js +55 -0
- package/dist/agent/run-node-tool.js.map +1 -0
- package/dist/chat-prediction-forwarder.d.ts +13 -0
- package/dist/chat-prediction-forwarder.d.ts.map +1 -0
- package/dist/chat-prediction-forwarder.js +22 -0
- package/dist/chat-prediction-forwarder.js.map +1 -0
- package/dist/chat-tool-call-repair.d.ts +45 -0
- package/dist/chat-tool-call-repair.d.ts.map +1 -0
- package/dist/chat-tool-call-repair.js +100 -0
- package/dist/chat-tool-call-repair.js.map +1 -0
- package/dist/chat-turn-registry.d.ts +169 -0
- package/dist/chat-turn-registry.d.ts.map +1 -0
- package/dist/chat-turn-registry.js +326 -0
- package/dist/chat-turn-registry.js.map +1 -0
- package/dist/collection-api.d.ts +2 -2
- package/dist/collection-api.d.ts.map +1 -1
- package/dist/collection-api.js +82 -14
- package/dist/collection-api.js.map +1 -1
- package/dist/configured-providers.d.ts +52 -0
- package/dist/configured-providers.d.ts.map +1 -0
- package/dist/configured-providers.js +85 -0
- package/dist/configured-providers.js.map +1 -0
- package/dist/cors.d.ts +22 -0
- package/dist/cors.d.ts.map +1 -0
- package/dist/cors.js +91 -0
- package/dist/cors.js.map +1 -0
- package/dist/credit-gate.d.ts +36 -0
- package/dist/credit-gate.d.ts.map +1 -0
- package/dist/credit-gate.js +76 -0
- package/dist/credit-gate.js.map +1 -0
- package/dist/custom-providers.d.ts +40 -0
- package/dist/custom-providers.d.ts.map +1 -0
- package/dist/custom-providers.js +134 -0
- package/dist/custom-providers.js.map +1 -0
- package/dist/debug-sessions.d.ts +10 -0
- package/dist/debug-sessions.d.ts.map +1 -0
- package/dist/debug-sessions.js +9 -0
- package/dist/debug-sessions.js.map +1 -0
- package/dist/drain.d.ts +34 -0
- package/dist/drain.d.ts.map +1 -0
- package/dist/drain.js +68 -0
- package/dist/drain.js.map +1 -0
- package/dist/e2e-server.d.ts +30 -0
- package/dist/e2e-server.d.ts.map +1 -0
- package/dist/e2e-server.js +111 -0
- package/dist/e2e-server.js.map +1 -0
- package/dist/error-traces.d.ts +56 -0
- package/dist/error-traces.d.ts.map +1 -0
- package/dist/error-traces.js +179 -0
- package/dist/error-traces.js.map +1 -0
- package/dist/example-workflows.d.ts +20 -0
- package/dist/example-workflows.d.ts.map +1 -0
- package/dist/example-workflows.js +123 -0
- package/dist/example-workflows.js.map +1 -0
- package/dist/external-mcp.d.ts +58 -0
- package/dist/external-mcp.d.ts.map +1 -0
- package/dist/external-mcp.js +288 -0
- package/dist/external-mcp.js.map +1 -0
- package/dist/fake-runtime.d.ts +114 -0
- package/dist/fake-runtime.d.ts.map +1 -0
- package/dist/fake-runtime.js +307 -0
- package/dist/fake-runtime.js.map +1 -0
- package/dist/file-api.d.ts +4 -7
- package/dist/file-api.d.ts.map +1 -1
- package/dist/file-api.js +122 -39
- package/dist/file-api.js.map +1 -1
- package/dist/frontend-renderer-registry.d.ts +75 -0
- package/dist/frontend-renderer-registry.d.ts.map +1 -0
- package/dist/frontend-renderer-registry.js +111 -0
- package/dist/frontend-renderer-registry.js.map +1 -0
- package/dist/generation-recovery.d.ts +13 -0
- package/dist/generation-recovery.d.ts.map +1 -0
- package/dist/generation-recovery.js +219 -0
- package/dist/generation-recovery.js.map +1 -0
- package/dist/headless-job-runner.d.ts +71 -0
- package/dist/headless-job-runner.d.ts.map +1 -0
- package/dist/headless-job-runner.js +198 -0
- package/dist/headless-job-runner.js.map +1 -0
- package/dist/http-api.d.ts +157 -24
- package/dist/http-api.d.ts.map +1 -1
- package/dist/http-api.js +628 -646
- package/dist/http-api.js.map +1 -1
- package/dist/http-body-schemas.d.ts +109 -0
- package/dist/http-body-schemas.d.ts.map +1 -0
- package/dist/http-body-schemas.js +146 -0
- package/dist/http-body-schemas.js.map +1 -0
- package/dist/index.d.ts +10 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -3
- package/dist/index.js.map +1 -1
- package/dist/interrupted-jobs.d.ts +14 -0
- package/dist/interrupted-jobs.d.ts.map +1 -0
- package/dist/interrupted-jobs.js +28 -0
- package/dist/interrupted-jobs.js.map +1 -0
- package/dist/job-control.d.ts +57 -0
- package/dist/job-control.d.ts.map +1 -0
- package/dist/job-control.js +134 -0
- package/dist/job-control.js.map +1 -0
- package/dist/job-queue.d.ts +47 -0
- package/dist/job-queue.d.ts.map +1 -0
- package/dist/job-queue.js +52 -0
- package/dist/job-queue.js.map +1 -0
- package/dist/job-run-registry.d.ts +176 -0
- package/dist/job-run-registry.d.ts.map +1 -0
- package/dist/job-run-registry.js +312 -0
- package/dist/job-run-registry.js.map +1 -0
- package/dist/lib/app-build-service.d.ts +16 -0
- package/dist/lib/app-build-service.d.ts.map +1 -0
- package/dist/lib/app-build-service.js +39 -0
- package/dist/lib/app-build-service.js.map +1 -0
- package/dist/lib/app-debug-service.d.ts +16 -0
- package/dist/lib/app-debug-service.d.ts.map +1 -0
- package/dist/lib/app-debug-service.js +48 -0
- package/dist/lib/app-debug-service.js.map +1 -0
- package/dist/lib/app-deployment-service.d.ts +82 -0
- package/dist/lib/app-deployment-service.d.ts.map +1 -0
- package/dist/lib/app-deployment-service.js +282 -0
- package/dist/lib/app-deployment-service.js.map +1 -0
- package/dist/lib/app-instances-service.d.ts +1284 -0
- package/dist/lib/app-instances-service.d.ts.map +1 -0
- package/dist/lib/app-instances-service.js +378 -0
- package/dist/lib/app-instances-service.js.map +1 -0
- package/dist/lib/app-run-cancellation.d.ts +4 -0
- package/dist/lib/app-run-cancellation.d.ts.map +1 -0
- package/dist/lib/app-run-cancellation.js +28 -0
- package/dist/lib/app-run-cancellation.js.map +1 -0
- package/dist/lib/app-run-server.d.ts +7 -0
- package/dist/lib/app-run-server.d.ts.map +1 -0
- package/dist/lib/app-run-server.js +6 -0
- package/dist/lib/app-run-server.js.map +1 -0
- package/dist/lib/app-session-scope.d.ts +91 -0
- package/dist/lib/app-session-scope.d.ts.map +1 -0
- package/dist/lib/app-session-scope.js +91 -0
- package/dist/lib/app-session-scope.js.map +1 -0
- package/dist/lib/applications-service.d.ts +354 -0
- package/dist/lib/applications-service.d.ts.map +1 -0
- package/dist/lib/applications-service.js +507 -0
- package/dist/lib/applications-service.js.map +1 -0
- package/dist/lib/asset-duration.d.ts +7 -0
- package/dist/lib/asset-duration.d.ts.map +1 -0
- package/dist/lib/asset-duration.js +24 -0
- package/dist/lib/asset-duration.js.map +1 -0
- package/dist/lib/asset-export.d.ts +34 -0
- package/dist/lib/asset-export.d.ts.map +1 -0
- package/dist/lib/asset-export.js +113 -0
- package/dist/lib/asset-export.js.map +1 -0
- package/dist/lib/asset-model-interface.d.ts +41 -0
- package/dist/lib/asset-model-interface.d.ts.map +1 -0
- package/dist/lib/asset-model-interface.js +74 -0
- package/dist/lib/asset-model-interface.js.map +1 -0
- package/dist/lib/asset-paths.d.ts +49 -1
- package/dist/lib/asset-paths.d.ts.map +1 -1
- package/dist/lib/asset-paths.js +127 -31
- package/dist/lib/asset-paths.js.map +1 -1
- package/dist/lib/asset-response.d.ts +12 -0
- package/dist/lib/asset-response.d.ts.map +1 -0
- package/dist/lib/asset-response.js +89 -0
- package/dist/lib/asset-response.js.map +1 -0
- package/dist/lib/audio-peaks.d.ts +23 -0
- package/dist/lib/audio-peaks.d.ts.map +1 -0
- package/dist/lib/audio-peaks.js +335 -0
- package/dist/lib/audio-peaks.js.map +1 -0
- package/dist/lib/bridge.d.ts +9 -1
- package/dist/lib/bridge.d.ts.map +1 -1
- package/dist/lib/bridge.js +27 -4
- package/dist/lib/bridge.js.map +1 -1
- package/dist/lib/compression.d.ts +3 -0
- package/dist/lib/compression.d.ts.map +1 -0
- package/dist/lib/compression.js +3 -0
- package/dist/lib/compression.js.map +1 -0
- package/dist/lib/document-model-interfaces.d.ts +30 -0
- package/dist/lib/document-model-interfaces.d.ts.map +1 -0
- package/dist/lib/document-model-interfaces.js +296 -0
- package/dist/lib/document-model-interfaces.js.map +1 -0
- package/dist/lib/env-config.d.ts +9 -0
- package/dist/lib/env-config.d.ts.map +1 -0
- package/dist/lib/env-config.js +18 -0
- package/dist/lib/env-config.js.map +1 -0
- package/dist/lib/example-apps.d.ts +52 -0
- package/dist/lib/example-apps.d.ts.map +1 -0
- package/dist/lib/example-apps.js +192 -0
- package/dist/lib/example-apps.js.map +1 -0
- package/dist/lib/example-games.d.ts +5 -0
- package/dist/lib/example-games.d.ts.map +1 -0
- package/dist/lib/example-games.js +13 -0
- package/dist/lib/example-games.js.map +1 -0
- package/dist/lib/example-recipes.d.ts +33 -0
- package/dist/lib/example-recipes.d.ts.map +1 -0
- package/dist/lib/example-recipes.js +213 -0
- package/dist/lib/example-recipes.js.map +1 -0
- package/dist/lib/example-storyboards.d.ts +40 -0
- package/dist/lib/example-storyboards.d.ts.map +1 -0
- package/dist/lib/example-storyboards.js +131 -0
- package/dist/lib/example-storyboards.js.map +1 -0
- package/dist/lib/example-thumbnail.d.ts +21 -0
- package/dist/lib/example-thumbnail.d.ts.map +1 -0
- package/dist/lib/example-thumbnail.js +50 -0
- package/dist/lib/example-thumbnail.js.map +1 -0
- package/dist/lib/example-timelines.d.ts +9 -0
- package/dist/lib/example-timelines.d.ts.map +1 -0
- package/dist/lib/example-timelines.js +25 -0
- package/dist/lib/example-timelines.js.map +1 -0
- package/dist/lib/extension-dist.d.ts +24 -0
- package/dist/lib/extension-dist.d.ts.map +1 -0
- package/dist/lib/extension-dist.js +67 -0
- package/dist/lib/extension-dist.js.map +1 -0
- package/dist/lib/external-asset-lookup.d.ts +30 -0
- package/dist/lib/external-asset-lookup.d.ts.map +1 -0
- package/dist/lib/external-asset-lookup.js +99 -0
- package/dist/lib/external-asset-lookup.js.map +1 -0
- package/dist/lib/external-assets.d.ts +13 -0
- package/dist/lib/external-assets.d.ts.map +1 -0
- package/dist/lib/external-assets.js +46 -0
- package/dist/lib/external-assets.js.map +1 -0
- package/dist/lib/fly-replay.d.ts +34 -0
- package/dist/lib/fly-replay.d.ts.map +1 -0
- package/dist/lib/fly-replay.js +111 -0
- package/dist/lib/fly-replay.js.map +1 -0
- package/dist/lib/http-rate-limit.d.ts +32 -0
- package/dist/lib/http-rate-limit.d.ts.map +1 -0
- package/dist/lib/http-rate-limit.js +47 -0
- package/dist/lib/http-rate-limit.js.map +1 -0
- package/dist/lib/http-tracing.d.ts +12 -0
- package/dist/lib/http-tracing.d.ts.map +1 -0
- package/dist/lib/http-tracing.js +81 -0
- package/dist/lib/http-tracing.js.map +1 -0
- package/dist/lib/instance-id.d.ts +25 -0
- package/dist/lib/instance-id.d.ts.map +1 -0
- package/dist/lib/instance-id.js +44 -0
- package/dist/lib/instance-id.js.map +1 -0
- package/dist/lib/link-codes.d.ts +82 -0
- package/dist/lib/link-codes.d.ts.map +1 -0
- package/dist/lib/link-codes.js +100 -0
- package/dist/lib/link-codes.js.map +1 -0
- package/dist/lib/local-asset-upload.d.ts +5 -0
- package/dist/lib/local-asset-upload.d.ts.map +1 -0
- package/dist/lib/local-asset-upload.js +69 -0
- package/dist/lib/local-asset-upload.js.map +1 -0
- package/dist/lib/local-file-access.d.ts +31 -0
- package/dist/lib/local-file-access.d.ts.map +1 -0
- package/dist/lib/local-file-access.js +169 -0
- package/dist/lib/local-file-access.js.map +1 -0
- package/dist/lib/localhost-trust.d.ts +59 -0
- package/dist/lib/localhost-trust.d.ts.map +1 -0
- package/dist/lib/localhost-trust.js +139 -0
- package/dist/lib/localhost-trust.js.map +1 -0
- package/dist/lib/mcp-mount.d.ts +25 -0
- package/dist/lib/mcp-mount.d.ts.map +1 -0
- package/dist/lib/mcp-mount.js +32 -0
- package/dist/lib/mcp-mount.js.map +1 -0
- package/dist/lib/media-size.d.ts +21 -0
- package/dist/lib/media-size.d.ts.map +1 -0
- package/dist/lib/media-size.js +48 -0
- package/dist/lib/media-size.js.map +1 -0
- package/dist/lib/media.d.ts +33 -0
- package/dist/lib/media.d.ts.map +1 -0
- package/dist/lib/media.js +110 -0
- package/dist/lib/media.js.map +1 -0
- package/dist/lib/package-asset-export.d.ts +83 -0
- package/dist/lib/package-asset-export.d.ts.map +1 -0
- package/dist/lib/package-asset-export.js +212 -0
- package/dist/lib/package-asset-export.js.map +1 -0
- package/dist/lib/package-assets.d.ts +41 -0
- package/dist/lib/package-assets.d.ts.map +1 -0
- package/dist/lib/package-assets.js +155 -0
- package/dist/lib/package-assets.js.map +1 -0
- package/dist/lib/project-delete.d.ts +11 -0
- package/dist/lib/project-delete.d.ts.map +1 -0
- package/dist/lib/project-delete.js +67 -0
- package/dist/lib/project-delete.js.map +1 -0
- package/dist/lib/project-document-copy.d.ts +31 -0
- package/dist/lib/project-document-copy.d.ts.map +1 -0
- package/dist/lib/project-document-copy.js +473 -0
- package/dist/lib/project-document-copy.js.map +1 -0
- package/dist/lib/public-app-assets.d.ts +8 -0
- package/dist/lib/public-app-assets.d.ts.map +1 -0
- package/dist/lib/public-app-assets.js +77 -0
- package/dist/lib/public-app-assets.js.map +1 -0
- package/dist/lib/public-routes.d.ts +102 -0
- package/dist/lib/public-routes.d.ts.map +1 -0
- package/dist/lib/public-routes.js +168 -0
- package/dist/lib/public-routes.js.map +1 -0
- package/dist/lib/public-workflow-share.d.ts +20 -0
- package/dist/lib/public-workflow-share.d.ts.map +1 -0
- package/dist/lib/public-workflow-share.js +45 -0
- package/dist/lib/public-workflow-share.js.map +1 -0
- package/dist/lib/run-trace-live-delivery.d.ts +25 -0
- package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
- package/dist/lib/run-trace-live-delivery.js +91 -0
- package/dist/lib/run-trace-live-delivery.js.map +1 -0
- package/dist/lib/runtime-detection.d.ts +17 -0
- package/dist/lib/runtime-detection.d.ts.map +1 -0
- package/dist/lib/runtime-detection.js +90 -0
- package/dist/lib/runtime-detection.js.map +1 -0
- package/dist/lib/storage-access.d.ts +21 -0
- package/dist/lib/storage-access.d.ts.map +1 -0
- package/dist/lib/storage-access.js +74 -0
- package/dist/lib/storage-access.js.map +1 -0
- package/dist/lib/storage.d.ts +9 -0
- package/dist/lib/storage.d.ts.map +1 -0
- package/dist/lib/storage.js +28 -0
- package/dist/lib/storage.js.map +1 -0
- package/dist/lib/storyboard-export.d.ts +64 -0
- package/dist/lib/storyboard-export.d.ts.map +1 -0
- package/dist/lib/storyboard-export.js +183 -0
- package/dist/lib/storyboard-export.js.map +1 -0
- package/dist/lib/style-presets.d.ts +34 -0
- package/dist/lib/style-presets.d.ts.map +1 -0
- package/dist/lib/style-presets.js +62 -0
- package/dist/lib/style-presets.js.map +1 -0
- package/dist/lib/temp-url-resolver.d.ts +35 -0
- package/dist/lib/temp-url-resolver.d.ts.map +1 -0
- package/dist/lib/temp-url-resolver.js +88 -0
- package/dist/lib/temp-url-resolver.js.map +1 -0
- package/dist/lib/test-ui-run-routes.d.ts +8 -0
- package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
- package/dist/lib/test-ui-run-routes.js +42 -0
- package/dist/lib/test-ui-run-routes.js.map +1 -0
- package/dist/lib/thumbnail.d.ts +74 -0
- package/dist/lib/thumbnail.d.ts.map +1 -0
- package/dist/lib/thumbnail.js +305 -0
- package/dist/lib/thumbnail.js.map +1 -0
- package/dist/lib/timeline-bundle.d.ts +1821 -0
- package/dist/lib/timeline-bundle.d.ts.map +1 -0
- package/dist/lib/timeline-bundle.js +342 -0
- package/dist/lib/timeline-bundle.js.map +1 -0
- package/dist/lib/video-proxy.d.ts +114 -0
- package/dist/lib/video-proxy.d.ts.map +1 -0
- package/dist/lib/video-proxy.js +546 -0
- package/dist/lib/video-proxy.js.map +1 -0
- package/dist/lib/wire-values.d.ts +31 -0
- package/dist/lib/wire-values.d.ts.map +1 -0
- package/dist/lib/wire-values.js +49 -0
- package/dist/lib/wire-values.js.map +1 -0
- package/dist/lib/workflow-bundle.d.ts +102 -0
- package/dist/lib/workflow-bundle.d.ts.map +1 -0
- package/dist/lib/workflow-bundle.js +306 -0
- package/dist/lib/workflow-bundle.js.map +1 -0
- package/dist/lib/workflow-service.d.ts +82 -0
- package/dist/lib/workflow-service.d.ts.map +1 -0
- package/dist/lib/workflow-service.js +197 -0
- package/dist/lib/workflow-service.js.map +1 -0
- package/dist/lib/workflow-workspace.d.ts +20 -0
- package/dist/lib/workflow-workspace.d.ts.map +1 -0
- package/dist/lib/workflow-workspace.js +65 -0
- package/dist/lib/workflow-workspace.js.map +1 -0
- package/dist/lib/ws-connection-health.d.ts +10 -0
- package/dist/lib/ws-connection-health.d.ts.map +1 -0
- package/dist/lib/ws-connection-health.js +38 -0
- package/dist/lib/ws-connection-health.js.map +1 -0
- package/dist/lib/ws-rate-limit.d.ts +22 -0
- package/dist/lib/ws-rate-limit.d.ts.map +1 -0
- package/dist/lib/ws-rate-limit.js +45 -0
- package/dist/lib/ws-rate-limit.js.map +1 -0
- package/dist/lib/ws-upgrade.d.ts +40 -0
- package/dist/lib/ws-upgrade.d.ts.map +1 -0
- package/dist/lib/ws-upgrade.js +66 -0
- package/dist/lib/ws-upgrade.js.map +1 -0
- package/dist/lib/zip-stream.d.ts +46 -0
- package/dist/lib/zip-stream.d.ts.map +1 -0
- package/dist/lib/zip-stream.js +140 -0
- package/dist/lib/zip-stream.js.map +1 -0
- package/dist/mcp-agent-tools.d.ts +56 -0
- package/dist/mcp-agent-tools.d.ts.map +1 -0
- package/dist/mcp-agent-tools.js +1147 -0
- package/dist/mcp-agent-tools.js.map +1 -0
- package/dist/mcp-client-config.d.ts +64 -0
- package/dist/mcp-client-config.d.ts.map +1 -0
- package/dist/mcp-client-config.js +353 -0
- package/dist/mcp-client-config.js.map +1 -0
- package/dist/mcp-server.d.ts +56 -7
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +255 -762
- package/dist/mcp-server.js.map +1 -1
- package/dist/mcp-tool-deps.d.ts +20 -0
- package/dist/mcp-tool-deps.d.ts.map +1 -0
- package/dist/mcp-tool-deps.js +61 -0
- package/dist/mcp-tool-deps.js.map +1 -0
- package/dist/messagepack.d.ts +7 -0
- package/dist/messagepack.d.ts.map +1 -0
- package/dist/messagepack.js +19 -0
- package/dist/messagepack.js.map +1 -0
- package/dist/model-download-runtime.d.ts +9 -0
- package/dist/model-download-runtime.d.ts.map +1 -0
- package/dist/model-download-runtime.js +77 -0
- package/dist/model-download-runtime.js.map +1 -0
- package/dist/model-execution-availability.d.ts +14 -0
- package/dist/model-execution-availability.d.ts.map +1 -0
- package/dist/model-execution-availability.js +161 -0
- package/dist/model-execution-availability.js.map +1 -0
- package/dist/models-api.d.ts +61 -5
- package/dist/models-api.d.ts.map +1 -1
- package/dist/models-api.js +182 -689
- package/dist/models-api.js.map +1 -1
- package/dist/node-registry-setup.d.ts +84 -0
- package/dist/node-registry-setup.d.ts.map +1 -0
- package/dist/node-registry-setup.js +163 -0
- package/dist/node-registry-setup.js.map +1 -0
- package/dist/oauth/cimd.d.ts +28 -0
- package/dist/oauth/cimd.d.ts.map +1 -0
- package/dist/oauth/cimd.js +177 -0
- package/dist/oauth/cimd.js.map +1 -0
- package/dist/oauth/gate.d.ts +38 -0
- package/dist/oauth/gate.d.ts.map +1 -0
- package/dist/oauth/gate.js +77 -0
- package/dist/oauth/gate.js.map +1 -0
- package/dist/oauth/metadata.d.ts +35 -0
- package/dist/oauth/metadata.d.ts.map +1 -0
- package/dist/oauth/metadata.js +56 -0
- package/dist/oauth/metadata.js.map +1 -0
- package/dist/oauth/pending-store.d.ts +79 -0
- package/dist/oauth/pending-store.d.ts.map +1 -0
- package/dist/oauth/pending-store.js +133 -0
- package/dist/oauth/pending-store.js.map +1 -0
- package/dist/oauth/pkce.d.ts +16 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +29 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/validate.d.ts +25 -0
- package/dist/oauth/validate.d.ts.map +1 -0
- package/dist/oauth/validate.js +62 -0
- package/dist/oauth/validate.js.map +1 -0
- package/dist/oauth/www-authenticate.d.ts +9 -0
- package/dist/oauth/www-authenticate.d.ts.map +1 -0
- package/dist/oauth/www-authenticate.js +33 -0
- package/dist/oauth/www-authenticate.js.map +1 -0
- package/dist/oauth-api.d.ts +19 -0
- package/dist/oauth-api.d.ts.map +1 -1
- package/dist/oauth-api.js +531 -12
- package/dist/oauth-api.js.map +1 -1
- package/dist/openai-api.d.ts.map +1 -1
- package/dist/openai-api.js +4 -9
- package/dist/openai-api.js.map +1 -1
- package/dist/pack-snapshot.d.ts +24 -0
- package/dist/pack-snapshot.d.ts.map +1 -0
- package/dist/pack-snapshot.js +35 -0
- package/dist/pack-snapshot.js.map +1 -0
- package/dist/plugins/websocket.d.ts +21 -4
- package/dist/plugins/websocket.d.ts.map +1 -1
- package/dist/plugins/websocket.js +106 -297
- package/dist/plugins/websocket.js.map +1 -1
- package/dist/python-bridge-gate.d.ts +28 -0
- package/dist/python-bridge-gate.d.ts.map +1 -0
- package/dist/python-bridge-gate.js +36 -0
- package/dist/python-bridge-gate.js.map +1 -0
- package/dist/resolve-media-urls.d.ts +17 -3
- package/dist/resolve-media-urls.d.ts.map +1 -1
- package/dist/resolve-media-urls.js +117 -31
- package/dist/resolve-media-urls.js.map +1 -1
- package/dist/resource-events.d.ts +28 -0
- package/dist/resource-events.d.ts.map +1 -0
- package/dist/resource-events.js +20 -0
- package/dist/resource-events.js.map +1 -0
- package/dist/routes/account.d.ts +100 -0
- package/dist/routes/account.d.ts.map +1 -0
- package/dist/routes/account.js +197 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/app-runs.d.ts +4 -0
- package/dist/routes/app-runs.d.ts.map +1 -0
- package/dist/routes/app-runs.js +173 -0
- package/dist/routes/app-runs.js.map +1 -0
- package/dist/routes/applications.d.ts +36 -0
- package/dist/routes/applications.d.ts.map +1 -0
- package/dist/routes/applications.js +183 -0
- package/dist/routes/applications.js.map +1 -0
- package/dist/routes/assets.d.ts +3 -3
- package/dist/routes/assets.d.ts.map +1 -1
- package/dist/routes/assets.js +78 -44
- package/dist/routes/assets.js.map +1 -1
- package/dist/routes/atlascloud-webhook.d.ts +93 -0
- package/dist/routes/atlascloud-webhook.d.ts.map +1 -0
- package/dist/routes/atlascloud-webhook.js +369 -0
- package/dist/routes/atlascloud-webhook.js.map +1 -0
- package/dist/routes/collections.d.ts.map +1 -1
- package/dist/routes/config.d.ts +26 -0
- package/dist/routes/config.d.ts.map +1 -0
- package/dist/routes/config.js +64 -0
- package/dist/routes/config.js.map +1 -0
- package/dist/routes/documents.d.ts +27 -0
- package/dist/routes/documents.d.ts.map +1 -0
- package/dist/routes/documents.js +155 -0
- package/dist/routes/documents.js.map +1 -0
- package/dist/routes/fal-credits.d.ts +4 -0
- package/dist/routes/fal-credits.d.ts.map +1 -0
- package/dist/routes/fal-credits.js +101 -0
- package/dist/routes/fal-credits.js.map +1 -0
- package/dist/routes/fal-pricing-estimate.d.ts +4 -0
- package/dist/routes/fal-pricing-estimate.d.ts.map +1 -0
- package/dist/routes/fal-pricing-estimate.js +114 -0
- package/dist/routes/fal-pricing-estimate.js.map +1 -0
- package/dist/routes/fal-pricing.d.ts +4 -0
- package/dist/routes/fal-pricing.d.ts.map +1 -0
- package/dist/routes/fal-pricing.js +93 -0
- package/dist/routes/fal-pricing.js.map +1 -0
- package/dist/routes/fal-webhook.d.ts +102 -0
- package/dist/routes/fal-webhook.d.ts.map +1 -0
- package/dist/routes/fal-webhook.js +379 -0
- package/dist/routes/fal-webhook.js.map +1 -0
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +4 -3
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/health.d.ts +1 -0
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js +41 -7
- package/dist/routes/health.js.map +1 -1
- package/dist/routes/integrations.d.ts +39 -0
- package/dist/routes/integrations.d.ts.map +1 -0
- package/dist/routes/integrations.js +211 -0
- package/dist/routes/integrations.js.map +1 -0
- package/dist/routes/js-scripts.d.ts +32 -0
- package/dist/routes/js-scripts.d.ts.map +1 -0
- package/dist/routes/js-scripts.js +498 -0
- package/dist/routes/js-scripts.js.map +1 -0
- package/dist/routes/kie-credits.d.ts +4 -0
- package/dist/routes/kie-credits.d.ts.map +1 -0
- package/dist/routes/kie-credits.js +93 -0
- package/dist/routes/kie-credits.js.map +1 -0
- package/dist/routes/kie-pricing.d.ts +4 -0
- package/dist/routes/kie-pricing.d.ts.map +1 -0
- package/dist/routes/kie-pricing.js +45 -0
- package/dist/routes/kie-pricing.js.map +1 -0
- package/dist/routes/kie-webhook.d.ts +4 -0
- package/dist/routes/kie-webhook.d.ts.map +1 -0
- package/dist/routes/kie-webhook.js +70 -0
- package/dist/routes/kie-webhook.js.map +1 -0
- package/dist/routes/nodes.d.ts.map +1 -1
- package/dist/routes/nodes.js +29 -51
- package/dist/routes/nodes.js.map +1 -1
- package/dist/routes/oauth-as.d.ts +30 -0
- package/dist/routes/oauth-as.d.ts.map +1 -0
- package/dist/routes/oauth-as.js +412 -0
- package/dist/routes/oauth-as.js.map +1 -0
- package/dist/routes/oauth.d.ts.map +1 -1
- package/dist/routes/openai.d.ts.map +1 -1
- package/dist/routes/public-apps.d.ts +27 -0
- package/dist/routes/public-apps.d.ts.map +1 -0
- package/dist/routes/public-apps.js +99 -0
- package/dist/routes/public-apps.js.map +1 -0
- package/dist/routes/public-shared-workflows.d.ts +16 -0
- package/dist/routes/public-shared-workflows.d.ts.map +1 -0
- package/dist/routes/public-shared-workflows.js +55 -0
- package/dist/routes/public-shared-workflows.js.map +1 -0
- package/dist/routes/run-spans.d.ts +4 -0
- package/dist/routes/run-spans.d.ts.map +1 -0
- package/dist/routes/run-spans.js +53 -0
- package/dist/routes/run-spans.js.map +1 -0
- package/dist/routes/sandbox-modules.d.ts +17 -0
- package/dist/routes/sandbox-modules.d.ts.map +1 -0
- package/dist/routes/sandbox-modules.js +85 -0
- package/dist/routes/sandbox-modules.js.map +1 -0
- package/dist/routes/sdk-v1.d.ts +24 -0
- package/dist/routes/sdk-v1.d.ts.map +1 -0
- package/dist/routes/sdk-v1.js +320 -0
- package/dist/routes/sdk-v1.js.map +1 -0
- package/dist/routes/storage.d.ts.map +1 -1
- package/dist/routes/storyboards.d.ts +16 -0
- package/dist/routes/storyboards.d.ts.map +1 -0
- package/dist/routes/storyboards.js +97 -0
- package/dist/routes/storyboards.js.map +1 -0
- package/dist/routes/timeline-animations.d.ts +23 -0
- package/dist/routes/timeline-animations.d.ts.map +1 -0
- package/dist/routes/timeline-animations.js +99 -0
- package/dist/routes/timeline-animations.js.map +1 -0
- package/dist/routes/timeline-audio-bake.d.ts +51 -0
- package/dist/routes/timeline-audio-bake.d.ts.map +1 -0
- package/dist/routes/timeline-audio-bake.js +110 -0
- package/dist/routes/timeline-audio-bake.js.map +1 -0
- package/dist/routes/timeline-fonts.d.ts +51 -0
- package/dist/routes/timeline-fonts.d.ts.map +1 -0
- package/dist/routes/timeline-fonts.js +195 -0
- package/dist/routes/timeline-fonts.js.map +1 -0
- package/dist/routes/timeline-isolate-subject.d.ts +55 -0
- package/dist/routes/timeline-isolate-subject.d.ts.map +1 -0
- package/dist/routes/timeline-isolate-subject.js +128 -0
- package/dist/routes/timeline-isolate-subject.js.map +1 -0
- package/dist/routes/timeline-track-object.d.ts +39 -0
- package/dist/routes/timeline-track-object.d.ts.map +1 -0
- package/dist/routes/timeline-track-object.js +97 -0
- package/dist/routes/timeline-track-object.js.map +1 -0
- package/dist/routes/timelines.d.ts +18 -0
- package/dist/routes/timelines.d.ts.map +1 -0
- package/dist/routes/timelines.js +191 -0
- package/dist/routes/timelines.js.map +1 -0
- package/dist/routes/workflows.d.ts +6 -9
- package/dist/routes/workflows.d.ts.map +1 -1
- package/dist/routes/workflows.js +100 -11
- package/dist/routes/workflows.js.map +1 -1
- package/dist/routes/workspace.d.ts.map +1 -1
- package/dist/run-supervisor.d.ts +30 -0
- package/dist/run-supervisor.d.ts.map +1 -0
- package/dist/run-supervisor.js +86 -0
- package/dist/run-supervisor.js.map +1 -0
- package/dist/sandbox-catalog.d.ts +28 -0
- package/dist/sandbox-catalog.d.ts.map +1 -0
- package/dist/sandbox-catalog.js +74 -0
- package/dist/sandbox-catalog.js.map +1 -0
- package/dist/screenshot-projects.d.ts +27 -0
- package/dist/screenshot-projects.d.ts.map +1 -0
- package/dist/screenshot-projects.js +880 -0
- package/dist/screenshot-projects.js.map +1 -0
- package/dist/screenshot-server.js +950 -47
- package/dist/screenshot-server.js.map +1 -1
- package/dist/sdk/sdk-cached-model-inventory.d.ts +21 -0
- package/dist/sdk/sdk-cached-model-inventory.d.ts.map +1 -0
- package/dist/sdk/sdk-cached-model-inventory.js +51 -0
- package/dist/sdk/sdk-cached-model-inventory.js.map +1 -0
- package/dist/sdk/sdk-capabilities-service.d.ts +32 -0
- package/dist/sdk/sdk-capabilities-service.d.ts.map +1 -0
- package/dist/sdk/sdk-capabilities-service.js +47 -0
- package/dist/sdk/sdk-capabilities-service.js.map +1 -0
- package/dist/sdk/sdk-execution-readiness-probe.d.ts +19 -0
- package/dist/sdk/sdk-execution-readiness-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-execution-readiness-probe.js +90 -0
- package/dist/sdk/sdk-execution-readiness-probe.js.map +1 -0
- package/dist/sdk/sdk-execution-target-readiness.d.ts +15 -0
- package/dist/sdk/sdk-execution-target-readiness.d.ts.map +1 -0
- package/dist/sdk/sdk-execution-target-readiness.js +50 -0
- package/dist/sdk/sdk-execution-target-readiness.js.map +1 -0
- package/dist/sdk/sdk-feature-flags.d.ts +18 -0
- package/dist/sdk/sdk-feature-flags.d.ts.map +1 -0
- package/dist/sdk/sdk-feature-flags.js +30 -0
- package/dist/sdk/sdk-feature-flags.js.map +1 -0
- package/dist/sdk/sdk-huggingface-download-state.d.ts +15 -0
- package/dist/sdk/sdk-huggingface-download-state.d.ts.map +1 -0
- package/dist/sdk/sdk-huggingface-download-state.js +25 -0
- package/dist/sdk/sdk-huggingface-download-state.js.map +1 -0
- package/dist/sdk/sdk-live-runner-registry.d.ts +21 -0
- package/dist/sdk/sdk-live-runner-registry.d.ts.map +1 -0
- package/dist/sdk/sdk-live-runner-registry.js +26 -0
- package/dist/sdk/sdk-live-runner-registry.js.map +1 -0
- package/dist/sdk/sdk-model-catalog-service.d.ts +20 -0
- package/dist/sdk/sdk-model-catalog-service.d.ts.map +1 -0
- package/dist/sdk/sdk-model-catalog-service.js +219 -0
- package/dist/sdk/sdk-model-catalog-service.js.map +1 -0
- package/dist/sdk/sdk-model-download-service.d.ts +39 -0
- package/dist/sdk/sdk-model-download-service.d.ts.map +1 -0
- package/dist/sdk/sdk-model-download-service.js +277 -0
- package/dist/sdk/sdk-model-download-service.js.map +1 -0
- package/dist/sdk/sdk-model-requirement-probe.d.ts +30 -0
- package/dist/sdk/sdk-model-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-model-requirement-probe.js +120 -0
- package/dist/sdk/sdk-model-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-node-package-requirement-probe.d.ts +20 -0
- package/dist/sdk/sdk-node-package-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-node-package-requirement-probe.js +44 -0
- package/dist/sdk/sdk-node-package-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-node-type-inventory-service.d.ts +11 -0
- package/dist/sdk/sdk-node-type-inventory-service.d.ts.map +1 -0
- package/dist/sdk/sdk-node-type-inventory-service.js +36 -0
- package/dist/sdk/sdk-node-type-inventory-service.js.map +1 -0
- package/dist/sdk/sdk-preflight-orchestrator.d.ts +54 -0
- package/dist/sdk/sdk-preflight-orchestrator.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-orchestrator.js +63 -0
- package/dist/sdk/sdk-preflight-orchestrator.js.map +1 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.d.ts +35 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.js +67 -0
- package/dist/sdk/sdk-preflight-requirement-resolver.js.map +1 -0
- package/dist/sdk/sdk-preflight-service.d.ts +61 -0
- package/dist/sdk/sdk-preflight-service.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-service.js +104 -0
- package/dist/sdk/sdk-preflight-service.js.map +1 -0
- package/dist/sdk/sdk-preflight-workflow-source.d.ts +18 -0
- package/dist/sdk/sdk-preflight-workflow-source.d.ts.map +1 -0
- package/dist/sdk/sdk-preflight-workflow-source.js +42 -0
- package/dist/sdk/sdk-preflight-workflow-source.js.map +1 -0
- package/dist/sdk/sdk-route-policy.d.ts +3 -0
- package/dist/sdk/sdk-route-policy.d.ts.map +1 -0
- package/dist/sdk/sdk-route-policy.js +18 -0
- package/dist/sdk/sdk-route-policy.js.map +1 -0
- package/dist/sdk/sdk-runtime-capabilities-service.d.ts +60 -0
- package/dist/sdk/sdk-runtime-capabilities-service.d.ts.map +1 -0
- package/dist/sdk/sdk-runtime-capabilities-service.js +30 -0
- package/dist/sdk/sdk-runtime-capabilities-service.js.map +1 -0
- package/dist/sdk/sdk-runtime-requirement-probe.d.ts +13 -0
- package/dist/sdk/sdk-runtime-requirement-probe.d.ts.map +1 -0
- package/dist/sdk/sdk-runtime-requirement-probe.js +55 -0
- package/dist/sdk/sdk-runtime-requirement-probe.js.map +1 -0
- package/dist/sdk/sdk-static-preflight-service.d.ts +66 -0
- package/dist/sdk/sdk-static-preflight-service.d.ts.map +1 -0
- package/dist/sdk/sdk-static-preflight-service.js +492 -0
- package/dist/sdk/sdk-static-preflight-service.js.map +1 -0
- package/dist/sdk/sdk-temporary-asset-service.d.ts +18 -0
- package/dist/sdk/sdk-temporary-asset-service.d.ts.map +1 -0
- package/dist/sdk/sdk-temporary-asset-service.js +33 -0
- package/dist/sdk/sdk-temporary-asset-service.js.map +1 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts +9 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts.map +1 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.js +65 -0
- package/dist/sdk/sdk-temporary-asset-upload-http-handler.js.map +1 -0
- package/dist/sdk/sdk-v1-handler-map.d.ts +44 -0
- package/dist/sdk/sdk-v1-handler-map.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-handler-map.js +37 -0
- package/dist/sdk/sdk-v1-handler-map.js.map +1 -0
- package/dist/sdk/sdk-v1-service-error.d.ts +21 -0
- package/dist/sdk/sdk-v1-service-error.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-service-error.js +62 -0
- package/dist/sdk/sdk-v1-service-error.js.map +1 -0
- package/dist/sdk/sdk-v1-service.d.ts +74 -0
- package/dist/sdk/sdk-v1-service.d.ts.map +1 -0
- package/dist/sdk/sdk-v1-service.js +219 -0
- package/dist/sdk/sdk-v1-service.js.map +1 -0
- package/dist/sdk/sdk-worker-readiness-adapter.d.ts +22 -0
- package/dist/sdk/sdk-worker-readiness-adapter.d.ts.map +1 -0
- package/dist/sdk/sdk-worker-readiness-adapter.js +29 -0
- package/dist/sdk/sdk-worker-readiness-adapter.js.map +1 -0
- package/dist/server.js +1091 -206
- package/dist/server.js.map +1 -1
- package/dist/session/app-run-fold.d.ts +7 -0
- package/dist/session/app-run-fold.d.ts.map +1 -0
- package/dist/session/app-run-fold.js +45 -0
- package/dist/session/app-run-fold.js.map +1 -0
- package/dist/session/asset-autosave.d.ts +80 -0
- package/dist/session/asset-autosave.d.ts.map +1 -0
- package/dist/session/asset-autosave.js +456 -0
- package/dist/session/asset-autosave.js.map +1 -0
- package/dist/session/chat-compaction.d.ts +107 -0
- package/dist/session/chat-compaction.d.ts.map +1 -0
- package/dist/session/chat-compaction.js +191 -0
- package/dist/session/chat-compaction.js.map +1 -0
- package/dist/session/chat-history.d.ts +75 -0
- package/dist/session/chat-history.d.ts.map +1 -0
- package/dist/session/chat-history.js +194 -0
- package/dist/session/chat-history.js.map +1 -0
- package/dist/session/chat-prompt.d.ts +45 -0
- package/dist/session/chat-prompt.d.ts.map +1 -0
- package/dist/session/chat-prompt.js +502 -0
- package/dist/session/chat-prompt.js.map +1 -0
- package/dist/session/chat-turn.d.ts +337 -0
- package/dist/session/chat-turn.d.ts.map +1 -0
- package/dist/session/chat-turn.js +3612 -0
- package/dist/session/chat-turn.js.map +1 -0
- package/dist/session/client-session.d.ts +59 -0
- package/dist/session/client-session.d.ts.map +1 -0
- package/dist/session/client-session.js +2 -0
- package/dist/session/client-session.js.map +1 -0
- package/dist/session/commands.d.ts +133 -0
- package/dist/session/commands.d.ts.map +1 -0
- package/dist/session/commands.js +784 -0
- package/dist/session/commands.js.map +1 -0
- package/dist/session/inference.d.ts +218 -0
- package/dist/session/inference.d.ts.map +1 -0
- package/dist/session/inference.js +1143 -0
- package/dist/session/inference.js.map +1 -0
- package/dist/session/job-execution.d.ts +484 -0
- package/dist/session/job-execution.d.ts.map +1 -0
- package/dist/session/job-execution.js +2379 -0
- package/dist/session/job-execution.js.map +1 -0
- package/dist/session/media-generation.d.ts +94 -0
- package/dist/session/media-generation.d.ts.map +1 -0
- package/dist/session/media-generation.js +234 -0
- package/dist/session/media-generation.js.map +1 -0
- package/dist/session/model-interfaces.d.ts +28 -0
- package/dist/session/model-interfaces.d.ts.map +1 -0
- package/dist/session/model-interfaces.js +133 -0
- package/dist/session/model-interfaces.js.map +1 -0
- package/dist/session/sanitize.d.ts +7 -0
- package/dist/session/sanitize.d.ts.map +1 -0
- package/dist/session/sanitize.js +64 -0
- package/dist/session/sanitize.js.map +1 -0
- package/dist/settings-registry.d.ts +6 -15
- package/dist/settings-registry.d.ts.map +1 -1
- package/dist/settings-registry.js +6 -103
- package/dist/settings-registry.js.map +1 -1
- package/dist/storage-api.d.ts +20 -0
- package/dist/storage-api.d.ts.map +1 -1
- package/dist/storage-api.js +260 -77
- package/dist/storage-api.js.map +1 -1
- package/dist/storage-retention.d.ts +14 -0
- package/dist/storage-retention.d.ts.map +1 -0
- package/dist/storage-retention.js +95 -0
- package/dist/storage-retention.js.map +1 -0
- package/dist/system-stats.d.ts +52 -0
- package/dist/system-stats.d.ts.map +1 -0
- package/dist/system-stats.js +134 -0
- package/dist/system-stats.js.map +1 -0
- package/dist/test-ui-server.d.ts +46 -0
- package/dist/test-ui-server.d.ts.map +1 -1
- package/dist/test-ui-server.js +207 -42
- package/dist/test-ui-server.js.map +1 -1
- package/dist/timeline-generation-recovery.d.ts +4 -0
- package/dist/timeline-generation-recovery.d.ts.map +1 -0
- package/dist/timeline-generation-recovery.js +72 -0
- package/dist/timeline-generation-recovery.js.map +1 -0
- package/dist/triggers/boot.d.ts +73 -0
- package/dist/triggers/boot.d.ts.map +1 -0
- package/dist/triggers/boot.js +149 -0
- package/dist/triggers/boot.js.map +1 -0
- package/dist/triggers/dispatcher.d.ts +234 -0
- package/dist/triggers/dispatcher.d.ts.map +1 -0
- package/dist/triggers/dispatcher.js +525 -0
- package/dist/triggers/dispatcher.js.map +1 -0
- package/dist/triggers/file-watch.d.ts +90 -0
- package/dist/triggers/file-watch.d.ts.map +1 -0
- package/dist/triggers/file-watch.js +405 -0
- package/dist/triggers/file-watch.js.map +1 -0
- package/dist/triggers/registration-sync.d.ts +34 -0
- package/dist/triggers/registration-sync.d.ts.map +1 -0
- package/dist/triggers/registration-sync.js +162 -0
- package/dist/triggers/registration-sync.js.map +1 -0
- package/dist/triggers/schedule-timing.d.ts +52 -0
- package/dist/triggers/schedule-timing.d.ts.map +1 -0
- package/dist/triggers/schedule-timing.js +90 -0
- package/dist/triggers/schedule-timing.js.map +1 -0
- package/dist/triggers/scheduler.d.ts +55 -0
- package/dist/triggers/scheduler.d.ts.map +1 -0
- package/dist/triggers/scheduler.js +122 -0
- package/dist/triggers/scheduler.js.map +1 -0
- package/dist/triggers/settle.d.ts +66 -0
- package/dist/triggers/settle.d.ts.map +1 -0
- package/dist/triggers/settle.js +99 -0
- package/dist/triggers/settle.js.map +1 -0
- package/dist/triggers/stores.d.ts +38 -0
- package/dist/triggers/stores.d.ts.map +1 -0
- package/dist/triggers/stores.js +168 -0
- package/dist/triggers/stores.js.map +1 -0
- package/dist/triggers/webhook-route.d.ts +49 -0
- package/dist/triggers/webhook-route.d.ts.map +1 -0
- package/dist/triggers/webhook-route.js +148 -0
- package/dist/triggers/webhook-route.js.map +1 -0
- package/dist/trpc/context.d.ts +52 -5
- package/dist/trpc/context.d.ts.map +1 -1
- package/dist/trpc/context.js +4 -1
- package/dist/trpc/context.js.map +1 -1
- package/dist/trpc/error-formatter.d.ts.map +1 -1
- package/dist/trpc/error-formatter.js +23 -2
- package/dist/trpc/error-formatter.js.map +1 -1
- package/dist/trpc/error-logging.d.ts +24 -0
- package/dist/trpc/error-logging.d.ts.map +1 -0
- package/dist/trpc/error-logging.js +48 -0
- package/dist/trpc/error-logging.js.map +1 -0
- package/dist/trpc/index.d.ts +2 -2
- package/dist/trpc/index.d.ts.map +1 -1
- package/dist/trpc/index.js +0 -2
- package/dist/trpc/index.js.map +1 -1
- package/dist/trpc/middleware.d.ts +6 -3
- package/dist/trpc/middleware.d.ts.map +1 -1
- package/dist/trpc/router.d.ts +100 -2540
- package/dist/trpc/router.d.ts.map +1 -1
- package/dist/trpc/router.js +58 -6
- package/dist/trpc/router.js.map +1 -1
- package/dist/trpc/routers/agent-access.d.ts +149 -0
- package/dist/trpc/routers/agent-access.d.ts.map +1 -0
- package/dist/trpc/routers/agent-access.js +224 -0
- package/dist/trpc/routers/agent-access.js.map +1 -0
- package/dist/trpc/routers/app-instances.d.ts +2269 -0
- package/dist/trpc/routers/app-instances.d.ts.map +1 -0
- package/dist/trpc/routers/app-instances.js +52 -0
- package/dist/trpc/routers/app-instances.js.map +1 -0
- package/dist/trpc/routers/app-runs.d.ts +1092 -0
- package/dist/trpc/routers/app-runs.d.ts.map +1 -0
- package/dist/trpc/routers/app-runs.js +28 -0
- package/dist/trpc/routers/app-runs.js.map +1 -0
- package/dist/trpc/routers/applications.d.ts +2212 -0
- package/dist/trpc/routers/applications.d.ts.map +1 -0
- package/dist/trpc/routers/applications.js +221 -0
- package/dist/trpc/routers/applications.js.map +1 -0
- package/dist/trpc/routers/assets.d.ts +194 -42
- package/dist/trpc/routers/assets.d.ts.map +1 -1
- package/dist/trpc/routers/assets.js +503 -105
- package/dist/trpc/routers/assets.js.map +1 -1
- package/dist/trpc/routers/bug-reports.d.ts +33 -0
- package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
- package/dist/trpc/routers/bug-reports.js +69 -0
- package/dist/trpc/routers/bug-reports.js.map +1 -0
- package/dist/trpc/routers/code-gen.d.ts +99 -0
- package/dist/trpc/routers/code-gen.d.ts.map +1 -0
- package/dist/trpc/routers/code-gen.js +164 -0
- package/dist/trpc/routers/code-gen.js.map +1 -0
- package/dist/trpc/routers/collections.d.ts +1 -26
- package/dist/trpc/routers/collections.d.ts.map +1 -1
- package/dist/trpc/routers/collections.js +145 -78
- package/dist/trpc/routers/collections.js.map +1 -1
- package/dist/trpc/routers/costs.d.ts +40 -96
- package/dist/trpc/routers/costs.d.ts.map +1 -1
- package/dist/trpc/routers/costs.js +14 -89
- package/dist/trpc/routers/costs.js.map +1 -1
- package/dist/trpc/routers/credits.d.ts +110 -0
- package/dist/trpc/routers/credits.d.ts.map +1 -0
- package/dist/trpc/routers/credits.js +69 -0
- package/dist/trpc/routers/credits.js.map +1 -0
- package/dist/trpc/routers/custom-providers.d.ts +88 -0
- package/dist/trpc/routers/custom-providers.d.ts.map +1 -0
- package/dist/trpc/routers/custom-providers.js +140 -0
- package/dist/trpc/routers/custom-providers.js.map +1 -0
- package/dist/trpc/routers/documents.d.ts +61 -0
- package/dist/trpc/routers/documents.d.ts.map +1 -0
- package/dist/trpc/routers/documents.js +29 -0
- package/dist/trpc/routers/documents.js.map +1 -0
- package/dist/trpc/routers/error-traces.d.ts +132 -0
- package/dist/trpc/routers/error-traces.d.ts.map +1 -0
- package/dist/trpc/routers/error-traces.js +118 -0
- package/dist/trpc/routers/error-traces.js.map +1 -0
- package/dist/trpc/routers/extension.d.ts +24 -0
- package/dist/trpc/routers/extension.d.ts.map +1 -0
- package/dist/trpc/routers/extension.js +28 -0
- package/dist/trpc/routers/extension.js.map +1 -0
- package/dist/trpc/routers/external-mcp.d.ts +108 -0
- package/dist/trpc/routers/external-mcp.d.ts.map +1 -0
- package/dist/trpc/routers/external-mcp.js +70 -0
- package/dist/trpc/routers/external-mcp.js.map +1 -0
- package/dist/trpc/routers/files.d.ts +9 -2
- package/dist/trpc/routers/files.d.ts.map +1 -1
- package/dist/trpc/routers/files.js +67 -37
- package/dist/trpc/routers/files.js.map +1 -1
- package/dist/trpc/routers/fonts.d.ts +30 -0
- package/dist/trpc/routers/fonts.d.ts.map +1 -0
- package/dist/trpc/routers/fonts.js +112 -0
- package/dist/trpc/routers/fonts.js.map +1 -0
- package/dist/trpc/routers/gameDraftHistory.d.ts +8 -0
- package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
- package/dist/trpc/routers/gameDraftHistory.js +40 -0
- package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
- package/dist/trpc/routers/games.d.ts +26502 -0
- package/dist/trpc/routers/games.d.ts.map +1 -0
- package/dist/trpc/routers/games.js +674 -0
- package/dist/trpc/routers/games.js.map +1 -0
- package/dist/trpc/routers/integrations.d.ts +86 -0
- package/dist/trpc/routers/integrations.d.ts.map +1 -0
- package/dist/trpc/routers/integrations.js +129 -0
- package/dist/trpc/routers/integrations.js.map +1 -0
- package/dist/trpc/routers/jobs.d.ts +117 -21
- package/dist/trpc/routers/jobs.d.ts.map +1 -1
- package/dist/trpc/routers/jobs.js +191 -30
- package/dist/trpc/routers/jobs.js.map +1 -1
- package/dist/trpc/routers/js-scripts.d.ts +410 -0
- package/dist/trpc/routers/js-scripts.d.ts.map +1 -0
- package/dist/trpc/routers/js-scripts.js +303 -0
- package/dist/trpc/routers/js-scripts.js.map +1 -0
- package/dist/trpc/routers/mcp-config.d.ts +4 -2
- package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
- package/dist/trpc/routers/mcp-config.js +46 -206
- package/dist/trpc/routers/mcp-config.js.map +1 -1
- package/dist/trpc/routers/memories.d.ts +79 -0
- package/dist/trpc/routers/memories.d.ts.map +1 -0
- package/dist/trpc/routers/memories.js +66 -0
- package/dist/trpc/routers/memories.js.map +1 -0
- package/dist/trpc/routers/messages.d.ts +4 -77
- package/dist/trpc/routers/messages.d.ts.map +1 -1
- package/dist/trpc/routers/messages.js +9 -58
- package/dist/trpc/routers/messages.js.map +1 -1
- package/dist/trpc/routers/models.d.ts +1544 -249
- package/dist/trpc/routers/models.d.ts.map +1 -1
- package/dist/trpc/routers/models.js +624 -318
- package/dist/trpc/routers/models.js.map +1 -1
- package/dist/trpc/routers/nodes.d.ts +32 -16
- package/dist/trpc/routers/nodes.d.ts.map +1 -1
- package/dist/trpc/routers/nodes.js +70 -31
- package/dist/trpc/routers/nodes.js.map +1 -1
- package/dist/trpc/routers/packs.d.ts +184 -0
- package/dist/trpc/routers/packs.d.ts.map +1 -0
- package/dist/trpc/routers/packs.js +259 -0
- package/dist/trpc/routers/packs.js.map +1 -0
- package/dist/trpc/routers/projects.d.ts +422 -0
- package/dist/trpc/routers/projects.d.ts.map +1 -0
- package/dist/trpc/routers/projects.js +373 -0
- package/dist/trpc/routers/projects.js.map +1 -0
- package/dist/trpc/routers/resources.d.ts +120 -0
- package/dist/trpc/routers/resources.d.ts.map +1 -0
- package/dist/trpc/routers/resources.js +212 -0
- package/dist/trpc/routers/resources.js.map +1 -0
- package/dist/trpc/routers/runs.d.ts +472 -0
- package/dist/trpc/routers/runs.d.ts.map +1 -0
- package/dist/trpc/routers/runs.js +40 -0
- package/dist/trpc/routers/runs.js.map +1 -0
- package/dist/trpc/routers/scripts.d.ts +1116 -0
- package/dist/trpc/routers/scripts.d.ts.map +1 -0
- package/dist/trpc/routers/scripts.js +131 -0
- package/dist/trpc/routers/scripts.js.map +1 -0
- package/dist/trpc/routers/segmentation.d.ts +62 -0
- package/dist/trpc/routers/segmentation.d.ts.map +1 -0
- package/dist/trpc/routers/segmentation.js +146 -0
- package/dist/trpc/routers/segmentation.js.map +1 -0
- package/dist/trpc/routers/settings.d.ts +180 -10
- package/dist/trpc/routers/settings.d.ts.map +1 -1
- package/dist/trpc/routers/settings.js +125 -33
- package/dist/trpc/routers/settings.js.map +1 -1
- package/dist/trpc/routers/sketch.d.ts +868 -0
- package/dist/trpc/routers/sketch.d.ts.map +1 -0
- package/dist/trpc/routers/sketch.js +617 -0
- package/dist/trpc/routers/sketch.js.map +1 -0
- package/dist/trpc/routers/skills.d.ts +76 -22
- package/dist/trpc/routers/skills.d.ts.map +1 -1
- package/dist/trpc/routers/skills.js +195 -170
- package/dist/trpc/routers/skills.js.map +1 -1
- package/dist/trpc/routers/storage.d.ts +3 -30
- package/dist/trpc/routers/storage.d.ts.map +1 -1
- package/dist/trpc/routers/storage.js +60 -117
- package/dist/trpc/routers/storage.js.map +1 -1
- package/dist/trpc/routers/storyboards.d.ts +6639 -0
- package/dist/trpc/routers/storyboards.d.ts.map +1 -0
- package/dist/trpc/routers/storyboards.js +156 -0
- package/dist/trpc/routers/storyboards.js.map +1 -0
- package/dist/trpc/routers/threads.d.ts +33 -21
- package/dist/trpc/routers/threads.d.ts.map +1 -1
- package/dist/trpc/routers/threads.js +36 -30
- package/dist/trpc/routers/threads.js.map +1 -1
- package/dist/trpc/routers/timeline.d.ts +9085 -0
- package/dist/trpc/routers/timeline.d.ts.map +1 -0
- package/dist/trpc/routers/timeline.js +669 -0
- package/dist/trpc/routers/timeline.js.map +1 -0
- package/dist/trpc/routers/triggers.d.ts +46 -0
- package/dist/trpc/routers/triggers.d.ts.map +1 -0
- package/dist/trpc/routers/triggers.js +117 -0
- package/dist/trpc/routers/triggers.js.map +1 -0
- package/dist/trpc/routers/users.d.ts +1 -14
- package/dist/trpc/routers/users.d.ts.map +1 -1
- package/dist/trpc/routers/users.js +1 -12
- package/dist/trpc/routers/users.js.map +1 -1
- package/dist/trpc/routers/worker.d.ts +243 -0
- package/dist/trpc/routers/worker.d.ts.map +1 -0
- package/dist/trpc/routers/worker.js +221 -0
- package/dist/trpc/routers/worker.js.map +1 -0
- package/dist/trpc/routers/workflows.d.ts +428 -187
- package/dist/trpc/routers/workflows.d.ts.map +1 -1
- package/dist/trpc/routers/workflows.js +347 -345
- package/dist/trpc/routers/workflows.js.map +1 -1
- package/dist/trpc/routers/workspace.d.ts +59 -33
- package/dist/trpc/routers/workspace.d.ts.map +1 -1
- package/dist/trpc/routers/workspace.js +230 -93
- package/dist/trpc/routers/workspace.js.map +1 -1
- package/dist/trpc/sandbox-coverage.d.ts +64 -0
- package/dist/trpc/sandbox-coverage.d.ts.map +1 -0
- package/dist/trpc/sandbox-coverage.js +1139 -0
- package/dist/trpc/sandbox-coverage.js.map +1 -0
- package/dist/websocket-client-session.d.ts +322 -0
- package/dist/websocket-client-session.d.ts.map +1 -0
- package/dist/websocket-client-session.js +1267 -0
- package/dist/websocket-client-session.js.map +1 -0
- package/dist/workflow-interface-service.d.ts +87 -0
- package/dist/workflow-interface-service.d.ts.map +1 -0
- package/dist/workflow-interface-service.js +131 -0
- package/dist/workflow-interface-service.js.map +1 -0
- package/dist/workspace-api.d.ts.map +1 -1
- package/dist/workspace-api.js +33 -23
- package/dist/workspace-api.js.map +1 -1
- package/dist/ws-adapter.d.ts +46 -3
- package/dist/ws-adapter.d.ts.map +1 -1
- package/dist/ws-adapter.js +164 -26
- package/dist/ws-adapter.js.map +1 -1
- package/package.json +97 -36
- package/dist/agent/agent-runtime.d.ts +0 -47
- package/dist/agent/agent-runtime.d.ts.map +0 -1
- package/dist/agent/agent-runtime.js +0 -579
- package/dist/agent/agent-runtime.js.map +0 -1
- package/dist/agent/codex-agent.d.ts +0 -41
- package/dist/agent/codex-agent.d.ts.map +0 -1
- package/dist/agent/codex-agent.js +0 -334
- package/dist/agent/codex-agent.js.map +0 -1
- package/dist/agent/index.d.ts +0 -6
- package/dist/agent/index.d.ts.map +0 -1
- package/dist/agent/index.js +0 -4
- package/dist/agent/index.js.map +0 -1
- package/dist/agent/llm-agent.d.ts +0 -51
- package/dist/agent/llm-agent.d.ts.map +0 -1
- package/dist/agent/llm-agent.js +0 -526
- package/dist/agent/llm-agent.js.map +0 -1
- package/dist/agent/mcp-tool-server.d.ts +0 -33
- package/dist/agent/mcp-tool-server.d.ts.map +0 -1
- package/dist/agent/mcp-tool-server.js +0 -292
- package/dist/agent/mcp-tool-server.js.map +0 -1
- package/dist/agent/opencode-agent.d.ts +0 -32
- package/dist/agent/opencode-agent.d.ts.map +0 -1
- package/dist/agent/opencode-agent.js +0 -332
- package/dist/agent/opencode-agent.js.map +0 -1
- package/dist/agent/pi-agent.d.ts +0 -42
- package/dist/agent/pi-agent.d.ts.map +0 -1
- package/dist/agent/pi-agent.js +0 -429
- package/dist/agent/pi-agent.js.map +0 -1
- package/dist/agent/sdk-provider.d.ts +0 -46
- package/dist/agent/sdk-provider.d.ts.map +0 -1
- package/dist/agent/sdk-provider.js +0 -50
- package/dist/agent/sdk-provider.js.map +0 -1
- package/dist/agent/socket-route.d.ts +0 -11
- package/dist/agent/socket-route.d.ts.map +0 -1
- package/dist/agent/socket-route.js +0 -262
- package/dist/agent/socket-route.js.map +0 -1
- package/dist/agent/transport.d.ts +0 -39
- package/dist/agent/transport.d.ts.map +0 -1
- package/dist/agent/transport.js +0 -17
- package/dist/agent/transport.js.map +0 -1
- package/dist/agent/types.d.ts +0 -11
- package/dist/agent/types.d.ts.map +0 -1
- package/dist/agent/types.js +0 -10
- package/dist/agent/types.js.map +0 -1
- package/dist/routes/jobs.d.ts +0 -16
- package/dist/routes/jobs.d.ts.map +0 -1
- package/dist/routes/jobs.js +0 -25
- package/dist/routes/jobs.js.map +0 -1
- package/dist/trpc/routers/sandboxes.d.ts +0 -64
- package/dist/trpc/routers/sandboxes.d.ts.map +0 -1
- package/dist/trpc/routers/sandboxes.js +0 -327
- package/dist/trpc/routers/sandboxes.js.map +0 -1
- package/dist/unified-websocket-runner.d.ts +0 -280
- package/dist/unified-websocket-runner.d.ts.map +0 -1
- package/dist/unified-websocket-runner.js +0 -3840
- package/dist/unified-websocket-runner.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
type GpuStatsSnapshot = {
|
|
2
|
+
gpu_percent: number;
|
|
3
|
+
vram_total_gb: number;
|
|
4
|
+
vram_used_gb: number;
|
|
5
|
+
vram_percent: number;
|
|
6
|
+
};
|
|
7
|
+
type SystemStatsSnapshot = {
|
|
8
|
+
cpu_percent: number;
|
|
9
|
+
memory_percent: number;
|
|
10
|
+
memory_used: number;
|
|
11
|
+
memory_total: number;
|
|
12
|
+
memory_used_gb: number;
|
|
13
|
+
memory_total_gb: number;
|
|
14
|
+
} & Partial<GpuStatsSnapshot>;
|
|
15
|
+
/**
|
|
16
|
+
* Parse `nvidia-smi --query-gpu=utilization.gpu,memory.total,memory.used
|
|
17
|
+
* --format=csv,noheader,nounits` output (one CSV line per GPU; utilization in
|
|
18
|
+
* %, memory in MiB). With several GPUs, report the one with the most memory —
|
|
19
|
+
* that's where models land, and a summed figure would suggest budgets no
|
|
20
|
+
* single card has. Returns null when no line parses to a usable total.
|
|
21
|
+
*/
|
|
22
|
+
export declare function parseNvidiaSmiGpuStats(stdout: string): GpuStatsSnapshot | null;
|
|
23
|
+
/**
|
|
24
|
+
* Build a stateful sampler that returns whole-system stats on each call.
|
|
25
|
+
* CPU% is computed from the delta of `os.cpus()` times since the last call,
|
|
26
|
+
* so the first call after construction returns ~0% (no delta yet).
|
|
27
|
+
*
|
|
28
|
+
* GPU stats come from an async `nvidia-smi` probe kicked off by each call and
|
|
29
|
+
* read from a cache, so the sampler itself stays synchronous; the first call
|
|
30
|
+
* carries no GPU fields, later ones do. A machine without a working
|
|
31
|
+
* `nvidia-smi` is marked unavailable after the first failed probe so no
|
|
32
|
+
* further processes are spawned. (Apple Silicon has no discrete VRAM; the
|
|
33
|
+
* frontend budgets against unified system memory instead.)
|
|
34
|
+
*/
|
|
35
|
+
export declare function createSystemStatsSampler(): () => SystemStatsSnapshot;
|
|
36
|
+
/**
|
|
37
|
+
* Whether this server should broadcast `system_stats` at all.
|
|
38
|
+
*
|
|
39
|
+
* A server that enforces auth is shared: its CPU and RAM belong to a container
|
|
40
|
+
* the user has no stake in, so the editor readout would describe the wrong
|
|
41
|
+
* machine and report the host's capacity to everyone connected. A local install
|
|
42
|
+
* is the machine the numbers describe, so it keeps sending them.
|
|
43
|
+
*
|
|
44
|
+
* `NODETOOL_SYSTEM_STATS=1|0` overrides both ways — `1` for a local server
|
|
45
|
+
* pointed at a hosted Supabase project, `0` to turn the broadcast off outright.
|
|
46
|
+
* `NODE_ENV` is deliberately not consulted: the desktop backend and the Docker
|
|
47
|
+
* image both set it to "production" while serving one user locally, which is
|
|
48
|
+
* how this broadcast went blank in every packaged build once before.
|
|
49
|
+
*/
|
|
50
|
+
export declare function systemStatsBroadcastEnabled(env?: Record<string, string | undefined>): boolean;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=system-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-stats.d.ts","sourceRoot":"","sources":["../src/system-stats.ts"],"names":[],"mappings":"AAIA,KAAK,gBAAgB,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAuB9B;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CA+B9E;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,IAAI,MAAM,mBAAmB,CA2CpE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,2BAA2B,CACzC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAST"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
import { execFile } from "node:child_process";
|
|
3
|
+
import { isAuthEnforced } from "@nodetool-ai/config";
|
|
4
|
+
const BYTES_PER_GB = 1024 ** 3;
|
|
5
|
+
const MIB_PER_GB = 1024;
|
|
6
|
+
function snapshotCpu() {
|
|
7
|
+
let total = 0;
|
|
8
|
+
let idle = 0;
|
|
9
|
+
for (const cpu of os.cpus()) {
|
|
10
|
+
const t = cpu.times;
|
|
11
|
+
total += t.user + t.nice + t.sys + t.idle + t.irq;
|
|
12
|
+
idle += t.idle;
|
|
13
|
+
}
|
|
14
|
+
return { total, idle };
|
|
15
|
+
}
|
|
16
|
+
const NVIDIA_SMI_ARGS = [
|
|
17
|
+
"--query-gpu=utilization.gpu,memory.total,memory.used",
|
|
18
|
+
"--format=csv,noheader,nounits"
|
|
19
|
+
];
|
|
20
|
+
/**
|
|
21
|
+
* Parse `nvidia-smi --query-gpu=utilization.gpu,memory.total,memory.used
|
|
22
|
+
* --format=csv,noheader,nounits` output (one CSV line per GPU; utilization in
|
|
23
|
+
* %, memory in MiB). With several GPUs, report the one with the most memory —
|
|
24
|
+
* that's where models land, and a summed figure would suggest budgets no
|
|
25
|
+
* single card has. Returns null when no line parses to a usable total.
|
|
26
|
+
*/
|
|
27
|
+
export function parseNvidiaSmiGpuStats(stdout) {
|
|
28
|
+
let best = null;
|
|
29
|
+
for (const line of stdout.split("\n")) {
|
|
30
|
+
const parts = line.split(",").map((part) => part.trim());
|
|
31
|
+
if (parts.length < 3) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
// Unsupported fields print "[N/A]"; Number() turns those into NaN.
|
|
35
|
+
const util = Number(parts[0]);
|
|
36
|
+
const totalMib = Number(parts[1]);
|
|
37
|
+
const usedMib = Number(parts[2]);
|
|
38
|
+
if (!Number.isFinite(totalMib) || totalMib <= 0) {
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
if (!best || totalMib > best.totalMib) {
|
|
42
|
+
best = {
|
|
43
|
+
util: Number.isFinite(util) ? Math.max(0, Math.min(100, util)) : 0,
|
|
44
|
+
totalMib,
|
|
45
|
+
usedMib: Number.isFinite(usedMib) ? Math.max(0, usedMib) : 0
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (!best) {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
gpu_percent: best.util,
|
|
54
|
+
vram_total_gb: best.totalMib / MIB_PER_GB,
|
|
55
|
+
vram_used_gb: best.usedMib / MIB_PER_GB,
|
|
56
|
+
vram_percent: Math.max(0, Math.min(100, (best.usedMib / best.totalMib) * 100))
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build a stateful sampler that returns whole-system stats on each call.
|
|
61
|
+
* CPU% is computed from the delta of `os.cpus()` times since the last call,
|
|
62
|
+
* so the first call after construction returns ~0% (no delta yet).
|
|
63
|
+
*
|
|
64
|
+
* GPU stats come from an async `nvidia-smi` probe kicked off by each call and
|
|
65
|
+
* read from a cache, so the sampler itself stays synchronous; the first call
|
|
66
|
+
* carries no GPU fields, later ones do. A machine without a working
|
|
67
|
+
* `nvidia-smi` is marked unavailable after the first failed probe so no
|
|
68
|
+
* further processes are spawned. (Apple Silicon has no discrete VRAM; the
|
|
69
|
+
* frontend budgets against unified system memory instead.)
|
|
70
|
+
*/
|
|
71
|
+
export function createSystemStatsSampler() {
|
|
72
|
+
let previous = snapshotCpu();
|
|
73
|
+
let gpu = null;
|
|
74
|
+
let gpuProbe = "idle";
|
|
75
|
+
const probeGpu = () => {
|
|
76
|
+
gpuProbe = "probing";
|
|
77
|
+
execFile("nvidia-smi", NVIDIA_SMI_ARGS, { timeout: 3000 }, (error, stdout) => {
|
|
78
|
+
if (error) {
|
|
79
|
+
gpuProbe = "unavailable";
|
|
80
|
+
gpu = null;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
gpu = parseNvidiaSmiGpuStats(stdout);
|
|
84
|
+
gpuProbe = gpu ? "idle" : "unavailable";
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
return () => {
|
|
88
|
+
if (gpuProbe === "idle") {
|
|
89
|
+
probeGpu();
|
|
90
|
+
}
|
|
91
|
+
const current = snapshotCpu();
|
|
92
|
+
const totalDelta = current.total - previous.total;
|
|
93
|
+
const idleDelta = current.idle - previous.idle;
|
|
94
|
+
const cpuPercent = totalDelta > 0 ? (1 - idleDelta / totalDelta) * 100 : 0;
|
|
95
|
+
previous = current;
|
|
96
|
+
const totalMem = os.totalmem();
|
|
97
|
+
const freeMem = os.freemem();
|
|
98
|
+
const usedMem = totalMem - freeMem;
|
|
99
|
+
return {
|
|
100
|
+
cpu_percent: Math.max(0, Math.min(100, cpuPercent)),
|
|
101
|
+
memory_percent: (usedMem / totalMem) * 100,
|
|
102
|
+
memory_used: usedMem,
|
|
103
|
+
memory_total: totalMem,
|
|
104
|
+
memory_used_gb: usedMem / BYTES_PER_GB,
|
|
105
|
+
memory_total_gb: totalMem / BYTES_PER_GB,
|
|
106
|
+
...(gpu ?? {})
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Whether this server should broadcast `system_stats` at all.
|
|
112
|
+
*
|
|
113
|
+
* A server that enforces auth is shared: its CPU and RAM belong to a container
|
|
114
|
+
* the user has no stake in, so the editor readout would describe the wrong
|
|
115
|
+
* machine and report the host's capacity to everyone connected. A local install
|
|
116
|
+
* is the machine the numbers describe, so it keeps sending them.
|
|
117
|
+
*
|
|
118
|
+
* `NODETOOL_SYSTEM_STATS=1|0` overrides both ways — `1` for a local server
|
|
119
|
+
* pointed at a hosted Supabase project, `0` to turn the broadcast off outright.
|
|
120
|
+
* `NODE_ENV` is deliberately not consulted: the desktop backend and the Docker
|
|
121
|
+
* image both set it to "production" while serving one user locally, which is
|
|
122
|
+
* how this broadcast went blank in every packaged build once before.
|
|
123
|
+
*/
|
|
124
|
+
export function systemStatsBroadcastEnabled(env = process.env) {
|
|
125
|
+
const override = env["NODETOOL_SYSTEM_STATS"]?.trim();
|
|
126
|
+
if (override === "1" || override === "true") {
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
if (override === "0" || override === "false") {
|
|
130
|
+
return false;
|
|
131
|
+
}
|
|
132
|
+
return !isAuthEnforced(env);
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=system-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"system-stats.js","sourceRoot":"","sources":["../src/system-stats.ts"],"names":[],"mappings":"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"}
|
package/dist/test-ui-server.d.ts
CHANGED
|
@@ -1,9 +1,55 @@
|
|
|
1
1
|
import { type IncomingMessage, type ServerResponse } from "node:http";
|
|
2
|
+
import { NodeRegistry } from "@nodetool-ai/node-sdk";
|
|
3
|
+
import { WebSocketClientSession, type WebSocketClientSessionOptions } from "./websocket-client-session.js";
|
|
2
4
|
import { type HttpApiOptions } from "./http-api.js";
|
|
3
5
|
export interface TestUiServerOptions extends HttpApiOptions {
|
|
4
6
|
port?: number;
|
|
5
7
|
host?: string;
|
|
6
8
|
examplesDir?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Called after built-in nodes are registered, before the server starts.
|
|
11
|
+
* Lets callers register extra node classes / metadata (e.g. an e2e harness
|
|
12
|
+
* registering test-only node types) on the same registry the runner uses.
|
|
13
|
+
*/
|
|
14
|
+
configureRegistry?: (registry: NodeRegistry) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Override LLM provider resolution. Defaults to a deterministic
|
|
17
|
+
* ScriptedProvider so agent/LLM workflows run without API keys. An e2e
|
|
18
|
+
* harness can pass a resolver that returns real providers when keys exist.
|
|
19
|
+
*/
|
|
20
|
+
resolveProvider?: WebSocketClientSessionOptions["resolveProvider"];
|
|
21
|
+
/**
|
|
22
|
+
* Override executor resolution for unknown node types. Receives the registry
|
|
23
|
+
* so the default (registry.resolve) can be reused for known types.
|
|
24
|
+
*/
|
|
25
|
+
resolveExecutor?: WebSocketClientSessionOptions["resolveExecutor"];
|
|
26
|
+
/**
|
|
27
|
+
* When true, unknown node types resolve to a permissive passthrough instead
|
|
28
|
+
* of failing graph hydration/execution. Lets the harness run CLI fixtures
|
|
29
|
+
* that use test-only node types such as `test.Input`.
|
|
30
|
+
*/
|
|
31
|
+
passthroughUnknownNodes?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Extends node-TYPE resolution (property/output shape used during graph
|
|
34
|
+
* hydration — distinct from `resolveExecutor`, which only resolves how a
|
|
35
|
+
* node EXECUTES) for a type the base registry can't resolve. Consulted
|
|
36
|
+
* after the registry and before `passthroughUnknownNodes`'s permissive
|
|
37
|
+
* fallback. Needed because `Graph.loadFromDict` (node-sdk) silently DROPS a
|
|
38
|
+
* node (and its edges) whose type this resolver can't answer for at all —
|
|
39
|
+
* so a caller pairing a custom `resolveExecutor` with a node type the
|
|
40
|
+
* registry doesn't know (e.g. the reliability harness's Python-bridge-fake
|
|
41
|
+
* node, task D3) must also answer here, or the node never reaches
|
|
42
|
+
* `resolveExecutor` in the first place.
|
|
43
|
+
*/
|
|
44
|
+
resolveUnknownNodeType?: (nodeType: string) => Promise<import("@nodetool-ai/kernel").ResolvedNodeType | null>;
|
|
45
|
+
/**
|
|
46
|
+
* Called with each per-connection `WebSocketClientSession` right after it is
|
|
47
|
+
* constructed. The runner is otherwise private to the upgrade handler; the
|
|
48
|
+
* reliability harness needs it to read `jobs.slotCounters` for leak accounting.
|
|
49
|
+
*/
|
|
50
|
+
onRunnerCreated?: (runner: WebSocketClientSession) => void;
|
|
51
|
+
/** Reset a hermetic test server to its initial fixture state. */
|
|
52
|
+
resetDatabase?: () => Promise<void>;
|
|
7
53
|
}
|
|
8
54
|
export declare function createTestUiServer(options?: TestUiServerOptions): {
|
|
9
55
|
server: import("http").Server<typeof IncomingMessage, typeof ServerResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-ui-server.d.ts","sourceRoot":"","sources":["../src/test-ui-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"test-ui-server.d.ts","sourceRoot":"","sources":["../src/test-ui-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,WAAW,CAAC;AAcnB,OAAO,EACL,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAK/B,OAAO,EACL,sBAAsB,EAEtB,KAAK,6BAA6B,EACnC,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAyB,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AA45B3E,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,KAAK,IAAI,CAAC;IACrD;;;;OAIG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;IACnE;;;OAGG;IACH,eAAe,CAAC,EAAE,6BAA6B,CAAC,iBAAiB,CAAC,CAAC;IACnE;;;;OAIG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;;;;;;;;OAWG;IACH,sBAAsB,CAAC,EAAE,CACvB,QAAQ,EAAE,MAAM,KACb,OAAO,CAAC,OAAO,qBAAqB,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAAC;IACpE;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,sBAAsB,KAAK,IAAI,CAAC;IAC3D,iEAAiE;IACjE,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AA8QD,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,mBAAwB;;;;;;;;;;EA4SnE"}
|
package/dist/test-ui-server.js
CHANGED
|
@@ -1,18 +1,34 @@
|
|
|
1
1
|
import { createServer } from "node:http";
|
|
2
|
-
import { createLogger, getDefaultDbPath } from "@nodetool-ai/config";
|
|
2
|
+
import { createLogger, getDefaultDbPath, getPostgresDatabaseUrl, loadEnvironment } from "@nodetool-ai/config";
|
|
3
|
+
import { createHTTPHandler } from "@trpc/server/adapters/standalone";
|
|
4
|
+
import { TRPC_MAX_BATCH_SIZE } from "@nodetool-ai/protocol";
|
|
3
5
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
4
6
|
import { spawnSync } from "node:child_process";
|
|
5
7
|
import path from "node:path";
|
|
8
|
+
import { fileURLToPath } from "node:url";
|
|
6
9
|
import { WebSocketServer } from "ws";
|
|
7
10
|
import { NodeRegistry, createGraphNodeTypeResolver } from "@nodetool-ai/node-sdk";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
11
|
+
import { registerBuiltInNodes, applyProductionNodePolicy } from "./node-registry-setup.js";
|
|
12
|
+
import { WebSocketClientSession } from "./websocket-client-session.js";
|
|
13
|
+
import { appRouter } from "./trpc/router.js";
|
|
14
|
+
import { createContextFactory } from "./trpc/context.js";
|
|
12
15
|
import { ScriptedProvider, autoScript } from "@nodetool-ai/runtime";
|
|
13
16
|
import { handleNodeHttpRequest } from "./http-api.js";
|
|
14
|
-
import {
|
|
17
|
+
import { createTestUiRunRoutes } from "./lib/test-ui-run-routes.js";
|
|
18
|
+
import { initDb, initPostgresDb, migrateSqliteDb } from "@nodetool-ai/models";
|
|
19
|
+
import { isNonEmptyString, isString } from "./lib/wire-values.js";
|
|
20
|
+
loadEnvironment(path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../.."));
|
|
15
21
|
const log = createLogger("nodetool.websocket.server");
|
|
22
|
+
const DEMO_IMAGE_PNG = Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQIHWP4////fwAJ+wP9KobjigAAAABJRU5ErkJggg==", "base64");
|
|
23
|
+
// 1×1 solid-color PNGs served for the seeded entity assets, so entity avatars
|
|
24
|
+
// and cards render as clean color swatches (scaled by object-fit) instead of
|
|
25
|
+
// broken images in documentation screenshots.
|
|
26
|
+
const ENTITY_IMAGE_PNGS = {
|
|
27
|
+
"entity-marta": Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGNY5msGAALGASqvcSOBAAAAAElFTkSuQmCC", "base64"),
|
|
28
|
+
"entity-harbor": Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGMw8YwDAAGQANyfP6qhAAAAAElFTkSuQmCC", "base64"),
|
|
29
|
+
"entity-noir": Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGOYrVUDAAKlAULCKC3dAAAAAElFTkSuQmCC", "base64"),
|
|
30
|
+
"entity-umbrella": Buffer.from("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGPYpGQCAAKSAQkGlyO/AAAAAElFTkSuQmCC", "base64")
|
|
31
|
+
};
|
|
16
32
|
function htmlPage() {
|
|
17
33
|
return `<!doctype html>
|
|
18
34
|
<html lang="en">
|
|
@@ -836,6 +852,12 @@ class WsAdapter {
|
|
|
836
852
|
const waiter = this.waiters.shift();
|
|
837
853
|
if (waiter)
|
|
838
854
|
waiter({ type: "websocket.disconnect" });
|
|
855
|
+
// If no receiver is parked (the runner is busy handling a command), queue
|
|
856
|
+
// the disconnect so the next receive() resolves it. Dropping it here left
|
|
857
|
+
// receive() waiting on a frame that could never arrive — the runner loop
|
|
858
|
+
// hung forever and its disconnect()/cleanup never ran.
|
|
859
|
+
else
|
|
860
|
+
this.queue.push({ type: "websocket.disconnect" });
|
|
839
861
|
});
|
|
840
862
|
}
|
|
841
863
|
async accept() { }
|
|
@@ -843,6 +865,11 @@ class WsAdapter {
|
|
|
843
865
|
const next = this.queue.shift();
|
|
844
866
|
if (next)
|
|
845
867
|
return next;
|
|
868
|
+
// Never park a waiter on an already-closed socket — no further 'message' or
|
|
869
|
+
// 'close' event will fire to resolve it.
|
|
870
|
+
if (this.clientState === "disconnected") {
|
|
871
|
+
return { type: "websocket.disconnect" };
|
|
872
|
+
}
|
|
846
873
|
return await new Promise((resolve) => this.waiters.push(resolve));
|
|
847
874
|
}
|
|
848
875
|
async sendBytes(data) {
|
|
@@ -925,7 +952,7 @@ print(json.dumps(sorted(roots)))
|
|
|
925
952
|
const roots = JSON.parse(proc.stdout.trim());
|
|
926
953
|
if (!Array.isArray(roots))
|
|
927
954
|
continue;
|
|
928
|
-
return roots.filter((p) =>
|
|
955
|
+
return roots.filter((p) => isNonEmptyString(p) && existsSync(p));
|
|
929
956
|
}
|
|
930
957
|
catch {
|
|
931
958
|
// try next python executable
|
|
@@ -1055,12 +1082,12 @@ function listExampleWorkflows(examplesDir) {
|
|
|
1055
1082
|
const parsed = JSON.parse(raw);
|
|
1056
1083
|
items.push({
|
|
1057
1084
|
id: file,
|
|
1058
|
-
name:
|
|
1085
|
+
name: isString(parsed.name)
|
|
1059
1086
|
? parsed.name
|
|
1060
1087
|
: file.replace(/\.json$/i, ""),
|
|
1061
|
-
description:
|
|
1088
|
+
description: isString(parsed.description) ? parsed.description : "",
|
|
1062
1089
|
tags: Array.isArray(parsed.tags)
|
|
1063
|
-
? parsed.tags.filter((t) =>
|
|
1090
|
+
? parsed.tags.filter((t) => isString(t))
|
|
1064
1091
|
: []
|
|
1065
1092
|
});
|
|
1066
1093
|
}
|
|
@@ -1084,12 +1111,12 @@ function readExampleWorkflow(examplesDir, id) {
|
|
|
1084
1111
|
return null;
|
|
1085
1112
|
return {
|
|
1086
1113
|
id: safeId,
|
|
1087
|
-
name:
|
|
1114
|
+
name: isString(parsed.name)
|
|
1088
1115
|
? parsed.name
|
|
1089
1116
|
: safeId.replace(/\.json$/i, ""),
|
|
1090
|
-
description:
|
|
1117
|
+
description: isString(parsed.description) ? parsed.description : "",
|
|
1091
1118
|
tags: Array.isArray(parsed.tags)
|
|
1092
|
-
? parsed.tags.filter((t) =>
|
|
1119
|
+
? parsed.tags.filter((t) => isString(t))
|
|
1093
1120
|
: [],
|
|
1094
1121
|
graph
|
|
1095
1122
|
};
|
|
@@ -1104,20 +1131,124 @@ export function createTestUiServer(options = {}) {
|
|
|
1104
1131
|
roots: metadataRoots,
|
|
1105
1132
|
maxDepth: options.metadataMaxDepth ?? 8
|
|
1106
1133
|
});
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1134
|
+
registerBuiltInNodes(registry);
|
|
1135
|
+
applyProductionNodePolicy(registry);
|
|
1136
|
+
options.configureRegistry?.(registry);
|
|
1110
1137
|
const resolvedApiOptions = {
|
|
1111
1138
|
...options,
|
|
1112
1139
|
metadataRoots,
|
|
1113
|
-
registry
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1140
|
+
registry
|
|
1141
|
+
};
|
|
1142
|
+
const fontsDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../timeline/fonts");
|
|
1143
|
+
if (!resolvedApiOptions.bundledFontsDir && existsSync(fontsDir)) {
|
|
1144
|
+
resolvedApiOptions.bundledFontsDir = fontsDir;
|
|
1145
|
+
}
|
|
1146
|
+
// Pass the resolved examples directory so handleWorkflowExamples can serve
|
|
1147
|
+
// examples directly from the filesystem without requiring Python metadata.
|
|
1148
|
+
if (examplesDir) {
|
|
1149
|
+
resolvedApiOptions.examplesDir = examplesDir;
|
|
1150
|
+
}
|
|
1151
|
+
const baseGraphNodeTypeResolver = createGraphNodeTypeResolver(registry);
|
|
1152
|
+
// When `passthroughUnknownNodes` is set, unknown node types (e.g. the
|
|
1153
|
+
// `test.Input` placeholder used by CLI fixtures) resolve to a permissive
|
|
1154
|
+
// synthetic type so graph hydration succeeds. The kernel already treats
|
|
1155
|
+
// `test.Input` / `nodetool.input.*` as external inputs and dispatches the
|
|
1156
|
+
// run params by node name; declaring `name` keeps that property through
|
|
1157
|
+
// hydration.
|
|
1158
|
+
const graphNodeTypeResolver = options.resolveUnknownNodeType || options.passthroughUnknownNodes
|
|
1159
|
+
? {
|
|
1160
|
+
resolveNodeType: async (nodeType) => {
|
|
1161
|
+
const resolved = await baseGraphNodeTypeResolver.resolveNodeType(nodeType);
|
|
1162
|
+
if (resolved)
|
|
1163
|
+
return resolved;
|
|
1164
|
+
const extended = await options.resolveUnknownNodeType?.(nodeType);
|
|
1165
|
+
if (extended)
|
|
1166
|
+
return extended;
|
|
1167
|
+
if (!options.passthroughUnknownNodes)
|
|
1168
|
+
return null;
|
|
1169
|
+
return {
|
|
1170
|
+
nodeType,
|
|
1171
|
+
propertyTypes: { name: "str", value: "any" },
|
|
1172
|
+
outputs: {},
|
|
1173
|
+
supportsDynamicInputs: true,
|
|
1174
|
+
descriptorDefaults: {}
|
|
1175
|
+
};
|
|
1176
|
+
}
|
|
1177
|
+
}
|
|
1178
|
+
: baseGraphNodeTypeResolver;
|
|
1179
|
+
// Passthrough executor for unknown node types: echo inputs back so values
|
|
1180
|
+
// flow downstream. For `test.Input` the kernel calls process({ value }) and
|
|
1181
|
+
// dispatches the echoed `value` to each outgoing edge (falling back to the
|
|
1182
|
+
// raw param value per handle when the source handle isn't echoed).
|
|
1183
|
+
const passthroughExecutor = {
|
|
1184
|
+
async process(inputs) {
|
|
1185
|
+
return inputs;
|
|
1186
|
+
}
|
|
1117
1187
|
};
|
|
1118
|
-
const
|
|
1188
|
+
const resolveExecutor = options.resolveExecutor ??
|
|
1189
|
+
((node) => {
|
|
1190
|
+
if (options.passthroughUnknownNodes && !registry.has(node.type)) {
|
|
1191
|
+
return passthroughExecutor;
|
|
1192
|
+
}
|
|
1193
|
+
return registry.resolve(node);
|
|
1194
|
+
});
|
|
1195
|
+
const trpcContextFactory = createContextFactory({
|
|
1196
|
+
registry,
|
|
1197
|
+
apiOptions: resolvedApiOptions,
|
|
1198
|
+
pythonBridge: {},
|
|
1199
|
+
getPythonBridgeReady: () => false
|
|
1200
|
+
});
|
|
1201
|
+
const trpcHandler = createHTTPHandler({
|
|
1202
|
+
router: appRouter,
|
|
1203
|
+
// Match the production server (see server.ts): the web client forces all
|
|
1204
|
+
// batches to POST via httpBatchLink `methodOverride: "POST"`. Without this
|
|
1205
|
+
// flag the handler rejects POST-to-query, leaving the chat/threads panels
|
|
1206
|
+
// empty behind a "threads.list" error.
|
|
1207
|
+
allowMethodOverride: true,
|
|
1208
|
+
maxBatchSize: TRPC_MAX_BATCH_SIZE,
|
|
1209
|
+
createContext: ({ req }) => {
|
|
1210
|
+
// SAFETY: the test-UI server has no auth plugin, so it attaches the
|
|
1211
|
+
// single-user id the context reads directly onto the request.
|
|
1212
|
+
const authedReq = req;
|
|
1213
|
+
authedReq.userId = "1";
|
|
1214
|
+
return trpcContextFactory({ req: authedReq });
|
|
1215
|
+
}
|
|
1216
|
+
});
|
|
1217
|
+
const runRoutes = createTestUiRunRoutes();
|
|
1119
1218
|
const server = createServer((req, res) => {
|
|
1120
1219
|
const url = new URL(req.url ?? "/", `http://${host}:${port}`);
|
|
1220
|
+
if (runRoutes.matches(url.pathname)) {
|
|
1221
|
+
void runRoutes.handle(req, res).catch((error) => {
|
|
1222
|
+
log.error("UI run route failed", error);
|
|
1223
|
+
if (!res.headersSent) {
|
|
1224
|
+
res.statusCode = 500;
|
|
1225
|
+
}
|
|
1226
|
+
res.end();
|
|
1227
|
+
});
|
|
1228
|
+
return;
|
|
1229
|
+
}
|
|
1230
|
+
if (url.pathname === "/api/test/reset") {
|
|
1231
|
+
if (req.method !== "POST" || !options.resetDatabase) {
|
|
1232
|
+
res.statusCode = 404;
|
|
1233
|
+
res.setHeader("content-type", "application/json");
|
|
1234
|
+
res.end(JSON.stringify({ detail: "Not found" }));
|
|
1235
|
+
return;
|
|
1236
|
+
}
|
|
1237
|
+
void options
|
|
1238
|
+
.resetDatabase()
|
|
1239
|
+
.then(() => {
|
|
1240
|
+
res.statusCode = 204;
|
|
1241
|
+
res.end();
|
|
1242
|
+
})
|
|
1243
|
+
.catch((error) => {
|
|
1244
|
+
res.statusCode = 500;
|
|
1245
|
+
res.setHeader("content-type", "application/json");
|
|
1246
|
+
res.end(JSON.stringify({
|
|
1247
|
+
detail: error instanceof Error ? error.message : String(error)
|
|
1248
|
+
}));
|
|
1249
|
+
});
|
|
1250
|
+
return;
|
|
1251
|
+
}
|
|
1121
1252
|
if (url.pathname === "/" || url.pathname === "/test-ui") {
|
|
1122
1253
|
res.statusCode = 200;
|
|
1123
1254
|
res.setHeader("content-type", "text/html; charset=utf-8");
|
|
@@ -1157,6 +1288,32 @@ export function createTestUiServer(options = {}) {
|
|
|
1157
1288
|
res.end(JSON.stringify(example));
|
|
1158
1289
|
return;
|
|
1159
1290
|
}
|
|
1291
|
+
if (/^\/api\/storage\/(?:[^/]+\/)?(?:asset-photo[1-4](?:_thumb)?\.(?:jpg|jpeg|png)|asset-doc1_thumb\.jpg)$/i.test(url.pathname)) {
|
|
1292
|
+
res.statusCode = 200;
|
|
1293
|
+
res.setHeader("content-type", "image/png");
|
|
1294
|
+
res.setHeader("cache-control", "no-store");
|
|
1295
|
+
res.end(DEMO_IMAGE_PNG);
|
|
1296
|
+
return;
|
|
1297
|
+
}
|
|
1298
|
+
{
|
|
1299
|
+
// Entity reference images (color swatches) for the seeded entities.
|
|
1300
|
+
const entityMatch = url.pathname.match(/^\/api\/storage\/(?:[^/]+\/)?(entity-[a-z]+)(?:_thumb)?\.(?:jpg|jpeg|png)$/i);
|
|
1301
|
+
const entityPng = entityMatch ? ENTITY_IMAGE_PNGS[entityMatch[1]] : null;
|
|
1302
|
+
if (entityPng) {
|
|
1303
|
+
res.statusCode = 200;
|
|
1304
|
+
res.setHeader("content-type", "image/png");
|
|
1305
|
+
res.setHeader("cache-control", "no-store");
|
|
1306
|
+
res.end(entityPng);
|
|
1307
|
+
return;
|
|
1308
|
+
}
|
|
1309
|
+
}
|
|
1310
|
+
if (url.pathname.startsWith("/trpc")) {
|
|
1311
|
+
const originalUrl = req.url;
|
|
1312
|
+
req.url = (req.url ?? "/").replace(/^\/trpc/, "") || "/";
|
|
1313
|
+
void trpcHandler(req, res);
|
|
1314
|
+
req.url = originalUrl;
|
|
1315
|
+
return;
|
|
1316
|
+
}
|
|
1160
1317
|
if (url.pathname.startsWith("/api/") ||
|
|
1161
1318
|
url.pathname.startsWith("/v1/") ||
|
|
1162
1319
|
url.pathname.startsWith("/admin/")) {
|
|
@@ -1181,26 +1338,28 @@ export function createTestUiServer(options = {}) {
|
|
|
1181
1338
|
ws.on("error", (error) => {
|
|
1182
1339
|
log.error("WebSocket client error", error);
|
|
1183
1340
|
});
|
|
1184
|
-
const runner = new
|
|
1185
|
-
resolveExecutor
|
|
1341
|
+
const runner = new WebSocketClientSession({
|
|
1342
|
+
resolveExecutor,
|
|
1186
1343
|
resolveNodeType: graphNodeTypeResolver,
|
|
1187
|
-
resolveProvider:
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1344
|
+
resolveProvider: options.resolveProvider ??
|
|
1345
|
+
(async (_providerId) => new ScriptedProvider([
|
|
1346
|
+
autoScript({
|
|
1347
|
+
plan: {
|
|
1348
|
+
title: "Agent task",
|
|
1349
|
+
steps: [
|
|
1350
|
+
{
|
|
1351
|
+
id: "s1",
|
|
1352
|
+
instructions: "Complete the objective",
|
|
1353
|
+
depends_on: []
|
|
1354
|
+
}
|
|
1355
|
+
]
|
|
1356
|
+
},
|
|
1357
|
+
text: "fake agent response from server"
|
|
1358
|
+
})
|
|
1359
|
+
])),
|
|
1202
1360
|
getNodeMetadata: (nodeType) => registry.getMetadata(nodeType)
|
|
1203
1361
|
});
|
|
1362
|
+
options.onRunnerCreated?.(runner);
|
|
1204
1363
|
log.info("WebSocket client connected");
|
|
1205
1364
|
void runner.run(new WsAdapter(ws)).catch((error) => {
|
|
1206
1365
|
log.error("Runner crashed", error instanceof Error ? error : new Error(String(error)));
|
|
@@ -1225,7 +1384,7 @@ export function createTestUiServer(options = {}) {
|
|
|
1225
1384
|
});
|
|
1226
1385
|
}
|
|
1227
1386
|
});
|
|
1228
|
-
}),
|
|
1387
|
+
}).then(() => runRoutes.close()),
|
|
1229
1388
|
info: {
|
|
1230
1389
|
host,
|
|
1231
1390
|
port,
|
|
@@ -1235,10 +1394,16 @@ export function createTestUiServer(options = {}) {
|
|
|
1235
1394
|
};
|
|
1236
1395
|
}
|
|
1237
1396
|
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
1238
|
-
// Initialize SQLite adapter pointing at the same DB as the Python side
|
|
1239
|
-
const dbPath = getDefaultDbPath();
|
|
1240
1397
|
try {
|
|
1241
|
-
|
|
1398
|
+
const postgresDatabaseUrl = getPostgresDatabaseUrl();
|
|
1399
|
+
if (postgresDatabaseUrl) {
|
|
1400
|
+
await initPostgresDb(postgresDatabaseUrl);
|
|
1401
|
+
}
|
|
1402
|
+
else {
|
|
1403
|
+
const dbPath = getDefaultDbPath();
|
|
1404
|
+
await migrateSqliteDb(dbPath);
|
|
1405
|
+
initDb(dbPath);
|
|
1406
|
+
}
|
|
1242
1407
|
}
|
|
1243
1408
|
catch {
|
|
1244
1409
|
// DB unavailable — secrets will appear unconfigured
|