@nodetool-ai/websocket 0.7.0-rc.22 → 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
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# @nodetool-ai/websocket
|
|
2
|
+
|
|
3
|
+
The Fastify HTTP + WebSocket server — the main NodeTool API (default port 7777).
|
|
4
|
+
Hosts the unified websocket runner for workflow and chat operations plus the
|
|
5
|
+
tRPC routers and REST endpoints.
|
|
6
|
+
|
|
7
|
+
## Responsibilities
|
|
8
|
+
|
|
9
|
+
- `WebSocketClientSession` — per-connection runner with a job concurrency queue.
|
|
10
|
+
- tRPC routers (`src/trpc/`) with a consistent error shape (`apiCode`).
|
|
11
|
+
- REST endpoints (assets, workflows, models, …) and MsgPack WebSocket messages.
|
|
12
|
+
|
|
13
|
+
## Run
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm run dev:server # from repo root (tsx --watch)
|
|
17
|
+
node packages/websocket/dist/server.js # built server
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Develop
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm run build --workspace=packages/websocket
|
|
24
|
+
npm run test --workspace=packages/websocket
|
|
25
|
+
npm run lint --workspace=packages/websocket
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Environment variables
|
|
29
|
+
|
|
30
|
+
- `NODETOOL_WS_MAX_MESSAGE_BYTES` — largest inbound WebSocket frame accepted
|
|
31
|
+
before deserialization (bytes; default 256 MiB). A larger frame is rejected
|
|
32
|
+
with a structured error; the connection stays open.
|
|
33
|
+
- `NODETOOL_VALIDATE_OUTBOUND_WS` — validates every outbound (server→client)
|
|
34
|
+
frame whose `type` matches a known protocol schema
|
|
35
|
+
(`@nodetool-ai/protocol`'s `processingMessageSchemas` /
|
|
36
|
+
`outboundControlMessageSchemas`) before it goes on the wire. `1`/`true`
|
|
37
|
+
forces it on, `0`/`false` forces it off. Unset, it defaults to on under
|
|
38
|
+
`NODE_ENV=test` or Vitest (`VITEST`) and off otherwise — a malformed frame
|
|
39
|
+
throws in that case, so a bug that produces one fails the test that
|
|
40
|
+
exercised it instead of shipping to production. Frames with an
|
|
41
|
+
unrecognized or absent `type` (the ad hoc `{ error, details }` command
|
|
42
|
+
replies) are never validated.
|
|
43
|
+
|
|
44
|
+
Inbound frames (client commands) are always validated against the Zod command
|
|
45
|
+
schemas in `@nodetool-ai/protocol` (`webSocketCommandEnvelopeSchema`,
|
|
46
|
+
`commandDataSchemas`) — there is no opt-out, since a malformed inbound frame
|
|
47
|
+
that isn't rejected is exactly what a real client should never be able to send.
|
|
48
|
+
|
|
49
|
+
API reference: see the `nodetool-api-reference` skill and the root
|
|
50
|
+
[AGENTS.md](../../AGENTS.md).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
2026-09-28T09:19:17.965Z
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `run_node` — execute a single NodeTool node by type and return its output.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the websocket package because running a node requires the kernel
|
|
5
|
+
* machinery (executor resolution, node hydration, WorkflowRunner) that the
|
|
6
|
+
* runner owns. The tool itself is a thin wrapper around a `runNode` callback
|
|
7
|
+
* supplied by the runner.
|
|
8
|
+
*/
|
|
9
|
+
import type { ProcessingContext } from "@nodetool-ai/runtime";
|
|
10
|
+
import { Tool } from "@nodetool-ai/agents";
|
|
11
|
+
/**
|
|
12
|
+
* HOLDOUT (anti-slop/no-unknown-returns): a node's output is an arbitrary
|
|
13
|
+
* workflow value (or an `{ error }` bag when the run failed) — the open domain
|
|
14
|
+
* NodeTool has no named union for.
|
|
15
|
+
*/
|
|
16
|
+
export type RunNodeFn = (nodeType: string, inputs: Record<string, unknown>) => Promise<unknown>;
|
|
17
|
+
export declare class RunNodeTool extends Tool {
|
|
18
|
+
readonly name = "run_node";
|
|
19
|
+
readonly description: string;
|
|
20
|
+
protected readonly jsonSchema: {
|
|
21
|
+
type: "object";
|
|
22
|
+
properties: {
|
|
23
|
+
node_type: {
|
|
24
|
+
type: "string";
|
|
25
|
+
description: string;
|
|
26
|
+
};
|
|
27
|
+
inputs: {
|
|
28
|
+
type: "object";
|
|
29
|
+
description: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
required: string[];
|
|
33
|
+
};
|
|
34
|
+
private readonly runNode;
|
|
35
|
+
constructor(runNode: RunNodeFn);
|
|
36
|
+
process(_context: ProcessingContext, params: Record<string, unknown>): Promise<unknown>;
|
|
37
|
+
userMessage(params: Record<string, unknown>): string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=run-node-tool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-node-tool.d.ts","sourceRoot":"","sources":["../../src/agent/run-node-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAG3C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,CACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC5B,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtB,qBAAa,WAAY,SAAQ,IAAI;IACnC,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,WAAW,SAIF;IAClB,SAAS,CAAC,QAAQ,CAAC,UAAU;QAC3B,IAAI,EAAE,QAAQ;QACd,UAAU;YACR,SAAS;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW;;YAIb,MAAM;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW;;;QAKf,QAAQ;MACR;IAEF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAY;IAEpC,YAAY,OAAO,EAAE,SAAS,EAG7B;IAKK,OAAO,CACX,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAQlB;IAED,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAGnD;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `run_node` — execute a single NodeTool node by type and return its output.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the websocket package because running a node requires the kernel
|
|
5
|
+
* machinery (executor resolution, node hydration, WorkflowRunner) that the
|
|
6
|
+
* runner owns. The tool itself is a thin wrapper around a `runNode` callback
|
|
7
|
+
* supplied by the runner.
|
|
8
|
+
*/
|
|
9
|
+
import { Tool } from "@nodetool-ai/agents";
|
|
10
|
+
import { isObjectLike } from "../lib/wire-values.js";
|
|
11
|
+
export class RunNodeTool extends Tool {
|
|
12
|
+
name = "run_node";
|
|
13
|
+
description = "Run a single NodeTool node by its fully-qualified type and return its " +
|
|
14
|
+
"output. Use list_nodes / search_nodes / get_node_info to discover node " +
|
|
15
|
+
"types and their inputs first. For multi-node pipelines, prefer " +
|
|
16
|
+
"run_workflow.";
|
|
17
|
+
jsonSchema = {
|
|
18
|
+
type: "object",
|
|
19
|
+
properties: {
|
|
20
|
+
node_type: {
|
|
21
|
+
type: "string",
|
|
22
|
+
description: "Fully-qualified node type, e.g. 'nodetool.text.Concat' or " +
|
|
23
|
+
"'nodetool.image.Blur'."
|
|
24
|
+
},
|
|
25
|
+
inputs: {
|
|
26
|
+
type: "object",
|
|
27
|
+
description: "Input values keyed by the node's property names. Omit for nodes " +
|
|
28
|
+
"with no required inputs."
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
required: ["node_type"]
|
|
32
|
+
};
|
|
33
|
+
runNode;
|
|
34
|
+
constructor(runNode) {
|
|
35
|
+
super();
|
|
36
|
+
this.runNode = runNode;
|
|
37
|
+
}
|
|
38
|
+
// HOLDOUT (anti-slop/no-unknown-returns): the base `Tool.process` contract
|
|
39
|
+
// in `@nodetool-ai/agents` returns `Promise<unknown>`, and the value here is
|
|
40
|
+
// the node's own output.
|
|
41
|
+
async process(_context, params) {
|
|
42
|
+
const nodeType = String(params["node_type"] ?? "");
|
|
43
|
+
if (!nodeType)
|
|
44
|
+
return { error: "node_type is required" };
|
|
45
|
+
const inputs = isObjectLike(params["inputs"])
|
|
46
|
+
? params["inputs"]
|
|
47
|
+
: {};
|
|
48
|
+
return this.runNode(nodeType, inputs);
|
|
49
|
+
}
|
|
50
|
+
userMessage(params) {
|
|
51
|
+
const t = params["node_type"];
|
|
52
|
+
return t ? `Running node ${t}` : "Running node";
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=run-node-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-node-tool.js","sourceRoot":"","sources":["../../src/agent/run-node-tool.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAYrD,MAAM,OAAO,WAAY,SAAQ,IAAI;IAC1B,IAAI,GAAG,UAAU,CAAC;IAClB,WAAW,GAClB,wEAAwE;QACxE,yEAAyE;QACzE,iEAAiE;QACjE,eAAe,CAAC;IACC,UAAU,GAAG;QAC9B,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAiB;gBACvB,WAAW,EACT,4DAA4D;oBAC5D,wBAAwB;aAC3B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE,QAAiB;gBACvB,WAAW,EACT,kEAAkE;oBAClE,0BAA0B;aAC7B;SACF;QACD,QAAQ,EAAE,CAAC,WAAW,CAAC;KACxB,CAAC;IAEe,OAAO,CAAY;IAEpC,YAAY,OAAkB;QAC5B,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,yBAAyB;IACzB,KAAK,CAAC,OAAO,CACX,QAA2B,EAC3B,MAA+B;QAE/B,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;QACzD,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC5B,CAAC,CAAE,MAAM,CAAC,QAAQ,CAA6B;YAC/C,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,WAAW,CAAC,MAA+B;QACzC,MAAM,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC;IAClD,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forwards ProcessingContext `prediction` events onto a chat socket.
|
|
3
|
+
*
|
|
4
|
+
* The chat turn's context already emits provider/model/capability on every
|
|
5
|
+
* `runProviderPrediction` call. Without this listener those events stay in
|
|
6
|
+
* the context queue and never reach ChatUI.
|
|
7
|
+
*/
|
|
8
|
+
import type { ProcessingMessage } from "@nodetool-ai/protocol";
|
|
9
|
+
export declare function attachChatPredictionForwarder(addMessageListener: (listener: (msg: ProcessingMessage) => void) => () => void, send: (msg: Record<string, unknown>) => void, ids: {
|
|
10
|
+
threadId: string | null;
|
|
11
|
+
workflowId?: string | null;
|
|
12
|
+
}): () => void;
|
|
13
|
+
//# sourceMappingURL=chat-prediction-forwarder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-prediction-forwarder.d.ts","sourceRoot":"","sources":["../src/chat-prediction-forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,wBAAgB,6BAA6B,CAC3C,kBAAkB,EAAE,CAClB,QAAQ,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,IAAI,KACvC,MAAM,IAAI,EACf,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,EAC5C,GAAG,EAAE;IAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3D,MAAM,IAAI,CAeZ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Forwards ProcessingContext `prediction` events onto a chat socket.
|
|
3
|
+
*
|
|
4
|
+
* The chat turn's context already emits provider/model/capability on every
|
|
5
|
+
* `runProviderPrediction` call. Without this listener those events stay in
|
|
6
|
+
* the context queue and never reach ChatUI.
|
|
7
|
+
*/
|
|
8
|
+
export function attachChatPredictionForwarder(addMessageListener, send, ids) {
|
|
9
|
+
return addMessageListener((msg) => {
|
|
10
|
+
if (msg.type !== "prediction") {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const forwarded = {
|
|
14
|
+
...msg,
|
|
15
|
+
thread_id: ids.threadId
|
|
16
|
+
};
|
|
17
|
+
send(ids.workflowId == null
|
|
18
|
+
? forwarded
|
|
19
|
+
: { ...forwarded, workflow_id: ids.workflowId });
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=chat-prediction-forwarder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-prediction-forwarder.js","sourceRoot":"","sources":["../src/chat-prediction-forwarder.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,UAAU,6BAA6B,CAC3C,kBAEe,EACf,IAA4C,EAC5C,GAA4D;IAE5D,OAAO,kBAAkB,CAAC,CAAC,GAAG,EAAE,EAAE;QAChC,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC9B,OAAO;QACT,CAAC;QACD,MAAM,SAAS,GAAG;YAChB,GAAG,GAAG;YACN,SAAS,EAAE,GAAG,CAAC,QAAQ;SACU,CAAC;QACpC,IAAI,CACF,GAAG,CAAC,UAAU,IAAI,IAAI;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,CAClD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping a chat transcript well-formed when a turn does not finish.
|
|
3
|
+
*
|
|
4
|
+
* A superseding user message cancels the turn in flight (`beginChatTurn`), and
|
|
5
|
+
* the assistant message announcing a tool call has usually already been
|
|
6
|
+
* persisted by then. Without the result row that belongs with it, the thread
|
|
7
|
+
* holds a tool call nobody answered — which Anthropic rejects outright ("
|
|
8
|
+
* `tool_use` ids were found without `tool_result` blocks"), so switching model
|
|
9
|
+
* on such a thread fails every later turn.
|
|
10
|
+
*
|
|
11
|
+
* Two users, one wording:
|
|
12
|
+
* - the runner writes {@link SUPERSEDED_TOOL_RESULT} for calls left open when
|
|
13
|
+
* a turn tears down, so the row is never missing in the first place;
|
|
14
|
+
* - {@link repairOrphanedToolCalls} patches history at *load* time, for the
|
|
15
|
+
* threads already carrying an orphan. It returns a new array and writes
|
|
16
|
+
* nothing back — repairing the stored rows is a separate decision.
|
|
17
|
+
*/
|
|
18
|
+
import type { Message as ProviderMessage } from "@nodetool-ai/runtime";
|
|
19
|
+
/**
|
|
20
|
+
* What an abandoned tool call reports to the model.
|
|
21
|
+
*
|
|
22
|
+
* The wording is deliberate. When a turn is superseded the tool has often
|
|
23
|
+
* ALREADY run: the provider loop checks its abort signal before dispatching a
|
|
24
|
+
* call, never during, so a call in flight runs to completion and only its
|
|
25
|
+
* result is lost. Telling the model the call did not execute would invite it
|
|
26
|
+
* to repeat a side effect that already landed — worse than saying nothing.
|
|
27
|
+
* State the interruption, admit the outcome is unknown, and send the model to
|
|
28
|
+
* look.
|
|
29
|
+
*/
|
|
30
|
+
export declare const SUPERSEDED_TOOL_RESULT: string;
|
|
31
|
+
/** Ids of tool calls in `messages` that no later tool message answers. */
|
|
32
|
+
export declare function orphanedToolCallIds(messages: readonly ProviderMessage[]): string[];
|
|
33
|
+
/** The tool message a never-answered call gets. */
|
|
34
|
+
export declare function supersededToolMessage(toolCallId: string, threadId?: string | null): ProviderMessage;
|
|
35
|
+
/**
|
|
36
|
+
* Insert a synthetic result for every tool call the transcript leaves open.
|
|
37
|
+
*
|
|
38
|
+
* Each missing result is placed directly after the tool messages that already
|
|
39
|
+
* follow its assistant message, which is where the provider converters expect
|
|
40
|
+
* it. A call whose assistant message is absent from `messages` is left alone:
|
|
41
|
+
* on the resume fast path the array is a slice of the thread, and the real
|
|
42
|
+
* result may simply sit outside it.
|
|
43
|
+
*/
|
|
44
|
+
export declare function repairOrphanedToolCalls(messages: readonly ProviderMessage[]): ProviderMessage[];
|
|
45
|
+
//# sourceMappingURL=chat-tool-call-repair.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-tool-call-repair.d.ts","sourceRoot":"","sources":["../src/chat-tool-call-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,QAItB,CAAC;AAEd,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,SAAS,eAAe,EAAE,GACnC,MAAM,EAAE,CAiBV;AAED,mDAAmD;AACnD,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GACvB,eAAe,CAWjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,SAAS,eAAe,EAAE,GACnC,eAAe,EAAE,CAuBnB"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Keeping a chat transcript well-formed when a turn does not finish.
|
|
3
|
+
*
|
|
4
|
+
* A superseding user message cancels the turn in flight (`beginChatTurn`), and
|
|
5
|
+
* the assistant message announcing a tool call has usually already been
|
|
6
|
+
* persisted by then. Without the result row that belongs with it, the thread
|
|
7
|
+
* holds a tool call nobody answered — which Anthropic rejects outright ("
|
|
8
|
+
* `tool_use` ids were found without `tool_result` blocks"), so switching model
|
|
9
|
+
* on such a thread fails every later turn.
|
|
10
|
+
*
|
|
11
|
+
* Two users, one wording:
|
|
12
|
+
* - the runner writes {@link SUPERSEDED_TOOL_RESULT} for calls left open when
|
|
13
|
+
* a turn tears down, so the row is never missing in the first place;
|
|
14
|
+
* - {@link repairOrphanedToolCalls} patches history at *load* time, for the
|
|
15
|
+
* threads already carrying an orphan. It returns a new array and writes
|
|
16
|
+
* nothing back — repairing the stored rows is a separate decision.
|
|
17
|
+
*/
|
|
18
|
+
import { isString } from "./lib/wire-values.js";
|
|
19
|
+
/**
|
|
20
|
+
* What an abandoned tool call reports to the model.
|
|
21
|
+
*
|
|
22
|
+
* The wording is deliberate. When a turn is superseded the tool has often
|
|
23
|
+
* ALREADY run: the provider loop checks its abort signal before dispatching a
|
|
24
|
+
* call, never during, so a call in flight runs to completion and only its
|
|
25
|
+
* result is lost. Telling the model the call did not execute would invite it
|
|
26
|
+
* to repeat a side effect that already landed — worse than saying nothing.
|
|
27
|
+
* State the interruption, admit the outcome is unknown, and send the model to
|
|
28
|
+
* look.
|
|
29
|
+
*/
|
|
30
|
+
export const SUPERSEDED_TOOL_RESULT = "[interrupted] A new user message ended this turn before the result of " +
|
|
31
|
+
"this tool call was recorded. The call may already have run and taken " +
|
|
32
|
+
"effect — its outcome is unknown. Check the current state before running " +
|
|
33
|
+
"it again.";
|
|
34
|
+
/** Ids of tool calls in `messages` that no later tool message answers. */
|
|
35
|
+
export function orphanedToolCallIds(messages) {
|
|
36
|
+
const answered = new Set();
|
|
37
|
+
for (const m of messages) {
|
|
38
|
+
if (m.role === "tool" && isString(m.toolCallId)) {
|
|
39
|
+
answered.add(m.toolCallId);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
const orphans = [];
|
|
43
|
+
for (const m of messages) {
|
|
44
|
+
if (m.role !== "assistant" || !Array.isArray(m.toolCalls))
|
|
45
|
+
continue;
|
|
46
|
+
for (const call of m.toolCalls) {
|
|
47
|
+
if (isString(call.id) && !answered.has(call.id)) {
|
|
48
|
+
orphans.push(call.id);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return orphans;
|
|
53
|
+
}
|
|
54
|
+
/** The tool message a never-answered call gets. */
|
|
55
|
+
export function supersededToolMessage(toolCallId, threadId) {
|
|
56
|
+
const message = {
|
|
57
|
+
role: "tool",
|
|
58
|
+
content: SUPERSEDED_TOOL_RESULT,
|
|
59
|
+
toolCallId,
|
|
60
|
+
toolCalls: null
|
|
61
|
+
};
|
|
62
|
+
if (threadId !== undefined) {
|
|
63
|
+
message.threadId = threadId;
|
|
64
|
+
}
|
|
65
|
+
return message;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Insert a synthetic result for every tool call the transcript leaves open.
|
|
69
|
+
*
|
|
70
|
+
* Each missing result is placed directly after the tool messages that already
|
|
71
|
+
* follow its assistant message, which is where the provider converters expect
|
|
72
|
+
* it. A call whose assistant message is absent from `messages` is left alone:
|
|
73
|
+
* on the resume fast path the array is a slice of the thread, and the real
|
|
74
|
+
* result may simply sit outside it.
|
|
75
|
+
*/
|
|
76
|
+
export function repairOrphanedToolCalls(messages) {
|
|
77
|
+
const orphans = new Set(orphanedToolCallIds(messages));
|
|
78
|
+
if (orphans.size === 0)
|
|
79
|
+
return [...messages];
|
|
80
|
+
const out = [];
|
|
81
|
+
for (let i = 0; i < messages.length; i++) {
|
|
82
|
+
const m = messages[i];
|
|
83
|
+
out.push(m);
|
|
84
|
+
if (m.role !== "assistant" || !Array.isArray(m.toolCalls))
|
|
85
|
+
continue;
|
|
86
|
+
const missing = m.toolCalls.filter((call) => isString(call.id) && orphans.has(call.id));
|
|
87
|
+
if (missing.length === 0)
|
|
88
|
+
continue;
|
|
89
|
+
// Step over the real results this assistant did get, so the synthetic ones
|
|
90
|
+
// join that block instead of splitting it.
|
|
91
|
+
while (i + 1 < messages.length && messages[i + 1].role === "tool") {
|
|
92
|
+
out.push(messages[++i]);
|
|
93
|
+
}
|
|
94
|
+
for (const call of missing) {
|
|
95
|
+
out.push(supersededToolMessage(call.id, m.threadId));
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
return out;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=chat-tool-call-repair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-tool-call-repair.js","sourceRoot":"","sources":["../src/chat-tool-call-repair.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GACjC,wEAAwE;IACxE,uEAAuE;IACvE,0EAA0E;IAC1E,WAAW,CAAC;AAEd,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CACjC,QAAoC;IAEpC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC;YAChD,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,SAAS;QACpE,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC;YAC/B,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,qBAAqB,CACnC,UAAkB,EAClB,QAAwB;IAExB,MAAM,OAAO,GAAoB;QAC/B,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,sBAAsB;QAC/B,UAAU;QACV,SAAS,EAAE,IAAI;KAChB,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IAE7C,MAAM,GAAG,GAAsB,EAAE,CAAC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtB,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACZ,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;YAAE,SAAS;QACpE,MAAM,OAAO,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAChC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CACpD,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QACnC,2EAA2E;QAC3E,2CAA2C;QAC3C,OAAO,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAClE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detachable chat/agent turns.
|
|
3
|
+
*
|
|
4
|
+
* The WebSocket runner is per-connection, so before this module existed a
|
|
5
|
+
* dropped socket aborted the in-flight chat turn (`disconnect()` →
|
|
6
|
+
* `cancelChatTurn()`): a laptop lid-close killed the agent mid-work and the
|
|
7
|
+
* client had nothing to reattach to. A {@link ChatTurnSession} decouples the
|
|
8
|
+
* turn from the socket: every frame the turn emits is stamped with a
|
|
9
|
+
* monotonically increasing `chat_seq` and appended to a bounded buffer, and
|
|
10
|
+
* delivery goes to whichever connection is currently attached — or nowhere,
|
|
11
|
+
* while the client is away. On reconnect the client sends
|
|
12
|
+
* `{command: "resume_chat", data: {thread_id, last_seq}}` and gets the missed
|
|
13
|
+
* tail replayed, followed by live frames if the turn is still running.
|
|
14
|
+
*
|
|
15
|
+
* Sessions are keyed by user+thread in a process-wide registry (one turn per
|
|
16
|
+
* thread; a new turn supersedes and aborts the previous one, matching the
|
|
17
|
+
* single-turn semantics `beginChatTurn` already enforces per connection).
|
|
18
|
+
* A running turn uses its execution budget even while detached. An optional
|
|
19
|
+
* `NODETOOL_CHAT_DETACH_GRACE_MS` can impose an additional disconnect limit
|
|
20
|
+
* (disabled by default). Finished sessions use a retention timer:
|
|
21
|
+
* - retention: a finished session is kept for
|
|
22
|
+
* `NODETOOL_CHAT_REPLAY_RETENTION_MS` (default 5 min) so a client that
|
|
23
|
+
* reconnects just after the turn ended still gets the tail, then dropped.
|
|
24
|
+
*
|
|
25
|
+
* Assistant/tool messages are persisted to the DB independently of this
|
|
26
|
+
* buffer, so an expired or truncated replay degrades to the client refetching
|
|
27
|
+
* thread history over REST — nothing is lost except unpersisted stream chunks.
|
|
28
|
+
*/
|
|
29
|
+
/**
|
|
30
|
+
* Why a turn was aborted. Rides `controller.abort(reason)`, so the handler
|
|
31
|
+
* reading `signal.reason` can tell a shutdown from the user's own Stop — the
|
|
32
|
+
* one case that leaves a note in the transcript.
|
|
33
|
+
*/
|
|
34
|
+
export type ChatTurnAbortReason = "stop" | "superseded" | "shutdown";
|
|
35
|
+
/** A connection that can deliver frames to its client. */
|
|
36
|
+
interface ChatTurnDeliveryTarget {
|
|
37
|
+
deliver(message: Record<string, unknown>): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The executing connection's per-turn hooks. Kept on the session so a
|
|
41
|
+
* different connection (post-reconnect) can route a client's `tool_result` /
|
|
42
|
+
* approval / `stop` back to the runner that actually owns the turn.
|
|
43
|
+
*/
|
|
44
|
+
export interface ChatTurnExecutionHooks {
|
|
45
|
+
resolveToolResult(toolCallId: string, payload: Record<string, unknown>): void;
|
|
46
|
+
resolveApproval(approvalId: string, payload: Record<string, unknown>): void;
|
|
47
|
+
cancelPendingCalls(threadId: string): void;
|
|
48
|
+
}
|
|
49
|
+
interface ChatTurnAttachResult {
|
|
50
|
+
/** Frames with `chat_seq` greater than the requested `last_seq`. */
|
|
51
|
+
replay: Array<Record<string, unknown>>;
|
|
52
|
+
/** True when `last_seq` predates what the bounded buffer still holds. */
|
|
53
|
+
incomplete: boolean;
|
|
54
|
+
}
|
|
55
|
+
export declare class ChatTurnSession {
|
|
56
|
+
private readonly controller;
|
|
57
|
+
readonly hooks: ChatTurnExecutionHooks;
|
|
58
|
+
private readonly onDrop;
|
|
59
|
+
/** Told when the turn settles, so the registry can answer `drained`. */
|
|
60
|
+
private readonly onFinish;
|
|
61
|
+
readonly userId: string;
|
|
62
|
+
readonly threadId: string;
|
|
63
|
+
status: "running" | "finished";
|
|
64
|
+
private seq;
|
|
65
|
+
private buffer;
|
|
66
|
+
/** Highest seq evicted from the bounded buffer (0 = nothing evicted). */
|
|
67
|
+
private evictedThroughSeq;
|
|
68
|
+
private target;
|
|
69
|
+
/**
|
|
70
|
+
* Serializes delivery: replayed frames enqueue before any live frame that
|
|
71
|
+
* arrives after attach, so the client always sees seq order.
|
|
72
|
+
*/
|
|
73
|
+
private deliveryChain;
|
|
74
|
+
private detachTimer;
|
|
75
|
+
private retentionTimer;
|
|
76
|
+
constructor(userId: string, threadId: string, controller: AbortController, hooks: ChatTurnExecutionHooks, onDrop: (session: ChatTurnSession) => void, startSeq: number,
|
|
77
|
+
/** Told when the turn settles, so the registry can answer `drained`. */
|
|
78
|
+
onFinish?: () => void);
|
|
79
|
+
get lastSeq(): number;
|
|
80
|
+
/**
|
|
81
|
+
* Where a client with no frame state (a freshly reloaded page) should
|
|
82
|
+
* start its replay: after the turn's last `message` frame. Everything up
|
|
83
|
+
* to and including that frame is persisted to the DB and reachable over
|
|
84
|
+
* REST; what follows — stream chunks of the in-progress reply, status
|
|
85
|
+
* updates, pending tool/approval requests — exists only in this buffer.
|
|
86
|
+
* With no `message` frame buffered yet, replay starts at the oldest
|
|
87
|
+
* frame still held.
|
|
88
|
+
*/
|
|
89
|
+
freshAttachSeq(): number;
|
|
90
|
+
/**
|
|
91
|
+
* Stamp, buffer, and (when a connection is attached) deliver one frame.
|
|
92
|
+
* Returns the stamped copy.
|
|
93
|
+
*/
|
|
94
|
+
emit(message: Record<string, unknown>): {
|
|
95
|
+
chat_seq: number;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Attach a connection and hand back the frames it missed. Live frames
|
|
99
|
+
* emitted after this call are delivered to the new target, strictly after
|
|
100
|
+
* the returned replay is delivered (both ride {@link deliveryChain} when
|
|
101
|
+
* sent via {@link deliverReplay}).
|
|
102
|
+
*/
|
|
103
|
+
attach(target: ChatTurnDeliveryTarget, lastSeq: number): ChatTurnAttachResult;
|
|
104
|
+
/** Deliver frames on the session's ordered delivery chain. */
|
|
105
|
+
deliverReplay(target: ChatTurnDeliveryTarget, frames: Array<Record<string, unknown>>): Promise<void>;
|
|
106
|
+
/**
|
|
107
|
+
* The attached connection went away. A running turn keeps executing and
|
|
108
|
+
* buffering under its existing execution budget. Operators may configure
|
|
109
|
+
* an additional detach timeout.
|
|
110
|
+
*/
|
|
111
|
+
detach(target?: ChatTurnDeliveryTarget): void;
|
|
112
|
+
/**
|
|
113
|
+
* Abort the turn. The reason reaches the handler as `signal.reason`: only
|
|
114
|
+
* `"shutdown"` is something the user did not do and does not already know
|
|
115
|
+
* about, so only that one is written into the transcript.
|
|
116
|
+
*/
|
|
117
|
+
abort(reason: ChatTurnAbortReason): void;
|
|
118
|
+
/**
|
|
119
|
+
* The turn's promise settled. The session sticks around (still replayable)
|
|
120
|
+
* for the retention window, then drops out of the registry.
|
|
121
|
+
*/
|
|
122
|
+
finish(): void;
|
|
123
|
+
/** Release timers when the registry drops the session. */
|
|
124
|
+
dispose(): void;
|
|
125
|
+
private clearDetachTimer;
|
|
126
|
+
private enqueueDelivery;
|
|
127
|
+
}
|
|
128
|
+
export declare class ChatTurnRegistry {
|
|
129
|
+
private sessions;
|
|
130
|
+
/**
|
|
131
|
+
* Per-thread seq high-water marks, so a new turn continues numbering where
|
|
132
|
+
* the previous one left off and a client's `last_seq` from an older turn
|
|
133
|
+
* can never accidentally skip a newer turn's frames. Bounded: oldest
|
|
134
|
+
* entries are evicted past {@link MAX_SEQ_ENTRIES}.
|
|
135
|
+
*/
|
|
136
|
+
private lastSeqByThread;
|
|
137
|
+
private static readonly MAX_SEQ_ENTRIES;
|
|
138
|
+
/** Resolvers waiting for {@link runningCount} to reach zero. */
|
|
139
|
+
private drainWaiters;
|
|
140
|
+
private key;
|
|
141
|
+
/**
|
|
142
|
+
* Open a session for a new turn. An existing session for the same thread is
|
|
143
|
+
* superseded: aborted (if still running) and dropped, exactly as a new
|
|
144
|
+
* `chat_message` on a live connection cancels the previous turn.
|
|
145
|
+
*/
|
|
146
|
+
open(userId: string, threadId: string, controller: AbortController, hooks: ChatTurnExecutionHooks): ChatTurnSession;
|
|
147
|
+
get(userId: string, threadId: string): ChatTurnSession | null;
|
|
148
|
+
/** Sessions still running for a user — what a fresh client can reattach to. */
|
|
149
|
+
listRunningForUser(userId: string): ChatTurnSession[];
|
|
150
|
+
/** Turns this process is still executing. What a drain waits on. */
|
|
151
|
+
runningCount(): number;
|
|
152
|
+
/** Abort every running turn with one reason. Returns how many were aborted. */
|
|
153
|
+
abortAll(reason: ChatTurnAbortReason): number;
|
|
154
|
+
/** Abort local turns whose conversation is being deleted with its project. */
|
|
155
|
+
abortThreads(userId: string, threadIds: ReadonlySet<string>): number;
|
|
156
|
+
/**
|
|
157
|
+
* Resolve true once no turn is running, false when `timeoutMs` elapses
|
|
158
|
+
* first. A turn is running until its handler has settled, which is what
|
|
159
|
+
* writes the stand-in tool-result rows — so a shutdown that waits on this
|
|
160
|
+
* leaves a well-formed transcript behind.
|
|
161
|
+
*/
|
|
162
|
+
drained(timeoutMs: number): Promise<boolean>;
|
|
163
|
+
private notifyDrainWaiters;
|
|
164
|
+
drop(session: ChatTurnSession): void;
|
|
165
|
+
}
|
|
166
|
+
/** Process-wide registry: sessions survive their originating connection. */
|
|
167
|
+
export declare const chatTurnRegistry: ChatTurnRegistry;
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=chat-turn-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat-turn-registry.d.ts","sourceRoot":"","sources":["../src/chat-turn-registry.ts"],"names":[],"mappings":"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"}
|