@nodetool-ai/websocket 0.7.0-rc.23 → 0.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1020) hide show
  1. package/README.md +50 -0
  2. package/dist/.nodetool-build-stamp +1 -0
  3. package/dist/agent/run-node-tool.d.ts +39 -0
  4. package/dist/agent/run-node-tool.d.ts.map +1 -0
  5. package/dist/agent/run-node-tool.js +55 -0
  6. package/dist/agent/run-node-tool.js.map +1 -0
  7. package/dist/chat-prediction-forwarder.d.ts +13 -0
  8. package/dist/chat-prediction-forwarder.d.ts.map +1 -0
  9. package/dist/chat-prediction-forwarder.js +22 -0
  10. package/dist/chat-prediction-forwarder.js.map +1 -0
  11. package/dist/chat-tool-call-repair.d.ts +45 -0
  12. package/dist/chat-tool-call-repair.d.ts.map +1 -0
  13. package/dist/chat-tool-call-repair.js +100 -0
  14. package/dist/chat-tool-call-repair.js.map +1 -0
  15. package/dist/chat-turn-registry.d.ts +169 -0
  16. package/dist/chat-turn-registry.d.ts.map +1 -0
  17. package/dist/chat-turn-registry.js +326 -0
  18. package/dist/chat-turn-registry.js.map +1 -0
  19. package/dist/collection-api.d.ts +2 -2
  20. package/dist/collection-api.d.ts.map +1 -1
  21. package/dist/collection-api.js +44 -13
  22. package/dist/collection-api.js.map +1 -1
  23. package/dist/configured-providers.d.ts +52 -0
  24. package/dist/configured-providers.d.ts.map +1 -0
  25. package/dist/configured-providers.js +85 -0
  26. package/dist/configured-providers.js.map +1 -0
  27. package/dist/cors.d.ts +22 -0
  28. package/dist/cors.d.ts.map +1 -0
  29. package/dist/cors.js +91 -0
  30. package/dist/cors.js.map +1 -0
  31. package/dist/credit-gate.d.ts +36 -0
  32. package/dist/credit-gate.d.ts.map +1 -0
  33. package/dist/credit-gate.js +76 -0
  34. package/dist/credit-gate.js.map +1 -0
  35. package/dist/custom-providers.d.ts +40 -0
  36. package/dist/custom-providers.d.ts.map +1 -0
  37. package/dist/custom-providers.js +134 -0
  38. package/dist/custom-providers.js.map +1 -0
  39. package/dist/debug-sessions.d.ts +10 -0
  40. package/dist/debug-sessions.d.ts.map +1 -0
  41. package/dist/debug-sessions.js +9 -0
  42. package/dist/debug-sessions.js.map +1 -0
  43. package/dist/drain.d.ts +34 -0
  44. package/dist/drain.d.ts.map +1 -0
  45. package/dist/drain.js +68 -0
  46. package/dist/drain.js.map +1 -0
  47. package/dist/e2e-server.d.ts +30 -0
  48. package/dist/e2e-server.d.ts.map +1 -0
  49. package/dist/e2e-server.js +111 -0
  50. package/dist/e2e-server.js.map +1 -0
  51. package/dist/example-workflows.d.ts +20 -0
  52. package/dist/example-workflows.d.ts.map +1 -0
  53. package/dist/example-workflows.js +123 -0
  54. package/dist/example-workflows.js.map +1 -0
  55. package/dist/extension-cdp-bridge.d.ts +85 -0
  56. package/dist/extension-cdp-bridge.d.ts.map +1 -0
  57. package/dist/extension-cdp-bridge.js +163 -0
  58. package/dist/extension-cdp-bridge.js.map +1 -0
  59. package/dist/external-mcp.d.ts +58 -0
  60. package/dist/external-mcp.d.ts.map +1 -0
  61. package/dist/external-mcp.js +288 -0
  62. package/dist/external-mcp.js.map +1 -0
  63. package/dist/fake-runtime.d.ts +114 -0
  64. package/dist/fake-runtime.d.ts.map +1 -0
  65. package/dist/fake-runtime.js +270 -0
  66. package/dist/fake-runtime.js.map +1 -0
  67. package/dist/file-api.d.ts +4 -7
  68. package/dist/file-api.d.ts.map +1 -1
  69. package/dist/file-api.js +122 -39
  70. package/dist/file-api.js.map +1 -1
  71. package/dist/frontend-renderer-registry.d.ts +75 -0
  72. package/dist/frontend-renderer-registry.d.ts.map +1 -0
  73. package/dist/frontend-renderer-registry.js +111 -0
  74. package/dist/frontend-renderer-registry.js.map +1 -0
  75. package/dist/generation-recovery.d.ts +13 -0
  76. package/dist/generation-recovery.d.ts.map +1 -0
  77. package/dist/generation-recovery.js +197 -0
  78. package/dist/generation-recovery.js.map +1 -0
  79. package/dist/headless-job-runner.d.ts +71 -0
  80. package/dist/headless-job-runner.d.ts.map +1 -0
  81. package/dist/headless-job-runner.js +198 -0
  82. package/dist/headless-job-runner.js.map +1 -0
  83. package/dist/http-api.d.ts +157 -24
  84. package/dist/http-api.d.ts.map +1 -1
  85. package/dist/http-api.js +613 -646
  86. package/dist/http-api.js.map +1 -1
  87. package/dist/http-body-schemas.d.ts +109 -0
  88. package/dist/http-body-schemas.d.ts.map +1 -0
  89. package/dist/http-body-schemas.js +146 -0
  90. package/dist/http-body-schemas.js.map +1 -0
  91. package/dist/index.d.ts +11 -3
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +11 -3
  94. package/dist/index.js.map +1 -1
  95. package/dist/job-control.d.ts +57 -0
  96. package/dist/job-control.d.ts.map +1 -0
  97. package/dist/job-control.js +134 -0
  98. package/dist/job-control.js.map +1 -0
  99. package/dist/job-queue.d.ts +47 -0
  100. package/dist/job-queue.d.ts.map +1 -0
  101. package/dist/job-queue.js +52 -0
  102. package/dist/job-queue.js.map +1 -0
  103. package/dist/job-run-registry.d.ts +176 -0
  104. package/dist/job-run-registry.d.ts.map +1 -0
  105. package/dist/job-run-registry.js +312 -0
  106. package/dist/job-run-registry.js.map +1 -0
  107. package/dist/lib/app-build-service.d.ts +16 -0
  108. package/dist/lib/app-build-service.d.ts.map +1 -0
  109. package/dist/lib/app-build-service.js +39 -0
  110. package/dist/lib/app-build-service.js.map +1 -0
  111. package/dist/lib/app-debug-service.d.ts +16 -0
  112. package/dist/lib/app-debug-service.d.ts.map +1 -0
  113. package/dist/lib/app-debug-service.js +48 -0
  114. package/dist/lib/app-debug-service.js.map +1 -0
  115. package/dist/lib/app-deployment-service.d.ts +82 -0
  116. package/dist/lib/app-deployment-service.d.ts.map +1 -0
  117. package/dist/lib/app-deployment-service.js +282 -0
  118. package/dist/lib/app-deployment-service.js.map +1 -0
  119. package/dist/lib/app-run-server.d.ts +7 -0
  120. package/dist/lib/app-run-server.d.ts.map +1 -0
  121. package/dist/lib/app-run-server.js +6 -0
  122. package/dist/lib/app-run-server.js.map +1 -0
  123. package/dist/lib/app-session-scope.d.ts +91 -0
  124. package/dist/lib/app-session-scope.d.ts.map +1 -0
  125. package/dist/lib/app-session-scope.js +91 -0
  126. package/dist/lib/app-session-scope.js.map +1 -0
  127. package/dist/lib/applications-service.d.ts +173 -0
  128. package/dist/lib/applications-service.d.ts.map +1 -0
  129. package/dist/lib/applications-service.js +491 -0
  130. package/dist/lib/applications-service.js.map +1 -0
  131. package/dist/lib/asset-duration.d.ts +7 -0
  132. package/dist/lib/asset-duration.d.ts.map +1 -0
  133. package/dist/lib/asset-duration.js +24 -0
  134. package/dist/lib/asset-duration.js.map +1 -0
  135. package/dist/lib/asset-export.d.ts +34 -0
  136. package/dist/lib/asset-export.d.ts.map +1 -0
  137. package/dist/lib/asset-export.js +113 -0
  138. package/dist/lib/asset-export.js.map +1 -0
  139. package/dist/lib/asset-model-interface.d.ts +41 -0
  140. package/dist/lib/asset-model-interface.d.ts.map +1 -0
  141. package/dist/lib/asset-model-interface.js +74 -0
  142. package/dist/lib/asset-model-interface.js.map +1 -0
  143. package/dist/lib/asset-paths.d.ts +52 -0
  144. package/dist/lib/asset-paths.d.ts.map +1 -1
  145. package/dist/lib/asset-paths.js +145 -1
  146. package/dist/lib/asset-paths.js.map +1 -1
  147. package/dist/lib/asset-response.d.ts +12 -0
  148. package/dist/lib/asset-response.d.ts.map +1 -0
  149. package/dist/lib/asset-response.js +88 -0
  150. package/dist/lib/asset-response.js.map +1 -0
  151. package/dist/lib/audio-peaks.d.ts +23 -0
  152. package/dist/lib/audio-peaks.d.ts.map +1 -0
  153. package/dist/lib/audio-peaks.js +331 -0
  154. package/dist/lib/audio-peaks.js.map +1 -0
  155. package/dist/lib/bridge.d.ts +9 -1
  156. package/dist/lib/bridge.d.ts.map +1 -1
  157. package/dist/lib/bridge.js +27 -4
  158. package/dist/lib/bridge.js.map +1 -1
  159. package/dist/lib/compression.d.ts +3 -0
  160. package/dist/lib/compression.d.ts.map +1 -0
  161. package/dist/lib/compression.js +3 -0
  162. package/dist/lib/compression.js.map +1 -0
  163. package/dist/lib/document-model-interfaces.d.ts +30 -0
  164. package/dist/lib/document-model-interfaces.d.ts.map +1 -0
  165. package/dist/lib/document-model-interfaces.js +295 -0
  166. package/dist/lib/document-model-interfaces.js.map +1 -0
  167. package/dist/lib/env-config.d.ts +9 -0
  168. package/dist/lib/env-config.d.ts.map +1 -0
  169. package/dist/lib/env-config.js +18 -0
  170. package/dist/lib/env-config.js.map +1 -0
  171. package/dist/lib/example-apps.d.ts +43 -0
  172. package/dist/lib/example-apps.d.ts.map +1 -0
  173. package/dist/lib/example-apps.js +145 -0
  174. package/dist/lib/example-apps.js.map +1 -0
  175. package/dist/lib/example-games.d.ts +5 -0
  176. package/dist/lib/example-games.d.ts.map +1 -0
  177. package/dist/lib/example-games.js +13 -0
  178. package/dist/lib/example-games.js.map +1 -0
  179. package/dist/lib/example-recipes.d.ts +33 -0
  180. package/dist/lib/example-recipes.d.ts.map +1 -0
  181. package/dist/lib/example-recipes.js +213 -0
  182. package/dist/lib/example-recipes.js.map +1 -0
  183. package/dist/lib/example-storyboards.d.ts +40 -0
  184. package/dist/lib/example-storyboards.d.ts.map +1 -0
  185. package/dist/lib/example-storyboards.js +131 -0
  186. package/dist/lib/example-storyboards.js.map +1 -0
  187. package/dist/lib/example-thumbnail.d.ts +21 -0
  188. package/dist/lib/example-thumbnail.d.ts.map +1 -0
  189. package/dist/lib/example-thumbnail.js +50 -0
  190. package/dist/lib/example-thumbnail.js.map +1 -0
  191. package/dist/lib/example-timelines.d.ts +9 -0
  192. package/dist/lib/example-timelines.d.ts.map +1 -0
  193. package/dist/lib/example-timelines.js +25 -0
  194. package/dist/lib/example-timelines.js.map +1 -0
  195. package/dist/lib/extension-dist.d.ts +24 -0
  196. package/dist/lib/extension-dist.d.ts.map +1 -0
  197. package/dist/lib/extension-dist.js +67 -0
  198. package/dist/lib/extension-dist.js.map +1 -0
  199. package/dist/lib/external-asset-lookup.d.ts +30 -0
  200. package/dist/lib/external-asset-lookup.d.ts.map +1 -0
  201. package/dist/lib/external-asset-lookup.js +99 -0
  202. package/dist/lib/external-asset-lookup.js.map +1 -0
  203. package/dist/lib/external-assets.d.ts +13 -0
  204. package/dist/lib/external-assets.d.ts.map +1 -0
  205. package/dist/lib/external-assets.js +46 -0
  206. package/dist/lib/external-assets.js.map +1 -0
  207. package/dist/lib/fly-replay.d.ts +34 -0
  208. package/dist/lib/fly-replay.d.ts.map +1 -0
  209. package/dist/lib/fly-replay.js +111 -0
  210. package/dist/lib/fly-replay.js.map +1 -0
  211. package/dist/lib/http-rate-limit.d.ts +32 -0
  212. package/dist/lib/http-rate-limit.d.ts.map +1 -0
  213. package/dist/lib/http-rate-limit.js +47 -0
  214. package/dist/lib/http-rate-limit.js.map +1 -0
  215. package/dist/lib/instance-id.d.ts +25 -0
  216. package/dist/lib/instance-id.d.ts.map +1 -0
  217. package/dist/lib/instance-id.js +44 -0
  218. package/dist/lib/instance-id.js.map +1 -0
  219. package/dist/lib/link-codes.d.ts +82 -0
  220. package/dist/lib/link-codes.d.ts.map +1 -0
  221. package/dist/lib/link-codes.js +100 -0
  222. package/dist/lib/link-codes.js.map +1 -0
  223. package/dist/lib/local-asset-upload.d.ts +5 -0
  224. package/dist/lib/local-asset-upload.d.ts.map +1 -0
  225. package/dist/lib/local-asset-upload.js +69 -0
  226. package/dist/lib/local-asset-upload.js.map +1 -0
  227. package/dist/lib/local-file-access.d.ts +31 -0
  228. package/dist/lib/local-file-access.d.ts.map +1 -0
  229. package/dist/lib/local-file-access.js +169 -0
  230. package/dist/lib/local-file-access.js.map +1 -0
  231. package/dist/lib/localhost-trust.d.ts +59 -0
  232. package/dist/lib/localhost-trust.d.ts.map +1 -0
  233. package/dist/lib/localhost-trust.js +139 -0
  234. package/dist/lib/localhost-trust.js.map +1 -0
  235. package/dist/lib/mcp-mount.d.ts +25 -0
  236. package/dist/lib/mcp-mount.d.ts.map +1 -0
  237. package/dist/lib/mcp-mount.js +32 -0
  238. package/dist/lib/mcp-mount.js.map +1 -0
  239. package/dist/lib/media-size.d.ts +21 -0
  240. package/dist/lib/media-size.d.ts.map +1 -0
  241. package/dist/lib/media-size.js +48 -0
  242. package/dist/lib/media-size.js.map +1 -0
  243. package/dist/lib/media.d.ts +38 -0
  244. package/dist/lib/media.d.ts.map +1 -0
  245. package/dist/lib/media.js +146 -0
  246. package/dist/lib/media.js.map +1 -0
  247. package/dist/lib/package-asset-export.d.ts +83 -0
  248. package/dist/lib/package-asset-export.d.ts.map +1 -0
  249. package/dist/lib/package-asset-export.js +212 -0
  250. package/dist/lib/package-asset-export.js.map +1 -0
  251. package/dist/lib/package-assets.d.ts +41 -0
  252. package/dist/lib/package-assets.d.ts.map +1 -0
  253. package/dist/lib/package-assets.js +155 -0
  254. package/dist/lib/package-assets.js.map +1 -0
  255. package/dist/lib/project-delete.d.ts +11 -0
  256. package/dist/lib/project-delete.d.ts.map +1 -0
  257. package/dist/lib/project-delete.js +67 -0
  258. package/dist/lib/project-delete.js.map +1 -0
  259. package/dist/lib/project-document-copy.d.ts +31 -0
  260. package/dist/lib/project-document-copy.d.ts.map +1 -0
  261. package/dist/lib/project-document-copy.js +473 -0
  262. package/dist/lib/project-document-copy.js.map +1 -0
  263. package/dist/lib/public-app-assets.d.ts +8 -0
  264. package/dist/lib/public-app-assets.d.ts.map +1 -0
  265. package/dist/lib/public-app-assets.js +77 -0
  266. package/dist/lib/public-app-assets.js.map +1 -0
  267. package/dist/lib/public-routes.d.ts +95 -0
  268. package/dist/lib/public-routes.d.ts.map +1 -0
  269. package/dist/lib/public-routes.js +154 -0
  270. package/dist/lib/public-routes.js.map +1 -0
  271. package/dist/lib/runtime-detection.d.ts +17 -0
  272. package/dist/lib/runtime-detection.d.ts.map +1 -0
  273. package/dist/lib/runtime-detection.js +90 -0
  274. package/dist/lib/runtime-detection.js.map +1 -0
  275. package/dist/lib/storage-access.d.ts +21 -0
  276. package/dist/lib/storage-access.d.ts.map +1 -0
  277. package/dist/lib/storage-access.js +74 -0
  278. package/dist/lib/storage-access.js.map +1 -0
  279. package/dist/lib/storage.d.ts +9 -0
  280. package/dist/lib/storage.d.ts.map +1 -0
  281. package/dist/lib/storage.js +28 -0
  282. package/dist/lib/storage.js.map +1 -0
  283. package/dist/lib/storyboard-export.d.ts +64 -0
  284. package/dist/lib/storyboard-export.d.ts.map +1 -0
  285. package/dist/lib/storyboard-export.js +183 -0
  286. package/dist/lib/storyboard-export.js.map +1 -0
  287. package/dist/lib/style-presets.d.ts +34 -0
  288. package/dist/lib/style-presets.d.ts.map +1 -0
  289. package/dist/lib/style-presets.js +62 -0
  290. package/dist/lib/style-presets.js.map +1 -0
  291. package/dist/lib/temp-url-resolver.d.ts +35 -0
  292. package/dist/lib/temp-url-resolver.d.ts.map +1 -0
  293. package/dist/lib/temp-url-resolver.js +88 -0
  294. package/dist/lib/temp-url-resolver.js.map +1 -0
  295. package/dist/lib/thumbnail.d.ts +74 -0
  296. package/dist/lib/thumbnail.d.ts.map +1 -0
  297. package/dist/lib/thumbnail.js +302 -0
  298. package/dist/lib/thumbnail.js.map +1 -0
  299. package/dist/lib/timeline-bundle.d.ts +1689 -0
  300. package/dist/lib/timeline-bundle.d.ts.map +1 -0
  301. package/dist/lib/timeline-bundle.js +330 -0
  302. package/dist/lib/timeline-bundle.js.map +1 -0
  303. package/dist/lib/video-proxy.d.ts +114 -0
  304. package/dist/lib/video-proxy.d.ts.map +1 -0
  305. package/dist/lib/video-proxy.js +545 -0
  306. package/dist/lib/video-proxy.js.map +1 -0
  307. package/dist/lib/wire-values.d.ts +31 -0
  308. package/dist/lib/wire-values.d.ts.map +1 -0
  309. package/dist/lib/wire-values.js +49 -0
  310. package/dist/lib/wire-values.js.map +1 -0
  311. package/dist/lib/workflow-bundle.d.ts +102 -0
  312. package/dist/lib/workflow-bundle.d.ts.map +1 -0
  313. package/dist/lib/workflow-bundle.js +306 -0
  314. package/dist/lib/workflow-bundle.js.map +1 -0
  315. package/dist/lib/workflow-service.d.ts +82 -0
  316. package/dist/lib/workflow-service.d.ts.map +1 -0
  317. package/dist/lib/workflow-service.js +194 -0
  318. package/dist/lib/workflow-service.js.map +1 -0
  319. package/dist/lib/workflow-workspace.d.ts +20 -0
  320. package/dist/lib/workflow-workspace.d.ts.map +1 -0
  321. package/dist/lib/workflow-workspace.js +65 -0
  322. package/dist/lib/workflow-workspace.js.map +1 -0
  323. package/dist/lib/ws-connection-health.d.ts +10 -0
  324. package/dist/lib/ws-connection-health.d.ts.map +1 -0
  325. package/dist/lib/ws-connection-health.js +38 -0
  326. package/dist/lib/ws-connection-health.js.map +1 -0
  327. package/dist/lib/ws-rate-limit.d.ts +22 -0
  328. package/dist/lib/ws-rate-limit.d.ts.map +1 -0
  329. package/dist/lib/ws-rate-limit.js +45 -0
  330. package/dist/lib/ws-rate-limit.js.map +1 -0
  331. package/dist/lib/ws-upgrade.d.ts +40 -0
  332. package/dist/lib/ws-upgrade.d.ts.map +1 -0
  333. package/dist/lib/ws-upgrade.js +66 -0
  334. package/dist/lib/ws-upgrade.js.map +1 -0
  335. package/dist/lib/zip-stream.d.ts +46 -0
  336. package/dist/lib/zip-stream.d.ts.map +1 -0
  337. package/dist/lib/zip-stream.js +140 -0
  338. package/dist/lib/zip-stream.js.map +1 -0
  339. package/dist/mcp-agent-tools.d.ts +56 -0
  340. package/dist/mcp-agent-tools.d.ts.map +1 -0
  341. package/dist/mcp-agent-tools.js +1216 -0
  342. package/dist/mcp-agent-tools.js.map +1 -0
  343. package/dist/mcp-server.d.ts +56 -7
  344. package/dist/mcp-server.d.ts.map +1 -1
  345. package/dist/mcp-server.js +255 -762
  346. package/dist/mcp-server.js.map +1 -1
  347. package/dist/mcp-tool-deps.d.ts +20 -0
  348. package/dist/mcp-tool-deps.d.ts.map +1 -0
  349. package/dist/mcp-tool-deps.js +61 -0
  350. package/dist/mcp-tool-deps.js.map +1 -0
  351. package/dist/messagepack.d.ts +7 -0
  352. package/dist/messagepack.d.ts.map +1 -0
  353. package/dist/messagepack.js +19 -0
  354. package/dist/messagepack.js.map +1 -0
  355. package/dist/model-download-runtime.d.ts +9 -0
  356. package/dist/model-download-runtime.d.ts.map +1 -0
  357. package/dist/model-download-runtime.js +77 -0
  358. package/dist/model-download-runtime.js.map +1 -0
  359. package/dist/model-execution-availability.d.ts +14 -0
  360. package/dist/model-execution-availability.d.ts.map +1 -0
  361. package/dist/model-execution-availability.js +161 -0
  362. package/dist/model-execution-availability.js.map +1 -0
  363. package/dist/models-api.d.ts +51 -5
  364. package/dist/models-api.d.ts.map +1 -1
  365. package/dist/models-api.js +160 -690
  366. package/dist/models-api.js.map +1 -1
  367. package/dist/node-registry-setup.d.ts +84 -0
  368. package/dist/node-registry-setup.d.ts.map +1 -0
  369. package/dist/node-registry-setup.js +256 -0
  370. package/dist/node-registry-setup.js.map +1 -0
  371. package/dist/oauth/cimd.d.ts +28 -0
  372. package/dist/oauth/cimd.d.ts.map +1 -0
  373. package/dist/oauth/cimd.js +177 -0
  374. package/dist/oauth/cimd.js.map +1 -0
  375. package/dist/oauth/gate.d.ts +38 -0
  376. package/dist/oauth/gate.d.ts.map +1 -0
  377. package/dist/oauth/gate.js +77 -0
  378. package/dist/oauth/gate.js.map +1 -0
  379. package/dist/oauth/metadata.d.ts +35 -0
  380. package/dist/oauth/metadata.d.ts.map +1 -0
  381. package/dist/oauth/metadata.js +56 -0
  382. package/dist/oauth/metadata.js.map +1 -0
  383. package/dist/oauth/pending-store.d.ts +79 -0
  384. package/dist/oauth/pending-store.d.ts.map +1 -0
  385. package/dist/oauth/pending-store.js +133 -0
  386. package/dist/oauth/pending-store.js.map +1 -0
  387. package/dist/oauth/pkce.d.ts +16 -0
  388. package/dist/oauth/pkce.d.ts.map +1 -0
  389. package/dist/oauth/pkce.js +29 -0
  390. package/dist/oauth/pkce.js.map +1 -0
  391. package/dist/oauth/validate.d.ts +25 -0
  392. package/dist/oauth/validate.d.ts.map +1 -0
  393. package/dist/oauth/validate.js +62 -0
  394. package/dist/oauth/validate.js.map +1 -0
  395. package/dist/oauth/www-authenticate.d.ts +9 -0
  396. package/dist/oauth/www-authenticate.d.ts.map +1 -0
  397. package/dist/oauth/www-authenticate.js +33 -0
  398. package/dist/oauth/www-authenticate.js.map +1 -0
  399. package/dist/oauth-api.d.ts +19 -0
  400. package/dist/oauth-api.d.ts.map +1 -1
  401. package/dist/oauth-api.js +531 -12
  402. package/dist/oauth-api.js.map +1 -1
  403. package/dist/openai-api.d.ts.map +1 -1
  404. package/dist/openai-api.js +4 -9
  405. package/dist/openai-api.js.map +1 -1
  406. package/dist/pack-snapshot.d.ts +24 -0
  407. package/dist/pack-snapshot.d.ts.map +1 -0
  408. package/dist/pack-snapshot.js +35 -0
  409. package/dist/pack-snapshot.js.map +1 -0
  410. package/dist/plugins/websocket.d.ts +21 -4
  411. package/dist/plugins/websocket.d.ts.map +1 -1
  412. package/dist/plugins/websocket.js +136 -290
  413. package/dist/plugins/websocket.js.map +1 -1
  414. package/dist/resolve-media-urls.d.ts +17 -3
  415. package/dist/resolve-media-urls.d.ts.map +1 -1
  416. package/dist/resolve-media-urls.js +117 -31
  417. package/dist/resolve-media-urls.js.map +1 -1
  418. package/dist/resource-events.d.ts +28 -0
  419. package/dist/resource-events.d.ts.map +1 -0
  420. package/dist/resource-events.js +20 -0
  421. package/dist/resource-events.js.map +1 -0
  422. package/dist/routes/account.d.ts +100 -0
  423. package/dist/routes/account.d.ts.map +1 -0
  424. package/dist/routes/account.js +197 -0
  425. package/dist/routes/account.js.map +1 -0
  426. package/dist/routes/applications.d.ts +36 -0
  427. package/dist/routes/applications.d.ts.map +1 -0
  428. package/dist/routes/applications.js +183 -0
  429. package/dist/routes/applications.js.map +1 -0
  430. package/dist/routes/assets.d.ts +3 -3
  431. package/dist/routes/assets.d.ts.map +1 -1
  432. package/dist/routes/assets.js +78 -44
  433. package/dist/routes/assets.js.map +1 -1
  434. package/dist/routes/atlascloud-webhook.d.ts +93 -0
  435. package/dist/routes/atlascloud-webhook.d.ts.map +1 -0
  436. package/dist/routes/atlascloud-webhook.js +369 -0
  437. package/dist/routes/atlascloud-webhook.js.map +1 -0
  438. package/dist/routes/collections.d.ts.map +1 -1
  439. package/dist/routes/config.d.ts +26 -0
  440. package/dist/routes/config.d.ts.map +1 -0
  441. package/dist/routes/config.js +64 -0
  442. package/dist/routes/config.js.map +1 -0
  443. package/dist/routes/documents.d.ts +27 -0
  444. package/dist/routes/documents.d.ts.map +1 -0
  445. package/dist/routes/documents.js +155 -0
  446. package/dist/routes/documents.js.map +1 -0
  447. package/dist/routes/fal-credits.d.ts +4 -0
  448. package/dist/routes/fal-credits.d.ts.map +1 -0
  449. package/dist/routes/fal-credits.js +101 -0
  450. package/dist/routes/fal-credits.js.map +1 -0
  451. package/dist/routes/fal-pricing-estimate.d.ts +4 -0
  452. package/dist/routes/fal-pricing-estimate.d.ts.map +1 -0
  453. package/dist/routes/fal-pricing-estimate.js +114 -0
  454. package/dist/routes/fal-pricing-estimate.js.map +1 -0
  455. package/dist/routes/fal-pricing.d.ts +4 -0
  456. package/dist/routes/fal-pricing.d.ts.map +1 -0
  457. package/dist/routes/fal-pricing.js +93 -0
  458. package/dist/routes/fal-pricing.js.map +1 -0
  459. package/dist/routes/fal-webhook.d.ts +102 -0
  460. package/dist/routes/fal-webhook.d.ts.map +1 -0
  461. package/dist/routes/fal-webhook.js +379 -0
  462. package/dist/routes/fal-webhook.js.map +1 -0
  463. package/dist/routes/files.d.ts.map +1 -1
  464. package/dist/routes/files.js +4 -3
  465. package/dist/routes/files.js.map +1 -1
  466. package/dist/routes/health.d.ts +1 -0
  467. package/dist/routes/health.d.ts.map +1 -1
  468. package/dist/routes/health.js +41 -7
  469. package/dist/routes/health.js.map +1 -1
  470. package/dist/routes/integrations.d.ts +39 -0
  471. package/dist/routes/integrations.d.ts.map +1 -0
  472. package/dist/routes/integrations.js +211 -0
  473. package/dist/routes/integrations.js.map +1 -0
  474. package/dist/routes/js-scripts.d.ts +26 -0
  475. package/dist/routes/js-scripts.d.ts.map +1 -0
  476. package/dist/routes/js-scripts.js +116 -0
  477. package/dist/routes/js-scripts.js.map +1 -0
  478. package/dist/routes/kie-credits.d.ts +4 -0
  479. package/dist/routes/kie-credits.d.ts.map +1 -0
  480. package/dist/routes/kie-credits.js +93 -0
  481. package/dist/routes/kie-credits.js.map +1 -0
  482. package/dist/routes/kie-pricing.d.ts +4 -0
  483. package/dist/routes/kie-pricing.d.ts.map +1 -0
  484. package/dist/routes/kie-pricing.js +45 -0
  485. package/dist/routes/kie-pricing.js.map +1 -0
  486. package/dist/routes/kie-webhook.d.ts +4 -0
  487. package/dist/routes/kie-webhook.d.ts.map +1 -0
  488. package/dist/routes/kie-webhook.js +70 -0
  489. package/dist/routes/kie-webhook.js.map +1 -0
  490. package/dist/routes/nodes.d.ts.map +1 -1
  491. package/dist/routes/nodes.js +6 -59
  492. package/dist/routes/nodes.js.map +1 -1
  493. package/dist/routes/oauth-as.d.ts +30 -0
  494. package/dist/routes/oauth-as.d.ts.map +1 -0
  495. package/dist/routes/oauth-as.js +412 -0
  496. package/dist/routes/oauth-as.js.map +1 -0
  497. package/dist/routes/oauth.d.ts.map +1 -1
  498. package/dist/routes/openai.d.ts.map +1 -1
  499. package/dist/routes/public-apps.d.ts +27 -0
  500. package/dist/routes/public-apps.d.ts.map +1 -0
  501. package/dist/routes/public-apps.js +99 -0
  502. package/dist/routes/public-apps.js.map +1 -0
  503. package/dist/routes/sandbox-modules.d.ts +17 -0
  504. package/dist/routes/sandbox-modules.d.ts.map +1 -0
  505. package/dist/routes/sandbox-modules.js +85 -0
  506. package/dist/routes/sandbox-modules.js.map +1 -0
  507. package/dist/routes/sdk-v1.d.ts +24 -0
  508. package/dist/routes/sdk-v1.d.ts.map +1 -0
  509. package/dist/routes/sdk-v1.js +320 -0
  510. package/dist/routes/sdk-v1.js.map +1 -0
  511. package/dist/routes/storage.d.ts.map +1 -1
  512. package/dist/routes/storyboards.d.ts +16 -0
  513. package/dist/routes/storyboards.d.ts.map +1 -0
  514. package/dist/routes/storyboards.js +97 -0
  515. package/dist/routes/storyboards.js.map +1 -0
  516. package/dist/routes/timeline-animations.d.ts +23 -0
  517. package/dist/routes/timeline-animations.d.ts.map +1 -0
  518. package/dist/routes/timeline-animations.js +99 -0
  519. package/dist/routes/timeline-animations.js.map +1 -0
  520. package/dist/routes/timeline-audio-bake.d.ts +51 -0
  521. package/dist/routes/timeline-audio-bake.d.ts.map +1 -0
  522. package/dist/routes/timeline-audio-bake.js +110 -0
  523. package/dist/routes/timeline-audio-bake.js.map +1 -0
  524. package/dist/routes/timeline-fonts.d.ts +29 -0
  525. package/dist/routes/timeline-fonts.d.ts.map +1 -0
  526. package/dist/routes/timeline-fonts.js +64 -0
  527. package/dist/routes/timeline-fonts.js.map +1 -0
  528. package/dist/routes/timeline-isolate-subject.d.ts +55 -0
  529. package/dist/routes/timeline-isolate-subject.d.ts.map +1 -0
  530. package/dist/routes/timeline-isolate-subject.js +128 -0
  531. package/dist/routes/timeline-isolate-subject.js.map +1 -0
  532. package/dist/routes/timeline-track-object.d.ts +39 -0
  533. package/dist/routes/timeline-track-object.d.ts.map +1 -0
  534. package/dist/routes/timeline-track-object.js +97 -0
  535. package/dist/routes/timeline-track-object.js.map +1 -0
  536. package/dist/routes/timelines.d.ts +18 -0
  537. package/dist/routes/timelines.d.ts.map +1 -0
  538. package/dist/routes/timelines.js +191 -0
  539. package/dist/routes/timelines.js.map +1 -0
  540. package/dist/routes/workflows.d.ts +6 -9
  541. package/dist/routes/workflows.d.ts.map +1 -1
  542. package/dist/routes/workflows.js +100 -11
  543. package/dist/routes/workflows.js.map +1 -1
  544. package/dist/routes/workspace.d.ts.map +1 -1
  545. package/dist/run-supervisor.d.ts +30 -0
  546. package/dist/run-supervisor.d.ts.map +1 -0
  547. package/dist/run-supervisor.js +86 -0
  548. package/dist/run-supervisor.js.map +1 -0
  549. package/dist/sandbox-catalog.d.ts +28 -0
  550. package/dist/sandbox-catalog.d.ts.map +1 -0
  551. package/dist/sandbox-catalog.js +74 -0
  552. package/dist/sandbox-catalog.js.map +1 -0
  553. package/dist/screenshot-projects.d.ts +27 -0
  554. package/dist/screenshot-projects.d.ts.map +1 -0
  555. package/dist/screenshot-projects.js +880 -0
  556. package/dist/screenshot-projects.js.map +1 -0
  557. package/dist/screenshot-server.js +947 -43
  558. package/dist/screenshot-server.js.map +1 -1
  559. package/dist/sdk/sdk-cached-model-inventory.d.ts +21 -0
  560. package/dist/sdk/sdk-cached-model-inventory.d.ts.map +1 -0
  561. package/dist/sdk/sdk-cached-model-inventory.js +51 -0
  562. package/dist/sdk/sdk-cached-model-inventory.js.map +1 -0
  563. package/dist/sdk/sdk-capabilities-service.d.ts +32 -0
  564. package/dist/sdk/sdk-capabilities-service.d.ts.map +1 -0
  565. package/dist/sdk/sdk-capabilities-service.js +47 -0
  566. package/dist/sdk/sdk-capabilities-service.js.map +1 -0
  567. package/dist/sdk/sdk-execution-readiness-probe.d.ts +19 -0
  568. package/dist/sdk/sdk-execution-readiness-probe.d.ts.map +1 -0
  569. package/dist/sdk/sdk-execution-readiness-probe.js +90 -0
  570. package/dist/sdk/sdk-execution-readiness-probe.js.map +1 -0
  571. package/dist/sdk/sdk-execution-target-readiness.d.ts +15 -0
  572. package/dist/sdk/sdk-execution-target-readiness.d.ts.map +1 -0
  573. package/dist/sdk/sdk-execution-target-readiness.js +50 -0
  574. package/dist/sdk/sdk-execution-target-readiness.js.map +1 -0
  575. package/dist/sdk/sdk-feature-flags.d.ts +18 -0
  576. package/dist/sdk/sdk-feature-flags.d.ts.map +1 -0
  577. package/dist/sdk/sdk-feature-flags.js +30 -0
  578. package/dist/sdk/sdk-feature-flags.js.map +1 -0
  579. package/dist/sdk/sdk-huggingface-download-state.d.ts +15 -0
  580. package/dist/sdk/sdk-huggingface-download-state.d.ts.map +1 -0
  581. package/dist/sdk/sdk-huggingface-download-state.js +25 -0
  582. package/dist/sdk/sdk-huggingface-download-state.js.map +1 -0
  583. package/dist/sdk/sdk-live-runner-registry.d.ts +21 -0
  584. package/dist/sdk/sdk-live-runner-registry.d.ts.map +1 -0
  585. package/dist/sdk/sdk-live-runner-registry.js +26 -0
  586. package/dist/sdk/sdk-live-runner-registry.js.map +1 -0
  587. package/dist/sdk/sdk-model-catalog-service.d.ts +20 -0
  588. package/dist/sdk/sdk-model-catalog-service.d.ts.map +1 -0
  589. package/dist/sdk/sdk-model-catalog-service.js +219 -0
  590. package/dist/sdk/sdk-model-catalog-service.js.map +1 -0
  591. package/dist/sdk/sdk-model-download-service.d.ts +39 -0
  592. package/dist/sdk/sdk-model-download-service.d.ts.map +1 -0
  593. package/dist/sdk/sdk-model-download-service.js +274 -0
  594. package/dist/sdk/sdk-model-download-service.js.map +1 -0
  595. package/dist/sdk/sdk-model-requirement-probe.d.ts +30 -0
  596. package/dist/sdk/sdk-model-requirement-probe.d.ts.map +1 -0
  597. package/dist/sdk/sdk-model-requirement-probe.js +120 -0
  598. package/dist/sdk/sdk-model-requirement-probe.js.map +1 -0
  599. package/dist/sdk/sdk-node-package-requirement-probe.d.ts +20 -0
  600. package/dist/sdk/sdk-node-package-requirement-probe.d.ts.map +1 -0
  601. package/dist/sdk/sdk-node-package-requirement-probe.js +44 -0
  602. package/dist/sdk/sdk-node-package-requirement-probe.js.map +1 -0
  603. package/dist/sdk/sdk-node-type-inventory-service.d.ts +11 -0
  604. package/dist/sdk/sdk-node-type-inventory-service.d.ts.map +1 -0
  605. package/dist/sdk/sdk-node-type-inventory-service.js +36 -0
  606. package/dist/sdk/sdk-node-type-inventory-service.js.map +1 -0
  607. package/dist/sdk/sdk-preflight-orchestrator.d.ts +54 -0
  608. package/dist/sdk/sdk-preflight-orchestrator.d.ts.map +1 -0
  609. package/dist/sdk/sdk-preflight-orchestrator.js +63 -0
  610. package/dist/sdk/sdk-preflight-orchestrator.js.map +1 -0
  611. package/dist/sdk/sdk-preflight-requirement-resolver.d.ts +35 -0
  612. package/dist/sdk/sdk-preflight-requirement-resolver.d.ts.map +1 -0
  613. package/dist/sdk/sdk-preflight-requirement-resolver.js +67 -0
  614. package/dist/sdk/sdk-preflight-requirement-resolver.js.map +1 -0
  615. package/dist/sdk/sdk-preflight-service.d.ts +61 -0
  616. package/dist/sdk/sdk-preflight-service.d.ts.map +1 -0
  617. package/dist/sdk/sdk-preflight-service.js +104 -0
  618. package/dist/sdk/sdk-preflight-service.js.map +1 -0
  619. package/dist/sdk/sdk-preflight-workflow-source.d.ts +18 -0
  620. package/dist/sdk/sdk-preflight-workflow-source.d.ts.map +1 -0
  621. package/dist/sdk/sdk-preflight-workflow-source.js +42 -0
  622. package/dist/sdk/sdk-preflight-workflow-source.js.map +1 -0
  623. package/dist/sdk/sdk-route-policy.d.ts +3 -0
  624. package/dist/sdk/sdk-route-policy.d.ts.map +1 -0
  625. package/dist/sdk/sdk-route-policy.js +18 -0
  626. package/dist/sdk/sdk-route-policy.js.map +1 -0
  627. package/dist/sdk/sdk-runtime-capabilities-service.d.ts +60 -0
  628. package/dist/sdk/sdk-runtime-capabilities-service.d.ts.map +1 -0
  629. package/dist/sdk/sdk-runtime-capabilities-service.js +30 -0
  630. package/dist/sdk/sdk-runtime-capabilities-service.js.map +1 -0
  631. package/dist/sdk/sdk-runtime-requirement-probe.d.ts +13 -0
  632. package/dist/sdk/sdk-runtime-requirement-probe.d.ts.map +1 -0
  633. package/dist/sdk/sdk-runtime-requirement-probe.js +55 -0
  634. package/dist/sdk/sdk-runtime-requirement-probe.js.map +1 -0
  635. package/dist/sdk/sdk-static-preflight-service.d.ts +66 -0
  636. package/dist/sdk/sdk-static-preflight-service.d.ts.map +1 -0
  637. package/dist/sdk/sdk-static-preflight-service.js +492 -0
  638. package/dist/sdk/sdk-static-preflight-service.js.map +1 -0
  639. package/dist/sdk/sdk-temporary-asset-service.d.ts +18 -0
  640. package/dist/sdk/sdk-temporary-asset-service.d.ts.map +1 -0
  641. package/dist/sdk/sdk-temporary-asset-service.js +33 -0
  642. package/dist/sdk/sdk-temporary-asset-service.js.map +1 -0
  643. package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts +9 -0
  644. package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts.map +1 -0
  645. package/dist/sdk/sdk-temporary-asset-upload-http-handler.js +65 -0
  646. package/dist/sdk/sdk-temporary-asset-upload-http-handler.js.map +1 -0
  647. package/dist/sdk/sdk-v1-handler-map.d.ts +44 -0
  648. package/dist/sdk/sdk-v1-handler-map.d.ts.map +1 -0
  649. package/dist/sdk/sdk-v1-handler-map.js +37 -0
  650. package/dist/sdk/sdk-v1-handler-map.js.map +1 -0
  651. package/dist/sdk/sdk-v1-service-error.d.ts +21 -0
  652. package/dist/sdk/sdk-v1-service-error.d.ts.map +1 -0
  653. package/dist/sdk/sdk-v1-service-error.js +62 -0
  654. package/dist/sdk/sdk-v1-service-error.js.map +1 -0
  655. package/dist/sdk/sdk-v1-service.d.ts +74 -0
  656. package/dist/sdk/sdk-v1-service.d.ts.map +1 -0
  657. package/dist/sdk/sdk-v1-service.js +219 -0
  658. package/dist/sdk/sdk-v1-service.js.map +1 -0
  659. package/dist/sdk/sdk-worker-readiness-adapter.d.ts +22 -0
  660. package/dist/sdk/sdk-worker-readiness-adapter.d.ts.map +1 -0
  661. package/dist/sdk/sdk-worker-readiness-adapter.js +29 -0
  662. package/dist/sdk/sdk-worker-readiness-adapter.js.map +1 -0
  663. package/dist/server.js +1019 -201
  664. package/dist/server.js.map +1 -1
  665. package/dist/session/asset-autosave.d.ts +80 -0
  666. package/dist/session/asset-autosave.d.ts.map +1 -0
  667. package/dist/session/asset-autosave.js +456 -0
  668. package/dist/session/asset-autosave.js.map +1 -0
  669. package/dist/session/chat-compaction.d.ts +107 -0
  670. package/dist/session/chat-compaction.d.ts.map +1 -0
  671. package/dist/session/chat-compaction.js +191 -0
  672. package/dist/session/chat-compaction.js.map +1 -0
  673. package/dist/session/chat-history.d.ts +75 -0
  674. package/dist/session/chat-history.d.ts.map +1 -0
  675. package/dist/session/chat-history.js +194 -0
  676. package/dist/session/chat-history.js.map +1 -0
  677. package/dist/session/chat-prompt.d.ts +45 -0
  678. package/dist/session/chat-prompt.d.ts.map +1 -0
  679. package/dist/session/chat-prompt.js +480 -0
  680. package/dist/session/chat-prompt.js.map +1 -0
  681. package/dist/session/chat-turn.d.ts +336 -0
  682. package/dist/session/chat-turn.d.ts.map +1 -0
  683. package/dist/session/chat-turn.js +3516 -0
  684. package/dist/session/chat-turn.js.map +1 -0
  685. package/dist/session/client-session.d.ts +59 -0
  686. package/dist/session/client-session.d.ts.map +1 -0
  687. package/dist/session/client-session.js +2 -0
  688. package/dist/session/client-session.js.map +1 -0
  689. package/dist/session/commands.d.ts +133 -0
  690. package/dist/session/commands.d.ts.map +1 -0
  691. package/dist/session/commands.js +778 -0
  692. package/dist/session/commands.js.map +1 -0
  693. package/dist/session/inference.d.ts +213 -0
  694. package/dist/session/inference.d.ts.map +1 -0
  695. package/dist/session/inference.js +1072 -0
  696. package/dist/session/inference.js.map +1 -0
  697. package/dist/session/job-execution.d.ts +477 -0
  698. package/dist/session/job-execution.d.ts.map +1 -0
  699. package/dist/session/job-execution.js +2089 -0
  700. package/dist/session/job-execution.js.map +1 -0
  701. package/dist/session/media-generation.d.ts +94 -0
  702. package/dist/session/media-generation.d.ts.map +1 -0
  703. package/dist/session/media-generation.js +234 -0
  704. package/dist/session/media-generation.js.map +1 -0
  705. package/dist/session/model-interfaces.d.ts +27 -0
  706. package/dist/session/model-interfaces.d.ts.map +1 -0
  707. package/dist/session/model-interfaces.js +132 -0
  708. package/dist/session/model-interfaces.js.map +1 -0
  709. package/dist/session/sanitize.d.ts +7 -0
  710. package/dist/session/sanitize.d.ts.map +1 -0
  711. package/dist/session/sanitize.js +64 -0
  712. package/dist/session/sanitize.js.map +1 -0
  713. package/dist/settings-registry.d.ts +6 -15
  714. package/dist/settings-registry.d.ts.map +1 -1
  715. package/dist/settings-registry.js +6 -103
  716. package/dist/settings-registry.js.map +1 -1
  717. package/dist/storage-api.d.ts +20 -0
  718. package/dist/storage-api.d.ts.map +1 -1
  719. package/dist/storage-api.js +260 -77
  720. package/dist/storage-api.js.map +1 -1
  721. package/dist/storage-retention.d.ts +9 -0
  722. package/dist/storage-retention.d.ts.map +1 -0
  723. package/dist/storage-retention.js +74 -0
  724. package/dist/storage-retention.js.map +1 -0
  725. package/dist/system-stats.d.ts +52 -0
  726. package/dist/system-stats.d.ts.map +1 -0
  727. package/dist/system-stats.js +134 -0
  728. package/dist/system-stats.js.map +1 -0
  729. package/dist/test-ui-server.d.ts +46 -0
  730. package/dist/test-ui-server.d.ts.map +1 -1
  731. package/dist/test-ui-server.js +188 -41
  732. package/dist/test-ui-server.js.map +1 -1
  733. package/dist/triggers/boot.d.ts +73 -0
  734. package/dist/triggers/boot.d.ts.map +1 -0
  735. package/dist/triggers/boot.js +149 -0
  736. package/dist/triggers/boot.js.map +1 -0
  737. package/dist/triggers/dispatcher.d.ts +234 -0
  738. package/dist/triggers/dispatcher.d.ts.map +1 -0
  739. package/dist/triggers/dispatcher.js +525 -0
  740. package/dist/triggers/dispatcher.js.map +1 -0
  741. package/dist/triggers/file-watch.d.ts +90 -0
  742. package/dist/triggers/file-watch.d.ts.map +1 -0
  743. package/dist/triggers/file-watch.js +405 -0
  744. package/dist/triggers/file-watch.js.map +1 -0
  745. package/dist/triggers/registration-sync.d.ts +34 -0
  746. package/dist/triggers/registration-sync.d.ts.map +1 -0
  747. package/dist/triggers/registration-sync.js +162 -0
  748. package/dist/triggers/registration-sync.js.map +1 -0
  749. package/dist/triggers/schedule-timing.d.ts +52 -0
  750. package/dist/triggers/schedule-timing.d.ts.map +1 -0
  751. package/dist/triggers/schedule-timing.js +90 -0
  752. package/dist/triggers/schedule-timing.js.map +1 -0
  753. package/dist/triggers/scheduler.d.ts +55 -0
  754. package/dist/triggers/scheduler.d.ts.map +1 -0
  755. package/dist/triggers/scheduler.js +122 -0
  756. package/dist/triggers/scheduler.js.map +1 -0
  757. package/dist/triggers/settle.d.ts +66 -0
  758. package/dist/triggers/settle.d.ts.map +1 -0
  759. package/dist/triggers/settle.js +99 -0
  760. package/dist/triggers/settle.js.map +1 -0
  761. package/dist/triggers/stores.d.ts +38 -0
  762. package/dist/triggers/stores.d.ts.map +1 -0
  763. package/dist/triggers/stores.js +168 -0
  764. package/dist/triggers/stores.js.map +1 -0
  765. package/dist/triggers/webhook-route.d.ts +49 -0
  766. package/dist/triggers/webhook-route.d.ts.map +1 -0
  767. package/dist/triggers/webhook-route.js +148 -0
  768. package/dist/triggers/webhook-route.js.map +1 -0
  769. package/dist/trpc/context.d.ts +52 -5
  770. package/dist/trpc/context.d.ts.map +1 -1
  771. package/dist/trpc/context.js +4 -1
  772. package/dist/trpc/context.js.map +1 -1
  773. package/dist/trpc/error-formatter.d.ts.map +1 -1
  774. package/dist/trpc/error-formatter.js +23 -2
  775. package/dist/trpc/error-formatter.js.map +1 -1
  776. package/dist/trpc/error-logging.d.ts +14 -0
  777. package/dist/trpc/error-logging.d.ts.map +1 -0
  778. package/dist/trpc/error-logging.js +27 -0
  779. package/dist/trpc/error-logging.js.map +1 -0
  780. package/dist/trpc/index.d.ts +2 -2
  781. package/dist/trpc/index.d.ts.map +1 -1
  782. package/dist/trpc/index.js +0 -2
  783. package/dist/trpc/index.js.map +1 -1
  784. package/dist/trpc/middleware.d.ts +6 -3
  785. package/dist/trpc/middleware.d.ts.map +1 -1
  786. package/dist/trpc/router.d.ts +29791 -1303
  787. package/dist/trpc/router.d.ts.map +1 -1
  788. package/dist/trpc/router.js +46 -3
  789. package/dist/trpc/router.js.map +1 -1
  790. package/dist/trpc/routers/agent-access.d.ts +149 -0
  791. package/dist/trpc/routers/agent-access.d.ts.map +1 -0
  792. package/dist/trpc/routers/agent-access.js +224 -0
  793. package/dist/trpc/routers/agent-access.js.map +1 -0
  794. package/dist/trpc/routers/applications.d.ts +1117 -0
  795. package/dist/trpc/routers/applications.d.ts.map +1 -0
  796. package/dist/trpc/routers/applications.js +218 -0
  797. package/dist/trpc/routers/applications.js.map +1 -0
  798. package/dist/trpc/routers/assets.d.ts +184 -42
  799. package/dist/trpc/routers/assets.d.ts.map +1 -1
  800. package/dist/trpc/routers/assets.js +499 -105
  801. package/dist/trpc/routers/assets.js.map +1 -1
  802. package/dist/trpc/routers/code-gen.d.ts +99 -0
  803. package/dist/trpc/routers/code-gen.d.ts.map +1 -0
  804. package/dist/trpc/routers/code-gen.js +164 -0
  805. package/dist/trpc/routers/code-gen.js.map +1 -0
  806. package/dist/trpc/routers/collections.d.ts +1 -26
  807. package/dist/trpc/routers/collections.d.ts.map +1 -1
  808. package/dist/trpc/routers/collections.js +145 -78
  809. package/dist/trpc/routers/collections.js.map +1 -1
  810. package/dist/trpc/routers/costs.d.ts +40 -96
  811. package/dist/trpc/routers/costs.d.ts.map +1 -1
  812. package/dist/trpc/routers/costs.js +14 -89
  813. package/dist/trpc/routers/costs.js.map +1 -1
  814. package/dist/trpc/routers/credits.d.ts +110 -0
  815. package/dist/trpc/routers/credits.d.ts.map +1 -0
  816. package/dist/trpc/routers/credits.js +69 -0
  817. package/dist/trpc/routers/credits.js.map +1 -0
  818. package/dist/trpc/routers/custom-providers.d.ts +88 -0
  819. package/dist/trpc/routers/custom-providers.d.ts.map +1 -0
  820. package/dist/trpc/routers/custom-providers.js +140 -0
  821. package/dist/trpc/routers/custom-providers.js.map +1 -0
  822. package/dist/trpc/routers/documents.d.ts +61 -0
  823. package/dist/trpc/routers/documents.d.ts.map +1 -0
  824. package/dist/trpc/routers/documents.js +23 -0
  825. package/dist/trpc/routers/documents.js.map +1 -0
  826. package/dist/trpc/routers/extension.d.ts +24 -0
  827. package/dist/trpc/routers/extension.d.ts.map +1 -0
  828. package/dist/trpc/routers/extension.js +28 -0
  829. package/dist/trpc/routers/extension.js.map +1 -0
  830. package/dist/trpc/routers/external-mcp.d.ts +108 -0
  831. package/dist/trpc/routers/external-mcp.d.ts.map +1 -0
  832. package/dist/trpc/routers/external-mcp.js +70 -0
  833. package/dist/trpc/routers/external-mcp.js.map +1 -0
  834. package/dist/trpc/routers/files.d.ts +9 -2
  835. package/dist/trpc/routers/files.d.ts.map +1 -1
  836. package/dist/trpc/routers/files.js +67 -37
  837. package/dist/trpc/routers/files.js.map +1 -1
  838. package/dist/trpc/routers/fonts.d.ts +30 -0
  839. package/dist/trpc/routers/fonts.d.ts.map +1 -0
  840. package/dist/trpc/routers/fonts.js +112 -0
  841. package/dist/trpc/routers/fonts.js.map +1 -0
  842. package/dist/trpc/routers/games.d.ts +7610 -0
  843. package/dist/trpc/routers/games.d.ts.map +1 -0
  844. package/dist/trpc/routers/games.js +456 -0
  845. package/dist/trpc/routers/games.js.map +1 -0
  846. package/dist/trpc/routers/integrations.d.ts +86 -0
  847. package/dist/trpc/routers/integrations.d.ts.map +1 -0
  848. package/dist/trpc/routers/integrations.js +129 -0
  849. package/dist/trpc/routers/integrations.js.map +1 -0
  850. package/dist/trpc/routers/jobs.d.ts +88 -27
  851. package/dist/trpc/routers/jobs.d.ts.map +1 -1
  852. package/dist/trpc/routers/jobs.js +113 -35
  853. package/dist/trpc/routers/jobs.js.map +1 -1
  854. package/dist/trpc/routers/js-scripts.d.ts +410 -0
  855. package/dist/trpc/routers/js-scripts.d.ts.map +1 -0
  856. package/dist/trpc/routers/js-scripts.js +303 -0
  857. package/dist/trpc/routers/js-scripts.js.map +1 -0
  858. package/dist/trpc/routers/mcp-config.d.ts +1 -1
  859. package/dist/trpc/routers/mcp-config.js +5 -3
  860. package/dist/trpc/routers/mcp-config.js.map +1 -1
  861. package/dist/trpc/routers/memories.d.ts +79 -0
  862. package/dist/trpc/routers/memories.d.ts.map +1 -0
  863. package/dist/trpc/routers/memories.js +66 -0
  864. package/dist/trpc/routers/memories.js.map +1 -0
  865. package/dist/trpc/routers/messages.d.ts +4 -77
  866. package/dist/trpc/routers/messages.d.ts.map +1 -1
  867. package/dist/trpc/routers/messages.js +9 -58
  868. package/dist/trpc/routers/messages.js.map +1 -1
  869. package/dist/trpc/routers/models.d.ts +1403 -238
  870. package/dist/trpc/routers/models.d.ts.map +1 -1
  871. package/dist/trpc/routers/models.js +532 -294
  872. package/dist/trpc/routers/models.js.map +1 -1
  873. package/dist/trpc/routers/nodes.d.ts +32 -16
  874. package/dist/trpc/routers/nodes.d.ts.map +1 -1
  875. package/dist/trpc/routers/nodes.js +70 -31
  876. package/dist/trpc/routers/nodes.js.map +1 -1
  877. package/dist/trpc/routers/packs.d.ts +184 -0
  878. package/dist/trpc/routers/packs.d.ts.map +1 -0
  879. package/dist/trpc/routers/packs.js +259 -0
  880. package/dist/trpc/routers/packs.js.map +1 -0
  881. package/dist/trpc/routers/projects.d.ts +422 -0
  882. package/dist/trpc/routers/projects.d.ts.map +1 -0
  883. package/dist/trpc/routers/projects.js +373 -0
  884. package/dist/trpc/routers/projects.js.map +1 -0
  885. package/dist/trpc/routers/resources.d.ts +120 -0
  886. package/dist/trpc/routers/resources.d.ts.map +1 -0
  887. package/dist/trpc/routers/resources.js +212 -0
  888. package/dist/trpc/routers/resources.js.map +1 -0
  889. package/dist/trpc/routers/scripts.d.ts +1116 -0
  890. package/dist/trpc/routers/scripts.d.ts.map +1 -0
  891. package/dist/trpc/routers/scripts.js +131 -0
  892. package/dist/trpc/routers/scripts.js.map +1 -0
  893. package/dist/trpc/routers/segmentation.d.ts +62 -0
  894. package/dist/trpc/routers/segmentation.d.ts.map +1 -0
  895. package/dist/trpc/routers/segmentation.js +146 -0
  896. package/dist/trpc/routers/segmentation.js.map +1 -0
  897. package/dist/trpc/routers/settings.d.ts +177 -10
  898. package/dist/trpc/routers/settings.d.ts.map +1 -1
  899. package/dist/trpc/routers/settings.js +123 -33
  900. package/dist/trpc/routers/settings.js.map +1 -1
  901. package/dist/trpc/routers/sketch.d.ts +854 -0
  902. package/dist/trpc/routers/sketch.d.ts.map +1 -0
  903. package/dist/trpc/routers/sketch.js +617 -0
  904. package/dist/trpc/routers/sketch.js.map +1 -0
  905. package/dist/trpc/routers/skills.d.ts +76 -22
  906. package/dist/trpc/routers/skills.d.ts.map +1 -1
  907. package/dist/trpc/routers/skills.js +195 -170
  908. package/dist/trpc/routers/skills.js.map +1 -1
  909. package/dist/trpc/routers/storage.d.ts +3 -30
  910. package/dist/trpc/routers/storage.d.ts.map +1 -1
  911. package/dist/trpc/routers/storage.js +60 -117
  912. package/dist/trpc/routers/storage.js.map +1 -1
  913. package/dist/trpc/routers/storyboards.d.ts +5907 -0
  914. package/dist/trpc/routers/storyboards.d.ts.map +1 -0
  915. package/dist/trpc/routers/storyboards.js +156 -0
  916. package/dist/trpc/routers/storyboards.js.map +1 -0
  917. package/dist/trpc/routers/threads.d.ts +33 -21
  918. package/dist/trpc/routers/threads.d.ts.map +1 -1
  919. package/dist/trpc/routers/threads.js +36 -30
  920. package/dist/trpc/routers/threads.js.map +1 -1
  921. package/dist/trpc/routers/timeline.d.ts +8516 -0
  922. package/dist/trpc/routers/timeline.d.ts.map +1 -0
  923. package/dist/trpc/routers/timeline.js +493 -0
  924. package/dist/trpc/routers/timeline.js.map +1 -0
  925. package/dist/trpc/routers/triggers.d.ts +46 -0
  926. package/dist/trpc/routers/triggers.d.ts.map +1 -0
  927. package/dist/trpc/routers/triggers.js +117 -0
  928. package/dist/trpc/routers/triggers.js.map +1 -0
  929. package/dist/trpc/routers/users.d.ts +1 -14
  930. package/dist/trpc/routers/users.d.ts.map +1 -1
  931. package/dist/trpc/routers/users.js +1 -12
  932. package/dist/trpc/routers/users.js.map +1 -1
  933. package/dist/trpc/routers/worker.d.ts +242 -0
  934. package/dist/trpc/routers/worker.d.ts.map +1 -0
  935. package/dist/trpc/routers/worker.js +220 -0
  936. package/dist/trpc/routers/worker.js.map +1 -0
  937. package/dist/trpc/routers/workflows.d.ts +385 -197
  938. package/dist/trpc/routers/workflows.d.ts.map +1 -1
  939. package/dist/trpc/routers/workflows.js +326 -345
  940. package/dist/trpc/routers/workflows.js.map +1 -1
  941. package/dist/trpc/routers/workspace.d.ts +59 -33
  942. package/dist/trpc/routers/workspace.d.ts.map +1 -1
  943. package/dist/trpc/routers/workspace.js +230 -93
  944. package/dist/trpc/routers/workspace.js.map +1 -1
  945. package/dist/trpc/sandbox-coverage.d.ts +64 -0
  946. package/dist/trpc/sandbox-coverage.d.ts.map +1 -0
  947. package/dist/trpc/sandbox-coverage.js +1049 -0
  948. package/dist/trpc/sandbox-coverage.js.map +1 -0
  949. package/dist/websocket-client-session.d.ts +320 -0
  950. package/dist/websocket-client-session.d.ts.map +1 -0
  951. package/dist/websocket-client-session.js +1253 -0
  952. package/dist/websocket-client-session.js.map +1 -0
  953. package/dist/workflow-interface-service.d.ts +87 -0
  954. package/dist/workflow-interface-service.d.ts.map +1 -0
  955. package/dist/workflow-interface-service.js +131 -0
  956. package/dist/workflow-interface-service.js.map +1 -0
  957. package/dist/workspace-api.d.ts.map +1 -1
  958. package/dist/workspace-api.js +33 -23
  959. package/dist/workspace-api.js.map +1 -1
  960. package/dist/ws-adapter.d.ts +46 -3
  961. package/dist/ws-adapter.d.ts.map +1 -1
  962. package/dist/ws-adapter.js +164 -26
  963. package/dist/ws-adapter.js.map +1 -1
  964. package/package.json +81 -35
  965. package/dist/agent/agent-runtime.d.ts +0 -47
  966. package/dist/agent/agent-runtime.d.ts.map +0 -1
  967. package/dist/agent/agent-runtime.js +0 -579
  968. package/dist/agent/agent-runtime.js.map +0 -1
  969. package/dist/agent/codex-agent.d.ts +0 -41
  970. package/dist/agent/codex-agent.d.ts.map +0 -1
  971. package/dist/agent/codex-agent.js +0 -334
  972. package/dist/agent/codex-agent.js.map +0 -1
  973. package/dist/agent/index.d.ts +0 -6
  974. package/dist/agent/index.d.ts.map +0 -1
  975. package/dist/agent/index.js +0 -4
  976. package/dist/agent/index.js.map +0 -1
  977. package/dist/agent/llm-agent.d.ts +0 -51
  978. package/dist/agent/llm-agent.d.ts.map +0 -1
  979. package/dist/agent/llm-agent.js +0 -526
  980. package/dist/agent/llm-agent.js.map +0 -1
  981. package/dist/agent/mcp-tool-server.d.ts +0 -33
  982. package/dist/agent/mcp-tool-server.d.ts.map +0 -1
  983. package/dist/agent/mcp-tool-server.js +0 -292
  984. package/dist/agent/mcp-tool-server.js.map +0 -1
  985. package/dist/agent/opencode-agent.d.ts +0 -32
  986. package/dist/agent/opencode-agent.d.ts.map +0 -1
  987. package/dist/agent/opencode-agent.js +0 -332
  988. package/dist/agent/opencode-agent.js.map +0 -1
  989. package/dist/agent/pi-agent.d.ts +0 -42
  990. package/dist/agent/pi-agent.d.ts.map +0 -1
  991. package/dist/agent/pi-agent.js +0 -429
  992. package/dist/agent/pi-agent.js.map +0 -1
  993. package/dist/agent/sdk-provider.d.ts +0 -46
  994. package/dist/agent/sdk-provider.d.ts.map +0 -1
  995. package/dist/agent/sdk-provider.js +0 -50
  996. package/dist/agent/sdk-provider.js.map +0 -1
  997. package/dist/agent/socket-route.d.ts +0 -11
  998. package/dist/agent/socket-route.d.ts.map +0 -1
  999. package/dist/agent/socket-route.js +0 -262
  1000. package/dist/agent/socket-route.js.map +0 -1
  1001. package/dist/agent/transport.d.ts +0 -39
  1002. package/dist/agent/transport.d.ts.map +0 -1
  1003. package/dist/agent/transport.js +0 -17
  1004. package/dist/agent/transport.js.map +0 -1
  1005. package/dist/agent/types.d.ts +0 -11
  1006. package/dist/agent/types.d.ts.map +0 -1
  1007. package/dist/agent/types.js +0 -10
  1008. package/dist/agent/types.js.map +0 -1
  1009. package/dist/routes/jobs.d.ts +0 -16
  1010. package/dist/routes/jobs.d.ts.map +0 -1
  1011. package/dist/routes/jobs.js +0 -25
  1012. package/dist/routes/jobs.js.map +0 -1
  1013. package/dist/trpc/routers/sandboxes.d.ts +0 -64
  1014. package/dist/trpc/routers/sandboxes.d.ts.map +0 -1
  1015. package/dist/trpc/routers/sandboxes.js +0 -327
  1016. package/dist/trpc/routers/sandboxes.js.map +0 -1
  1017. package/dist/unified-websocket-runner.d.ts +0 -280
  1018. package/dist/unified-websocket-runner.d.ts.map +0 -1
  1019. package/dist/unified-websocket-runner.js +0 -3840
  1020. package/dist/unified-websocket-runner.js.map +0 -1
