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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1101) 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 +82 -14
  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/error-traces.d.ts +56 -0
  52. package/dist/error-traces.d.ts.map +1 -0
  53. package/dist/error-traces.js +179 -0
  54. package/dist/error-traces.js.map +1 -0
  55. package/dist/example-workflows.d.ts +20 -0
  56. package/dist/example-workflows.d.ts.map +1 -0
  57. package/dist/example-workflows.js +123 -0
  58. package/dist/example-workflows.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 +307 -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 +219 -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 +628 -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 +10 -3
  92. package/dist/index.d.ts.map +1 -1
  93. package/dist/index.js +10 -3
  94. package/dist/index.js.map +1 -1
  95. package/dist/interrupted-jobs.d.ts +14 -0
  96. package/dist/interrupted-jobs.d.ts.map +1 -0
  97. package/dist/interrupted-jobs.js +28 -0
  98. package/dist/interrupted-jobs.js.map +1 -0
  99. package/dist/job-control.d.ts +57 -0
  100. package/dist/job-control.d.ts.map +1 -0
  101. package/dist/job-control.js +134 -0
  102. package/dist/job-control.js.map +1 -0
  103. package/dist/job-queue.d.ts +47 -0
  104. package/dist/job-queue.d.ts.map +1 -0
  105. package/dist/job-queue.js +52 -0
  106. package/dist/job-queue.js.map +1 -0
  107. package/dist/job-run-registry.d.ts +176 -0
  108. package/dist/job-run-registry.d.ts.map +1 -0
  109. package/dist/job-run-registry.js +312 -0
  110. package/dist/job-run-registry.js.map +1 -0
  111. package/dist/lib/app-build-service.d.ts +16 -0
  112. package/dist/lib/app-build-service.d.ts.map +1 -0
  113. package/dist/lib/app-build-service.js +39 -0
  114. package/dist/lib/app-build-service.js.map +1 -0
  115. package/dist/lib/app-debug-service.d.ts +16 -0
  116. package/dist/lib/app-debug-service.d.ts.map +1 -0
  117. package/dist/lib/app-debug-service.js +48 -0
  118. package/dist/lib/app-debug-service.js.map +1 -0
  119. package/dist/lib/app-deployment-service.d.ts +82 -0
  120. package/dist/lib/app-deployment-service.d.ts.map +1 -0
  121. package/dist/lib/app-deployment-service.js +282 -0
  122. package/dist/lib/app-deployment-service.js.map +1 -0
  123. package/dist/lib/app-instances-service.d.ts +1284 -0
  124. package/dist/lib/app-instances-service.d.ts.map +1 -0
  125. package/dist/lib/app-instances-service.js +378 -0
  126. package/dist/lib/app-instances-service.js.map +1 -0
  127. package/dist/lib/app-run-cancellation.d.ts +4 -0
  128. package/dist/lib/app-run-cancellation.d.ts.map +1 -0
  129. package/dist/lib/app-run-cancellation.js +28 -0
  130. package/dist/lib/app-run-cancellation.js.map +1 -0
  131. package/dist/lib/app-run-server.d.ts +7 -0
  132. package/dist/lib/app-run-server.d.ts.map +1 -0
  133. package/dist/lib/app-run-server.js +6 -0
  134. package/dist/lib/app-run-server.js.map +1 -0
  135. package/dist/lib/app-session-scope.d.ts +91 -0
  136. package/dist/lib/app-session-scope.d.ts.map +1 -0
  137. package/dist/lib/app-session-scope.js +91 -0
  138. package/dist/lib/app-session-scope.js.map +1 -0
  139. package/dist/lib/applications-service.d.ts +354 -0
  140. package/dist/lib/applications-service.d.ts.map +1 -0
  141. package/dist/lib/applications-service.js +507 -0
  142. package/dist/lib/applications-service.js.map +1 -0
  143. package/dist/lib/asset-duration.d.ts +7 -0
  144. package/dist/lib/asset-duration.d.ts.map +1 -0
  145. package/dist/lib/asset-duration.js +24 -0
  146. package/dist/lib/asset-duration.js.map +1 -0
  147. package/dist/lib/asset-export.d.ts +34 -0
  148. package/dist/lib/asset-export.d.ts.map +1 -0
  149. package/dist/lib/asset-export.js +113 -0
  150. package/dist/lib/asset-export.js.map +1 -0
  151. package/dist/lib/asset-model-interface.d.ts +41 -0
  152. package/dist/lib/asset-model-interface.d.ts.map +1 -0
  153. package/dist/lib/asset-model-interface.js +74 -0
  154. package/dist/lib/asset-model-interface.js.map +1 -0
  155. package/dist/lib/asset-paths.d.ts +49 -1
  156. package/dist/lib/asset-paths.d.ts.map +1 -1
  157. package/dist/lib/asset-paths.js +127 -31
  158. package/dist/lib/asset-paths.js.map +1 -1
  159. package/dist/lib/asset-response.d.ts +12 -0
  160. package/dist/lib/asset-response.d.ts.map +1 -0
  161. package/dist/lib/asset-response.js +89 -0
  162. package/dist/lib/asset-response.js.map +1 -0
  163. package/dist/lib/audio-peaks.d.ts +23 -0
  164. package/dist/lib/audio-peaks.d.ts.map +1 -0
  165. package/dist/lib/audio-peaks.js +335 -0
  166. package/dist/lib/audio-peaks.js.map +1 -0
  167. package/dist/lib/bridge.d.ts +9 -1
  168. package/dist/lib/bridge.d.ts.map +1 -1
  169. package/dist/lib/bridge.js +27 -4
  170. package/dist/lib/bridge.js.map +1 -1
  171. package/dist/lib/compression.d.ts +3 -0
  172. package/dist/lib/compression.d.ts.map +1 -0
  173. package/dist/lib/compression.js +3 -0
  174. package/dist/lib/compression.js.map +1 -0
  175. package/dist/lib/document-model-interfaces.d.ts +30 -0
  176. package/dist/lib/document-model-interfaces.d.ts.map +1 -0
  177. package/dist/lib/document-model-interfaces.js +296 -0
  178. package/dist/lib/document-model-interfaces.js.map +1 -0
  179. package/dist/lib/env-config.d.ts +9 -0
  180. package/dist/lib/env-config.d.ts.map +1 -0
  181. package/dist/lib/env-config.js +18 -0
  182. package/dist/lib/env-config.js.map +1 -0
  183. package/dist/lib/example-apps.d.ts +52 -0
  184. package/dist/lib/example-apps.d.ts.map +1 -0
  185. package/dist/lib/example-apps.js +192 -0
  186. package/dist/lib/example-apps.js.map +1 -0
  187. package/dist/lib/example-games.d.ts +5 -0
  188. package/dist/lib/example-games.d.ts.map +1 -0
  189. package/dist/lib/example-games.js +13 -0
  190. package/dist/lib/example-games.js.map +1 -0
  191. package/dist/lib/example-recipes.d.ts +33 -0
  192. package/dist/lib/example-recipes.d.ts.map +1 -0
  193. package/dist/lib/example-recipes.js +213 -0
  194. package/dist/lib/example-recipes.js.map +1 -0
  195. package/dist/lib/example-storyboards.d.ts +40 -0
  196. package/dist/lib/example-storyboards.d.ts.map +1 -0
  197. package/dist/lib/example-storyboards.js +131 -0
  198. package/dist/lib/example-storyboards.js.map +1 -0
  199. package/dist/lib/example-thumbnail.d.ts +21 -0
  200. package/dist/lib/example-thumbnail.d.ts.map +1 -0
  201. package/dist/lib/example-thumbnail.js +50 -0
  202. package/dist/lib/example-thumbnail.js.map +1 -0
  203. package/dist/lib/example-timelines.d.ts +9 -0
  204. package/dist/lib/example-timelines.d.ts.map +1 -0
  205. package/dist/lib/example-timelines.js +25 -0
  206. package/dist/lib/example-timelines.js.map +1 -0
  207. package/dist/lib/extension-dist.d.ts +24 -0
  208. package/dist/lib/extension-dist.d.ts.map +1 -0
  209. package/dist/lib/extension-dist.js +67 -0
  210. package/dist/lib/extension-dist.js.map +1 -0
  211. package/dist/lib/external-asset-lookup.d.ts +30 -0
  212. package/dist/lib/external-asset-lookup.d.ts.map +1 -0
  213. package/dist/lib/external-asset-lookup.js +99 -0
  214. package/dist/lib/external-asset-lookup.js.map +1 -0
  215. package/dist/lib/external-assets.d.ts +13 -0
  216. package/dist/lib/external-assets.d.ts.map +1 -0
  217. package/dist/lib/external-assets.js +46 -0
  218. package/dist/lib/external-assets.js.map +1 -0
  219. package/dist/lib/fly-replay.d.ts +34 -0
  220. package/dist/lib/fly-replay.d.ts.map +1 -0
  221. package/dist/lib/fly-replay.js +111 -0
  222. package/dist/lib/fly-replay.js.map +1 -0
  223. package/dist/lib/http-rate-limit.d.ts +32 -0
  224. package/dist/lib/http-rate-limit.d.ts.map +1 -0
  225. package/dist/lib/http-rate-limit.js +47 -0
  226. package/dist/lib/http-rate-limit.js.map +1 -0
  227. package/dist/lib/http-tracing.d.ts +12 -0
  228. package/dist/lib/http-tracing.d.ts.map +1 -0
  229. package/dist/lib/http-tracing.js +81 -0
  230. package/dist/lib/http-tracing.js.map +1 -0
  231. package/dist/lib/instance-id.d.ts +25 -0
  232. package/dist/lib/instance-id.d.ts.map +1 -0
  233. package/dist/lib/instance-id.js +44 -0
  234. package/dist/lib/instance-id.js.map +1 -0
  235. package/dist/lib/link-codes.d.ts +82 -0
  236. package/dist/lib/link-codes.d.ts.map +1 -0
  237. package/dist/lib/link-codes.js +100 -0
  238. package/dist/lib/link-codes.js.map +1 -0
  239. package/dist/lib/local-asset-upload.d.ts +5 -0
  240. package/dist/lib/local-asset-upload.d.ts.map +1 -0
  241. package/dist/lib/local-asset-upload.js +69 -0
  242. package/dist/lib/local-asset-upload.js.map +1 -0
  243. package/dist/lib/local-file-access.d.ts +31 -0
  244. package/dist/lib/local-file-access.d.ts.map +1 -0
  245. package/dist/lib/local-file-access.js +169 -0
  246. package/dist/lib/local-file-access.js.map +1 -0
  247. package/dist/lib/localhost-trust.d.ts +59 -0
  248. package/dist/lib/localhost-trust.d.ts.map +1 -0
  249. package/dist/lib/localhost-trust.js +139 -0
  250. package/dist/lib/localhost-trust.js.map +1 -0
  251. package/dist/lib/mcp-mount.d.ts +25 -0
  252. package/dist/lib/mcp-mount.d.ts.map +1 -0
  253. package/dist/lib/mcp-mount.js +32 -0
  254. package/dist/lib/mcp-mount.js.map +1 -0
  255. package/dist/lib/media-size.d.ts +21 -0
  256. package/dist/lib/media-size.d.ts.map +1 -0
  257. package/dist/lib/media-size.js +48 -0
  258. package/dist/lib/media-size.js.map +1 -0
  259. package/dist/lib/media.d.ts +33 -0
  260. package/dist/lib/media.d.ts.map +1 -0
  261. package/dist/lib/media.js +110 -0
  262. package/dist/lib/media.js.map +1 -0
  263. package/dist/lib/package-asset-export.d.ts +83 -0
  264. package/dist/lib/package-asset-export.d.ts.map +1 -0
  265. package/dist/lib/package-asset-export.js +212 -0
  266. package/dist/lib/package-asset-export.js.map +1 -0
  267. package/dist/lib/package-assets.d.ts +41 -0
  268. package/dist/lib/package-assets.d.ts.map +1 -0
  269. package/dist/lib/package-assets.js +155 -0
  270. package/dist/lib/package-assets.js.map +1 -0
  271. package/dist/lib/project-delete.d.ts +11 -0
  272. package/dist/lib/project-delete.d.ts.map +1 -0
  273. package/dist/lib/project-delete.js +67 -0
  274. package/dist/lib/project-delete.js.map +1 -0
  275. package/dist/lib/project-document-copy.d.ts +31 -0
  276. package/dist/lib/project-document-copy.d.ts.map +1 -0
  277. package/dist/lib/project-document-copy.js +473 -0
  278. package/dist/lib/project-document-copy.js.map +1 -0
  279. package/dist/lib/public-app-assets.d.ts +8 -0
  280. package/dist/lib/public-app-assets.d.ts.map +1 -0
  281. package/dist/lib/public-app-assets.js +77 -0
  282. package/dist/lib/public-app-assets.js.map +1 -0
  283. package/dist/lib/public-routes.d.ts +102 -0
  284. package/dist/lib/public-routes.d.ts.map +1 -0
  285. package/dist/lib/public-routes.js +168 -0
  286. package/dist/lib/public-routes.js.map +1 -0
  287. package/dist/lib/public-workflow-share.d.ts +20 -0
  288. package/dist/lib/public-workflow-share.d.ts.map +1 -0
  289. package/dist/lib/public-workflow-share.js +45 -0
  290. package/dist/lib/public-workflow-share.js.map +1 -0
  291. package/dist/lib/run-trace-live-delivery.d.ts +25 -0
  292. package/dist/lib/run-trace-live-delivery.d.ts.map +1 -0
  293. package/dist/lib/run-trace-live-delivery.js +91 -0
  294. package/dist/lib/run-trace-live-delivery.js.map +1 -0
  295. package/dist/lib/runtime-detection.d.ts +17 -0
  296. package/dist/lib/runtime-detection.d.ts.map +1 -0
  297. package/dist/lib/runtime-detection.js +90 -0
  298. package/dist/lib/runtime-detection.js.map +1 -0
  299. package/dist/lib/storage-access.d.ts +21 -0
  300. package/dist/lib/storage-access.d.ts.map +1 -0
  301. package/dist/lib/storage-access.js +74 -0
  302. package/dist/lib/storage-access.js.map +1 -0
  303. package/dist/lib/storage.d.ts +9 -0
  304. package/dist/lib/storage.d.ts.map +1 -0
  305. package/dist/lib/storage.js +28 -0
  306. package/dist/lib/storage.js.map +1 -0
  307. package/dist/lib/storyboard-export.d.ts +64 -0
  308. package/dist/lib/storyboard-export.d.ts.map +1 -0
  309. package/dist/lib/storyboard-export.js +183 -0
  310. package/dist/lib/storyboard-export.js.map +1 -0
  311. package/dist/lib/style-presets.d.ts +34 -0
  312. package/dist/lib/style-presets.d.ts.map +1 -0
  313. package/dist/lib/style-presets.js +62 -0
  314. package/dist/lib/style-presets.js.map +1 -0
  315. package/dist/lib/temp-url-resolver.d.ts +35 -0
  316. package/dist/lib/temp-url-resolver.d.ts.map +1 -0
  317. package/dist/lib/temp-url-resolver.js +88 -0
  318. package/dist/lib/temp-url-resolver.js.map +1 -0
  319. package/dist/lib/test-ui-run-routes.d.ts +8 -0
  320. package/dist/lib/test-ui-run-routes.d.ts.map +1 -0
  321. package/dist/lib/test-ui-run-routes.js +42 -0
  322. package/dist/lib/test-ui-run-routes.js.map +1 -0
  323. package/dist/lib/thumbnail.d.ts +74 -0
  324. package/dist/lib/thumbnail.d.ts.map +1 -0
  325. package/dist/lib/thumbnail.js +305 -0
  326. package/dist/lib/thumbnail.js.map +1 -0
  327. package/dist/lib/timeline-bundle.d.ts +1821 -0
  328. package/dist/lib/timeline-bundle.d.ts.map +1 -0
  329. package/dist/lib/timeline-bundle.js +342 -0
  330. package/dist/lib/timeline-bundle.js.map +1 -0
  331. package/dist/lib/video-proxy.d.ts +114 -0
  332. package/dist/lib/video-proxy.d.ts.map +1 -0
  333. package/dist/lib/video-proxy.js +546 -0
  334. package/dist/lib/video-proxy.js.map +1 -0
  335. package/dist/lib/wire-values.d.ts +31 -0
  336. package/dist/lib/wire-values.d.ts.map +1 -0
  337. package/dist/lib/wire-values.js +49 -0
  338. package/dist/lib/wire-values.js.map +1 -0
  339. package/dist/lib/workflow-bundle.d.ts +102 -0
  340. package/dist/lib/workflow-bundle.d.ts.map +1 -0
  341. package/dist/lib/workflow-bundle.js +306 -0
  342. package/dist/lib/workflow-bundle.js.map +1 -0
  343. package/dist/lib/workflow-service.d.ts +82 -0
  344. package/dist/lib/workflow-service.d.ts.map +1 -0
  345. package/dist/lib/workflow-service.js +197 -0
  346. package/dist/lib/workflow-service.js.map +1 -0
  347. package/dist/lib/workflow-workspace.d.ts +20 -0
  348. package/dist/lib/workflow-workspace.d.ts.map +1 -0
  349. package/dist/lib/workflow-workspace.js +65 -0
  350. package/dist/lib/workflow-workspace.js.map +1 -0
  351. package/dist/lib/ws-connection-health.d.ts +10 -0
  352. package/dist/lib/ws-connection-health.d.ts.map +1 -0
  353. package/dist/lib/ws-connection-health.js +38 -0
  354. package/dist/lib/ws-connection-health.js.map +1 -0
  355. package/dist/lib/ws-rate-limit.d.ts +22 -0
  356. package/dist/lib/ws-rate-limit.d.ts.map +1 -0
  357. package/dist/lib/ws-rate-limit.js +45 -0
  358. package/dist/lib/ws-rate-limit.js.map +1 -0
  359. package/dist/lib/ws-upgrade.d.ts +40 -0
  360. package/dist/lib/ws-upgrade.d.ts.map +1 -0
  361. package/dist/lib/ws-upgrade.js +66 -0
  362. package/dist/lib/ws-upgrade.js.map +1 -0
  363. package/dist/lib/zip-stream.d.ts +46 -0
  364. package/dist/lib/zip-stream.d.ts.map +1 -0
  365. package/dist/lib/zip-stream.js +140 -0
  366. package/dist/lib/zip-stream.js.map +1 -0
  367. package/dist/mcp-agent-tools.d.ts +56 -0
  368. package/dist/mcp-agent-tools.d.ts.map +1 -0
  369. package/dist/mcp-agent-tools.js +1147 -0
  370. package/dist/mcp-agent-tools.js.map +1 -0
  371. package/dist/mcp-client-config.d.ts +64 -0
  372. package/dist/mcp-client-config.d.ts.map +1 -0
  373. package/dist/mcp-client-config.js +353 -0
  374. package/dist/mcp-client-config.js.map +1 -0
  375. package/dist/mcp-server.d.ts +56 -7
  376. package/dist/mcp-server.d.ts.map +1 -1
  377. package/dist/mcp-server.js +255 -762
  378. package/dist/mcp-server.js.map +1 -1
  379. package/dist/mcp-tool-deps.d.ts +20 -0
  380. package/dist/mcp-tool-deps.d.ts.map +1 -0
  381. package/dist/mcp-tool-deps.js +61 -0
  382. package/dist/mcp-tool-deps.js.map +1 -0
  383. package/dist/messagepack.d.ts +7 -0
  384. package/dist/messagepack.d.ts.map +1 -0
  385. package/dist/messagepack.js +19 -0
  386. package/dist/messagepack.js.map +1 -0
  387. package/dist/model-download-runtime.d.ts +9 -0
  388. package/dist/model-download-runtime.d.ts.map +1 -0
  389. package/dist/model-download-runtime.js +77 -0
  390. package/dist/model-download-runtime.js.map +1 -0
  391. package/dist/model-execution-availability.d.ts +14 -0
  392. package/dist/model-execution-availability.d.ts.map +1 -0
  393. package/dist/model-execution-availability.js +161 -0
  394. package/dist/model-execution-availability.js.map +1 -0
  395. package/dist/models-api.d.ts +61 -5
  396. package/dist/models-api.d.ts.map +1 -1
  397. package/dist/models-api.js +182 -689
  398. package/dist/models-api.js.map +1 -1
  399. package/dist/node-registry-setup.d.ts +84 -0
  400. package/dist/node-registry-setup.d.ts.map +1 -0
  401. package/dist/node-registry-setup.js +163 -0
  402. package/dist/node-registry-setup.js.map +1 -0
  403. package/dist/oauth/cimd.d.ts +28 -0
  404. package/dist/oauth/cimd.d.ts.map +1 -0
  405. package/dist/oauth/cimd.js +177 -0
  406. package/dist/oauth/cimd.js.map +1 -0
  407. package/dist/oauth/gate.d.ts +38 -0
  408. package/dist/oauth/gate.d.ts.map +1 -0
  409. package/dist/oauth/gate.js +77 -0
  410. package/dist/oauth/gate.js.map +1 -0
  411. package/dist/oauth/metadata.d.ts +35 -0
  412. package/dist/oauth/metadata.d.ts.map +1 -0
  413. package/dist/oauth/metadata.js +56 -0
  414. package/dist/oauth/metadata.js.map +1 -0
  415. package/dist/oauth/pending-store.d.ts +79 -0
  416. package/dist/oauth/pending-store.d.ts.map +1 -0
  417. package/dist/oauth/pending-store.js +133 -0
  418. package/dist/oauth/pending-store.js.map +1 -0
  419. package/dist/oauth/pkce.d.ts +16 -0
  420. package/dist/oauth/pkce.d.ts.map +1 -0
  421. package/dist/oauth/pkce.js +29 -0
  422. package/dist/oauth/pkce.js.map +1 -0
  423. package/dist/oauth/validate.d.ts +25 -0
  424. package/dist/oauth/validate.d.ts.map +1 -0
  425. package/dist/oauth/validate.js +62 -0
  426. package/dist/oauth/validate.js.map +1 -0
  427. package/dist/oauth/www-authenticate.d.ts +9 -0
  428. package/dist/oauth/www-authenticate.d.ts.map +1 -0
  429. package/dist/oauth/www-authenticate.js +33 -0
  430. package/dist/oauth/www-authenticate.js.map +1 -0
  431. package/dist/oauth-api.d.ts +19 -0
  432. package/dist/oauth-api.d.ts.map +1 -1
  433. package/dist/oauth-api.js +531 -12
  434. package/dist/oauth-api.js.map +1 -1
  435. package/dist/openai-api.d.ts.map +1 -1
  436. package/dist/openai-api.js +4 -9
  437. package/dist/openai-api.js.map +1 -1
  438. package/dist/pack-snapshot.d.ts +24 -0
  439. package/dist/pack-snapshot.d.ts.map +1 -0
  440. package/dist/pack-snapshot.js +35 -0
  441. package/dist/pack-snapshot.js.map +1 -0
  442. package/dist/plugins/websocket.d.ts +21 -4
  443. package/dist/plugins/websocket.d.ts.map +1 -1
  444. package/dist/plugins/websocket.js +106 -297
  445. package/dist/plugins/websocket.js.map +1 -1
  446. package/dist/python-bridge-gate.d.ts +28 -0
  447. package/dist/python-bridge-gate.d.ts.map +1 -0
  448. package/dist/python-bridge-gate.js +36 -0
  449. package/dist/python-bridge-gate.js.map +1 -0
  450. package/dist/resolve-media-urls.d.ts +17 -3
  451. package/dist/resolve-media-urls.d.ts.map +1 -1
  452. package/dist/resolve-media-urls.js +117 -31
  453. package/dist/resolve-media-urls.js.map +1 -1
  454. package/dist/resource-events.d.ts +28 -0
  455. package/dist/resource-events.d.ts.map +1 -0
  456. package/dist/resource-events.js +20 -0
  457. package/dist/resource-events.js.map +1 -0
  458. package/dist/routes/account.d.ts +100 -0
  459. package/dist/routes/account.d.ts.map +1 -0
  460. package/dist/routes/account.js +197 -0
  461. package/dist/routes/account.js.map +1 -0
  462. package/dist/routes/app-runs.d.ts +4 -0
  463. package/dist/routes/app-runs.d.ts.map +1 -0
  464. package/dist/routes/app-runs.js +173 -0
  465. package/dist/routes/app-runs.js.map +1 -0
  466. package/dist/routes/applications.d.ts +36 -0
  467. package/dist/routes/applications.d.ts.map +1 -0
  468. package/dist/routes/applications.js +183 -0
  469. package/dist/routes/applications.js.map +1 -0
  470. package/dist/routes/assets.d.ts +3 -3
  471. package/dist/routes/assets.d.ts.map +1 -1
  472. package/dist/routes/assets.js +78 -44
  473. package/dist/routes/assets.js.map +1 -1
  474. package/dist/routes/atlascloud-webhook.d.ts +93 -0
  475. package/dist/routes/atlascloud-webhook.d.ts.map +1 -0
  476. package/dist/routes/atlascloud-webhook.js +369 -0
  477. package/dist/routes/atlascloud-webhook.js.map +1 -0
  478. package/dist/routes/collections.d.ts.map +1 -1
  479. package/dist/routes/config.d.ts +26 -0
  480. package/dist/routes/config.d.ts.map +1 -0
  481. package/dist/routes/config.js +64 -0
  482. package/dist/routes/config.js.map +1 -0
  483. package/dist/routes/documents.d.ts +27 -0
  484. package/dist/routes/documents.d.ts.map +1 -0
  485. package/dist/routes/documents.js +155 -0
  486. package/dist/routes/documents.js.map +1 -0
  487. package/dist/routes/fal-credits.d.ts +4 -0
  488. package/dist/routes/fal-credits.d.ts.map +1 -0
  489. package/dist/routes/fal-credits.js +101 -0
  490. package/dist/routes/fal-credits.js.map +1 -0
  491. package/dist/routes/fal-pricing-estimate.d.ts +4 -0
  492. package/dist/routes/fal-pricing-estimate.d.ts.map +1 -0
  493. package/dist/routes/fal-pricing-estimate.js +114 -0
  494. package/dist/routes/fal-pricing-estimate.js.map +1 -0
  495. package/dist/routes/fal-pricing.d.ts +4 -0
  496. package/dist/routes/fal-pricing.d.ts.map +1 -0
  497. package/dist/routes/fal-pricing.js +93 -0
  498. package/dist/routes/fal-pricing.js.map +1 -0
  499. package/dist/routes/fal-webhook.d.ts +102 -0
  500. package/dist/routes/fal-webhook.d.ts.map +1 -0
  501. package/dist/routes/fal-webhook.js +379 -0
  502. package/dist/routes/fal-webhook.js.map +1 -0
  503. package/dist/routes/files.d.ts.map +1 -1
  504. package/dist/routes/files.js +4 -3
  505. package/dist/routes/files.js.map +1 -1
  506. package/dist/routes/health.d.ts +1 -0
  507. package/dist/routes/health.d.ts.map +1 -1
  508. package/dist/routes/health.js +41 -7
  509. package/dist/routes/health.js.map +1 -1
  510. package/dist/routes/integrations.d.ts +39 -0
  511. package/dist/routes/integrations.d.ts.map +1 -0
  512. package/dist/routes/integrations.js +211 -0
  513. package/dist/routes/integrations.js.map +1 -0
  514. package/dist/routes/js-scripts.d.ts +32 -0
  515. package/dist/routes/js-scripts.d.ts.map +1 -0
  516. package/dist/routes/js-scripts.js +498 -0
  517. package/dist/routes/js-scripts.js.map +1 -0
  518. package/dist/routes/kie-credits.d.ts +4 -0
  519. package/dist/routes/kie-credits.d.ts.map +1 -0
  520. package/dist/routes/kie-credits.js +93 -0
  521. package/dist/routes/kie-credits.js.map +1 -0
  522. package/dist/routes/kie-pricing.d.ts +4 -0
  523. package/dist/routes/kie-pricing.d.ts.map +1 -0
  524. package/dist/routes/kie-pricing.js +45 -0
  525. package/dist/routes/kie-pricing.js.map +1 -0
  526. package/dist/routes/kie-webhook.d.ts +4 -0
  527. package/dist/routes/kie-webhook.d.ts.map +1 -0
  528. package/dist/routes/kie-webhook.js +70 -0
  529. package/dist/routes/kie-webhook.js.map +1 -0
  530. package/dist/routes/nodes.d.ts.map +1 -1
  531. package/dist/routes/nodes.js +29 -51
  532. package/dist/routes/nodes.js.map +1 -1
  533. package/dist/routes/oauth-as.d.ts +30 -0
  534. package/dist/routes/oauth-as.d.ts.map +1 -0
  535. package/dist/routes/oauth-as.js +412 -0
  536. package/dist/routes/oauth-as.js.map +1 -0
  537. package/dist/routes/oauth.d.ts.map +1 -1
  538. package/dist/routes/openai.d.ts.map +1 -1
  539. package/dist/routes/public-apps.d.ts +27 -0
  540. package/dist/routes/public-apps.d.ts.map +1 -0
  541. package/dist/routes/public-apps.js +99 -0
  542. package/dist/routes/public-apps.js.map +1 -0
  543. package/dist/routes/public-shared-workflows.d.ts +16 -0
  544. package/dist/routes/public-shared-workflows.d.ts.map +1 -0
  545. package/dist/routes/public-shared-workflows.js +55 -0
  546. package/dist/routes/public-shared-workflows.js.map +1 -0
  547. package/dist/routes/run-spans.d.ts +4 -0
  548. package/dist/routes/run-spans.d.ts.map +1 -0
  549. package/dist/routes/run-spans.js +53 -0
  550. package/dist/routes/run-spans.js.map +1 -0
  551. package/dist/routes/sandbox-modules.d.ts +17 -0
  552. package/dist/routes/sandbox-modules.d.ts.map +1 -0
  553. package/dist/routes/sandbox-modules.js +85 -0
  554. package/dist/routes/sandbox-modules.js.map +1 -0
  555. package/dist/routes/sdk-v1.d.ts +24 -0
  556. package/dist/routes/sdk-v1.d.ts.map +1 -0
  557. package/dist/routes/sdk-v1.js +320 -0
  558. package/dist/routes/sdk-v1.js.map +1 -0
  559. package/dist/routes/storage.d.ts.map +1 -1
  560. package/dist/routes/storyboards.d.ts +16 -0
  561. package/dist/routes/storyboards.d.ts.map +1 -0
  562. package/dist/routes/storyboards.js +97 -0
  563. package/dist/routes/storyboards.js.map +1 -0
  564. package/dist/routes/timeline-animations.d.ts +23 -0
  565. package/dist/routes/timeline-animations.d.ts.map +1 -0
  566. package/dist/routes/timeline-animations.js +99 -0
  567. package/dist/routes/timeline-animations.js.map +1 -0
  568. package/dist/routes/timeline-audio-bake.d.ts +51 -0
  569. package/dist/routes/timeline-audio-bake.d.ts.map +1 -0
  570. package/dist/routes/timeline-audio-bake.js +110 -0
  571. package/dist/routes/timeline-audio-bake.js.map +1 -0
  572. package/dist/routes/timeline-fonts.d.ts +51 -0
  573. package/dist/routes/timeline-fonts.d.ts.map +1 -0
  574. package/dist/routes/timeline-fonts.js +195 -0
  575. package/dist/routes/timeline-fonts.js.map +1 -0
  576. package/dist/routes/timeline-isolate-subject.d.ts +55 -0
  577. package/dist/routes/timeline-isolate-subject.d.ts.map +1 -0
  578. package/dist/routes/timeline-isolate-subject.js +128 -0
  579. package/dist/routes/timeline-isolate-subject.js.map +1 -0
  580. package/dist/routes/timeline-track-object.d.ts +39 -0
  581. package/dist/routes/timeline-track-object.d.ts.map +1 -0
  582. package/dist/routes/timeline-track-object.js +97 -0
  583. package/dist/routes/timeline-track-object.js.map +1 -0
  584. package/dist/routes/timelines.d.ts +18 -0
  585. package/dist/routes/timelines.d.ts.map +1 -0
  586. package/dist/routes/timelines.js +191 -0
  587. package/dist/routes/timelines.js.map +1 -0
  588. package/dist/routes/workflows.d.ts +6 -9
  589. package/dist/routes/workflows.d.ts.map +1 -1
  590. package/dist/routes/workflows.js +100 -11
  591. package/dist/routes/workflows.js.map +1 -1
  592. package/dist/routes/workspace.d.ts.map +1 -1
  593. package/dist/run-supervisor.d.ts +30 -0
  594. package/dist/run-supervisor.d.ts.map +1 -0
  595. package/dist/run-supervisor.js +86 -0
  596. package/dist/run-supervisor.js.map +1 -0
  597. package/dist/sandbox-catalog.d.ts +28 -0
  598. package/dist/sandbox-catalog.d.ts.map +1 -0
  599. package/dist/sandbox-catalog.js +74 -0
  600. package/dist/sandbox-catalog.js.map +1 -0
  601. package/dist/screenshot-projects.d.ts +27 -0
  602. package/dist/screenshot-projects.d.ts.map +1 -0
  603. package/dist/screenshot-projects.js +880 -0
  604. package/dist/screenshot-projects.js.map +1 -0
  605. package/dist/screenshot-server.js +950 -47
  606. package/dist/screenshot-server.js.map +1 -1
  607. package/dist/sdk/sdk-cached-model-inventory.d.ts +21 -0
  608. package/dist/sdk/sdk-cached-model-inventory.d.ts.map +1 -0
  609. package/dist/sdk/sdk-cached-model-inventory.js +51 -0
  610. package/dist/sdk/sdk-cached-model-inventory.js.map +1 -0
  611. package/dist/sdk/sdk-capabilities-service.d.ts +32 -0
  612. package/dist/sdk/sdk-capabilities-service.d.ts.map +1 -0
  613. package/dist/sdk/sdk-capabilities-service.js +47 -0
  614. package/dist/sdk/sdk-capabilities-service.js.map +1 -0
  615. package/dist/sdk/sdk-execution-readiness-probe.d.ts +19 -0
  616. package/dist/sdk/sdk-execution-readiness-probe.d.ts.map +1 -0
  617. package/dist/sdk/sdk-execution-readiness-probe.js +90 -0
  618. package/dist/sdk/sdk-execution-readiness-probe.js.map +1 -0
  619. package/dist/sdk/sdk-execution-target-readiness.d.ts +15 -0
  620. package/dist/sdk/sdk-execution-target-readiness.d.ts.map +1 -0
  621. package/dist/sdk/sdk-execution-target-readiness.js +50 -0
  622. package/dist/sdk/sdk-execution-target-readiness.js.map +1 -0
  623. package/dist/sdk/sdk-feature-flags.d.ts +18 -0
  624. package/dist/sdk/sdk-feature-flags.d.ts.map +1 -0
  625. package/dist/sdk/sdk-feature-flags.js +30 -0
  626. package/dist/sdk/sdk-feature-flags.js.map +1 -0
  627. package/dist/sdk/sdk-huggingface-download-state.d.ts +15 -0
  628. package/dist/sdk/sdk-huggingface-download-state.d.ts.map +1 -0
  629. package/dist/sdk/sdk-huggingface-download-state.js +25 -0
  630. package/dist/sdk/sdk-huggingface-download-state.js.map +1 -0
  631. package/dist/sdk/sdk-live-runner-registry.d.ts +21 -0
  632. package/dist/sdk/sdk-live-runner-registry.d.ts.map +1 -0
  633. package/dist/sdk/sdk-live-runner-registry.js +26 -0
  634. package/dist/sdk/sdk-live-runner-registry.js.map +1 -0
  635. package/dist/sdk/sdk-model-catalog-service.d.ts +20 -0
  636. package/dist/sdk/sdk-model-catalog-service.d.ts.map +1 -0
  637. package/dist/sdk/sdk-model-catalog-service.js +219 -0
  638. package/dist/sdk/sdk-model-catalog-service.js.map +1 -0
  639. package/dist/sdk/sdk-model-download-service.d.ts +39 -0
  640. package/dist/sdk/sdk-model-download-service.d.ts.map +1 -0
  641. package/dist/sdk/sdk-model-download-service.js +277 -0
  642. package/dist/sdk/sdk-model-download-service.js.map +1 -0
  643. package/dist/sdk/sdk-model-requirement-probe.d.ts +30 -0
  644. package/dist/sdk/sdk-model-requirement-probe.d.ts.map +1 -0
  645. package/dist/sdk/sdk-model-requirement-probe.js +120 -0
  646. package/dist/sdk/sdk-model-requirement-probe.js.map +1 -0
  647. package/dist/sdk/sdk-node-package-requirement-probe.d.ts +20 -0
  648. package/dist/sdk/sdk-node-package-requirement-probe.d.ts.map +1 -0
  649. package/dist/sdk/sdk-node-package-requirement-probe.js +44 -0
  650. package/dist/sdk/sdk-node-package-requirement-probe.js.map +1 -0
  651. package/dist/sdk/sdk-node-type-inventory-service.d.ts +11 -0
  652. package/dist/sdk/sdk-node-type-inventory-service.d.ts.map +1 -0
  653. package/dist/sdk/sdk-node-type-inventory-service.js +36 -0
  654. package/dist/sdk/sdk-node-type-inventory-service.js.map +1 -0
  655. package/dist/sdk/sdk-preflight-orchestrator.d.ts +54 -0
  656. package/dist/sdk/sdk-preflight-orchestrator.d.ts.map +1 -0
  657. package/dist/sdk/sdk-preflight-orchestrator.js +63 -0
  658. package/dist/sdk/sdk-preflight-orchestrator.js.map +1 -0
  659. package/dist/sdk/sdk-preflight-requirement-resolver.d.ts +35 -0
  660. package/dist/sdk/sdk-preflight-requirement-resolver.d.ts.map +1 -0
  661. package/dist/sdk/sdk-preflight-requirement-resolver.js +67 -0
  662. package/dist/sdk/sdk-preflight-requirement-resolver.js.map +1 -0
  663. package/dist/sdk/sdk-preflight-service.d.ts +61 -0
  664. package/dist/sdk/sdk-preflight-service.d.ts.map +1 -0
  665. package/dist/sdk/sdk-preflight-service.js +104 -0
  666. package/dist/sdk/sdk-preflight-service.js.map +1 -0
  667. package/dist/sdk/sdk-preflight-workflow-source.d.ts +18 -0
  668. package/dist/sdk/sdk-preflight-workflow-source.d.ts.map +1 -0
  669. package/dist/sdk/sdk-preflight-workflow-source.js +42 -0
  670. package/dist/sdk/sdk-preflight-workflow-source.js.map +1 -0
  671. package/dist/sdk/sdk-route-policy.d.ts +3 -0
  672. package/dist/sdk/sdk-route-policy.d.ts.map +1 -0
  673. package/dist/sdk/sdk-route-policy.js +18 -0
  674. package/dist/sdk/sdk-route-policy.js.map +1 -0
  675. package/dist/sdk/sdk-runtime-capabilities-service.d.ts +60 -0
  676. package/dist/sdk/sdk-runtime-capabilities-service.d.ts.map +1 -0
  677. package/dist/sdk/sdk-runtime-capabilities-service.js +30 -0
  678. package/dist/sdk/sdk-runtime-capabilities-service.js.map +1 -0
  679. package/dist/sdk/sdk-runtime-requirement-probe.d.ts +13 -0
  680. package/dist/sdk/sdk-runtime-requirement-probe.d.ts.map +1 -0
  681. package/dist/sdk/sdk-runtime-requirement-probe.js +55 -0
  682. package/dist/sdk/sdk-runtime-requirement-probe.js.map +1 -0
  683. package/dist/sdk/sdk-static-preflight-service.d.ts +66 -0
  684. package/dist/sdk/sdk-static-preflight-service.d.ts.map +1 -0
  685. package/dist/sdk/sdk-static-preflight-service.js +492 -0
  686. package/dist/sdk/sdk-static-preflight-service.js.map +1 -0
  687. package/dist/sdk/sdk-temporary-asset-service.d.ts +18 -0
  688. package/dist/sdk/sdk-temporary-asset-service.d.ts.map +1 -0
  689. package/dist/sdk/sdk-temporary-asset-service.js +33 -0
  690. package/dist/sdk/sdk-temporary-asset-service.js.map +1 -0
  691. package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts +9 -0
  692. package/dist/sdk/sdk-temporary-asset-upload-http-handler.d.ts.map +1 -0
  693. package/dist/sdk/sdk-temporary-asset-upload-http-handler.js +65 -0
  694. package/dist/sdk/sdk-temporary-asset-upload-http-handler.js.map +1 -0
  695. package/dist/sdk/sdk-v1-handler-map.d.ts +44 -0
  696. package/dist/sdk/sdk-v1-handler-map.d.ts.map +1 -0
  697. package/dist/sdk/sdk-v1-handler-map.js +37 -0
  698. package/dist/sdk/sdk-v1-handler-map.js.map +1 -0
  699. package/dist/sdk/sdk-v1-service-error.d.ts +21 -0
  700. package/dist/sdk/sdk-v1-service-error.d.ts.map +1 -0
  701. package/dist/sdk/sdk-v1-service-error.js +62 -0
  702. package/dist/sdk/sdk-v1-service-error.js.map +1 -0
  703. package/dist/sdk/sdk-v1-service.d.ts +74 -0
  704. package/dist/sdk/sdk-v1-service.d.ts.map +1 -0
  705. package/dist/sdk/sdk-v1-service.js +219 -0
  706. package/dist/sdk/sdk-v1-service.js.map +1 -0
  707. package/dist/sdk/sdk-worker-readiness-adapter.d.ts +22 -0
  708. package/dist/sdk/sdk-worker-readiness-adapter.d.ts.map +1 -0
  709. package/dist/sdk/sdk-worker-readiness-adapter.js +29 -0
  710. package/dist/sdk/sdk-worker-readiness-adapter.js.map +1 -0
  711. package/dist/server.js +1091 -206
  712. package/dist/server.js.map +1 -1
  713. package/dist/session/app-run-fold.d.ts +7 -0
  714. package/dist/session/app-run-fold.d.ts.map +1 -0
  715. package/dist/session/app-run-fold.js +45 -0
  716. package/dist/session/app-run-fold.js.map +1 -0
  717. package/dist/session/asset-autosave.d.ts +80 -0
  718. package/dist/session/asset-autosave.d.ts.map +1 -0
  719. package/dist/session/asset-autosave.js +456 -0
  720. package/dist/session/asset-autosave.js.map +1 -0
  721. package/dist/session/chat-compaction.d.ts +107 -0
  722. package/dist/session/chat-compaction.d.ts.map +1 -0
  723. package/dist/session/chat-compaction.js +191 -0
  724. package/dist/session/chat-compaction.js.map +1 -0
  725. package/dist/session/chat-history.d.ts +75 -0
  726. package/dist/session/chat-history.d.ts.map +1 -0
  727. package/dist/session/chat-history.js +194 -0
  728. package/dist/session/chat-history.js.map +1 -0
  729. package/dist/session/chat-prompt.d.ts +45 -0
  730. package/dist/session/chat-prompt.d.ts.map +1 -0
  731. package/dist/session/chat-prompt.js +502 -0
  732. package/dist/session/chat-prompt.js.map +1 -0
  733. package/dist/session/chat-turn.d.ts +337 -0
  734. package/dist/session/chat-turn.d.ts.map +1 -0
  735. package/dist/session/chat-turn.js +3612 -0
  736. package/dist/session/chat-turn.js.map +1 -0
  737. package/dist/session/client-session.d.ts +59 -0
  738. package/dist/session/client-session.d.ts.map +1 -0
  739. package/dist/session/client-session.js +2 -0
  740. package/dist/session/client-session.js.map +1 -0
  741. package/dist/session/commands.d.ts +133 -0
  742. package/dist/session/commands.d.ts.map +1 -0
  743. package/dist/session/commands.js +784 -0
  744. package/dist/session/commands.js.map +1 -0
  745. package/dist/session/inference.d.ts +218 -0
  746. package/dist/session/inference.d.ts.map +1 -0
  747. package/dist/session/inference.js +1143 -0
  748. package/dist/session/inference.js.map +1 -0
  749. package/dist/session/job-execution.d.ts +484 -0
  750. package/dist/session/job-execution.d.ts.map +1 -0
  751. package/dist/session/job-execution.js +2379 -0
  752. package/dist/session/job-execution.js.map +1 -0
  753. package/dist/session/media-generation.d.ts +94 -0
  754. package/dist/session/media-generation.d.ts.map +1 -0
  755. package/dist/session/media-generation.js +234 -0
  756. package/dist/session/media-generation.js.map +1 -0
  757. package/dist/session/model-interfaces.d.ts +28 -0
  758. package/dist/session/model-interfaces.d.ts.map +1 -0
  759. package/dist/session/model-interfaces.js +133 -0
  760. package/dist/session/model-interfaces.js.map +1 -0
  761. package/dist/session/sanitize.d.ts +7 -0
  762. package/dist/session/sanitize.d.ts.map +1 -0
  763. package/dist/session/sanitize.js +64 -0
  764. package/dist/session/sanitize.js.map +1 -0
  765. package/dist/settings-registry.d.ts +6 -15
  766. package/dist/settings-registry.d.ts.map +1 -1
  767. package/dist/settings-registry.js +6 -103
  768. package/dist/settings-registry.js.map +1 -1
  769. package/dist/storage-api.d.ts +20 -0
  770. package/dist/storage-api.d.ts.map +1 -1
  771. package/dist/storage-api.js +260 -77
  772. package/dist/storage-api.js.map +1 -1
  773. package/dist/storage-retention.d.ts +14 -0
  774. package/dist/storage-retention.d.ts.map +1 -0
  775. package/dist/storage-retention.js +95 -0
  776. package/dist/storage-retention.js.map +1 -0
  777. package/dist/system-stats.d.ts +52 -0
  778. package/dist/system-stats.d.ts.map +1 -0
  779. package/dist/system-stats.js +134 -0
  780. package/dist/system-stats.js.map +1 -0
  781. package/dist/test-ui-server.d.ts +46 -0
  782. package/dist/test-ui-server.d.ts.map +1 -1
  783. package/dist/test-ui-server.js +207 -42
  784. package/dist/test-ui-server.js.map +1 -1
  785. package/dist/timeline-generation-recovery.d.ts +4 -0
  786. package/dist/timeline-generation-recovery.d.ts.map +1 -0
  787. package/dist/timeline-generation-recovery.js +72 -0
  788. package/dist/timeline-generation-recovery.js.map +1 -0
  789. package/dist/triggers/boot.d.ts +73 -0
  790. package/dist/triggers/boot.d.ts.map +1 -0
  791. package/dist/triggers/boot.js +149 -0
  792. package/dist/triggers/boot.js.map +1 -0
  793. package/dist/triggers/dispatcher.d.ts +234 -0
  794. package/dist/triggers/dispatcher.d.ts.map +1 -0
  795. package/dist/triggers/dispatcher.js +525 -0
  796. package/dist/triggers/dispatcher.js.map +1 -0
  797. package/dist/triggers/file-watch.d.ts +90 -0
  798. package/dist/triggers/file-watch.d.ts.map +1 -0
  799. package/dist/triggers/file-watch.js +405 -0
  800. package/dist/triggers/file-watch.js.map +1 -0
  801. package/dist/triggers/registration-sync.d.ts +34 -0
  802. package/dist/triggers/registration-sync.d.ts.map +1 -0
  803. package/dist/triggers/registration-sync.js +162 -0
  804. package/dist/triggers/registration-sync.js.map +1 -0
  805. package/dist/triggers/schedule-timing.d.ts +52 -0
  806. package/dist/triggers/schedule-timing.d.ts.map +1 -0
  807. package/dist/triggers/schedule-timing.js +90 -0
  808. package/dist/triggers/schedule-timing.js.map +1 -0
  809. package/dist/triggers/scheduler.d.ts +55 -0
  810. package/dist/triggers/scheduler.d.ts.map +1 -0
  811. package/dist/triggers/scheduler.js +122 -0
  812. package/dist/triggers/scheduler.js.map +1 -0
  813. package/dist/triggers/settle.d.ts +66 -0
  814. package/dist/triggers/settle.d.ts.map +1 -0
  815. package/dist/triggers/settle.js +99 -0
  816. package/dist/triggers/settle.js.map +1 -0
  817. package/dist/triggers/stores.d.ts +38 -0
  818. package/dist/triggers/stores.d.ts.map +1 -0
  819. package/dist/triggers/stores.js +168 -0
  820. package/dist/triggers/stores.js.map +1 -0
  821. package/dist/triggers/webhook-route.d.ts +49 -0
  822. package/dist/triggers/webhook-route.d.ts.map +1 -0
  823. package/dist/triggers/webhook-route.js +148 -0
  824. package/dist/triggers/webhook-route.js.map +1 -0
  825. package/dist/trpc/context.d.ts +52 -5
  826. package/dist/trpc/context.d.ts.map +1 -1
  827. package/dist/trpc/context.js +4 -1
  828. package/dist/trpc/context.js.map +1 -1
  829. package/dist/trpc/error-formatter.d.ts.map +1 -1
  830. package/dist/trpc/error-formatter.js +23 -2
  831. package/dist/trpc/error-formatter.js.map +1 -1
  832. package/dist/trpc/error-logging.d.ts +24 -0
  833. package/dist/trpc/error-logging.d.ts.map +1 -0
  834. package/dist/trpc/error-logging.js +48 -0
  835. package/dist/trpc/error-logging.js.map +1 -0
  836. package/dist/trpc/index.d.ts +2 -2
  837. package/dist/trpc/index.d.ts.map +1 -1
  838. package/dist/trpc/index.js +0 -2
  839. package/dist/trpc/index.js.map +1 -1
  840. package/dist/trpc/middleware.d.ts +6 -3
  841. package/dist/trpc/middleware.d.ts.map +1 -1
  842. package/dist/trpc/router.d.ts +100 -2540
  843. package/dist/trpc/router.d.ts.map +1 -1
  844. package/dist/trpc/router.js +58 -6
  845. package/dist/trpc/router.js.map +1 -1
  846. package/dist/trpc/routers/agent-access.d.ts +149 -0
  847. package/dist/trpc/routers/agent-access.d.ts.map +1 -0
  848. package/dist/trpc/routers/agent-access.js +224 -0
  849. package/dist/trpc/routers/agent-access.js.map +1 -0
  850. package/dist/trpc/routers/app-instances.d.ts +2269 -0
  851. package/dist/trpc/routers/app-instances.d.ts.map +1 -0
  852. package/dist/trpc/routers/app-instances.js +52 -0
  853. package/dist/trpc/routers/app-instances.js.map +1 -0
  854. package/dist/trpc/routers/app-runs.d.ts +1092 -0
  855. package/dist/trpc/routers/app-runs.d.ts.map +1 -0
  856. package/dist/trpc/routers/app-runs.js +28 -0
  857. package/dist/trpc/routers/app-runs.js.map +1 -0
  858. package/dist/trpc/routers/applications.d.ts +2212 -0
  859. package/dist/trpc/routers/applications.d.ts.map +1 -0
  860. package/dist/trpc/routers/applications.js +221 -0
  861. package/dist/trpc/routers/applications.js.map +1 -0
  862. package/dist/trpc/routers/assets.d.ts +194 -42
  863. package/dist/trpc/routers/assets.d.ts.map +1 -1
  864. package/dist/trpc/routers/assets.js +503 -105
  865. package/dist/trpc/routers/assets.js.map +1 -1
  866. package/dist/trpc/routers/bug-reports.d.ts +33 -0
  867. package/dist/trpc/routers/bug-reports.d.ts.map +1 -0
  868. package/dist/trpc/routers/bug-reports.js +69 -0
  869. package/dist/trpc/routers/bug-reports.js.map +1 -0
  870. package/dist/trpc/routers/code-gen.d.ts +99 -0
  871. package/dist/trpc/routers/code-gen.d.ts.map +1 -0
  872. package/dist/trpc/routers/code-gen.js +164 -0
  873. package/dist/trpc/routers/code-gen.js.map +1 -0
  874. package/dist/trpc/routers/collections.d.ts +1 -26
  875. package/dist/trpc/routers/collections.d.ts.map +1 -1
  876. package/dist/trpc/routers/collections.js +145 -78
  877. package/dist/trpc/routers/collections.js.map +1 -1
  878. package/dist/trpc/routers/costs.d.ts +40 -96
  879. package/dist/trpc/routers/costs.d.ts.map +1 -1
  880. package/dist/trpc/routers/costs.js +14 -89
  881. package/dist/trpc/routers/costs.js.map +1 -1
  882. package/dist/trpc/routers/credits.d.ts +110 -0
  883. package/dist/trpc/routers/credits.d.ts.map +1 -0
  884. package/dist/trpc/routers/credits.js +69 -0
  885. package/dist/trpc/routers/credits.js.map +1 -0
  886. package/dist/trpc/routers/custom-providers.d.ts +88 -0
  887. package/dist/trpc/routers/custom-providers.d.ts.map +1 -0
  888. package/dist/trpc/routers/custom-providers.js +140 -0
  889. package/dist/trpc/routers/custom-providers.js.map +1 -0
  890. package/dist/trpc/routers/documents.d.ts +61 -0
  891. package/dist/trpc/routers/documents.d.ts.map +1 -0
  892. package/dist/trpc/routers/documents.js +29 -0
  893. package/dist/trpc/routers/documents.js.map +1 -0
  894. package/dist/trpc/routers/error-traces.d.ts +132 -0
  895. package/dist/trpc/routers/error-traces.d.ts.map +1 -0
  896. package/dist/trpc/routers/error-traces.js +118 -0
  897. package/dist/trpc/routers/error-traces.js.map +1 -0
  898. package/dist/trpc/routers/extension.d.ts +24 -0
  899. package/dist/trpc/routers/extension.d.ts.map +1 -0
  900. package/dist/trpc/routers/extension.js +28 -0
  901. package/dist/trpc/routers/extension.js.map +1 -0
  902. package/dist/trpc/routers/external-mcp.d.ts +108 -0
  903. package/dist/trpc/routers/external-mcp.d.ts.map +1 -0
  904. package/dist/trpc/routers/external-mcp.js +70 -0
  905. package/dist/trpc/routers/external-mcp.js.map +1 -0
  906. package/dist/trpc/routers/files.d.ts +9 -2
  907. package/dist/trpc/routers/files.d.ts.map +1 -1
  908. package/dist/trpc/routers/files.js +67 -37
  909. package/dist/trpc/routers/files.js.map +1 -1
  910. package/dist/trpc/routers/fonts.d.ts +30 -0
  911. package/dist/trpc/routers/fonts.d.ts.map +1 -0
  912. package/dist/trpc/routers/fonts.js +112 -0
  913. package/dist/trpc/routers/fonts.js.map +1 -0
  914. package/dist/trpc/routers/gameDraftHistory.d.ts +8 -0
  915. package/dist/trpc/routers/gameDraftHistory.d.ts.map +1 -0
  916. package/dist/trpc/routers/gameDraftHistory.js +40 -0
  917. package/dist/trpc/routers/gameDraftHistory.js.map +1 -0
  918. package/dist/trpc/routers/games.d.ts +26502 -0
  919. package/dist/trpc/routers/games.d.ts.map +1 -0
  920. package/dist/trpc/routers/games.js +674 -0
  921. package/dist/trpc/routers/games.js.map +1 -0
  922. package/dist/trpc/routers/integrations.d.ts +86 -0
  923. package/dist/trpc/routers/integrations.d.ts.map +1 -0
  924. package/dist/trpc/routers/integrations.js +129 -0
  925. package/dist/trpc/routers/integrations.js.map +1 -0
  926. package/dist/trpc/routers/jobs.d.ts +117 -21
  927. package/dist/trpc/routers/jobs.d.ts.map +1 -1
  928. package/dist/trpc/routers/jobs.js +191 -30
  929. package/dist/trpc/routers/jobs.js.map +1 -1
  930. package/dist/trpc/routers/js-scripts.d.ts +410 -0
  931. package/dist/trpc/routers/js-scripts.d.ts.map +1 -0
  932. package/dist/trpc/routers/js-scripts.js +303 -0
  933. package/dist/trpc/routers/js-scripts.js.map +1 -0
  934. package/dist/trpc/routers/mcp-config.d.ts +4 -2
  935. package/dist/trpc/routers/mcp-config.d.ts.map +1 -1
  936. package/dist/trpc/routers/mcp-config.js +46 -206
  937. package/dist/trpc/routers/mcp-config.js.map +1 -1
  938. package/dist/trpc/routers/memories.d.ts +79 -0
  939. package/dist/trpc/routers/memories.d.ts.map +1 -0
  940. package/dist/trpc/routers/memories.js +66 -0
  941. package/dist/trpc/routers/memories.js.map +1 -0
  942. package/dist/trpc/routers/messages.d.ts +4 -77
  943. package/dist/trpc/routers/messages.d.ts.map +1 -1
  944. package/dist/trpc/routers/messages.js +9 -58
  945. package/dist/trpc/routers/messages.js.map +1 -1
  946. package/dist/trpc/routers/models.d.ts +1544 -249
  947. package/dist/trpc/routers/models.d.ts.map +1 -1
  948. package/dist/trpc/routers/models.js +624 -318
  949. package/dist/trpc/routers/models.js.map +1 -1
  950. package/dist/trpc/routers/nodes.d.ts +32 -16
  951. package/dist/trpc/routers/nodes.d.ts.map +1 -1
  952. package/dist/trpc/routers/nodes.js +70 -31
  953. package/dist/trpc/routers/nodes.js.map +1 -1
  954. package/dist/trpc/routers/packs.d.ts +184 -0
  955. package/dist/trpc/routers/packs.d.ts.map +1 -0
  956. package/dist/trpc/routers/packs.js +259 -0
  957. package/dist/trpc/routers/packs.js.map +1 -0
  958. package/dist/trpc/routers/projects.d.ts +422 -0
  959. package/dist/trpc/routers/projects.d.ts.map +1 -0
  960. package/dist/trpc/routers/projects.js +373 -0
  961. package/dist/trpc/routers/projects.js.map +1 -0
  962. package/dist/trpc/routers/resources.d.ts +120 -0
  963. package/dist/trpc/routers/resources.d.ts.map +1 -0
  964. package/dist/trpc/routers/resources.js +212 -0
  965. package/dist/trpc/routers/resources.js.map +1 -0
  966. package/dist/trpc/routers/runs.d.ts +472 -0
  967. package/dist/trpc/routers/runs.d.ts.map +1 -0
  968. package/dist/trpc/routers/runs.js +40 -0
  969. package/dist/trpc/routers/runs.js.map +1 -0
  970. package/dist/trpc/routers/scripts.d.ts +1116 -0
  971. package/dist/trpc/routers/scripts.d.ts.map +1 -0
  972. package/dist/trpc/routers/scripts.js +131 -0
  973. package/dist/trpc/routers/scripts.js.map +1 -0
  974. package/dist/trpc/routers/segmentation.d.ts +62 -0
  975. package/dist/trpc/routers/segmentation.d.ts.map +1 -0
  976. package/dist/trpc/routers/segmentation.js +146 -0
  977. package/dist/trpc/routers/segmentation.js.map +1 -0
  978. package/dist/trpc/routers/settings.d.ts +180 -10
  979. package/dist/trpc/routers/settings.d.ts.map +1 -1
  980. package/dist/trpc/routers/settings.js +125 -33
  981. package/dist/trpc/routers/settings.js.map +1 -1
  982. package/dist/trpc/routers/sketch.d.ts +868 -0
  983. package/dist/trpc/routers/sketch.d.ts.map +1 -0
  984. package/dist/trpc/routers/sketch.js +617 -0
  985. package/dist/trpc/routers/sketch.js.map +1 -0
  986. package/dist/trpc/routers/skills.d.ts +76 -22
  987. package/dist/trpc/routers/skills.d.ts.map +1 -1
  988. package/dist/trpc/routers/skills.js +195 -170
  989. package/dist/trpc/routers/skills.js.map +1 -1
  990. package/dist/trpc/routers/storage.d.ts +3 -30
  991. package/dist/trpc/routers/storage.d.ts.map +1 -1
  992. package/dist/trpc/routers/storage.js +60 -117
  993. package/dist/trpc/routers/storage.js.map +1 -1
  994. package/dist/trpc/routers/storyboards.d.ts +6639 -0
  995. package/dist/trpc/routers/storyboards.d.ts.map +1 -0
  996. package/dist/trpc/routers/storyboards.js +156 -0
  997. package/dist/trpc/routers/storyboards.js.map +1 -0
  998. package/dist/trpc/routers/threads.d.ts +33 -21
  999. package/dist/trpc/routers/threads.d.ts.map +1 -1
  1000. package/dist/trpc/routers/threads.js +36 -30
  1001. package/dist/trpc/routers/threads.js.map +1 -1
  1002. package/dist/trpc/routers/timeline.d.ts +9085 -0
  1003. package/dist/trpc/routers/timeline.d.ts.map +1 -0
  1004. package/dist/trpc/routers/timeline.js +669 -0
  1005. package/dist/trpc/routers/timeline.js.map +1 -0
  1006. package/dist/trpc/routers/triggers.d.ts +46 -0
  1007. package/dist/trpc/routers/triggers.d.ts.map +1 -0
  1008. package/dist/trpc/routers/triggers.js +117 -0
  1009. package/dist/trpc/routers/triggers.js.map +1 -0
  1010. package/dist/trpc/routers/users.d.ts +1 -14
  1011. package/dist/trpc/routers/users.d.ts.map +1 -1
  1012. package/dist/trpc/routers/users.js +1 -12
  1013. package/dist/trpc/routers/users.js.map +1 -1
  1014. package/dist/trpc/routers/worker.d.ts +243 -0
  1015. package/dist/trpc/routers/worker.d.ts.map +1 -0
  1016. package/dist/trpc/routers/worker.js +221 -0
  1017. package/dist/trpc/routers/worker.js.map +1 -0
  1018. package/dist/trpc/routers/workflows.d.ts +428 -187
  1019. package/dist/trpc/routers/workflows.d.ts.map +1 -1
  1020. package/dist/trpc/routers/workflows.js +347 -345
  1021. package/dist/trpc/routers/workflows.js.map +1 -1
  1022. package/dist/trpc/routers/workspace.d.ts +59 -33
  1023. package/dist/trpc/routers/workspace.d.ts.map +1 -1
  1024. package/dist/trpc/routers/workspace.js +230 -93
  1025. package/dist/trpc/routers/workspace.js.map +1 -1
  1026. package/dist/trpc/sandbox-coverage.d.ts +64 -0
  1027. package/dist/trpc/sandbox-coverage.d.ts.map +1 -0
  1028. package/dist/trpc/sandbox-coverage.js +1139 -0
  1029. package/dist/trpc/sandbox-coverage.js.map +1 -0
  1030. package/dist/websocket-client-session.d.ts +322 -0
  1031. package/dist/websocket-client-session.d.ts.map +1 -0
  1032. package/dist/websocket-client-session.js +1267 -0
  1033. package/dist/websocket-client-session.js.map +1 -0
  1034. package/dist/workflow-interface-service.d.ts +87 -0
  1035. package/dist/workflow-interface-service.d.ts.map +1 -0
  1036. package/dist/workflow-interface-service.js +131 -0
  1037. package/dist/workflow-interface-service.js.map +1 -0
  1038. package/dist/workspace-api.d.ts.map +1 -1
  1039. package/dist/workspace-api.js +33 -23
  1040. package/dist/workspace-api.js.map +1 -1
  1041. package/dist/ws-adapter.d.ts +46 -3
  1042. package/dist/ws-adapter.d.ts.map +1 -1
  1043. package/dist/ws-adapter.js +164 -26
  1044. package/dist/ws-adapter.js.map +1 -1
  1045. package/package.json +97 -36
  1046. package/dist/agent/agent-runtime.d.ts +0 -47
  1047. package/dist/agent/agent-runtime.d.ts.map +0 -1
  1048. package/dist/agent/agent-runtime.js +0 -579
  1049. package/dist/agent/agent-runtime.js.map +0 -1
  1050. package/dist/agent/codex-agent.d.ts +0 -41
  1051. package/dist/agent/codex-agent.d.ts.map +0 -1
  1052. package/dist/agent/codex-agent.js +0 -334
  1053. package/dist/agent/codex-agent.js.map +0 -1
  1054. package/dist/agent/index.d.ts +0 -6
  1055. package/dist/agent/index.d.ts.map +0 -1
  1056. package/dist/agent/index.js +0 -4
  1057. package/dist/agent/index.js.map +0 -1
  1058. package/dist/agent/llm-agent.d.ts +0 -51
  1059. package/dist/agent/llm-agent.d.ts.map +0 -1
  1060. package/dist/agent/llm-agent.js +0 -526
  1061. package/dist/agent/llm-agent.js.map +0 -1
  1062. package/dist/agent/mcp-tool-server.d.ts +0 -33
  1063. package/dist/agent/mcp-tool-server.d.ts.map +0 -1
  1064. package/dist/agent/mcp-tool-server.js +0 -292
  1065. package/dist/agent/mcp-tool-server.js.map +0 -1
  1066. package/dist/agent/opencode-agent.d.ts +0 -32
  1067. package/dist/agent/opencode-agent.d.ts.map +0 -1
  1068. package/dist/agent/opencode-agent.js +0 -332
  1069. package/dist/agent/opencode-agent.js.map +0 -1
  1070. package/dist/agent/pi-agent.d.ts +0 -42
  1071. package/dist/agent/pi-agent.d.ts.map +0 -1
  1072. package/dist/agent/pi-agent.js +0 -429
  1073. package/dist/agent/pi-agent.js.map +0 -1
  1074. package/dist/agent/sdk-provider.d.ts +0 -46
  1075. package/dist/agent/sdk-provider.d.ts.map +0 -1
  1076. package/dist/agent/sdk-provider.js +0 -50
  1077. package/dist/agent/sdk-provider.js.map +0 -1
  1078. package/dist/agent/socket-route.d.ts +0 -11
  1079. package/dist/agent/socket-route.d.ts.map +0 -1
  1080. package/dist/agent/socket-route.js +0 -262
  1081. package/dist/agent/socket-route.js.map +0 -1
  1082. package/dist/agent/transport.d.ts +0 -39
  1083. package/dist/agent/transport.d.ts.map +0 -1
  1084. package/dist/agent/transport.js +0 -17
  1085. package/dist/agent/transport.js.map +0 -1
  1086. package/dist/agent/types.d.ts +0 -11
  1087. package/dist/agent/types.d.ts.map +0 -1
  1088. package/dist/agent/types.js +0 -10
  1089. package/dist/agent/types.js.map +0 -1
  1090. package/dist/routes/jobs.d.ts +0 -16
  1091. package/dist/routes/jobs.d.ts.map +0 -1
  1092. package/dist/routes/jobs.js +0 -25
  1093. package/dist/routes/jobs.js.map +0 -1
  1094. package/dist/trpc/routers/sandboxes.d.ts +0 -64
  1095. package/dist/trpc/routers/sandboxes.d.ts.map +0 -1
  1096. package/dist/trpc/routers/sandboxes.js +0 -327
  1097. package/dist/trpc/routers/sandboxes.js.map +0 -1
  1098. package/dist/unified-websocket-runner.d.ts +0 -280
  1099. package/dist/unified-websocket-runner.d.ts.map +0 -1
  1100. package/dist/unified-websocket-runner.js +0 -3840
  1101. package/dist/unified-websocket-runner.js.map +0 -1
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Asset resolution for the export surfaces — the timeline and storyboard zips
3
+ * and the workflow `.nodetool` bundle. Kept out of `http-api.ts` (which pulls
4
+ * in `@nodetool-ai/dsl` → `base-nodes` at module load) so a route or a test can
5
+ * reach it on its own.
6
+ *
7
+ * The zips stream: {@link resolveExportSource} answers a local file (a managed
8
+ * asset under the local store, or an external asset in place) by path, and
9
+ * only a backend with no local file hands over bytes. The workflow bundle
10
+ * rewrites graph refs from bytes and still reads them whole through
11
+ * {@link resolveAssetBytesForExport}.
12
+ */
13
+ import { readFile, stat } from "node:fs/promises";
14
+ import nodePath from "node:path";
15
+ import { Asset } from "@nodetool-ai/models";
16
+ import { safeFetch } from "@nodetool-ai/runtime";
17
+ import { getAssetAdapter } from "./storage.js";
18
+ import { localAssetPath, retrieveAssetBytes } from "./asset-paths.js";
19
+ import { isLocalFileSource } from "./zip-stream.js";
20
+ /**
21
+ * The asset id in an `asset://` locator, or null when the locator names a
22
+ * storage key instead. `asset://<id>` and `asset://<id>.<ext>` are both ids —
23
+ * `persistOutput` writes the suffixed form so a renderer can type the media —
24
+ * while anything carrying a slash is already owner-prefixed.
25
+ */
26
+ function assetIdOf(rest) {
27
+ if (rest === "" || rest.includes("/"))
28
+ return null;
29
+ const ext = nodePath.extname(rest);
30
+ return ext ? rest.slice(0, -ext.length) : rest;
31
+ }
32
+ async function fileSource(path) {
33
+ return { path, size: (await stat(path)).size };
34
+ }
35
+ /**
36
+ * An asset's local file, read in place, or its stored bytes on a backend with
37
+ * no local file. Null when neither exists (including an offline external
38
+ * asset).
39
+ */
40
+ export async function resolveAssetExportSource(asset) {
41
+ const adapter = getAssetAdapter();
42
+ const path = await localAssetPath(adapter, asset.user_id, asset.id, asset.content_type);
43
+ if (path)
44
+ return fileSource(path);
45
+ return retrieveAssetBytes(adapter, asset.user_id, asset.id, asset.content_type);
46
+ }
47
+ /** The object under a storage key, as a local file when there is one. */
48
+ async function keyExportSource(adapter, key) {
49
+ const uri = adapter.uriForKey(key);
50
+ const path = await adapter.localPath(uri);
51
+ if (path)
52
+ return fileSource(path);
53
+ return adapter.retrieve(uri);
54
+ }
55
+ /**
56
+ * Resolve an export ref (`asset://`, `/api/storage/`, or a remote URL) to a
57
+ * local file or bytes. Null when it cannot be resolved; the caller reports
58
+ * it as missing.
59
+ */
60
+ export async function resolveExportSource(ref) {
61
+ try {
62
+ if (ref.startsWith("asset://")) {
63
+ const rest = ref.slice("asset://".length).split("?")[0].split("#")[0];
64
+ const adapter = getAssetAdapter();
65
+ const assetId = assetIdOf(rest);
66
+ if (assetId) {
67
+ // The row carries the owner, and the bytes live under
68
+ // `<user_id>/<id>.<ext>` on every backend written since the per-owner
69
+ // layout. Reading the suffixed ref as a flat key skipped that prefix
70
+ // and found nothing on S3/Supabase, where no flat object exists.
71
+ const asset = (await Asset.get(assetId));
72
+ if (asset) {
73
+ const source = await resolveAssetExportSource(asset);
74
+ if (source)
75
+ return source;
76
+ }
77
+ // No row (or no bytes under either candidate): an older graph can
78
+ // still name an object that only exists under the flat key.
79
+ return await keyExportSource(adapter, rest);
80
+ }
81
+ return await keyExportSource(adapter, rest);
82
+ }
83
+ if (ref.includes("/api/storage/")) {
84
+ const key = decodeURIComponent(ref
85
+ .slice(ref.indexOf("/api/storage/") + "/api/storage/".length)
86
+ .split("?")[0]);
87
+ return await keyExportSource(getAssetAdapter(), key);
88
+ }
89
+ if (/^https?:\/\//.test(ref)) {
90
+ const res = await safeFetch(ref);
91
+ if (!res.ok)
92
+ return null;
93
+ return new Uint8Array(await res.arrayBuffer());
94
+ }
95
+ }
96
+ catch {
97
+ // Unresolved — the caller reports the ref as missing.
98
+ }
99
+ return null;
100
+ }
101
+ /** Resolve a ref to bytes in memory, for the workflow bundle's graph rewrite. */
102
+ export async function resolveAssetBytesForExport(ref) {
103
+ const source = await resolveExportSource(ref);
104
+ if (!source || !isLocalFileSource(source))
105
+ return source;
106
+ try {
107
+ return new Uint8Array(await readFile(source.path));
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
113
+ //# sourceMappingURL=asset-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-export.js","sourceRoot":"","sources":["../../src/lib/asset-export.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The server's asset model interfaces: `createAsset` persists bytes through
3
+ * the storage layer (with a thumbnail) and saves the Asset row;
4
+ * `updateAssetBytes` overwrites an existing asset's bytes in place. One
5
+ * implementation each for every ProcessingContext the server hands out — chat
6
+ * turns, MCP sessions, and workflow runs — so an artifact persists identically
7
+ * no matter which surface produced it.
8
+ */
9
+ import { Asset } from "@nodetool-ai/models";
10
+ import type { AssetInfoEntry } from "@nodetool-ai/runtime";
11
+ export interface CreateAssetArgs {
12
+ userId: string;
13
+ workflowId?: string | null;
14
+ jobId?: string | null;
15
+ projectId?: string | null;
16
+ nodeId?: string | null;
17
+ name: string;
18
+ contentType: string;
19
+ content?: Uint8Array | null;
20
+ parentId?: string | null;
21
+ /** Stored on the row; the generation seam stamps `generation_id`. */
22
+ metadata?: Record<string, unknown> | null;
23
+ }
24
+ export declare function createAssetModelInterface(args: CreateAssetArgs): Promise<Asset>;
25
+ export interface UpdateAssetBytesArgs {
26
+ userId: string;
27
+ assetId: string;
28
+ content: Uint8Array;
29
+ contentType?: string;
30
+ name?: string;
31
+ }
32
+ /**
33
+ * The server's `updateAssetBytes` model interface: overwrite an owned asset's
34
+ * bytes in place, the same write `assets.update` performs when the editor
35
+ * saves. Returns null when the asset is missing or belongs to someone else.
36
+ *
37
+ * Changing the content type to one with a different extension without new
38
+ * bytes would orphan the object, so the bytes are always required here.
39
+ */
40
+ export declare function updateAssetBytesModelInterface(args: UpdateAssetBytesArgs): Promise<AssetInfoEntry | null>;
41
+ //# sourceMappingURL=asset-model-interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-model-interface.d.ts","sourceRoot":"","sources":["../../src/lib/asset-model-interface.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAED,wBAAsB,yBAAyB,CAC7C,IAAI,EAAE,eAAe,GACpB,OAAO,CAAC,KAAK,CAAC,CAiChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,UAAU,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAClD,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAiChC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The server's asset model interfaces: `createAsset` persists bytes through
3
+ * the storage layer (with a thumbnail) and saves the Asset row;
4
+ * `updateAssetBytes` overwrites an existing asset's bytes in place. One
5
+ * implementation each for every ProcessingContext the server hands out — chat
6
+ * turns, MCP sessions, and workflow runs — so an artifact persists identically
7
+ * no matter which surface produced it.
8
+ */
9
+ import { Asset } from "@nodetool-ai/models";
10
+ import { storeAssetWithThumbnail } from "./thumbnail.js";
11
+ import { probeAssetDurationSeconds } from "./asset-duration.js";
12
+ import { getAssetFileName, normalizeAssetContentType } from "./asset-paths.js";
13
+ export async function createAssetModelInterface(args) {
14
+ const asset = new Asset({
15
+ user_id: args.userId,
16
+ workflow_id: args.workflowId ?? null,
17
+ node_id: args.nodeId ?? null,
18
+ job_id: args.jobId ?? null,
19
+ project_id: args.projectId ?? "default",
20
+ name: args.name,
21
+ content_type: normalizeAssetContentType(args.contentType, args.name),
22
+ // No explicit parent means the user's home folder — the same default the
23
+ // upload path uses. `null` orphaned generated assets from every
24
+ // folder-scoped listing while global search still found them.
25
+ parent_id: args.parentId ?? args.userId
26
+ });
27
+ if (args.metadata && Object.keys(args.metadata).length > 0) {
28
+ asset.metadata = { ...args.metadata };
29
+ }
30
+ if (args.content) {
31
+ asset.duration = await probeAssetDurationSeconds(asset.content_type, {
32
+ bytes: args.content
33
+ });
34
+ const key = getAssetFileName(asset.id, asset.content_type);
35
+ await storeAssetWithThumbnail(asset.user_id, asset.id, key, args.content, asset.content_type);
36
+ asset.size = args.content.length;
37
+ }
38
+ await asset.save();
39
+ return asset;
40
+ }
41
+ /**
42
+ * The server's `updateAssetBytes` model interface: overwrite an owned asset's
43
+ * bytes in place, the same write `assets.update` performs when the editor
44
+ * saves. Returns null when the asset is missing or belongs to someone else.
45
+ *
46
+ * Changing the content type to one with a different extension without new
47
+ * bytes would orphan the object, so the bytes are always required here.
48
+ */
49
+ export async function updateAssetBytesModelInterface(args) {
50
+ const asset = await Asset.find(args.userId, args.assetId);
51
+ if (!asset) {
52
+ return null;
53
+ }
54
+ if (args.contentType) {
55
+ asset.content_type = normalizeAssetContentType(args.contentType, asset.name);
56
+ }
57
+ if (args.name) {
58
+ asset.name = args.name;
59
+ }
60
+ const key = getAssetFileName(asset.id, asset.content_type);
61
+ await storeAssetWithThumbnail(asset.user_id, asset.id, key, args.content, asset.content_type);
62
+ asset.size = args.content.length;
63
+ asset.duration = await probeAssetDurationSeconds(asset.content_type, {
64
+ bytes: args.content
65
+ });
66
+ await asset.save();
67
+ return {
68
+ id: asset.id,
69
+ content_type: asset.content_type,
70
+ name: asset.name,
71
+ metadata: asset.metadata ?? null
72
+ };
73
+ }
74
+ //# sourceMappingURL=asset-model-interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-model-interface.js","sourceRoot":"","sources":["../../src/lib/asset-model-interface.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,55 @@
4
4
  * so the tRPC router doesn't need to pull in the whole `http-api.ts` (which
5
5
  * imports `@nodetool-ai/dsl` → `base-nodes` → `kie-nodes` at module load).
6
6
  */
7
+ import { assetFileNameCandidates, getAssetFileName } from "@nodetool-ai/protocol";
8
+ import { type StorageAdapter } from "@nodetool-ai/storage";
7
9
  import type { StorageHandlerOptions } from "../storage-api.js";
8
- export declare function getAssetFileName(assetId: string, contentType: string): string;
10
+ /**
11
+ * `getAssetFileName` is the legacy key shape (no owner prefix). It stays
12
+ * exported because stored `asset://` refs and already-written objects use it.
13
+ * New writes go through `getAssetStorageKey`.
14
+ */
15
+ export { assetFileNameCandidates, getAssetFileName };
16
+ /**
17
+ * Fill in a missing or generic content type from the file name. Browsers
18
+ * often send `application/octet-stream` (or nothing) for `.glb` / `.gltf`
19
+ * / `.svg`.
20
+ */
21
+ export declare function normalizeAssetContentType(contentType: string, fileName?: string): string;
22
+ /**
23
+ * Where an asset's bytes live: `<userId>/<assetId>.<ext>`. The owner is the
24
+ * leading path segment so the tenant boundary is expressible outside this
25
+ * process — a Supabase RLS policy or bucket policy can match on it, and a
26
+ * signed upload URL scoped to such a key can only write into its own owner's
27
+ * prefix.
28
+ */
29
+ export declare function getAssetStorageKey(userId: string, assetId: string, contentType: string): string;
30
+ /** Owner-prefixed thumbnail key for an asset. */
31
+ export declare function getAssetThumbnailKey(userId: string, assetId: string): string;
32
+ /**
33
+ * Resolve the key an asset's bytes actually live under, preferring the
34
+ * owner-prefixed layout and falling back to the flat legacy key. Lets a
35
+ * deployment roll forward before `nodetool storage migrate-keys` has moved
36
+ * its existing objects. Returns null when neither exists.
37
+ */
38
+ export declare function resolveExistingAssetKey(adapter: StorageAdapter, userId: string, fileName: string): Promise<string | null>;
39
+ /**
40
+ * Read an asset's bytes, trying the owner-prefixed key first and the legacy
41
+ * flat key second. Callers have already established that `userId` owns
42
+ * `assetId` (they loaded the row to get `contentType`).
43
+ */
44
+ export declare function retrieveAssetBytes(adapter: StorageAdapter, userId: string, assetId: string, contentType: string): Promise<Uint8Array | null>;
45
+ /**
46
+ * The URI an asset's bytes are stored under, trying the same keys as
47
+ * {@link retrieveAssetBytes}, without reading them. Null when none exists.
48
+ */
49
+ export declare function existingAssetUri(adapter: StorageAdapter, userId: string, assetId: string, contentType: string): Promise<string | null>;
50
+ /**
51
+ * The local file holding an asset's bytes, under the same keys
52
+ * {@link retrieveAssetBytes} reads: a managed file under the local asset root,
53
+ * or an external asset's in-place file. Null on backends that keep no local
54
+ * file, where the caller reads the bytes instead.
55
+ */
56
+ export declare function localAssetPath(adapter: StorageAdapter, userId: string, assetId: string, contentType: string): Promise<string | null>;
9
57
  export declare function getAssetStoragePath(opts?: StorageHandlerOptions): string;
10
58
  //# sourceMappingURL=asset-paths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"asset-paths.d.ts","sourceRoot":"","sources":["../../src/lib/asset-paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAmC/D,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAExE"}
1
+ {"version":3,"file":"asset-paths.d.ts","sourceRoot":"","sources":["../../src/lib/asset-paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACL,uBAAuB,EACvB,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE/D;;;;GAIG;AACH,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,CAAC;AAsCrD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,MAAM,EACnB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CAUR;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,MAAM,CAER;AAED,iDAAiD;AACjD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,MAAM,CAER;AAED;;;;;GAKG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAOxB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAQ5B;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAQxB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,MAAM,CAExE"}
@@ -5,39 +5,135 @@
5
5
  * imports `@nodetool-ai/dsl` → `base-nodes` → `kie-nodes` at module load).
6
6
  */
7
7
  import { getDefaultAssetsPath } from "@nodetool-ai/config";
8
- const CONTENT_TYPE_TO_EXTENSION = {
9
- "image/jpeg": "jpg",
10
- "image/png": "png",
11
- "image/gif": "gif",
12
- "image/svg+xml": "svg",
13
- "image/webp": "webp",
14
- "image/tiff": "tiff",
15
- "image/bmp": "bmp",
16
- "text/plain": "txt",
17
- "text/csv": "csv",
18
- "text/html": "html",
19
- "application/json": "json",
20
- "application/pdf": "pdf",
21
- "application/zip": "zip",
22
- "audio/mpeg": "mp3",
23
- "audio/mp3": "mp3",
24
- "audio/wav": "wav",
25
- "audio/ogg": "ogg",
26
- "audio/aac": "aac",
27
- "audio/x-wav": "wav",
28
- "audio/x-flac": "flac",
29
- "audio/x-m4a": "m4a",
30
- "video/mp4": "mp4",
31
- "video/mpeg": "mpeg",
32
- "video/quicktime": "mov",
33
- "video/x-msvideo": "avi",
34
- "video/webm": "webm"
8
+ import { assetFileNameCandidates, getAssetFileName, hasAssetFileExtension } from "@nodetool-ai/protocol";
9
+ import { assetKeyCandidates, assetObjectKey } from "@nodetool-ai/storage";
10
+ /**
11
+ * `getAssetFileName` is the legacy key shape (no owner prefix). It stays
12
+ * exported because stored `asset://` refs and already-written objects use it.
13
+ * New writes go through `getAssetStorageKey`.
14
+ */
15
+ export { assetFileNameCandidates, getAssetFileName };
16
+ const EXTENSION_TO_INFERRED_TYPE = {
17
+ mp3: "audio/mpeg",
18
+ wav: "audio/wav",
19
+ ogg: "audio/ogg",
20
+ flac: "audio/x-flac",
21
+ m4a: "audio/x-m4a",
22
+ aac: "audio/aac",
23
+ mp4: "video/mp4",
24
+ webm: "video/webm",
25
+ mov: "video/quicktime",
26
+ avi: "video/x-msvideo",
27
+ mpeg: "video/mpeg",
28
+ png: "image/png",
29
+ jpg: "image/jpeg",
30
+ jpeg: "image/jpeg",
31
+ webp: "image/webp",
32
+ gif: "image/gif",
33
+ glb: "model/gltf-binary",
34
+ gltf: "model/gltf+json",
35
+ svg: "image/svg+xml"
35
36
  };
36
- function getFileExtension(contentType) {
37
- return CONTENT_TYPE_TO_EXTENSION[contentType] ?? "bin";
37
+ const GENERIC_CONTENT_TYPES = new Set(["", "application/octet-stream"]);
38
+ function fileExtensionOf(fileName) {
39
+ if (!fileName) {
40
+ return undefined;
41
+ }
42
+ const base = fileName.split(/[\\/]/).pop() ?? "";
43
+ const dot = base.lastIndexOf(".");
44
+ if (dot <= 0 || dot === base.length - 1) {
45
+ return undefined;
46
+ }
47
+ return base.slice(dot + 1).toLowerCase();
48
+ }
49
+ /**
50
+ * Fill in a missing or generic content type from the file name. Browsers
51
+ * often send `application/octet-stream` (or nothing) for `.glb` / `.gltf`
52
+ * / `.svg`.
53
+ */
54
+ export function normalizeAssetContentType(contentType, fileName) {
55
+ if (hasAssetFileExtension(contentType)) {
56
+ return contentType;
57
+ }
58
+ const ext = fileExtensionOf(fileName);
59
+ const inferred = ext ? EXTENSION_TO_INFERRED_TYPE[ext] : undefined;
60
+ if (inferred && GENERIC_CONTENT_TYPES.has(contentType)) {
61
+ return inferred;
62
+ }
63
+ return contentType || "application/octet-stream";
64
+ }
65
+ /**
66
+ * Where an asset's bytes live: `<userId>/<assetId>.<ext>`. The owner is the
67
+ * leading path segment so the tenant boundary is expressible outside this
68
+ * process — a Supabase RLS policy or bucket policy can match on it, and a
69
+ * signed upload URL scoped to such a key can only write into its own owner's
70
+ * prefix.
71
+ */
72
+ export function getAssetStorageKey(userId, assetId, contentType) {
73
+ return assetObjectKey(userId, getAssetFileName(assetId, contentType));
74
+ }
75
+ /** Owner-prefixed thumbnail key for an asset. */
76
+ export function getAssetThumbnailKey(userId, assetId) {
77
+ return assetObjectKey(userId, `${assetId}_thumb.jpg`);
78
+ }
79
+ /**
80
+ * Resolve the key an asset's bytes actually live under, preferring the
81
+ * owner-prefixed layout and falling back to the flat legacy key. Lets a
82
+ * deployment roll forward before `nodetool storage migrate-keys` has moved
83
+ * its existing objects. Returns null when neither exists.
84
+ */
85
+ export async function resolveExistingAssetKey(adapter, userId, fileName) {
86
+ for (const candidate of assetKeyCandidates(userId, fileName)) {
87
+ if (await adapter.exists(adapter.uriForKey(candidate))) {
88
+ return candidate;
89
+ }
90
+ }
91
+ return null;
92
+ }
93
+ /**
94
+ * Read an asset's bytes, trying the owner-prefixed key first and the legacy
95
+ * flat key second. Callers have already established that `userId` owns
96
+ * `assetId` (they loaded the row to get `contentType`).
97
+ */
98
+ export async function retrieveAssetBytes(adapter, userId, assetId, contentType) {
99
+ for (const fileName of assetFileNameCandidates(assetId, contentType)) {
100
+ for (const candidate of assetKeyCandidates(userId, fileName)) {
101
+ const bytes = await adapter.retrieve(adapter.uriForKey(candidate));
102
+ if (bytes)
103
+ return bytes;
104
+ }
105
+ }
106
+ return null;
38
107
  }
39
- export function getAssetFileName(assetId, contentType) {
40
- return `${assetId}.${getFileExtension(contentType)}`;
108
+ /**
109
+ * The URI an asset's bytes are stored under, trying the same keys as
110
+ * {@link retrieveAssetBytes}, without reading them. Null when none exists.
111
+ */
112
+ export async function existingAssetUri(adapter, userId, assetId, contentType) {
113
+ for (const fileName of assetFileNameCandidates(assetId, contentType)) {
114
+ for (const candidate of assetKeyCandidates(userId, fileName)) {
115
+ const uri = adapter.uriForKey(candidate);
116
+ if (await adapter.exists(uri))
117
+ return uri;
118
+ }
119
+ }
120
+ return null;
121
+ }
122
+ /**
123
+ * The local file holding an asset's bytes, under the same keys
124
+ * {@link retrieveAssetBytes} reads: a managed file under the local asset root,
125
+ * or an external asset's in-place file. Null on backends that keep no local
126
+ * file, where the caller reads the bytes instead.
127
+ */
128
+ export async function localAssetPath(adapter, userId, assetId, contentType) {
129
+ for (const fileName of assetFileNameCandidates(assetId, contentType)) {
130
+ for (const candidate of assetKeyCandidates(userId, fileName)) {
131
+ const found = await adapter.localPath(adapter.uriForKey(candidate));
132
+ if (found)
133
+ return found;
134
+ }
135
+ }
136
+ return null;
41
137
  }
42
138
  export function getAssetStoragePath(opts) {
43
139
  return opts?.storagePath ?? getDefaultAssetsPath();
@@ -1 +1 @@
1
- {"version":3,"file":"asset-paths.js","sourceRoot":"","sources":["../../src/lib/asset-paths.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3D,MAAM,yBAAyB,GAA2B;IACxD,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,eAAe,EAAE,KAAK;IACtB,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,KAAK;IACnB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,MAAM;IACnB,kBAAkB,EAAE,MAAM;IAC1B,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,MAAM;IACtB,aAAa,EAAE,KAAK;IACpB,WAAW,EAAE,KAAK;IAClB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,MAAM;CACrB,CAAC;AAEF,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,yBAAyB,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,OAAe,EACf,WAAmB;IAEnB,OAAO,GAAG,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAA4B;IAC9D,OAAO,IAAI,EAAE,WAAW,IAAI,oBAAoB,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"asset-paths.js","sourceRoot":"","sources":["../../src/lib/asset-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * The wire shape of one asset row, shared by the REST asset routes and the
3
+ * tRPC `assets.*` procedures.
4
+ *
5
+ * Both surfaces answer the same JSON, so both mint it here: the same field
6
+ * list, the same owner-prefixed storage keys, and the same lazily-built URL
7
+ * builder. A field added on one path used to have to be added on the other.
8
+ */
9
+ import type { Asset } from "@nodetool-ai/models";
10
+ import type { AssetResponse } from "@nodetool-ai/protocol/api-schemas/assets.js";
11
+ export declare function toAssetResponse(asset: Asset): Promise<AssetResponse>;
12
+ //# sourceMappingURL=asset-response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-response.d.ts","sourceRoot":"","sources":["../../src/lib/asset-response.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AA0BjF,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,CAkE1E"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * The wire shape of one asset row, shared by the REST asset routes and the
3
+ * tRPC `assets.*` procedures.
4
+ *
5
+ * Both surfaces answer the same JSON, so both mint it here: the same field
6
+ * list, the same owner-prefixed storage keys, and the same lazily-built URL
7
+ * builder. A field added on one path used to have to be added on the other.
8
+ */
9
+ import { loadAssetStorageConfig } from "@nodetool-ai/config";
10
+ import { assetObjectKey, createAssetUrlBuilder } from "@nodetool-ai/storage";
11
+ import { getAssetFileName } from "./asset-paths.js";
12
+ import { assetHasRasterThumbnail, thumbnailKey } from "./thumbnail.js";
13
+ import { externalAssetMtime, isExternalAssetOffline } from "./external-asset-lookup.js";
14
+ import { videoProxyState } from "./video-proxy.js";
15
+ let cachedConfig = null;
16
+ let cachedBuilder = null;
17
+ /**
18
+ * The URL builder for the configured storage backend, rebuilt when the
19
+ * backend kind changes (a test switching backends mid-process).
20
+ */
21
+ function assetUrlBuilder() {
22
+ const config = loadAssetStorageConfig();
23
+ if (!cachedBuilder || cachedConfig?.kind !== config.kind) {
24
+ cachedConfig = config;
25
+ cachedBuilder = createAssetUrlBuilder(config);
26
+ }
27
+ return cachedBuilder;
28
+ }
29
+ export async function toAssetResponse(asset) {
30
+ const isFolder = asset.content_type === "folder";
31
+ const fileName = isFolder
32
+ ? null
33
+ : getAssetFileName(asset.id, asset.content_type);
34
+ // Owner-prefixed keys. Objects written before this layout are flat; the
35
+ // `/api/storage` route falls back to the legacy path on a miss, and cloud
36
+ // backends need `nodetool storage migrate-keys` (see docs/configuration.md).
37
+ const getUrl = fileName
38
+ ? await assetUrlBuilder()(assetObjectKey(asset.user_id, fileName)).catch(() => null)
39
+ : null;
40
+ const hasThumbnail = assetHasRasterThumbnail(asset.content_type);
41
+ const thumbKeyUrl = hasThumbnail
42
+ ? await assetUrlBuilder()(assetObjectKey(asset.user_id, thumbnailKey(asset.id))).catch(() => null)
43
+ : null;
44
+ // A relink regenerates an external asset's thumbnail under the same key.
45
+ // The file's mtime in the URL keeps a cached thumbnail of the previous file
46
+ // from standing in for the new one. `get_url` stays unversioned (D5).
47
+ const externalMtime = externalAssetMtime(asset);
48
+ const thumbUrl = thumbKeyUrl && externalMtime !== null
49
+ ? `${thumbKeyUrl}?v=${Math.trunc(externalMtime)}`
50
+ : thumbKeyUrl;
51
+ const response = {
52
+ id: asset.id,
53
+ user_id: asset.user_id,
54
+ workflow_id: asset.workflow_id ?? null,
55
+ parent_id: asset.parent_id ?? null,
56
+ name: asset.name,
57
+ content_type: asset.content_type,
58
+ size: asset.size ?? null,
59
+ metadata: asset.metadata ?? null,
60
+ sketch_document_id: asset.sketch_document_id ?? null,
61
+ created_at: asset.created_at,
62
+ get_url: getUrl,
63
+ thumb_url: thumbUrl,
64
+ duration: asset.duration ?? null,
65
+ node_id: asset.node_id ?? null,
66
+ job_id: asset.job_id ?? null,
67
+ timeline_id: asset.timeline_id ?? null,
68
+ project_id: asset.project_id,
69
+ favorite: asset.favorite
70
+ };
71
+ // Only assets that reference a file in place carry the flag.
72
+ if (asset.external_path) {
73
+ response.offline = await isExternalAssetOffline(asset);
74
+ }
75
+ // Video on a local server: whether the preview may play the proxy. The URL
76
+ // carries the source version, so a remade proxy is never served from cache.
77
+ const proxy = await videoProxyState(asset);
78
+ if (proxy) {
79
+ response.proxy_status = proxy.status;
80
+ response.proxy_url =
81
+ proxy.key !== null
82
+ ? await assetUrlBuilder()(proxy.key)
83
+ .then((url) => `${url}?v=${proxy.version}`)
84
+ .catch(() => null)
85
+ : null;
86
+ }
87
+ return response;
88
+ }
89
+ //# sourceMappingURL=asset-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-response.js","sourceRoot":"","sources":["../../src/lib/asset-response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** The count the timeline asks for; also the default. */
2
+ export declare const DEFAULT_PEAK_COUNT = 2000;
3
+ export declare const MAX_PEAK_COUNT = 20000;
4
+ export interface AudioPeaks {
5
+ /** `count` abs-max values of channel 0, each in [0, 1] for normal audio. */
6
+ peaks: number[];
7
+ /** Decoded length of the audio stream. */
8
+ duration_ms: number;
9
+ }
10
+ /**
11
+ * Decode channel 0 of the first audio stream of `filePath` with ffmpeg and
12
+ * reduce it to `count` abs-max peaks. Returns null when the file has no audio
13
+ * stream. Throws {@link MediaToolingMissingError} when ffmpeg is missing.
14
+ */
15
+ export declare function computeAudioPeaks(filePath: string, count: number): Promise<AudioPeaks | null>;
16
+ /**
17
+ * GET /api/assets/:id/peaks?count=<n>
18
+ *
19
+ * Answers `{ peaks, duration_ms }` for an audio or video asset the caller
20
+ * owns. The `x-peaks-cache` header says whether the disk cache answered.
21
+ */
22
+ export declare function handleAssetPeaks(userId: string, assetId: string, searchParams: URLSearchParams): Promise<Response>;
23
+ //# sourceMappingURL=audio-peaks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audio-peaks.d.ts","sourceRoot":"","sources":["../../src/lib/audio-peaks.ts"],"names":[],"mappings":"AA+BA,yDAAyD;AACzD,eAAO,MAAM,kBAAkB,OAAO,CAAC;AACvC,eAAO,MAAM,cAAc,QAAS,CAAC;AAUrC,MAAM,WAAW,UAAU;IACzB,4EAA4E;IAC5E,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,0CAA0C;IAC1C,WAAW,EAAE,MAAM,CAAC;CACrB;AA8FD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAO5B;AA6ID;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,eAAe,GAC5B,OAAO,CAAC,QAAQ,CAAC,CAwEnB"}