@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,405 @@
1
+ /**
2
+ * File-watch adapter — the host-owned ingestion adapter for `file_watch`
3
+ * registrations (compiled from `FileWatchTriggerNode`s, see
4
+ * `registration-sync.ts`).
5
+ *
6
+ * File events arrive live through `fs.watch`, unlike the scheduler's poll
7
+ * sweep — so the sweep timer here only reconciles *which* registrations are
8
+ * watched: it opens a watcher for every enabled `file_watch` registration
9
+ * that isn't already watched with the current config (skipping — and
10
+ * recording `last_error` for — paths that don't exist), and closes the
11
+ * watcher for any registration that is no longer enabled, no longer exists,
12
+ * or whose watched path/recursion setting changed. Pattern/ignore-pattern
13
+ * matching and debounce reuse `FileWatchTriggerNode`'s own logic via the
14
+ * shared `@nodetool-ai/automation-nodes` helper, so the adapter and the
15
+ * in-editor live-test path can never drift apart.
16
+ *
17
+ * Follows `scheduler.ts`'s shape: a pure-ish sweep function callers can drive
18
+ * directly in tests, a thin `setInterval` wrapper for production, and a stop
19
+ * handle. The one difference is unavoidable statefulness — `fs.watch` handles
20
+ * must persist across sweeps — so the sweep function takes an explicit state
21
+ * map instead of being fully pure.
22
+ */
23
+ import * as fs from "node:fs";
24
+ import * as path from "node:path";
25
+ import { createLogger } from "@nodetool-ai/config";
26
+ import { TriggerRegistration } from "@nodetool-ai/models";
27
+ import { FileWatchDebouncer, shouldEmitFileWatchEvent, shouldProcessFileWatchPath, isWatchedFileEvent } from "@nodetool-ai/automation-nodes";
28
+ import { isFunctionValue, isString } from "../lib/wire-values.js";
29
+ // Stryker disable next-line StringLiteral: logger name is a diagnostic label, not a behavioural contract
30
+ const log = createLogger("nodetool.websocket.triggers.file-watch");
31
+ const DEFAULT_SWEEP_INTERVAL_MS = 5_000;
32
+ /**
33
+ * Downtime catch-up (`config_json.catch_up: true`). `fs.watch` has no
34
+ * history, so the only way to notice a change made while the adapter wasn't
35
+ * running is to compare a snapshot taken before stopping against a fresh
36
+ * scan on the next start. Capped so a huge tree can't make shutdown/startup
37
+ * hang or bloat the `cursor` column — `last_error` records when the cap was
38
+ * hit so the truncation is visible, not silent.
39
+ */
40
+ const CATCH_UP_SNAPSHOT_CAP = 10_000;
41
+ export function createFileWatchState() {
42
+ return new Map();
43
+ }
44
+ function readString(config, key, fallback) {
45
+ const raw = config?.[key];
46
+ return isString(raw) ? raw : fallback;
47
+ }
48
+ function readBool(config, key, fallback) {
49
+ const raw = config?.[key];
50
+ return raw === undefined || raw === null ? fallback : Boolean(raw);
51
+ }
52
+ function readNumber(config, key, fallback) {
53
+ const raw = config?.[key];
54
+ if (raw === undefined || raw === null)
55
+ return fallback;
56
+ const value = Number(raw);
57
+ return Number.isFinite(value) ? value : fallback;
58
+ }
59
+ function readStringArray(config, key, fallback) {
60
+ const raw = config?.[key];
61
+ return Array.isArray(raw) ? raw.filter((v) => typeof v === "string") : fallback;
62
+ }
63
+ /** The same property names `FileWatchTriggerNode` snapshots into the
64
+ * registration on sync (`registration-sync.ts`). */
65
+ function resolveWatchPath(config) {
66
+ return path.resolve(readString(config, "path", "."));
67
+ }
68
+ function configFilter(config) {
69
+ return {
70
+ patterns: readStringArray(config, "patterns", ["*"]),
71
+ ignorePatterns: readStringArray(config, "ignore_patterns", []),
72
+ events: readStringArray(config, "events", [
73
+ "created",
74
+ "modified",
75
+ "deleted",
76
+ "moved"
77
+ ])
78
+ };
79
+ }
80
+ function configSnapshotKey(config) {
81
+ return JSON.stringify({
82
+ path: resolveWatchPath(config),
83
+ recursive: readBool(config, "recursive", false)
84
+ });
85
+ }
86
+ async function deliverFileWatchEvent(registration, eventType, filePath, isDirectory, opts, inputId) {
87
+ const nowMs = (opts.now ?? Date.now)();
88
+ const payload = {
89
+ event: eventType,
90
+ path: filePath,
91
+ dest_path: "",
92
+ is_directory: isDirectory,
93
+ timestamp: new Date(nowMs).toISOString()
94
+ };
95
+ try {
96
+ await opts.wakeupService.deliverTriggerInput({
97
+ runId: registration.workflow_id,
98
+ nodeId: registration.node_id,
99
+ inputId,
100
+ payload
101
+ });
102
+ }
103
+ catch (err) {
104
+ const error = err instanceof Error ? err : new Error(String(err));
105
+ registration.last_error = error.message;
106
+ await registration.save();
107
+ log.warn(`File-watch registration ${registration.id} failed to deliver trigger input`, error);
108
+ return;
109
+ }
110
+ registration.last_fired_at = new Date(nowMs).toISOString();
111
+ registration.last_error = null;
112
+ await registration.save();
113
+ opts.notify?.({ registrationId: registration.id, inputId });
114
+ }
115
+ /**
116
+ * Attach an `fs.watch` handle for one registration. Mirrors
117
+ * `FileWatchTriggerNode.genProcess()`'s `watchDir`: `fs.watch` emits
118
+ * `"rename"` for create/delete and `"change"` for modify.
119
+ */
120
+ function attachWatcher(registration, watchPath, recursive, filter, debouncer, opts) {
121
+ const eventCounter = { count: 0 };
122
+ const handleEvent = (eventType, filePath, isDirectory) => {
123
+ if (!shouldEmitFileWatchEvent(eventType, filePath, filter, debouncer)) {
124
+ return;
125
+ }
126
+ eventCounter.count += 1;
127
+ const nowMs = (opts.now ?? Date.now)();
128
+ const inputId = `${registration.id}:${nowMs}:${eventCounter.count}`;
129
+ void deliverFileWatchEvent(registration, eventType, filePath, isDirectory, opts, inputId);
130
+ };
131
+ const watch = opts.watch ?? fs.watch;
132
+ return watch(watchPath, { recursive, persistent: true }, (eventType, filename) => {
133
+ if (!filename)
134
+ return;
135
+ const fullPath = path.join(watchPath, filename.toString());
136
+ const exists = fs.existsSync(fullPath);
137
+ const isDirectory = exists && fs.statSync(fullPath).isDirectory();
138
+ if (eventType === "rename") {
139
+ if (exists) {
140
+ handleEvent("created", fullPath, isDirectory);
141
+ }
142
+ else {
143
+ handleEvent("deleted", fullPath, false);
144
+ }
145
+ }
146
+ else if (eventType === "change") {
147
+ // macOS can report a change for the watched directory itself using
148
+ // its basename. Joining that name to watchPath produces a nonexistent
149
+ // duplicate path, which is not a valid modified-file event.
150
+ if (!exists)
151
+ return;
152
+ handleEvent("modified", fullPath, isDirectory);
153
+ }
154
+ });
155
+ }
156
+ /**
157
+ * Scan `watchPath` for the files a watcher for `filter` would care about
158
+ * (directories are never diffed — only file mtimes), capped at
159
+ * `CATCH_UP_SNAPSHOT_CAP` entries. BFS order so a capped scan takes a
160
+ * deterministic, roughly breadth-first prefix of the tree rather than an
161
+ * arbitrary one that depends on `readdirSync` ordering across directories.
162
+ */
163
+ function scanDirectorySnapshot(watchPath, recursive, filter) {
164
+ const entries = {};
165
+ let truncated = false;
166
+ const dirs = [watchPath];
167
+ while (dirs.length > 0 && !truncated) {
168
+ const dir = dirs.shift();
169
+ let dirents;
170
+ try {
171
+ dirents = fs.readdirSync(dir, { withFileTypes: true });
172
+ }
173
+ catch {
174
+ // Directory vanished mid-scan (e.g. concurrent delete) — skip it.
175
+ continue;
176
+ }
177
+ for (const dirent of dirents) {
178
+ const fullPath = path.join(dir, dirent.name);
179
+ if (dirent.isDirectory()) {
180
+ if (recursive)
181
+ dirs.push(fullPath);
182
+ continue;
183
+ }
184
+ if (!dirent.isFile())
185
+ continue;
186
+ if (!shouldProcessFileWatchPath(fullPath, filter))
187
+ continue;
188
+ if (Object.keys(entries).length >= CATCH_UP_SNAPSHOT_CAP) {
189
+ truncated = true;
190
+ break;
191
+ }
192
+ try {
193
+ entries[fullPath] = fs.statSync(fullPath).mtimeMs;
194
+ }
195
+ catch {
196
+ // File vanished between readdir and stat — skip it.
197
+ }
198
+ }
199
+ }
200
+ return { snapshot: { entries }, truncated };
201
+ }
202
+ /**
203
+ * Diff a stored snapshot against a fresh scan: files whose mtime changed are
204
+ * `modified`, files absent from the old snapshot are `created`, files absent
205
+ * from the new scan are `deleted`.
206
+ */
207
+ function diffSnapshots(previous, current) {
208
+ const changes = [];
209
+ for (const [filePath, mtimeMs] of Object.entries(current.entries)) {
210
+ const previousMtime = previous.entries[filePath];
211
+ if (previousMtime === undefined) {
212
+ changes.push({ event: "created", path: filePath, mtimeMs });
213
+ }
214
+ else if (previousMtime !== mtimeMs) {
215
+ changes.push({ event: "modified", path: filePath, mtimeMs });
216
+ }
217
+ }
218
+ for (const filePath of Object.keys(previous.entries)) {
219
+ if (!(filePath in current.entries)) {
220
+ changes.push({ event: "deleted", path: filePath, mtimeMs: 0 });
221
+ }
222
+ }
223
+ return changes;
224
+ }
225
+ /**
226
+ * Replay changes that happened while the adapter wasn't running, using the
227
+ * `{path -> mtime}` snapshot `stopFileWatch` persisted into `cursor`. Runs
228
+ * before `attachWatcher` so catch-up events are delivered ahead of anything
229
+ * the live watcher itself observes.
230
+ *
231
+ * `inputId` is deterministic — `<registrationId>:catchup:<event>:<path>:
232
+ * <mtimeMs>` — instead of timestamp-based like the live-event ids. If the
233
+ * server crashes twice in a row before a clean `stopFileWatch` ever runs
234
+ * again (so `cursor` still holds the same stale snapshot both times), both
235
+ * restarts diff against the identical baseline and recompute the identical
236
+ * change list, which produces the identical inputIds. `deliverTriggerInput`
237
+ * is idempotent by inputId — durably so, once wired to the DB-backed store
238
+ * (Task 3/11) whose `trigger_inputs.input_id` is uniquely indexed — so the
239
+ * replay from the second restart is rejected as a duplicate instead of
240
+ * dispatching the same catch-up event twice. A counter or wall-clock id
241
+ * would not have that property: it would mint a fresh id each replay and
242
+ * double-fire on the second crash-restart.
243
+ */
244
+ async function runCatchUpEvents(registration, watchPath, recursive, filter, opts) {
245
+ const cursorRaw = registration.cursor;
246
+ if (!cursorRaw)
247
+ return;
248
+ let previous;
249
+ try {
250
+ const parsed = JSON.parse(cursorRaw);
251
+ previous = { entries: parsed.entries ?? {} };
252
+ }
253
+ catch {
254
+ // Cursor predates this format (or is corrupt) — nothing to replay.
255
+ return;
256
+ }
257
+ const { snapshot: current } = scanDirectorySnapshot(watchPath, recursive, filter);
258
+ const changes = diffSnapshots(previous, current);
259
+ for (const change of changes) {
260
+ if (!isWatchedFileEvent(change.event, filter.events))
261
+ continue;
262
+ const inputId = `${registration.id}:catchup:${change.event}:${change.path}:${change.mtimeMs}`;
263
+ await deliverFileWatchEvent(registration, change.event, change.path, false, opts, inputId);
264
+ }
265
+ // Consume the cursor: the live watcher takes over from here, and leaving
266
+ // the stale snapshot in place would replay the same diff on every future
267
+ // restart until the next clean stop overwrites it.
268
+ registration.cursor = null;
269
+ await registration.save();
270
+ }
271
+ /**
272
+ * Run one reconciliation sweep against the current set of enabled
273
+ * `file_watch` registrations: closes watchers for registrations that are no
274
+ * longer enabled/present/unchanged, and opens watchers for the rest. Skips —
275
+ * and records `last_error` for — a registration whose path does not exist.
276
+ */
277
+ export async function runFileWatchSweepOnce(state, opts) {
278
+ const registrations = await TriggerRegistration.findEnabledByKind("file_watch");
279
+ const enabledIds = new Set(registrations.map((r) => r.id));
280
+ for (const [id, entry] of [...state.entries()]) {
281
+ if (!enabledIds.has(id)) {
282
+ entry.watcher.close();
283
+ state.delete(id);
284
+ }
285
+ }
286
+ for (const registration of registrations) {
287
+ const snapshot = configSnapshotKey(registration.config_json);
288
+ const existing = state.get(registration.id);
289
+ if (existing && existing.configSnapshot === snapshot)
290
+ continue;
291
+ if (existing) {
292
+ existing.watcher.close();
293
+ state.delete(registration.id);
294
+ }
295
+ const config = registration.config_json;
296
+ const watchPath = resolveWatchPath(config);
297
+ if (!fs.existsSync(watchPath)) {
298
+ registration.last_error = `Watch path does not exist: ${watchPath}`;
299
+ await registration.save();
300
+ continue;
301
+ }
302
+ const recursive = readBool(config, "recursive", false);
303
+ const debounceMs = readNumber(config, "debounce_seconds", 0.5) * 1000;
304
+ const filter = configFilter(config);
305
+ const debouncer = new FileWatchDebouncer(debounceMs, opts.now);
306
+ const catchUp = readBool(config, "catch_up", false);
307
+ if (catchUp) {
308
+ await runCatchUpEvents(registration, watchPath, recursive, filter, opts);
309
+ }
310
+ let watcher;
311
+ try {
312
+ watcher = attachWatcher(registration, watchPath, recursive, filter, debouncer, opts);
313
+ }
314
+ catch (err) {
315
+ const error = err instanceof Error ? err : new Error(String(err));
316
+ registration.last_error = `Failed to watch path: ${watchPath} (${error.message})`;
317
+ await registration.save();
318
+ log.warn(`File-watch registration ${registration.id} failed to attach a watcher`, error);
319
+ continue;
320
+ }
321
+ if (registration.last_error) {
322
+ registration.last_error = null;
323
+ await registration.save();
324
+ }
325
+ state.set(registration.id, {
326
+ watcher,
327
+ configSnapshot: snapshot,
328
+ registration,
329
+ watchPath,
330
+ recursive,
331
+ filter,
332
+ catchUp
333
+ });
334
+ }
335
+ }
336
+ /**
337
+ * Capture a `{path -> mtime}` snapshot for a catch-up-enabled registration
338
+ * and persist it into `cursor` so the next start can diff against it. Caps
339
+ * at `CATCH_UP_SNAPSHOT_CAP` entries and notes the truncation in
340
+ * `last_error` — a capped snapshot means changes to the excluded files while
341
+ * stopped may be missed, which is worth surfacing even though it doesn't
342
+ * block anything.
343
+ */
344
+ async function captureCatchUpSnapshot(entry) {
345
+ if (!entry.catchUp)
346
+ return;
347
+ const { snapshot, truncated } = scanDirectorySnapshot(entry.watchPath, entry.recursive, entry.filter);
348
+ entry.registration.cursor = JSON.stringify(snapshot);
349
+ if (truncated) {
350
+ entry.registration.last_error = `File-watch catch-up snapshot capped at ${CATCH_UP_SNAPSHOT_CAP} entries; changes to excluded files while stopped may be missed.`;
351
+ }
352
+ try {
353
+ await entry.registration.save();
354
+ }
355
+ catch (err) {
356
+ const error = err instanceof Error ? err : new Error(String(err));
357
+ log.warn(`File-watch registration ${entry.registration.id} failed to persist catch-up snapshot`, error);
358
+ }
359
+ }
360
+ /** Close every watcher tracked by `state`, persisting a catch-up snapshot
361
+ * for each catch-up-enabled registration, and clear the state. */
362
+ export async function stopFileWatch(state) {
363
+ for (const entry of state.values()) {
364
+ entry.watcher.close();
365
+ await captureCatchUpSnapshot(entry);
366
+ }
367
+ state.clear();
368
+ }
369
+ /**
370
+ * Start the file-watch adapter: an immediate sweep plus a periodic
371
+ * reconciliation timer (`startReaper`/`startScheduler` shape). File events
372
+ * themselves are not polled — they arrive live through each registration's
373
+ * `fs.watch` handle; only registration churn (new/disabled/changed) waits for
374
+ * the sweep.
375
+ */
376
+ export function startFileWatch(opts) {
377
+ const intervalMs = opts.intervalMs ?? DEFAULT_SWEEP_INTERVAL_MS;
378
+ const state = createFileWatchState();
379
+ let sweepPromise = null;
380
+ const sweep = () => {
381
+ if (sweepPromise)
382
+ return;
383
+ sweepPromise = runFileWatchSweepOnce(state, opts)
384
+ .catch((err) => {
385
+ log.warn("File-watch sweep failed", err instanceof Error ? err : new Error(String(err)));
386
+ })
387
+ .finally(() => {
388
+ sweepPromise = null;
389
+ });
390
+ };
391
+ sweep();
392
+ const timer = setInterval(sweep, intervalMs);
393
+ if (isFunctionValue(timer.unref)) {
394
+ timer.unref();
395
+ }
396
+ return async () => {
397
+ clearInterval(timer);
398
+ // A sweep that was already running can attach watchers after this call
399
+ // begins. Wait for it before closing the state so the returned promise
400
+ // means that teardown is complete.
401
+ await sweepPromise;
402
+ await stopFileWatch(state);
403
+ };
404
+ }
405
+ //# sourceMappingURL=file-watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-watch.js","sourceRoot":"","sources":["../../src/triggers/file-watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Registration sync — compiles a workflow's trigger nodes into durable
3
+ * `trigger_registrations` rows.
4
+ *
5
+ * Runs whenever a workflow is saved. Every node whose type maps to a known
6
+ * trigger kind gets one registration row, with the node's properties
7
+ * snapshotted into `config_json`; rows for node ids no longer present in the
8
+ * graph are deleted. Saving never arms a trigger: with `options.enabled`
9
+ * omitted, existing rows keep the state the Activate toggle last set and new
10
+ * rows start disabled. Passing `enabled` explicitly is the workflow-level
11
+ * "active" switch; the start/stop endpoints in the jobs router flip a single
12
+ * registration instead.
13
+ */
14
+ import { TriggerRegistration } from "@nodetool-ai/models";
15
+ import type { Workflow as WorkflowModel } from "@nodetool-ai/models";
16
+ import { TRIGGER_KIND_BY_NODE_TYPE } from "@nodetool-ai/protocol";
17
+ import type { TriggerKind } from "@nodetool-ai/protocol";
18
+ export { TRIGGER_KIND_BY_NODE_TYPE };
19
+ export type { TriggerKind };
20
+ interface SyncRegistrationsOptions {
21
+ /**
22
+ * Workflow-level activation state to apply to every synced row. Omit it on
23
+ * the plain save path: existing rows then keep whatever the Activate toggle
24
+ * last set, and new rows start disabled. Arming a trigger is always an
25
+ * explicit act, never a side effect of saving the graph.
26
+ */
27
+ enabled?: boolean;
28
+ }
29
+ /**
30
+ * Reconcile a workflow's `trigger_registrations` rows against its current
31
+ * graph. Returns the registrations that now exist for the workflow.
32
+ */
33
+ export declare function syncRegistrations(workflow: WorkflowModel, options: SyncRegistrationsOptions): Promise<TriggerRegistration[]>;
34
+ //# sourceMappingURL=registration-sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration-sync.d.ts","sourceRoot":"","sources":["../../src/triggers/registration-sync.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAY,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMzD,OAAO,EAAE,yBAAyB,EAAE,CAAC;AACrC,YAAY,EAAE,WAAW,EAAE,CAAC;AAW5B,UAAU,wBAAwB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAiGD;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,aAAa,EACvB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CA4EhC"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Registration sync — compiles a workflow's trigger nodes into durable
3
+ * `trigger_registrations` rows.
4
+ *
5
+ * Runs whenever a workflow is saved. Every node whose type maps to a known
6
+ * trigger kind gets one registration row, with the node's properties
7
+ * snapshotted into `config_json`; rows for node ids no longer present in the
8
+ * graph are deleted. Saving never arms a trigger: with `options.enabled`
9
+ * omitted, existing rows keep the state the Activate toggle last set and new
10
+ * rows start disabled. Passing `enabled` explicitly is the workflow-level
11
+ * "active" switch; the start/stop endpoints in the jobs router flip a single
12
+ * registration instead.
13
+ */
14
+ import { randomBytes, createHash } from "node:crypto";
15
+ import { RunEvent, TriggerRegistration } from "@nodetool-ai/models";
16
+ import { TRIGGER_KIND_BY_NODE_TYPE } from "@nodetool-ai/protocol";
17
+ import { isObjectLike, isString } from "../lib/wire-values.js";
18
+ export { TRIGGER_KIND_BY_NODE_TYPE };
19
+ /** Keys `syncRegistrations` writes into a webhook registration's `config_json`
20
+ * that are not part of the node's own property snapshot — stripped out
21
+ * before diffing so token/secret rotation doesn't happen on every save. */
22
+ const WEBHOOK_BOOKKEEPING_KEYS = [
23
+ "webhook_token",
24
+ "webhook_secret",
25
+ "webhook_secret_hash"
26
+ ];
27
+ /**
28
+ * A graph node's own property bag, following the same `properties`-then-
29
+ * `data` precedence the kernel graph loader uses (`kernel/src/graph.ts`).
30
+ */
31
+ function extractNodeProps(node) {
32
+ const properties = node.properties;
33
+ if (isObjectLike(properties)) {
34
+ return { ...properties };
35
+ }
36
+ const data = node.data;
37
+ if (isObjectLike(data)) {
38
+ return { ...data };
39
+ }
40
+ return {};
41
+ }
42
+ function hashSecret(secret) {
43
+ return createHash("sha256").update(secret).digest("hex");
44
+ }
45
+ function generateWebhookToken() {
46
+ return randomBytes(24).toString("hex");
47
+ }
48
+ /**
49
+ * The shared secret a sender puts in `x-webhook-secret`. It is kept in
50
+ * plaintext because the user has to read it back to configure the sending
51
+ * system — there is no show-once channel — and stored next to its digest so
52
+ * the ingestion route can compare hashes in constant time without rehashing
53
+ * per request.
54
+ */
55
+ function generateWebhookSecret() {
56
+ return randomBytes(32).toString("hex");
57
+ }
58
+ function stripWebhookBookkeeping(config) {
59
+ const rest = { ...config };
60
+ for (const key of WEBHOOK_BOOKKEEPING_KEYS) {
61
+ delete rest[key];
62
+ }
63
+ return rest;
64
+ }
65
+ /** True when the node-property portion of two config snapshots differs
66
+ * (ignoring webhook token/secret bookkeeping, which sync owns). */
67
+ function configPropsChanged(previous, nextProps) {
68
+ if (!previous)
69
+ return true;
70
+ const previousProps = stripWebhookBookkeeping(previous);
71
+ return JSON.stringify(previousProps) !== JSON.stringify(nextProps);
72
+ }
73
+ function collectTriggerNodes(workflow) {
74
+ const nodes = workflow.graph?.nodes ?? [];
75
+ const entries = [];
76
+ for (const rawNode of nodes) {
77
+ const node = rawNode;
78
+ const nodeId = isString(node.id) ? node.id : undefined;
79
+ const nodeType = isString(node.type) ? node.type : undefined;
80
+ if (!nodeId || !nodeType)
81
+ continue;
82
+ const kind = TRIGGER_KIND_BY_NODE_TYPE[nodeType];
83
+ if (!kind)
84
+ continue;
85
+ entries.push({ nodeId, kind, props: extractNodeProps(node) });
86
+ }
87
+ return entries;
88
+ }
89
+ async function emitTriggerRegistered(workflow, registration) {
90
+ await RunEvent.appendEvent(workflow.id, "TriggerRegistered", {
91
+ registration_id: registration.id,
92
+ workflow_id: workflow.id,
93
+ kind: registration.kind
94
+ }, registration.node_id);
95
+ }
96
+ /**
97
+ * Reconcile a workflow's `trigger_registrations` rows against its current
98
+ * graph. Returns the registrations that now exist for the workflow.
99
+ */
100
+ export async function syncRegistrations(workflow, options) {
101
+ const triggerNodes = collectTriggerNodes(workflow);
102
+ const triggerNodeIds = new Set(triggerNodes.map((n) => n.nodeId));
103
+ const existing = await TriggerRegistration.findByWorkflow(workflow.id);
104
+ const existingByNodeId = new Map(existing.map((r) => [r.node_id, r]));
105
+ const results = [];
106
+ for (const entry of triggerNodes) {
107
+ const current = existingByNodeId.get(entry.nodeId) ?? null;
108
+ const wasEnabled = current ? current.enabled === 1 : false;
109
+ let config = { ...entry.props };
110
+ if (entry.kind === "webhook") {
111
+ const previousConfig = current?.config_json ?? null;
112
+ const webhookToken = previousConfig?.webhook_token ??
113
+ generateWebhookToken();
114
+ const webhookSecret = previousConfig?.webhook_secret ??
115
+ generateWebhookSecret();
116
+ config = {
117
+ ...config,
118
+ webhook_token: webhookToken,
119
+ webhook_secret: webhookSecret,
120
+ webhook_secret_hash: hashSecret(webhookSecret)
121
+ };
122
+ }
123
+ const propsChanged = configPropsChanged(current?.config_json ?? null, entry.props);
124
+ const enabled = options.enabled ?? wasEnabled;
125
+ let registration;
126
+ if (current) {
127
+ current.kind = entry.kind;
128
+ current.config_json = config;
129
+ current.enabled = enabled ? 1 : 0;
130
+ if (propsChanged) {
131
+ current.cursor = null;
132
+ }
133
+ await current.save();
134
+ registration = current;
135
+ }
136
+ else {
137
+ registration = await TriggerRegistration.create({
138
+ user_id: workflow.user_id,
139
+ workflow_id: workflow.id,
140
+ node_id: entry.nodeId,
141
+ kind: entry.kind,
142
+ config_json: config,
143
+ enabled: enabled ? 1 : 0,
144
+ cursor: null
145
+ });
146
+ }
147
+ if (enabled && !wasEnabled) {
148
+ await emitTriggerRegistered(workflow, registration);
149
+ }
150
+ results.push(registration);
151
+ }
152
+ // Registrations for nodes that no longer exist (or are no longer trigger
153
+ // nodes) are removed outright — cursors only survive a disable, not a
154
+ // deletion.
155
+ for (const reg of existing) {
156
+ if (!triggerNodeIds.has(reg.node_id)) {
157
+ await reg.delete();
158
+ }
159
+ }
160
+ return results;
161
+ }
162
+ //# sourceMappingURL=registration-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registration-sync.js","sourceRoot":"","sources":["../../src/triggers/registration-sync.ts"],"names":[],"mappings":"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"}