@@ -0,0 +1,778 @@
1
+ import { createLogger } from "@nodetool-ai/config";
2
+ import { invocationBelongsToApplication, deriveGenerationStatus, Prediction } from "@nodetool-ai/models";
3
+ import { generateMediaDataSchema } from "@nodetool-ai/protocol";
4
+ import { isSdkV1RetryableError } from "@nodetool-ai/protocol/api-schemas/sdk-v1.js";
5
+ import { chatTurnRegistry } from "../chat-turn-registry.js";
6
+ import { isDraining } from "../drain.js";
7
+ import { isAppSessionCommandAllowed } from "../lib/app-session-scope.js";
8
+ import { isFiniteNumber, isNonEmptyString, isNumber, isObjectLike, isRecord, isString } from "../lib/wire-values.js";
9
+ import { createCallerFactory } from "../trpc/index.js";
10
+ import { appRouter } from "../trpc/router.js";
11
+ const log = createLogger("nodetool.websocket.runner");
12
+ const referenceMediaDataSchema = generateMediaDataSchema.pick({
13
+ capability: true,
14
+ reference_asset_ids: true,
15
+ entity_ids: true,
16
+ reference_images: true,
17
+ reference_videos: true,
18
+ use_reference_video_audio: true
19
+ });
20
+ const PUBLIC_GENERATION_STATUSES = new Set([
21
+ "pending",
22
+ "running",
23
+ "recovering",
24
+ "completed",
25
+ "failed",
26
+ "cancelled",
27
+ "needs_attention",
28
+ "interrupted"
29
+ ]);
30
+ function publicGenerationStatus(row) {
31
+ if (row.status === "interrupted")
32
+ return "interrupted";
33
+ if (row.lifecycle_owner !== "durable") {
34
+ return PUBLIC_GENERATION_STATUSES.has(row.status) ? row.status : "pending";
35
+ }
36
+ return deriveGenerationStatus(row);
37
+ }
38
+ function lifecycleError(row, key) {
39
+ const value = row.metadata?.[key];
40
+ return isString(value) ? value : null;
41
+ }
42
+ function durableLifecycleFields(row) {
43
+ if (row.lifecycle_owner !== "durable")
44
+ return {};
45
+ return {
46
+ submission_status: row.submission_status,
47
+ provider_status: row.provider_status,
48
+ output_status: row.output_status,
49
+ attachment_status: row.attachment_status,
50
+ submission_error: lifecycleError(row, "submission_error"),
51
+ provider_error: lifecycleError(row, "provider_error"),
52
+ output_error: lifecycleError(row, "output_error"),
53
+ attachment_error: lifecycleError(row, "attachment_error")
54
+ };
55
+ }
56
+ /** Highest `job_seq` a resubscribing client claims to already hold. */
57
+ function resumeLastSeq(data) {
58
+ const raw = data["last_seq"];
59
+ return isFiniteNumber(raw) && raw > 0 ? raw : 0;
60
+ }
61
+ /**
62
+ * The client's command surface: one dispatch table over the wire commands,
63
+ * plus the two guards a deployed app's visitor is held to. It is the one place
64
+ * that composes the other domain classes, and it composes them through their
65
+ * methods — `get_status` and `stop` ask the job region, `set_permission_mode`
66
+ * and `chat_message` ask the chat handler, `inference` and the direct
67
+ * generation commands ask the inference handler. None of their state is
68
+ * reachable from here.
69
+ */
70
+ export class CommandRouter {
71
+ deps;
72
+ constructor(deps) {
73
+ this.deps = deps;
74
+ }
75
+ /**
76
+ * Answer one command. Returns the legacy reply frame the caller sends, or
77
+ * `null` when the handler already sent its own frame (every RPC command
78
+ * does, in {@link runRpc}).
79
+ *
80
+ * Unknown commands answer `{ error: "Unknown command" }` — a build that does
81
+ * not implement a command is not a malformed frame.
82
+ */
83
+ async handle(command, data, requestId) {
84
+ const session = this.deps.session;
85
+ const jobId = isString(data.job_id) ? data.job_id : undefined;
86
+ const workflowId = isString(data.workflow_id)
87
+ ? data.workflow_id
88
+ : undefined;
89
+ log.debug("Command", { command });
90
+ // A deployed app's visitor reaches this runner as the app's owner, so the
91
+ // dispatch below would answer them the way it answers the owner. It is an
92
+ // allowlist rather than a denylist so that a command added later is
93
+ // refused here until someone decides it belongs — the alternative is a
94
+ // stranger reading somebody's assets because a table entry grew.
95
+ if (session.appSession && !isAppSessionCommandAllowed(command)) {
96
+ log.warn("Command refused for an app session", {
97
+ command,
98
+ applicationId: session.appSession.applicationId
99
+ });
100
+ return { error: "This command is not available for a published app" };
101
+ }
102
+ // Every allowed command except `run_job` and `get_status` addresses a run
103
+ // that already exists, by id, and
104
+ // the runner resolves a run by (user, job id) — where the user is the app's
105
+ // *owner*. Without this, a job id from the owner's editor would replay
106
+ // that run's frames, or cancel it, over a visitor's connection. The
107
+ // ledger is what says which runs belong to this app: an app run reserves
108
+ // its row before the job exists, so a job with no row here was not started
109
+ // by this app. `run_job` is excluded because it *creates* the row — it
110
+ // reserves against the app's budget inside `admitApplicationRun`, and
111
+ // `confineAppSessionRun` above is what confines it.
112
+ if (session.appSession && jobId && command !== "run_job") {
113
+ const owned = await invocationBelongsToApplication(session.appSession.applicationId, jobId).catch((err) => {
114
+ // Fail closed: a ledger read that never completed is not evidence the
115
+ // run belongs to this app.
116
+ session.logError("app-session job ownership check failed", err);
117
+ return false;
118
+ });
119
+ if (!owned) {
120
+ log.warn("Job command refused for an app session", {
121
+ command,
122
+ jobId,
123
+ applicationId: session.appSession.applicationId
124
+ });
125
+ return { error: "That run does not belong to this app" };
126
+ }
127
+ }
128
+ const handler = this.handlers[command];
129
+ if (!handler)
130
+ return { error: "Unknown command" };
131
+ return handler({ command, data, jobId, workflowId, requestId });
132
+ }
133
+ /**
134
+ * Invoke a tRPC procedure and send back a single `rpc_response` frame
135
+ * correlating to the command's `request_id`. Returns `null` so the receive
136
+ * loop skips the legacy auto-send (the frame has already been sent here).
137
+ *
138
+ * Errors thrown by the procedure are mapped to `rpc_response.error` using
139
+ * the `apiCode` cause attached by `throwApiError` in the tRPC layer.
140
+ *
141
+ * Public because the lifecycle suite drives an RPC frame straight at it,
142
+ * without a tRPC caller behind the command it names.
143
+ */
144
+ async runRpc(command, requestId, fn) {
145
+ if (!isNonEmptyString(requestId)) {
146
+ return { error: "request_id is required for RPC commands" };
147
+ }
148
+ try {
149
+ const result = await fn();
150
+ await this.deps.session.send({
151
+ type: "rpc_response",
152
+ request_id: requestId,
153
+ command,
154
+ result
155
+ });
156
+ }
157
+ catch (err) {
158
+ const trpc = err;
159
+ const code = trpc.cause?.apiCode ?? trpc.code ?? "INTERNAL_ERROR";
160
+ const internalMessage = trpc.message ?? String(err);
161
+ const error = {
162
+ code,
163
+ message: internalMessage,
164
+ retryable: isSdkV1RetryableError(code, internalMessage),
165
+ apiCode: trpc.cause?.apiCode ?? null,
166
+ trpcCode: trpc.code
167
+ };
168
+ await this.deps.session.send({
169
+ type: "rpc_response",
170
+ request_id: requestId,
171
+ command,
172
+ error
173
+ });
174
+ }
175
+ return null;
176
+ }
177
+ /**
178
+ * Refuse work that would start on a machine that is going away, then close
179
+ * the socket so the client's retry connects to one that is staying — as soon
180
+ * as the turn or run this connection is already driving has settled, since
181
+ * closing on top of that one would only strand its output. The error frame
182
+ * is sent here, so the caller returns `null` and the receive loop adds
183
+ * nothing after it.
184
+ */
185
+ async refuseWhileDraining(scope) {
186
+ await this.deps.session.send({
187
+ type: "error",
188
+ message: "This server is restarting. Reconnect and try again.",
189
+ thread_id: scope.threadId ?? null,
190
+ workflow_id: scope.workflowId ?? null
191
+ });
192
+ this.deps.host.closeForDrain();
193
+ return null;
194
+ }
195
+ /**
196
+ * Build a tRPC caller bound to this connection's `userId`. Used to dispatch
197
+ * the read-only RPC commands (list_workflows, get_workflow, list_assets,
198
+ * get_asset, list_nodes, get_node) onto the existing tRPC routers — single
199
+ * source of truth, no logic duplication.
200
+ */
201
+ getTrpcCaller() {
202
+ const { session, apiOptions } = this.deps;
203
+ if (!session.nodeRegistry || !apiOptions || !session.pythonBridge) {
204
+ throw new Error("RPC commands require nodeRegistry, apiOptions, and pythonBridge");
205
+ }
206
+ const factory = createCallerFactory(appRouter);
207
+ return factory({
208
+ userId: session.userId,
209
+ registry: session.nodeRegistry,
210
+ apiOptions,
211
+ pythonBridge: session.pythonBridge,
212
+ getPythonBridgeReady: this.deps.getPythonBridgeReady ?? (() => true)
213
+ });
214
+ }
215
+ handlers = {
216
+ clear_models: () => this.deps.host.clearModels(),
217
+ run_job: async ({ data, workflowId }) => {
218
+ if (isDraining())
219
+ return this.refuseWhileDraining({ workflowId });
220
+ // SAFETY: the wire command's `data` is the run request. Every read
221
+ // is `req.workflow_id ?? …`, so the field the interface declares
222
+ // required is in practice optional — making it so in `@nodetool-ai/
223
+ // protocol` is the truthful fix and reaches every client.
224
+ await this.deps.jobs.runJob(data);
225
+ return { message: "Job started", workflow_id: workflowId ?? null };
226
+ },
227
+ reconnect_job: async ({ data, jobId, workflowId }) => {
228
+ if (!jobId)
229
+ return { error: "job_id is required" };
230
+ // Await so an error can't escape as an unhandled rejection; reconnectJob
231
+ // only replays state (it does not run the job), so this stays quick.
232
+ await this.deps.jobs
233
+ .reconnectJob(jobId, workflowId, resumeLastSeq(data))
234
+ .catch((err) => {
235
+ log.warn("reconnect_job failed", { jobId, error: String(err) });
236
+ });
237
+ return {
238
+ message: `Reconnecting to job ${jobId}`,
239
+ job_id: jobId,
240
+ workflow_id: workflowId ?? null
241
+ };
242
+ },
243
+ stream_input: async ({ data, jobId, workflowId }) => {
244
+ if (!jobId)
245
+ return { error: "job_id is required" };
246
+ const target = this.deps.jobs.resolveJobControl(jobId);
247
+ log.info("stream_input command", {
248
+ jobId,
249
+ hasActive: !!target,
250
+ inputName: data.input,
251
+ handle: data.handle,
252
+ hasValue: data.value !== undefined,
253
+ activeJobIds: this.deps.jobs.activeJobIds()
254
+ });
255
+ if (!target)
256
+ return { error: "No active job/context" };
257
+ const inputName = isString(data.input) ? data.input : "";
258
+ if (!inputName.trim())
259
+ return { error: "Invalid input name" };
260
+ const value = data.value;
261
+ const handle = isString(data.handle) ? data.handle : undefined;
262
+ try {
263
+ await target.hooks.pushInput(inputName, value, handle);
264
+ return {
265
+ message: "Input item streamed",
266
+ job_id: jobId,
267
+ workflow_id: workflowId ?? target.workflowId
268
+ };
269
+ }
270
+ catch (err) {
271
+ log.error("stream_input failed", {
272
+ error: err instanceof Error ? err.message : String(err)
273
+ });
274
+ return {
275
+ error: err instanceof Error ? err.message : String(err),
276
+ job_id: jobId,
277
+ workflow_id: workflowId ?? target.workflowId
278
+ };
279
+ }
280
+ },
281
+ end_input_stream: async ({ data, jobId, workflowId }) => {
282
+ if (!jobId)
283
+ return { error: "job_id is required" };
284
+ const target = this.deps.jobs.resolveJobControl(jobId);
285
+ if (!target)
286
+ return { error: "No active job/context" };
287
+ const inputName = isString(data.input) ? data.input : "";
288
+ if (!inputName.trim())
289
+ return { error: "Invalid input name" };
290
+ const handle = isString(data.handle) ? data.handle : undefined;
291
+ try {
292
+ target.hooks.finishInputStream(inputName, handle);
293
+ return {
294
+ message: "Input stream ended",
295
+ job_id: jobId,
296
+ workflow_id: workflowId ?? target.workflowId
297
+ };
298
+ }
299
+ catch (err) {
300
+ return {
301
+ error: err instanceof Error ? err.message : String(err),
302
+ job_id: jobId,
303
+ workflow_id: workflowId ?? target.workflowId
304
+ };
305
+ }
306
+ },
307
+ cancel_job: async ({ jobId, workflowId }) => {
308
+ if (!jobId)
309
+ return { error: "job_id is required" };
310
+ return this.deps.jobs.cancelJob(jobId, workflowId);
311
+ },
312
+ // Live parameter path: push property changes into a running job's
313
+ // node executors (e.g. synth knobs while a patch plays). Misses are
314
+ // not errors — the canvas already holds the value for the next run.
315
+ update_node_properties: async ({ data, jobId }) => {
316
+ if (!jobId)
317
+ return { error: "job_id is required" };
318
+ const nodeId = data.node_id;
319
+ const properties = data.properties;
320
+ if (!isNonEmptyString(nodeId)) {
321
+ return { error: "node_id is required" };
322
+ }
323
+ if (!isObjectLike(properties)) {
324
+ return { error: "properties must be an object" };
325
+ }
326
+ const target = this.deps.jobs.resolveJobControl(jobId);
327
+ const applied = target?.hooks.updateNodeProperties(nodeId, properties) ?? false;
328
+ return { applied };
329
+ },
330
+ get_status: async ({ jobId }) => this.deps.jobs.getStatus(jobId),
331
+ set_mode: async ({ data }) => {
332
+ const mode = data.mode;
333
+ if (mode !== "binary" && mode !== "text") {
334
+ return { error: "mode must be binary or text" };
335
+ }
336
+ this.deps.host.setMode(mode);
337
+ return { message: `Mode set to ${mode}` };
338
+ },
339
+ set_permission_mode: async ({ data }) => {
340
+ const threadId = data.thread_id;
341
+ const mode = data.permission_mode;
342
+ if (!isNonEmptyString(threadId)) {
343
+ return { error: "thread_id is required for set_permission_mode" };
344
+ }
345
+ if (mode !== "plan" && mode !== "default" && mode !== "auto") {
346
+ return { error: "permission_mode must be plan, default, or auto" };
347
+ }
348
+ this.deps.chat.setPermissionMode(threadId, mode);
349
+ return {
350
+ message: `Permission mode set to ${mode}`,
351
+ thread_id: threadId
352
+ };
353
+ },
354
+ chat_message: async ({ data }) => {
355
+ const { session, chat, host } = this.deps;
356
+ const threadId = data.thread_id;
357
+ if (!isNonEmptyString(threadId)) {
358
+ return { error: "thread_id is required for chat_message command" };
359
+ }
360
+ // Before the user message is persisted: a row written here would be
361
+ // answered by nothing, and the client's retry would send it twice.
362
+ if (isDraining())
363
+ return this.refuseWhileDraining({ threadId });
364
+ const { seq, signal, controller } = chat.beginTurn();
365
+ // A resilient session decouples the turn from this socket: frames are
366
+ // seq-stamped and buffered so a client that disconnects mid-turn can
367
+ // replay what it missed. Opening supersedes (aborts) any prior turn
368
+ // still running for this thread — including one detached from a dead
369
+ // connection.
370
+ const turn = chatTurnRegistry.open(session.requireUserId(), threadId, controller, host.chatTurnHooks());
371
+ turn.attach(host.chatDeliveryTarget, turn.lastSeq);
372
+ host.forgetAdoptedSession(threadId);
373
+ host.setChatTurnSession(turn);
374
+ // Error frames must be sent (and buffered) before the session
375
+ // finishes, so the catch runs inside the chain the finally closes.
376
+ void chat
377
+ .handleChatMessage(data, seq, signal)
378
+ .catch(async (err) => {
379
+ session.logError("chat_message processing failed", err);
380
+ await session.send({
381
+ type: "error",
382
+ message: err instanceof Error ? err.message : String(err),
383
+ thread_id: threadId
384
+ });
385
+ })
386
+ .finally(() => {
387
+ chat.endTurn(controller);
388
+ turn.finish();
389
+ if (host.getChatTurnSession() === turn) {
390
+ host.setChatTurnSession(null);
391
+ }
392
+ });
393
+ return {
394
+ message: "Chat message processing started",
395
+ thread_id: threadId
396
+ };
397
+ },
398
+ // Discovery for a client that starts with no local state (a page
399
+ // reload): report every turn of this user still running so the
400
+ // client can reattach each thread with `resume_chat`.
401
+ list_chat_turns: async () => {
402
+ const { session, host } = this.deps;
403
+ const sessions = chatTurnRegistry.listRunningForUser(session.requireUserId());
404
+ for (const s of sessions) {
405
+ await host.sendToSocket({
406
+ type: "chat_turn_active",
407
+ thread_id: s.threadId,
408
+ status: "running",
409
+ last_seq: s.lastSeq
410
+ });
411
+ }
412
+ return { message: "Chat turns listed", count: sessions.length };
413
+ },
414
+ resume_chat: async ({ data }) => {
415
+ const { session, host } = this.deps;
416
+ const threadId = isString(data.thread_id) ? data.thread_id : "";
417
+ if (!threadId) {
418
+ return { error: "thread_id is required for resume_chat command" };
419
+ }
420
+ const lastSeq = isFiniteNumber(data.last_seq) ? data.last_seq : 0;
421
+ const turn = chatTurnRegistry.get(session.requireUserId(), threadId);
422
+ if (!turn) {
423
+ // Nothing to replay: no turn ran here, or retention elapsed. The
424
+ // persisted thread history over REST is the client's fallback.
425
+ await host.sendToSocket({
426
+ type: "chat_resumed",
427
+ thread_id: threadId,
428
+ status: "unknown",
429
+ last_seq: 0,
430
+ replay_count: 0,
431
+ replay_incomplete: false
432
+ });
433
+ return { message: "No chat turn to resume", thread_id: threadId };
434
+ }
435
+ // last_seq <= 0 is a fresh client (page reload): it has no frame
436
+ // state, but the persisted head of the turn is reachable over REST.
437
+ // Replay only what REST cannot provide — frames after the turn's
438
+ // last `message` frame — and flag the replay incomplete so the
439
+ // client reconciles history from REST.
440
+ const fresh = lastSeq <= 0;
441
+ const { replay, incomplete } = turn.attach(host.chatDeliveryTarget, fresh ? turn.freshAttachSeq() : lastSeq);
442
+ if (turn.status === "running" && host.getChatTurnSession() !== turn) {
443
+ host.adoptSession(threadId, turn);
444
+ }
445
+ // Header first, then the missed tail; live frames queue behind them
446
+ // on the session's ordered delivery chain.
447
+ await turn.deliverReplay(host.chatDeliveryTarget, [
448
+ {
449
+ type: "chat_resumed",
450
+ thread_id: threadId,
451
+ status: turn.status,
452
+ last_seq: turn.lastSeq,
453
+ replay_count: replay.length,
454
+ replay_incomplete: fresh || incomplete
455
+ },
456
+ ...replay
457
+ ]);
458
+ return {
459
+ message: "Chat resumed",
460
+ thread_id: threadId,
461
+ replay_count: replay.length
462
+ };
463
+ },
464
+ inference: async ({ data }) => {
465
+ const { session, chat, inference } = this.deps;
466
+ const { seq, signal, controller } = chat.beginTurn();
467
+ const task = inference
468
+ .handleInference(data, seq, signal)
469
+ .finally(() => chat.endTurn(controller));
470
+ void task.catch(async (err) => {
471
+ session.logError("inference processing failed", err);
472
+ await session.send({
473
+ type: "error",
474
+ message: err instanceof Error ? err.message : String(err)
475
+ });
476
+ });
477
+ return { message: "Inference started" };
478
+ },
479
+ stop: async ({ data, jobId }) => {
480
+ const { session, chat, jobs, host } = this.deps;
481
+ const threadId = isString(data.thread_id) ? data.thread_id : undefined;
482
+ // Always increment seq to cancel any in-progress chat or inference
483
+ chat.bumpRequestSeq();
484
+ // …and abort it for real. The seq bump alone only discards output at
485
+ // yield boundaries; the signal interrupts blocked awaits and stops
486
+ // providers that own a subprocess.
487
+ chat.cancel();
488
+ host.cancelRpcCalls();
489
+ if (jobId) {
490
+ await jobs.stopJob(jobId);
491
+ }
492
+ const stopScope = threadId ?? jobId;
493
+ if (stopScope) {
494
+ host.cancelToolScope(stopScope);
495
+ }
496
+ // The thread's turn may be executing on a previous connection's
497
+ // runner (detached or adopted after a reconnect) — abort it there.
498
+ if (threadId) {
499
+ const registered = chatTurnRegistry.get(session.requireUserId(), threadId);
500
+ if (registered && registered.status === "running") {
501
+ registered.abort("stop");
502
+ }
503
+ }
504
+ await session.send({
505
+ type: "generation_stopped",
506
+ message: "Generation stopped by user",
507
+ job_id: jobId ?? null,
508
+ thread_id: threadId ?? null
509
+ });
510
+ return {
511
+ message: "Stop command processed",
512
+ job_id: jobId ?? null,
513
+ thread_id: threadId ?? null
514
+ };
515
+ },
516
+ list_workflows: async ({ command, data, requestId }) => {
517
+ const caller = this.getTrpcCaller();
518
+ return this.runRpc(command, requestId, () => caller.workflows.list(data));
519
+ },
520
+ get_workflow: async ({ command, data, requestId }) => {
521
+ const caller = this.getTrpcCaller();
522
+ return this.runRpc(command, requestId, () => caller.workflows.get({ id: String(data.id ?? "") }));
523
+ },
524
+ list_assets: async ({ command, data, requestId }) => {
525
+ const caller = this.getTrpcCaller();
526
+ return this.runRpc(command, requestId, () => caller.assets.list(data));
527
+ },
528
+ get_asset: async ({ command, data, requestId }) => {
529
+ const caller = this.getTrpcCaller();
530
+ return this.runRpc(command, requestId, () => caller.assets.get({ id: String(data.id ?? "") }));
531
+ },
532
+ list_nodes: async ({ command, data, requestId }) => {
533
+ const caller = this.getTrpcCaller();
534
+ return this.runRpc(command, requestId, () => caller.nodes.list(data));
535
+ },
536
+ get_node: async ({ command, data, requestId }) => {
537
+ const caller = this.getTrpcCaller();
538
+ return this.runRpc(command, requestId, () => caller.nodes.get({ node_type: String(data.node_type ?? "") }));
539
+ },
540
+ /**
541
+ * What became of a set of `generate_media` requests (PRD § 7.4).
542
+ *
543
+ * A `generate_media` reply is an `rpc_response` with no `job_id` and no
544
+ * `thread_id`, so it is written to the socket that asked and dropped if
545
+ * that socket has gone. A client that reloads mid-render therefore cannot
546
+ * receive it by re-subscribing — the frame was already delivered to a dead
547
+ * socket. The generation row outlives the socket, so it asks here instead,
548
+ * naming the request ids it persisted before sending.
549
+ *
550
+ * Answers only for the caller's own rows, and only for the ids it named:
551
+ * an id with no row comes back absent, which the client reads as "still
552
+ * unknown" rather than as a failure.
553
+ */
554
+ lookup_generations: async ({ command, data, requestId }) => {
555
+ const userId = this.deps.session.requireUserId();
556
+ const ids = Array.isArray(data.request_ids)
557
+ ? data.request_ids.filter(isString)
558
+ : [];
559
+ return this.runRpc(command, requestId, async () => {
560
+ const rows = await Prediction.byRequestIds(userId, ids);
561
+ // Newest first out of the query, so the first row for an id wins and
562
+ // a retry's later row does not lose to the attempt it replaced.
563
+ const seen = new Set();
564
+ const generations = [];
565
+ for (const row of rows) {
566
+ const id = row.request_id;
567
+ if (!id || seen.has(id)) {
568
+ continue;
569
+ }
570
+ seen.add(id);
571
+ const referenceFields = {};
572
+ if (row.parameters?.media_edit_references) {
573
+ referenceFields.media_edit_references = row.parameters.media_edit_references;
574
+ }
575
+ generations.push({
576
+ request_id: id,
577
+ generation_id: row.id,
578
+ status: publicGenerationStatus(row),
579
+ asset_ids: row.asset_ids ?? [],
580
+ error: row.error ?? null,
581
+ ...referenceFields,
582
+ ...durableLifecycleFields(row)
583
+ });
584
+ }
585
+ return { generations };
586
+ });
587
+ },
588
+ generate_text: async ({ command, data, requestId }) => {
589
+ const { defaults, inference } = this.deps;
590
+ const provider = String(data.provider ?? defaults.provider);
591
+ const model = String(data.model ?? defaults.model);
592
+ const rawMessages = Array.isArray(data.messages) ? data.messages : [];
593
+ // Content travels as a string or as content blocks. The blocks are how a
594
+ // caller sends a picture to look at — the storyboard's "Add your own
595
+ // style" reads reference images this way — and the providers take the
596
+ // same shape here as they do from a chat turn.
597
+ const messages = rawMessages.length > 0
598
+ ? rawMessages.map((m) => {
599
+ const msg = m;
600
+ return {
601
+ role: isString(msg.role) ? msg.role : "user",
602
+ content: isString(msg.content)
603
+ ? msg.content
604
+ : Array.isArray(msg.content)
605
+ ? msg.content
606
+ : ""
607
+ };
608
+ })
609
+ : [];
610
+ if (messages.length === 0) {
611
+ const system = isString(data.system) ? data.system.trim() : "";
612
+ const prompt = isString(data.prompt) ? data.prompt : "";
613
+ if (system)
614
+ messages.push({ role: "system", content: system });
615
+ if (prompt.trim())
616
+ messages.push({ role: "user", content: prompt });
617
+ }
618
+ const schema = isRecord(data.schema)
619
+ ? data.schema
620
+ : undefined;
621
+ return this.runRpc(command, requestId, () => inference.runDirectTextGeneration({
622
+ provider,
623
+ model,
624
+ messages,
625
+ maxTokens: isNumber(data.max_tokens)
626
+ ? data.max_tokens
627
+ : undefined,
628
+ schema,
629
+ schemaName: isString(data.schema_name)
630
+ ? data.schema_name
631
+ : "result",
632
+ schemaDescription: isString(data.schema_description)
633
+ ? data.schema_description
634
+ : "Answer with the requested structure."
635
+ }));
636
+ },
637
+ generate_media: async ({ command, data, requestId }) => {
638
+ const { defaults, inference } = this.deps;
639
+ const rawMode = data.mode;
640
+ const mode = rawMode === "image_edit"
641
+ ? "image_edit"
642
+ : rawMode === "inpaint"
643
+ ? "inpaint"
644
+ : rawMode === "video"
645
+ ? "video"
646
+ : rawMode === "video_edit"
647
+ ? "video_edit"
648
+ : rawMode === "video_extend"
649
+ ? "video_extend"
650
+ : rawMode === "audio"
651
+ ? "audio"
652
+ : rawMode === "music"
653
+ ? "music"
654
+ : "image";
655
+ const provider = String(data.provider ?? defaults.provider);
656
+ const model = String(data.model ?? defaults.model);
657
+ const prompt = String(data.prompt ?? "");
658
+ const sourceAssetId = isString(data.source_asset_id)
659
+ ? data.source_asset_id
660
+ : undefined;
661
+ const maskAssetId = isString(data.mask_asset_id)
662
+ ? data.mask_asset_id
663
+ : undefined;
664
+ const width = isNumber(data.width) ? data.width : undefined;
665
+ const height = isNumber(data.height)
666
+ ? data.height
667
+ : undefined;
668
+ const aspectRatio = isString(data.aspect_ratio)
669
+ ? data.aspect_ratio
670
+ : undefined;
671
+ const resolution = isString(data.resolution)
672
+ ? data.resolution
673
+ : undefined;
674
+ const strength = isNumber(data.strength)
675
+ ? data.strength
676
+ : undefined;
677
+ const numInferenceSteps = isNumber(data.num_inference_steps)
678
+ ? data.num_inference_steps
679
+ : undefined;
680
+ const seed = isNumber(data.seed) ? data.seed : undefined;
681
+ const durationSeconds = isNumber(data.duration)
682
+ ? data.duration
683
+ : undefined;
684
+ const variations = isNumber(data.variations)
685
+ ? data.variations
686
+ : undefined;
687
+ const voice = isString(data.voice) ? data.voice : undefined;
688
+ const speed = isNumber(data.speed) ? data.speed : undefined;
689
+ const language = isString(data.language)
690
+ ? data.language
691
+ : undefined;
692
+ const instructions = isString(data.instructions)
693
+ ? data.instructions
694
+ : undefined;
695
+ const audioFormat = isString(data.audio_format)
696
+ ? data.audio_format
697
+ : undefined;
698
+ const projectId = isString(data.project_id) ? data.project_id : undefined;
699
+ const rawSourceContext = isRecord(data.source_context)
700
+ ? data.source_context
701
+ : undefined;
702
+ let sourceContext = rawSourceContext &&
703
+ isString(rawSourceContext.sequence_id) &&
704
+ isString(rawSourceContext.clip_id) &&
705
+ isString(rawSourceContext.source_asset_id) &&
706
+ isNumber(rawSourceContext.source_start_ms) &&
707
+ isNumber(rawSourceContext.source_end_ms) &&
708
+ isNumber(rawSourceContext.timeline_start_ms) &&
709
+ isNumber(rawSourceContext.timeline_duration_ms) &&
710
+ isNumber(rawSourceContext.speed_multiplier)
711
+ ? {
712
+ sequenceId: rawSourceContext.sequence_id,
713
+ clipId: rawSourceContext.clip_id,
714
+ sourceAssetId: rawSourceContext.source_asset_id,
715
+ sourceStartMs: rawSourceContext.source_start_ms,
716
+ sourceEndMs: rawSourceContext.source_end_ms,
717
+ timelineStartMs: rawSourceContext.timeline_start_ms,
718
+ timelineDurationMs: rawSourceContext.timeline_duration_ms,
719
+ speedMultiplier: rawSourceContext.speed_multiplier
720
+ }
721
+ : undefined;
722
+ if (sourceContext && isString(rawSourceContext?.source_take_id)) {
723
+ sourceContext = {
724
+ ...sourceContext,
725
+ sourceTakeId: rawSourceContext.source_take_id
726
+ };
727
+ }
728
+ return this.runRpc(command, requestId, () => {
729
+ const references = referenceMediaDataSchema.parse(data);
730
+ return inference.runDirectMediaGeneration({
731
+ mode,
732
+ provider,
733
+ model,
734
+ prompt,
735
+ sourceAssetId,
736
+ maskAssetId,
737
+ width,
738
+ height,
739
+ aspectRatio,
740
+ resolution,
741
+ strength,
742
+ numInferenceSteps,
743
+ seed,
744
+ durationSeconds,
745
+ extensionMode: data.extension_mode === "start" || data.extension_mode === "end"
746
+ ? data.extension_mode
747
+ : undefined,
748
+ variations,
749
+ voice,
750
+ speed,
751
+ language,
752
+ instructions,
753
+ audioFormat,
754
+ capability: references.capability,
755
+ referenceAssetIds: references.reference_asset_ids,
756
+ entityIds: references.entity_ids,
757
+ referenceImages: references.reference_images,
758
+ referenceVideos: references.reference_videos,
759
+ useReferenceVideoAudio: references.use_reference_video_audio,
760
+ projectId,
761
+ sourceContext,
762
+ requestId
763
+ });
764
+ });
765
+ },
766
+ transcribe_audio: async ({ command, data, requestId }) => {
767
+ const { defaults, inference } = this.deps;
768
+ const provider = String(data.provider ?? defaults.provider);
769
+ const model = String(data.model ?? defaults.model);
770
+ const assetId = isString(data.asset_id) ? data.asset_id : "";
771
+ const language = isString(data.language)
772
+ ? data.language
773
+ : undefined;
774
+ return this.runRpc(command, requestId, () => inference.runDirectTranscription({ provider, model, assetId, language }));
775
+ }
776
+ };
777
+ }
778
+ //# sourceMappingURL=commands.js.map