botmux 2.111.0 → 2.112.0

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 (1041) hide show
  1. package/README.en.md +19 -7
  2. package/README.md +19 -7
  3. package/dist/adapters/adopt-route.d.ts.map +1 -1
  4. package/dist/adapters/adopt-route.js +2 -1
  5. package/dist/adapters/adopt-route.js.map +1 -1
  6. package/dist/adapters/backend/herdr-backend.d.ts +29 -0
  7. package/dist/adapters/backend/herdr-backend.d.ts.map +1 -1
  8. package/dist/adapters/backend/herdr-backend.js +167 -0
  9. package/dist/adapters/backend/herdr-backend.js.map +1 -1
  10. package/dist/adapters/backend/riff-backend.js +2 -2
  11. package/dist/adapters/backend/sandbox.d.ts +61 -6
  12. package/dist/adapters/backend/sandbox.d.ts.map +1 -1
  13. package/dist/adapters/backend/sandbox.js +235 -43
  14. package/dist/adapters/backend/sandbox.js.map +1 -1
  15. package/dist/adapters/backend/tmux-backend.d.ts +1 -0
  16. package/dist/adapters/backend/tmux-backend.d.ts.map +1 -1
  17. package/dist/adapters/backend/tmux-backend.js +1 -0
  18. package/dist/adapters/backend/tmux-backend.js.map +1 -1
  19. package/dist/adapters/cli/claude-code.d.ts +2 -0
  20. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  21. package/dist/adapters/cli/claude-code.js +7 -0
  22. package/dist/adapters/cli/claude-code.js.map +1 -1
  23. package/dist/adapters/cli/codex-app-turn.d.ts +16 -0
  24. package/dist/adapters/cli/codex-app-turn.d.ts.map +1 -1
  25. package/dist/adapters/cli/codex-app-turn.js +26 -0
  26. package/dist/adapters/cli/codex-app-turn.js.map +1 -1
  27. package/dist/adapters/cli/codex.d.ts.map +1 -1
  28. package/dist/adapters/cli/codex.js +1 -0
  29. package/dist/adapters/cli/codex.js.map +1 -1
  30. package/dist/adapters/cli/grok.d.ts +8 -6
  31. package/dist/adapters/cli/grok.d.ts.map +1 -1
  32. package/dist/adapters/cli/grok.js +14 -6
  33. package/dist/adapters/cli/grok.js.map +1 -1
  34. package/dist/adapters/cli/read-isolation.d.ts +40 -14
  35. package/dist/adapters/cli/read-isolation.d.ts.map +1 -1
  36. package/dist/adapters/cli/read-isolation.js +116 -19
  37. package/dist/adapters/cli/read-isolation.js.map +1 -1
  38. package/dist/adapters/cli/runner-control-channel.d.ts +32 -0
  39. package/dist/adapters/cli/runner-control-channel.d.ts.map +1 -0
  40. package/dist/adapters/cli/runner-control-channel.js +104 -0
  41. package/dist/adapters/cli/runner-control-channel.js.map +1 -0
  42. package/dist/adapters/cli/shared-hints.d.ts +1 -1
  43. package/dist/adapters/cli/shared-hints.d.ts.map +1 -1
  44. package/dist/adapters/cli/shared-hints.js +9 -0
  45. package/dist/adapters/cli/shared-hints.js.map +1 -1
  46. package/dist/adapters/cli/traex.d.ts.map +1 -1
  47. package/dist/adapters/cli/traex.js +100 -64
  48. package/dist/adapters/cli/traex.js.map +1 -1
  49. package/dist/adapters/cli/types.d.ts +13 -0
  50. package/dist/adapters/cli/types.d.ts.map +1 -1
  51. package/dist/bot-registry.d.ts +36 -27
  52. package/dist/bot-registry.d.ts.map +1 -1
  53. package/dist/bot-registry.js +354 -8
  54. package/dist/bot-registry.js.map +1 -1
  55. package/dist/cli/saved-workflow.d.ts +25 -0
  56. package/dist/cli/saved-workflow.d.ts.map +1 -0
  57. package/dist/cli/saved-workflow.js +338 -0
  58. package/dist/cli/saved-workflow.js.map +1 -0
  59. package/dist/cli/send-dispatch.d.ts +18 -3
  60. package/dist/cli/send-dispatch.d.ts.map +1 -1
  61. package/dist/cli/send-dispatch.js +22 -3
  62. package/dist/cli/send-dispatch.js.map +1 -1
  63. package/dist/cli/v3-run-cancel.d.ts +47 -0
  64. package/dist/cli/v3-run-cancel.d.ts.map +1 -0
  65. package/dist/cli/v3-run-cancel.js +96 -0
  66. package/dist/cli/v3-run-cancel.js.map +1 -0
  67. package/dist/cli/vc-agent.d.ts.map +1 -1
  68. package/dist/cli/vc-agent.js +54 -1
  69. package/dist/cli/vc-agent.js.map +1 -1
  70. package/dist/cli/workflow-migration.d.ts +39 -0
  71. package/dist/cli/workflow-migration.d.ts.map +1 -0
  72. package/dist/cli/workflow-migration.js +302 -0
  73. package/dist/cli/workflow-migration.js.map +1 -0
  74. package/dist/cli/workflow-run-archive.d.ts +29 -0
  75. package/dist/cli/workflow-run-archive.d.ts.map +1 -0
  76. package/dist/cli/workflow-run-archive.js +183 -0
  77. package/dist/cli/workflow-run-archive.js.map +1 -0
  78. package/dist/cli/workflow.d.ts +5 -10
  79. package/dist/cli/workflow.d.ts.map +1 -1
  80. package/dist/cli/workflow.js +85 -764
  81. package/dist/cli/workflow.js.map +1 -1
  82. package/dist/cli.d.ts.map +1 -1
  83. package/dist/cli.js +1018 -191
  84. package/dist/cli.js.map +1 -1
  85. package/dist/codex-app-runner.js +30 -21
  86. package/dist/codex-app-runner.js.map +1 -1
  87. package/dist/core/command-handler.d.ts.map +1 -1
  88. package/dist/core/command-handler.js +21 -9
  89. package/dist/core/command-handler.js.map +1 -1
  90. package/dist/core/current-turn-provenance.d.ts +39 -0
  91. package/dist/core/current-turn-provenance.d.ts.map +1 -0
  92. package/dist/core/current-turn-provenance.js +122 -0
  93. package/dist/core/current-turn-provenance.js.map +1 -0
  94. package/dist/core/daemon-ipc-auth.d.ts +20 -0
  95. package/dist/core/daemon-ipc-auth.d.ts.map +1 -0
  96. package/dist/core/daemon-ipc-auth.js +44 -0
  97. package/dist/core/daemon-ipc-auth.js.map +1 -0
  98. package/dist/core/daemon-ipc-session-auth.d.ts +37 -0
  99. package/dist/core/daemon-ipc-session-auth.d.ts.map +1 -0
  100. package/dist/core/daemon-ipc-session-auth.js +35 -0
  101. package/dist/core/daemon-ipc-session-auth.js.map +1 -0
  102. package/dist/core/dashboard-command/index.d.ts +0 -2
  103. package/dist/core/dashboard-command/index.d.ts.map +1 -1
  104. package/dist/core/dashboard-command/index.js +2 -2
  105. package/dist/core/dashboard-command/index.js.map +1 -1
  106. package/dist/core/dashboard-command/stub.d.ts +1 -1
  107. package/dist/core/dashboard-command/stub.d.ts.map +1 -1
  108. package/dist/core/dashboard-command/stub.js +0 -1
  109. package/dist/core/dashboard-command/stub.js.map +1 -1
  110. package/dist/core/dashboard-ipc-server.d.ts +11 -2
  111. package/dist/core/dashboard-ipc-server.d.ts.map +1 -1
  112. package/dist/core/dashboard-ipc-server.js +266 -41
  113. package/dist/core/dashboard-ipc-server.js.map +1 -1
  114. package/dist/core/dashboard-secret.d.ts +3 -0
  115. package/dist/core/dashboard-secret.d.ts.map +1 -0
  116. package/dist/core/dashboard-secret.js +7 -0
  117. package/dist/core/dashboard-secret.js.map +1 -0
  118. package/dist/core/data-dir.d.ts +24 -0
  119. package/dist/core/data-dir.d.ts.map +1 -0
  120. package/dist/core/data-dir.js +48 -0
  121. package/dist/core/data-dir.js.map +1 -0
  122. package/dist/core/inflight-input-tracker.d.ts +4 -2
  123. package/dist/core/inflight-input-tracker.d.ts.map +1 -1
  124. package/dist/core/inflight-input-tracker.js +6 -5
  125. package/dist/core/inflight-input-tracker.js.map +1 -1
  126. package/dist/core/inject-queue-policy.d.ts +70 -0
  127. package/dist/core/inject-queue-policy.d.ts.map +1 -0
  128. package/dist/core/inject-queue-policy.js +30 -0
  129. package/dist/core/inject-queue-policy.js.map +1 -0
  130. package/dist/core/maintenance.d.ts +1 -1
  131. package/dist/core/maintenance.d.ts.map +1 -1
  132. package/dist/core/maintenance.js +3 -2
  133. package/dist/core/maintenance.js.map +1 -1
  134. package/dist/core/managed-origin-capability.d.ts +30 -0
  135. package/dist/core/managed-origin-capability.d.ts.map +1 -0
  136. package/dist/core/managed-origin-capability.js +88 -0
  137. package/dist/core/managed-origin-capability.js.map +1 -0
  138. package/dist/core/role-library.d.ts +15 -0
  139. package/dist/core/role-library.d.ts.map +1 -0
  140. package/dist/core/role-library.js +75 -0
  141. package/dist/core/role-library.js.map +1 -0
  142. package/dist/core/session-cwd.d.ts +14 -0
  143. package/dist/core/session-cwd.d.ts.map +1 -0
  144. package/dist/core/session-cwd.js +17 -0
  145. package/dist/core/session-cwd.js.map +1 -0
  146. package/dist/core/session-manager.d.ts +4 -1
  147. package/dist/core/session-manager.d.ts.map +1 -1
  148. package/dist/core/session-manager.js +27 -8
  149. package/dist/core/session-manager.js.map +1 -1
  150. package/dist/core/session-marker.d.ts +22 -0
  151. package/dist/core/session-marker.d.ts.map +1 -1
  152. package/dist/core/session-marker.js +185 -20
  153. package/dist/core/session-marker.js.map +1 -1
  154. package/dist/core/slash-inject.d.ts +15 -0
  155. package/dist/core/slash-inject.d.ts.map +1 -0
  156. package/dist/core/slash-inject.js +25 -0
  157. package/dist/core/slash-inject.js.map +1 -0
  158. package/dist/core/terminal-url.d.ts +1 -0
  159. package/dist/core/terminal-url.d.ts.map +1 -1
  160. package/dist/core/terminal-url.js +14 -8
  161. package/dist/core/terminal-url.js.map +1 -1
  162. package/dist/core/terminal-write-auth.d.ts +26 -0
  163. package/dist/core/terminal-write-auth.d.ts.map +1 -1
  164. package/dist/core/terminal-write-auth.js +48 -3
  165. package/dist/core/terminal-write-auth.js.map +1 -1
  166. package/dist/core/trigger-session.d.ts +24 -1
  167. package/dist/core/trigger-session.d.ts.map +1 -1
  168. package/dist/core/trigger-session.js +106 -15
  169. package/dist/core/trigger-session.js.map +1 -1
  170. package/dist/core/types.d.ts +26 -1
  171. package/dist/core/types.d.ts.map +1 -1
  172. package/dist/core/types.js +10 -0
  173. package/dist/core/types.js.map +1 -1
  174. package/dist/core/worker-pool.d.ts +65 -2
  175. package/dist/core/worker-pool.d.ts.map +1 -1
  176. package/dist/core/worker-pool.js +459 -39
  177. package/dist/core/worker-pool.js.map +1 -1
  178. package/dist/daemon.d.ts +249 -8
  179. package/dist/daemon.d.ts.map +1 -1
  180. package/dist/daemon.js +7383 -1195
  181. package/dist/daemon.js.map +1 -1
  182. package/dist/dashboard/aggregator.d.ts +1 -1
  183. package/dist/dashboard/aggregator.d.ts.map +1 -1
  184. package/dist/dashboard/aggregator.js +2 -2
  185. package/dist/dashboard/aggregator.js.map +1 -1
  186. package/dist/dashboard/auth.d.ts +3 -8
  187. package/dist/dashboard/auth.d.ts.map +1 -1
  188. package/dist/dashboard/auth.js +63 -22
  189. package/dist/dashboard/auth.js.map +1 -1
  190. package/dist/dashboard/bot-onboarding.d.ts +5 -0
  191. package/dist/dashboard/bot-onboarding.d.ts.map +1 -1
  192. package/dist/dashboard/bot-onboarding.js +37 -0
  193. package/dist/dashboard/bot-onboarding.js.map +1 -1
  194. package/dist/dashboard/connector-api.d.ts.map +1 -1
  195. package/dist/dashboard/connector-api.js +42 -2
  196. package/dist/dashboard/connector-api.js.map +1 -1
  197. package/dist/dashboard/daemon-internal-api.d.ts +0 -2
  198. package/dist/dashboard/daemon-internal-api.d.ts.map +1 -1
  199. package/dist/dashboard/daemon-internal-api.js +26 -93
  200. package/dist/dashboard/daemon-internal-api.js.map +1 -1
  201. package/dist/dashboard/daemon-internal-client.d.ts.map +1 -1
  202. package/dist/dashboard/daemon-internal-client.js +2 -3
  203. package/dist/dashboard/daemon-internal-client.js.map +1 -1
  204. package/dist/dashboard/federation-api.js +1 -1
  205. package/dist/dashboard/federation-api.js.map +1 -1
  206. package/dist/dashboard/federation-spoke-api.js +1 -1
  207. package/dist/dashboard/federation-spoke-api.js.map +1 -1
  208. package/dist/dashboard/history-senders.d.ts +3 -0
  209. package/dist/dashboard/history-senders.d.ts.map +1 -1
  210. package/dist/dashboard/history-senders.js.map +1 -1
  211. package/dist/dashboard/http.d.ts +4 -0
  212. package/dist/dashboard/http.d.ts.map +1 -0
  213. package/dist/dashboard/http.js +6 -0
  214. package/dist/dashboard/http.js.map +1 -0
  215. package/dist/dashboard/registry.d.ts +4 -0
  216. package/dist/dashboard/registry.d.ts.map +1 -1
  217. package/dist/dashboard/registry.js.map +1 -1
  218. package/dist/dashboard/trigger-api.js +1 -1
  219. package/dist/dashboard/trigger-api.js.map +1 -1
  220. package/dist/dashboard/v3-runs-api.d.ts +13 -10
  221. package/dist/dashboard/v3-runs-api.d.ts.map +1 -1
  222. package/dist/dashboard/v3-runs-api.js +121 -4
  223. package/dist/dashboard/v3-runs-api.js.map +1 -1
  224. package/dist/dashboard/vc-consumer-profiles-api.d.ts +105 -0
  225. package/dist/dashboard/vc-consumer-profiles-api.d.ts.map +1 -0
  226. package/dist/dashboard/vc-consumer-profiles-api.js +312 -0
  227. package/dist/dashboard/vc-consumer-profiles-api.js.map +1 -0
  228. package/dist/dashboard/web/app.d.ts.map +1 -1
  229. package/dist/dashboard/web/app.js +7 -6
  230. package/dist/dashboard/web/app.js.map +1 -1
  231. package/dist/dashboard/web/bot-defaults-page.d.ts.map +1 -1
  232. package/dist/dashboard/web/bot-defaults-page.js +9 -14
  233. package/dist/dashboard/web/bot-defaults-page.js.map +1 -1
  234. package/dist/dashboard/web/bot-onboarding.d.ts.map +1 -1
  235. package/dist/dashboard/web/bot-onboarding.js +7 -3
  236. package/dist/dashboard/web/bot-onboarding.js.map +1 -1
  237. package/dist/dashboard/web/connectors-page.d.ts +5 -0
  238. package/dist/dashboard/web/connectors-page.d.ts.map +1 -1
  239. package/dist/dashboard/web/connectors-page.js +16 -12
  240. package/dist/dashboard/web/connectors-page.js.map +1 -1
  241. package/dist/dashboard/web/create-session-entry.d.ts +4 -0
  242. package/dist/dashboard/web/create-session-entry.d.ts.map +1 -0
  243. package/dist/dashboard/web/create-session-entry.js +17 -0
  244. package/dist/dashboard/web/create-session-entry.js.map +1 -0
  245. package/dist/dashboard/web/dashboard-components.d.ts +5 -0
  246. package/dist/dashboard/web/dashboard-components.d.ts.map +1 -1
  247. package/dist/dashboard/web/dashboard-components.js +29 -4
  248. package/dist/dashboard/web/dashboard-components.js.map +1 -1
  249. package/dist/dashboard/web/dashboard-routes.d.ts.map +1 -1
  250. package/dist/dashboard/web/dashboard-routes.js +0 -1
  251. package/dist/dashboard/web/dashboard-routes.js.map +1 -1
  252. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  253. package/dist/dashboard/web/i18n.js +192 -382
  254. package/dist/dashboard/web/i18n.js.map +1 -1
  255. package/dist/dashboard/web/preferences.d.ts +3 -0
  256. package/dist/dashboard/web/preferences.d.ts.map +1 -1
  257. package/dist/dashboard/web/preferences.js +18 -0
  258. package/dist/dashboard/web/preferences.js.map +1 -1
  259. package/dist/dashboard/web/schedules-page.d.ts.map +1 -1
  260. package/dist/dashboard/web/schedules-page.js +4 -1
  261. package/dist/dashboard/web/schedules-page.js.map +1 -1
  262. package/dist/dashboard/web/sessions-page.d.ts.map +1 -1
  263. package/dist/dashboard/web/sessions-page.js +64 -18
  264. package/dist/dashboard/web/sessions-page.js.map +1 -1
  265. package/dist/dashboard/web/settings-page.d.ts.map +1 -1
  266. package/dist/dashboard/web/settings-page.js +2 -1
  267. package/dist/dashboard/web/settings-page.js.map +1 -1
  268. package/dist/dashboard/web/v3-api.d.ts +12 -2
  269. package/dist/dashboard/web/v3-api.d.ts.map +1 -1
  270. package/dist/dashboard/web/v3-api.js +34 -6
  271. package/dist/dashboard/web/v3-api.js.map +1 -1
  272. package/dist/dashboard/web/v3-components.d.ts +6 -0
  273. package/dist/dashboard/web/v3-components.d.ts.map +1 -1
  274. package/dist/dashboard/web/v3-components.js +66 -23
  275. package/dist/dashboard/web/v3-components.js.map +1 -1
  276. package/dist/dashboard/web/v3-model.js +1 -1
  277. package/dist/dashboard/web/v3-model.js.map +1 -1
  278. package/dist/dashboard/web/v3-terminal.js +2 -2
  279. package/dist/dashboard/web/v3-terminal.js.map +1 -1
  280. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts +19 -0
  281. package/dist/dashboard/web/vc-consumer-profiles-section.d.ts.map +1 -0
  282. package/dist/dashboard/web/vc-consumer-profiles-section.js +382 -0
  283. package/dist/dashboard/web/vc-consumer-profiles-section.js.map +1 -0
  284. package/dist/dashboard/webhook-routes.d.ts.map +1 -1
  285. package/dist/dashboard/webhook-routes.js +29 -6
  286. package/dist/dashboard/webhook-routes.js.map +1 -1
  287. package/dist/dashboard-web/app.js +1 -1
  288. package/dist/dashboard-web/chunks/bot-defaults-page-RYBL4ZYE.js +4 -0
  289. package/dist/dashboard-web/chunks/{chunk-OEJIT66L.js → chunk-CMDPZOPK.js} +1 -1
  290. package/dist/dashboard-web/chunks/chunk-I35DXGM4.js +1 -0
  291. package/dist/dashboard-web/chunks/chunk-NYZHARIU.js +47 -0
  292. package/dist/dashboard-web/chunks/chunk-SZOB6VK2.js +1 -0
  293. package/dist/dashboard-web/chunks/{chunk-YQFXGRSD.js → chunk-YBOHL7T7.js} +1 -1
  294. package/dist/dashboard-web/chunks/chunk-YWCPDL4S.js +1 -0
  295. package/dist/dashboard-web/chunks/connectors-page-DAMP7TTV.js +1 -0
  296. package/dist/dashboard-web/chunks/{groups-page-5AJPPJH2.js → groups-page-BPFA356N.js} +1 -1
  297. package/dist/dashboard-web/chunks/{insights-page-R3DFECX4.js → insights-page-SHOPHTWY.js} +1 -1
  298. package/dist/dashboard-web/chunks/{monitor-room-NLMKJLDY.js → monitor-room-PXPJGZCN.js} +1 -1
  299. package/dist/dashboard-web/chunks/{monitoring-page-EHSOX4GV.js → monitoring-page-4DF54M5Y.js} +1 -1
  300. package/dist/dashboard-web/chunks/{office-page-OXJKFJ4R.js → office-page-6OHU6KMZ.js} +1 -1
  301. package/dist/dashboard-web/chunks/{overview-page-GJHIVXJF.js → overview-page-IHIZ6F5M.js} +1 -1
  302. package/dist/dashboard-web/chunks/{roles-page-6ZODQISW.js → roles-page-JYTBYKEF.js} +1 -1
  303. package/dist/dashboard-web/chunks/{schedules-page-DAGMHVCH.js → schedules-page-WJ72T7KV.js} +1 -1
  304. package/dist/dashboard-web/chunks/sessions-page-QC56OIAI.js +3 -0
  305. package/dist/dashboard-web/chunks/settings-page-TCKWEXTN.js +2 -0
  306. package/dist/dashboard-web/chunks/{skills-page-J7EVUHXP.js → skills-page-RJJNIECW.js} +1 -1
  307. package/dist/dashboard-web/chunks/{team-federation-page-YM5JBIII.js → team-federation-page-ZMDX3E7K.js} +1 -1
  308. package/dist/dashboard-web/chunks/v3-page-VLLAUQ33.js +94 -0
  309. package/dist/dashboard-web/chunks/{whiteboards-page-75N2U6W4.js → whiteboards-page-NAO53CKM.js} +1 -1
  310. package/dist/dashboard-web/style.css +363 -274
  311. package/dist/dashboard.js +194 -78
  312. package/dist/dashboard.js.map +1 -1
  313. package/dist/global-config.d.ts +1 -1
  314. package/dist/i18n/en.d.ts.map +1 -1
  315. package/dist/i18n/en.js +12 -87
  316. package/dist/i18n/en.js.map +1 -1
  317. package/dist/i18n/zh.d.ts.map +1 -1
  318. package/dist/i18n/zh.js +12 -87
  319. package/dist/i18n/zh.js.map +1 -1
  320. package/dist/im/lark/brand-template.d.ts +15 -0
  321. package/dist/im/lark/brand-template.d.ts.map +1 -0
  322. package/dist/im/lark/brand-template.js +114 -0
  323. package/dist/im/lark/brand-template.js.map +1 -0
  324. package/dist/im/lark/card-handler.d.ts +6 -3
  325. package/dist/im/lark/card-handler.d.ts.map +1 -1
  326. package/dist/im/lark/card-handler.js +23 -39
  327. package/dist/im/lark/card-handler.js.map +1 -1
  328. package/dist/im/lark/client.d.ts +8 -2
  329. package/dist/im/lark/client.d.ts.map +1 -1
  330. package/dist/im/lark/client.js +33 -31
  331. package/dist/im/lark/client.js.map +1 -1
  332. package/dist/im/lark/doc-comment.d.ts +18 -0
  333. package/dist/im/lark/doc-comment.d.ts.map +1 -1
  334. package/dist/im/lark/doc-comment.js +119 -5
  335. package/dist/im/lark/doc-comment.js.map +1 -1
  336. package/dist/im/lark/event-dispatcher.d.ts +18 -2
  337. package/dist/im/lark/event-dispatcher.d.ts.map +1 -1
  338. package/dist/im/lark/event-dispatcher.js +41 -19
  339. package/dist/im/lark/event-dispatcher.js.map +1 -1
  340. package/dist/im/lark/merge-forward.d.ts.map +1 -1
  341. package/dist/im/lark/merge-forward.js +7 -2
  342. package/dist/im/lark/merge-forward.js.map +1 -1
  343. package/dist/im/lark/message-parser.d.ts.map +1 -1
  344. package/dist/im/lark/message-parser.js +7 -0
  345. package/dist/im/lark/message-parser.js.map +1 -1
  346. package/dist/im/lark/overview-card.d.ts +1 -2
  347. package/dist/im/lark/overview-card.d.ts.map +1 -1
  348. package/dist/im/lark/overview-card.js +1 -48
  349. package/dist/im/lark/overview-card.js.map +1 -1
  350. package/dist/im/lark/v3-blocked-card-handler.d.ts.map +1 -1
  351. package/dist/im/lark/v3-blocked-card-handler.js +5 -5
  352. package/dist/im/lark/v3-blocked-card-handler.js.map +1 -1
  353. package/dist/im/lark/v3-blocked-card.d.ts +1 -0
  354. package/dist/im/lark/v3-blocked-card.d.ts.map +1 -1
  355. package/dist/im/lark/v3-blocked-card.js +19 -2
  356. package/dist/im/lark/v3-blocked-card.js.map +1 -1
  357. package/dist/im/lark/v3-distillation-card-handler.d.ts +12 -0
  358. package/dist/im/lark/v3-distillation-card-handler.d.ts.map +1 -0
  359. package/dist/im/lark/v3-distillation-card-handler.js +107 -0
  360. package/dist/im/lark/v3-distillation-card-handler.js.map +1 -0
  361. package/dist/im/lark/v3-distillation-card.d.ts +42 -0
  362. package/dist/im/lark/v3-distillation-card.d.ts.map +1 -0
  363. package/dist/im/lark/v3-distillation-card.js +206 -0
  364. package/dist/im/lark/v3-distillation-card.js.map +1 -0
  365. package/dist/im/lark/v3-gate-card-handler.d.ts +1 -1
  366. package/dist/im/lark/v3-gate-card-handler.d.ts.map +1 -1
  367. package/dist/im/lark/v3-gate-card-handler.js +6 -5
  368. package/dist/im/lark/v3-gate-card-handler.js.map +1 -1
  369. package/dist/im/lark/v3-gate-card.d.ts +8 -1
  370. package/dist/im/lark/v3-gate-card.d.ts.map +1 -1
  371. package/dist/im/lark/v3-gate-card.js +38 -7
  372. package/dist/im/lark/v3-gate-card.js.map +1 -1
  373. package/dist/im/lark/v3-loop-grant-card-handler.d.ts.map +1 -1
  374. package/dist/im/lark/v3-loop-grant-card-handler.js +3 -4
  375. package/dist/im/lark/v3-loop-grant-card-handler.js.map +1 -1
  376. package/dist/im/lark/v3-loop-grant-card.js +1 -1
  377. package/dist/im/lark/v3-loop-grant-card.js.map +1 -1
  378. package/dist/im/lark/v3-progress-card-manager.d.ts +79 -0
  379. package/dist/im/lark/v3-progress-card-manager.d.ts.map +1 -0
  380. package/dist/im/lark/v3-progress-card-manager.js +444 -0
  381. package/dist/im/lark/v3-progress-card-manager.js.map +1 -0
  382. package/dist/im/lark/v3-progress-card.d.ts +26 -0
  383. package/dist/im/lark/v3-progress-card.d.ts.map +1 -0
  384. package/dist/im/lark/v3-progress-card.js +211 -0
  385. package/dist/im/lark/v3-progress-card.js.map +1 -0
  386. package/dist/im/lark/v3-revisit-grant-card-handler.d.ts.map +1 -1
  387. package/dist/im/lark/v3-revisit-grant-card-handler.js +3 -4
  388. package/dist/im/lark/v3-revisit-grant-card-handler.js.map +1 -1
  389. package/dist/im/lark/v3-revisit-grant-card.js +1 -1
  390. package/dist/im/lark/v3-revisit-grant-card.js.map +1 -1
  391. package/dist/im/lark/v3-run-save-card-handler.d.ts +12 -0
  392. package/dist/im/lark/v3-run-save-card-handler.d.ts.map +1 -0
  393. package/dist/im/lark/v3-run-save-card-handler.js +160 -0
  394. package/dist/im/lark/v3-run-save-card-handler.js.map +1 -0
  395. package/dist/im/lark/v3-run-save-card.d.ts +38 -0
  396. package/dist/im/lark/v3-run-save-card.d.ts.map +1 -0
  397. package/dist/im/lark/v3-run-save-card.js +125 -0
  398. package/dist/im/lark/v3-run-save-card.js.map +1 -0
  399. package/dist/im/lark/v3-saved-workflow-command.d.ts +36 -0
  400. package/dist/im/lark/v3-saved-workflow-command.d.ts.map +1 -0
  401. package/dist/im/lark/v3-saved-workflow-command.js +186 -0
  402. package/dist/im/lark/v3-saved-workflow-command.js.map +1 -0
  403. package/dist/im/lark/v3-saved-workflow-handler.d.ts +89 -0
  404. package/dist/im/lark/v3-saved-workflow-handler.d.ts.map +1 -0
  405. package/dist/im/lark/v3-saved-workflow-handler.js +212 -0
  406. package/dist/im/lark/v3-saved-workflow-handler.js.map +1 -0
  407. package/dist/im/lark/workflow-slash-command.d.ts +7 -110
  408. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -1
  409. package/dist/im/lark/workflow-slash-command.js +16 -230
  410. package/dist/im/lark/workflow-slash-command.js.map +1 -1
  411. package/dist/index-daemon.js +1 -1
  412. package/dist/index-daemon.js.map +1 -1
  413. package/dist/mir-runner.js +11 -15
  414. package/dist/mir-runner.js.map +1 -1
  415. package/dist/mira-runner.js +8 -12
  416. package/dist/mira-runner.js.map +1 -1
  417. package/dist/services/bridge-turn-queue.d.ts +29 -12
  418. package/dist/services/bridge-turn-queue.d.ts.map +1 -1
  419. package/dist/services/bridge-turn-queue.js +59 -23
  420. package/dist/services/bridge-turn-queue.js.map +1 -1
  421. package/dist/services/claude-transcript.d.ts +15 -0
  422. package/dist/services/claude-transcript.d.ts.map +1 -1
  423. package/dist/services/claude-transcript.js +24 -0
  424. package/dist/services/claude-transcript.js.map +1 -1
  425. package/dist/services/codex-bridge-queue.d.ts +13 -2
  426. package/dist/services/codex-bridge-queue.d.ts.map +1 -1
  427. package/dist/services/codex-bridge-queue.js +20 -3
  428. package/dist/services/codex-bridge-queue.js.map +1 -1
  429. package/dist/services/codex-transcript.d.ts +6 -0
  430. package/dist/services/codex-transcript.d.ts.map +1 -1
  431. package/dist/services/codex-transcript.js.map +1 -1
  432. package/dist/services/grok-transcript.d.ts +3 -2
  433. package/dist/services/grok-transcript.d.ts.map +1 -1
  434. package/dist/services/grok-transcript.js +73 -22
  435. package/dist/services/grok-transcript.js.map +1 -1
  436. package/dist/services/hook-runner.d.ts.map +1 -1
  437. package/dist/services/hook-runner.js +26 -3
  438. package/dist/services/hook-runner.js.map +1 -1
  439. package/dist/services/schedule-store.d.ts +37 -0
  440. package/dist/services/schedule-store.d.ts.map +1 -1
  441. package/dist/services/schedule-store.js +259 -141
  442. package/dist/services/schedule-store.js.map +1 -1
  443. package/dist/services/send-policy.d.ts +50 -0
  444. package/dist/services/send-policy.d.ts.map +1 -1
  445. package/dist/services/send-policy.js +65 -0
  446. package/dist/services/send-policy.js.map +1 -1
  447. package/dist/services/session-lifecycle-hooks.d.ts.map +1 -1
  448. package/dist/services/session-lifecycle-hooks.js +12 -0
  449. package/dist/services/session-lifecycle-hooks.js.map +1 -1
  450. package/dist/services/traex-transcript.d.ts +11 -2
  451. package/dist/services/traex-transcript.d.ts.map +1 -1
  452. package/dist/services/traex-transcript.js +142 -8
  453. package/dist/services/traex-transcript.js.map +1 -1
  454. package/dist/services/trigger-types.d.ts +6 -1
  455. package/dist/services/trigger-types.d.ts.map +1 -1
  456. package/dist/services/trigger-types.js.map +1 -1
  457. package/dist/services/turn-terminal-deduper.d.ts +14 -0
  458. package/dist/services/turn-terminal-deduper.d.ts.map +1 -0
  459. package/dist/services/turn-terminal-deduper.js +34 -0
  460. package/dist/services/turn-terminal-deduper.js.map +1 -0
  461. package/dist/services/vc-meeting-action-gate.d.ts +246 -0
  462. package/dist/services/vc-meeting-action-gate.d.ts.map +1 -0
  463. package/dist/services/vc-meeting-action-gate.js +756 -0
  464. package/dist/services/vc-meeting-action-gate.js.map +1 -0
  465. package/dist/services/vc-meeting-action-store.d.ts +222 -0
  466. package/dist/services/vc-meeting-action-store.d.ts.map +1 -0
  467. package/dist/services/vc-meeting-action-store.js +806 -0
  468. package/dist/services/vc-meeting-action-store.js.map +1 -0
  469. package/dist/services/vc-meeting-consumer-isolation.d.ts +27 -0
  470. package/dist/services/vc-meeting-consumer-isolation.d.ts.map +1 -0
  471. package/dist/services/vc-meeting-consumer-isolation.js +37 -0
  472. package/dist/services/vc-meeting-consumer-isolation.js.map +1 -0
  473. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts +72 -0
  474. package/dist/services/vc-meeting-consumer-profile-bootstrap.d.ts.map +1 -0
  475. package/dist/services/vc-meeting-consumer-profile-bootstrap.js +343 -0
  476. package/dist/services/vc-meeting-consumer-profile-bootstrap.js.map +1 -0
  477. package/dist/services/vc-meeting-consumer-profile-store.d.ts +39 -0
  478. package/dist/services/vc-meeting-consumer-profile-store.d.ts.map +1 -0
  479. package/dist/services/vc-meeting-consumer-profile-store.js +190 -0
  480. package/dist/services/vc-meeting-consumer-profile-store.js.map +1 -0
  481. package/dist/services/vc-meeting-daemon-auth.d.ts +29 -0
  482. package/dist/services/vc-meeting-daemon-auth.d.ts.map +1 -0
  483. package/dist/services/vc-meeting-daemon-auth.js +117 -0
  484. package/dist/services/vc-meeting-daemon-auth.js.map +1 -0
  485. package/dist/services/vc-meeting-delivery-feed.d.ts +52 -0
  486. package/dist/services/vc-meeting-delivery-feed.d.ts.map +1 -0
  487. package/dist/services/vc-meeting-delivery-feed.js +231 -0
  488. package/dist/services/vc-meeting-delivery-feed.js.map +1 -0
  489. package/dist/services/vc-meeting-delivery-hub-store.d.ts +213 -0
  490. package/dist/services/vc-meeting-delivery-hub-store.d.ts.map +1 -0
  491. package/dist/services/vc-meeting-delivery-hub-store.js +1230 -0
  492. package/dist/services/vc-meeting-delivery-hub-store.js.map +1 -0
  493. package/dist/services/vc-meeting-delivery-protocol.d.ts +159 -0
  494. package/dist/services/vc-meeting-delivery-protocol.d.ts.map +1 -0
  495. package/dist/services/vc-meeting-delivery-protocol.js +443 -0
  496. package/dist/services/vc-meeting-delivery-protocol.js.map +1 -0
  497. package/dist/services/vc-meeting-delivery-receiver.d.ts +80 -0
  498. package/dist/services/vc-meeting-delivery-receiver.d.ts.map +1 -0
  499. package/dist/services/vc-meeting-delivery-receiver.js +543 -0
  500. package/dist/services/vc-meeting-delivery-receiver.js.map +1 -0
  501. package/dist/services/vc-meeting-delivery-store.d.ts +339 -0
  502. package/dist/services/vc-meeting-delivery-store.d.ts.map +1 -0
  503. package/dist/services/vc-meeting-delivery-store.js +1024 -0
  504. package/dist/services/vc-meeting-delivery-store.js.map +1 -0
  505. package/dist/services/vc-meeting-feed-metadata-store.d.ts +58 -0
  506. package/dist/services/vc-meeting-feed-metadata-store.d.ts.map +1 -0
  507. package/dist/services/vc-meeting-feed-metadata-store.js +356 -0
  508. package/dist/services/vc-meeting-feed-metadata-store.js.map +1 -0
  509. package/dist/services/vc-meeting-im-reply.d.ts +55 -0
  510. package/dist/services/vc-meeting-im-reply.d.ts.map +1 -0
  511. package/dist/services/vc-meeting-im-reply.js +279 -0
  512. package/dist/services/vc-meeting-im-reply.js.map +1 -0
  513. package/dist/services/vc-meeting-im-routing.d.ts +131 -0
  514. package/dist/services/vc-meeting-im-routing.d.ts.map +1 -0
  515. package/dist/services/vc-meeting-im-routing.js +449 -0
  516. package/dist/services/vc-meeting-im-routing.js.map +1 -0
  517. package/dist/services/vc-meeting-listener-message-store.d.ts +23 -0
  518. package/dist/services/vc-meeting-listener-message-store.d.ts.map +1 -0
  519. package/dist/services/vc-meeting-listener-message-store.js +142 -0
  520. package/dist/services/vc-meeting-listener-message-store.js.map +1 -0
  521. package/dist/services/vc-meeting-member-policy.d.ts +37 -0
  522. package/dist/services/vc-meeting-member-policy.d.ts.map +1 -0
  523. package/dist/services/vc-meeting-member-policy.js +102 -0
  524. package/dist/services/vc-meeting-member-policy.js.map +1 -0
  525. package/dist/services/vc-meeting-profile-instructions.d.ts +22 -0
  526. package/dist/services/vc-meeting-profile-instructions.d.ts.map +1 -0
  527. package/dist/services/vc-meeting-profile-instructions.js +64 -0
  528. package/dist/services/vc-meeting-profile-instructions.js.map +1 -0
  529. package/dist/services/vc-meeting-runtime-store.d.ts +63 -0
  530. package/dist/services/vc-meeting-runtime-store.d.ts.map +1 -1
  531. package/dist/services/vc-meeting-runtime-store.js +605 -116
  532. package/dist/services/vc-meeting-runtime-store.js.map +1 -1
  533. package/dist/services/vc-meeting-send-policy.d.ts +89 -0
  534. package/dist/services/vc-meeting-send-policy.d.ts.map +1 -0
  535. package/dist/services/vc-meeting-send-policy.js +150 -0
  536. package/dist/services/vc-meeting-send-policy.js.map +1 -0
  537. package/dist/services/vc-meeting-terminal-reconciler.d.ts +93 -0
  538. package/dist/services/vc-meeting-terminal-reconciler.d.ts.map +1 -0
  539. package/dist/services/vc-meeting-terminal-reconciler.js +198 -0
  540. package/dist/services/vc-meeting-terminal-reconciler.js.map +1 -0
  541. package/dist/setup/open-platform-automation.d.ts +2 -0
  542. package/dist/setup/open-platform-automation.d.ts.map +1 -1
  543. package/dist/setup/open-platform-automation.js +1 -0
  544. package/dist/setup/open-platform-automation.js.map +1 -1
  545. package/dist/setup/open-platform-outcome.d.ts +50 -0
  546. package/dist/setup/open-platform-outcome.d.ts.map +1 -0
  547. package/dist/setup/open-platform-outcome.js +56 -0
  548. package/dist/setup/open-platform-outcome.js.map +1 -0
  549. package/dist/setup/setup-args.d.ts +7 -2
  550. package/dist/setup/setup-args.d.ts.map +1 -1
  551. package/dist/setup/setup-args.js +21 -5
  552. package/dist/setup/setup-args.js.map +1 -1
  553. package/dist/skills/definitions.d.ts.map +1 -1
  554. package/dist/skills/definitions.js +66 -54
  555. package/dist/skills/definitions.js.map +1 -1
  556. package/dist/skills/injection-mode.d.ts +5 -4
  557. package/dist/skills/injection-mode.d.ts.map +1 -1
  558. package/dist/skills/injection-mode.js +19 -10
  559. package/dist/skills/injection-mode.js.map +1 -1
  560. package/dist/types.d.ts +187 -0
  561. package/dist/types.d.ts.map +1 -1
  562. package/dist/utils/canonical-input-hash.d.ts +5 -0
  563. package/dist/utils/canonical-input-hash.d.ts.map +1 -0
  564. package/dist/utils/canonical-input-hash.js +43 -0
  565. package/dist/utils/canonical-input-hash.js.map +1 -0
  566. package/dist/utils/canonical-json.d.ts +10 -0
  567. package/dist/utils/canonical-json.d.ts.map +1 -0
  568. package/dist/utils/canonical-json.js +23 -0
  569. package/dist/utils/canonical-json.js.map +1 -0
  570. package/dist/utils/child-env.d.ts +1 -1
  571. package/dist/utils/child-env.d.ts.map +1 -1
  572. package/dist/utils/child-env.js +8 -0
  573. package/dist/utils/child-env.js.map +1 -1
  574. package/dist/utils/daemon-discovery.d.ts +4 -0
  575. package/dist/utils/daemon-discovery.d.ts.map +1 -1
  576. package/dist/utils/daemon-discovery.js +12 -6
  577. package/dist/utils/daemon-discovery.js.map +1 -1
  578. package/dist/utils/file-lock.d.ts.map +1 -1
  579. package/dist/utils/file-lock.js +696 -102
  580. package/dist/utils/file-lock.js.map +1 -1
  581. package/dist/utils/fs-durability.d.ts +20 -0
  582. package/dist/utils/fs-durability.d.ts.map +1 -0
  583. package/dist/utils/fs-durability.js +84 -0
  584. package/dist/utils/fs-durability.js.map +1 -0
  585. package/dist/utils/global-install.d.ts +5 -2
  586. package/dist/utils/global-install.d.ts.map +1 -1
  587. package/dist/utils/global-install.js +22 -4
  588. package/dist/utils/global-install.js.map +1 -1
  589. package/dist/utils/herdr-web-history.d.ts +12 -0
  590. package/dist/utils/herdr-web-history.d.ts.map +1 -0
  591. package/dist/utils/herdr-web-history.js +74 -0
  592. package/dist/utils/herdr-web-history.js.map +1 -0
  593. package/dist/utils/herdr-web-terminal-binding.d.ts +39 -0
  594. package/dist/utils/herdr-web-terminal-binding.d.ts.map +1 -0
  595. package/dist/utils/herdr-web-terminal-binding.js +56 -0
  596. package/dist/utils/herdr-web-terminal-binding.js.map +1 -0
  597. package/dist/utils/pending-input-queue.d.ts +30 -1
  598. package/dist/utils/pending-input-queue.d.ts.map +1 -1
  599. package/dist/utils/pending-input-queue.js +45 -5
  600. package/dist/utils/pending-input-queue.js.map +1 -1
  601. package/dist/vc-agent/cards.d.ts +49 -4
  602. package/dist/vc-agent/cards.d.ts.map +1 -1
  603. package/dist/vc-agent/cards.js +460 -70
  604. package/dist/vc-agent/cards.js.map +1 -1
  605. package/dist/vc-agent/polling-source.d.ts +6 -1
  606. package/dist/vc-agent/polling-source.d.ts.map +1 -1
  607. package/dist/vc-agent/polling-source.js +17 -4
  608. package/dist/vc-agent/polling-source.js.map +1 -1
  609. package/dist/worker.js +1333 -283
  610. package/dist/worker.js.map +1 -1
  611. package/dist/workflows/definition.d.ts +28 -35
  612. package/dist/workflows/definition.d.ts.map +1 -1
  613. package/dist/workflows/definition.js +7 -24
  614. package/dist/workflows/definition.js.map +1 -1
  615. package/dist/workflows/events/payloads.d.ts +28 -28
  616. package/dist/workflows/events/replay.d.ts +5 -0
  617. package/dist/workflows/events/replay.d.ts.map +1 -1
  618. package/dist/workflows/events/replay.js +6 -1
  619. package/dist/workflows/events/replay.js.map +1 -1
  620. package/dist/workflows/events/schema.d.ts +663 -663
  621. package/dist/workflows/events/schema.d.ts.map +1 -1
  622. package/dist/workflows/events/schema.js +1 -4
  623. package/dist/workflows/events/schema.js.map +1 -1
  624. package/dist/workflows/hostExecutors/botmux-schedule.d.ts +5 -4
  625. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -1
  626. package/dist/workflows/hostExecutors/botmux-schedule.js +80 -35
  627. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -1
  628. package/dist/workflows/hostExecutors/feishu-im.d.ts +3 -3
  629. package/dist/workflows/hostExecutors/feishu-im.d.ts.map +1 -1
  630. package/dist/workflows/hostExecutors/feishu-im.js +3 -3
  631. package/dist/workflows/hostExecutors/feishu-im.js.map +1 -1
  632. package/dist/workflows/hostExecutors/feishu-reply.d.ts +1 -1
  633. package/dist/workflows/hostExecutors/feishu-reply.d.ts.map +1 -1
  634. package/dist/workflows/hostExecutors/feishu-reply.js +1 -1
  635. package/dist/workflows/hostExecutors/feishu-reply.js.map +1 -1
  636. package/dist/workflows/hostExecutors/feishu-send.d.ts +1 -1
  637. package/dist/workflows/hostExecutors/feishu-send.d.ts.map +1 -1
  638. package/dist/workflows/hostExecutors/feishu-send.js +1 -1
  639. package/dist/workflows/hostExecutors/feishu-send.js.map +1 -1
  640. package/dist/workflows/hostExecutors/index.d.ts +0 -1
  641. package/dist/workflows/hostExecutors/index.d.ts.map +1 -1
  642. package/dist/workflows/hostExecutors/index.js +0 -1
  643. package/dist/workflows/hostExecutors/index.js.map +1 -1
  644. package/dist/workflows/hostExecutors/registry.d.ts +1 -1
  645. package/dist/workflows/hostExecutors/registry.d.ts.map +1 -1
  646. package/dist/workflows/hostExecutors/types.d.ts +21 -29
  647. package/dist/workflows/hostExecutors/types.d.ts.map +1 -1
  648. package/dist/workflows/migration/v2-definition-paths.d.ts +3 -0
  649. package/dist/workflows/migration/v2-definition-paths.d.ts.map +1 -0
  650. package/dist/workflows/migration/v2-definition-paths.js +10 -0
  651. package/dist/workflows/migration/v2-definition-paths.js.map +1 -0
  652. package/dist/workflows/migration/v2-ledger.d.ts +138 -0
  653. package/dist/workflows/migration/v2-ledger.d.ts.map +1 -0
  654. package/dist/workflows/migration/v2-ledger.js +599 -0
  655. package/dist/workflows/migration/v2-ledger.js.map +1 -0
  656. package/dist/workflows/migration/v2-migration-service.d.ts +40 -0
  657. package/dist/workflows/migration/v2-migration-service.d.ts.map +1 -0
  658. package/dist/workflows/migration/v2-migration-service.js +454 -0
  659. package/dist/workflows/migration/v2-migration-service.js.map +1 -0
  660. package/dist/workflows/migration/v2-read-only-ids.d.ts +7 -0
  661. package/dist/workflows/migration/v2-read-only-ids.d.ts.map +1 -0
  662. package/dist/workflows/migration/v2-read-only-ids.js +9 -0
  663. package/dist/workflows/migration/v2-read-only-ids.js.map +1 -0
  664. package/dist/workflows/migration/v2-run-archive-schema.d.ts +976 -0
  665. package/dist/workflows/migration/v2-run-archive-schema.d.ts.map +1 -0
  666. package/dist/workflows/migration/v2-run-archive-schema.js +113 -0
  667. package/dist/workflows/migration/v2-run-archive-schema.js.map +1 -0
  668. package/dist/workflows/migration/v2-run-archive.d.ts +92 -0
  669. package/dist/workflows/migration/v2-run-archive.d.ts.map +1 -0
  670. package/dist/workflows/migration/v2-run-archive.js +1220 -0
  671. package/dist/workflows/migration/v2-run-archive.js.map +1 -0
  672. package/dist/workflows/migration/v2-scanner.d.ts +22 -0
  673. package/dist/workflows/migration/v2-scanner.d.ts.map +1 -0
  674. package/dist/workflows/migration/v2-scanner.js +114 -0
  675. package/dist/workflows/migration/v2-scanner.js.map +1 -0
  676. package/dist/workflows/migration/v2-to-v3.d.ts +32 -0
  677. package/dist/workflows/migration/v2-to-v3.d.ts.map +1 -0
  678. package/dist/workflows/migration/v2-to-v3.js +494 -0
  679. package/dist/workflows/migration/v2-to-v3.js.map +1 -0
  680. package/dist/workflows/ops-projection.d.ts.map +1 -1
  681. package/dist/workflows/ops-projection.js +4 -3
  682. package/dist/workflows/ops-projection.js.map +1 -1
  683. package/dist/workflows/shared/idempotency-key.d.ts +19 -0
  684. package/dist/workflows/shared/idempotency-key.d.ts.map +1 -0
  685. package/dist/workflows/shared/idempotency-key.js +23 -0
  686. package/dist/workflows/shared/idempotency-key.js.map +1 -0
  687. package/dist/workflows/{params.d.ts → shared/params.d.ts} +42 -6
  688. package/dist/workflows/shared/params.d.ts.map +1 -0
  689. package/dist/workflows/{params.js → shared/params.js} +91 -4
  690. package/dist/workflows/shared/params.js.map +1 -0
  691. package/dist/workflows/shared/provider-reconciler.d.ts +47 -0
  692. package/dist/workflows/shared/provider-reconciler.d.ts.map +1 -0
  693. package/dist/workflows/shared/provider-reconciler.js +17 -0
  694. package/dist/workflows/shared/provider-reconciler.js.map +1 -0
  695. package/dist/workflows/{spawn-policy.d.ts → shared/sandbox-policy.d.ts} +2 -2
  696. package/dist/workflows/shared/sandbox-policy.d.ts.map +1 -0
  697. package/dist/workflows/{spawn-policy.js → shared/sandbox-policy.js} +1 -1
  698. package/dist/workflows/shared/sandbox-policy.js.map +1 -0
  699. package/dist/workflows/shared/worker-process.d.ts +29 -0
  700. package/dist/workflows/shared/worker-process.d.ts.map +1 -0
  701. package/dist/workflows/shared/worker-process.js +56 -0
  702. package/dist/workflows/shared/worker-process.js.map +1 -0
  703. package/dist/workflows/v3/architect.d.ts.map +1 -1
  704. package/dist/workflows/v3/architect.js +16 -4
  705. package/dist/workflows/v3/architect.js.map +1 -1
  706. package/dist/workflows/v3/attempt-ledger.d.ts +23 -0
  707. package/dist/workflows/v3/attempt-ledger.d.ts.map +1 -0
  708. package/dist/workflows/v3/attempt-ledger.js +74 -0
  709. package/dist/workflows/v3/attempt-ledger.js.map +1 -0
  710. package/dist/workflows/v3/bot-resolve.d.ts +19 -1
  711. package/dist/workflows/v3/bot-resolve.d.ts.map +1 -1
  712. package/dist/workflows/v3/bot-resolve.js +129 -3
  713. package/dist/workflows/v3/bot-resolve.js.map +1 -1
  714. package/dist/workflows/v3/cli-daemon-command-authority.d.ts +59 -0
  715. package/dist/workflows/v3/cli-daemon-command-authority.d.ts.map +1 -0
  716. package/dist/workflows/v3/cli-daemon-command-authority.js +175 -0
  717. package/dist/workflows/v3/cli-daemon-command-authority.js.map +1 -0
  718. package/dist/workflows/v3/cli-run.d.ts +27 -0
  719. package/dist/workflows/v3/cli-run.d.ts.map +1 -1
  720. package/dist/workflows/v3/cli-run.js +113 -29
  721. package/dist/workflows/v3/cli-run.js.map +1 -1
  722. package/dist/workflows/v3/contract.d.ts +16 -16
  723. package/dist/workflows/v3/contract.d.ts.map +1 -1
  724. package/dist/workflows/v3/contract.js +15 -11
  725. package/dist/workflows/v3/contract.js.map +1 -1
  726. package/dist/workflows/v3/daemon-ipc-auth.d.ts +113 -0
  727. package/dist/workflows/v3/daemon-ipc-auth.d.ts.map +1 -0
  728. package/dist/workflows/v3/daemon-ipc-auth.js +294 -0
  729. package/dist/workflows/v3/daemon-ipc-auth.js.map +1 -0
  730. package/dist/workflows/v3/daemon-ipc-body.d.ts +30 -0
  731. package/dist/workflows/v3/daemon-ipc-body.d.ts.map +1 -0
  732. package/dist/workflows/v3/daemon-ipc-body.js +65 -0
  733. package/dist/workflows/v3/daemon-ipc-body.js.map +1 -0
  734. package/dist/workflows/v3/daemon-ipc-client.d.ts +32 -0
  735. package/dist/workflows/v3/daemon-ipc-client.d.ts.map +1 -0
  736. package/dist/workflows/v3/daemon-ipc-client.js +74 -0
  737. package/dist/workflows/v3/daemon-ipc-client.js.map +1 -0
  738. package/dist/workflows/v3/daemon-run.d.ts +87 -2
  739. package/dist/workflows/v3/daemon-run.d.ts.map +1 -1
  740. package/dist/workflows/v3/daemon-run.js +863 -68
  741. package/dist/workflows/v3/daemon-run.js.map +1 -1
  742. package/dist/workflows/v3/dag.d.ts +22 -8
  743. package/dist/workflows/v3/dag.d.ts.map +1 -1
  744. package/dist/workflows/v3/dag.js +214 -22
  745. package/dist/workflows/v3/dag.js.map +1 -1
  746. package/dist/workflows/v3/distillation-compiler.d.ts +36 -0
  747. package/dist/workflows/v3/distillation-compiler.d.ts.map +1 -0
  748. package/dist/workflows/v3/distillation-compiler.js +704 -0
  749. package/dist/workflows/v3/distillation-compiler.js.map +1 -0
  750. package/dist/workflows/v3/distillation-private-root.d.ts +10 -0
  751. package/dist/workflows/v3/distillation-private-root.d.ts.map +1 -0
  752. package/dist/workflows/v3/distillation-private-root.js +34 -0
  753. package/dist/workflows/v3/distillation-private-root.js.map +1 -0
  754. package/dist/workflows/v3/distillation-runner.d.ts +64 -0
  755. package/dist/workflows/v3/distillation-runner.d.ts.map +1 -0
  756. package/dist/workflows/v3/distillation-runner.js +1028 -0
  757. package/dist/workflows/v3/distillation-runner.js.map +1 -0
  758. package/dist/workflows/v3/distillation-schema.d.ts +63 -0
  759. package/dist/workflows/v3/distillation-schema.d.ts.map +1 -0
  760. package/dist/workflows/v3/distillation-schema.js +184 -0
  761. package/dist/workflows/v3/distillation-schema.js.map +1 -0
  762. package/dist/workflows/v3/distillation-service.d.ts +78 -0
  763. package/dist/workflows/v3/distillation-service.d.ts.map +1 -0
  764. package/dist/workflows/v3/distillation-service.js +416 -0
  765. package/dist/workflows/v3/distillation-service.js.map +1 -0
  766. package/dist/workflows/v3/distillation-source.d.ts +35 -0
  767. package/dist/workflows/v3/distillation-source.d.ts.map +1 -0
  768. package/dist/workflows/v3/distillation-source.js +118 -0
  769. package/dist/workflows/v3/distillation-source.js.map +1 -0
  770. package/dist/workflows/v3/distillation-store.d.ts +185 -0
  771. package/dist/workflows/v3/distillation-store.d.ts.map +1 -0
  772. package/dist/workflows/v3/distillation-store.js +1127 -0
  773. package/dist/workflows/v3/distillation-store.js.map +1 -0
  774. package/dist/workflows/v3/drive-lease.d.ts +7 -0
  775. package/dist/workflows/v3/drive-lease.d.ts.map +1 -0
  776. package/dist/workflows/v3/drive-lease.js +10 -0
  777. package/dist/workflows/v3/drive-lease.js.map +1 -0
  778. package/dist/workflows/v3/ephemeral-pool.d.ts +1 -1
  779. package/dist/workflows/v3/ephemeral-pool.d.ts.map +1 -1
  780. package/dist/workflows/v3/ephemeral-pool.js +222 -37
  781. package/dist/workflows/v3/ephemeral-pool.js.map +1 -1
  782. package/dist/workflows/v3/grill-state.d.ts +18 -3
  783. package/dist/workflows/v3/grill-state.d.ts.map +1 -1
  784. package/dist/workflows/v3/grill-state.js +22 -5
  785. package/dist/workflows/v3/grill-state.js.map +1 -1
  786. package/dist/workflows/v3/host-bindings.d.ts +40 -0
  787. package/dist/workflows/v3/host-bindings.d.ts.map +1 -0
  788. package/dist/workflows/v3/host-bindings.js +272 -0
  789. package/dist/workflows/v3/host-bindings.js.map +1 -0
  790. package/dist/workflows/v3/host-effect-ledger.d.ts +22 -0
  791. package/dist/workflows/v3/host-effect-ledger.d.ts.map +1 -0
  792. package/dist/workflows/v3/host-effect-ledger.js +110 -0
  793. package/dist/workflows/v3/host-effect-ledger.js.map +1 -0
  794. package/dist/workflows/v3/host-execution.d.ts +142 -0
  795. package/dist/workflows/v3/host-execution.d.ts.map +1 -0
  796. package/dist/workflows/v3/host-execution.js +424 -0
  797. package/dist/workflows/v3/host-execution.js.map +1 -0
  798. package/dist/workflows/v3/host.d.ts +46 -10
  799. package/dist/workflows/v3/host.d.ts.map +1 -1
  800. package/dist/workflows/v3/host.js +419 -140
  801. package/dist/workflows/v3/host.js.map +1 -1
  802. package/dist/workflows/v3/human-gate.d.ts +19 -1
  803. package/dist/workflows/v3/human-gate.d.ts.map +1 -1
  804. package/dist/workflows/v3/human-gate.js +145 -19
  805. package/dist/workflows/v3/human-gate.js.map +1 -1
  806. package/dist/workflows/v3/journal.d.ts +125 -7
  807. package/dist/workflows/v3/journal.d.ts.map +1 -1
  808. package/dist/workflows/v3/journal.js +154 -38
  809. package/dist/workflows/v3/journal.js.map +1 -1
  810. package/dist/workflows/v3/library-materialize.d.ts +88 -0
  811. package/dist/workflows/v3/library-materialize.d.ts.map +1 -0
  812. package/dist/workflows/v3/library-materialize.js +294 -0
  813. package/dist/workflows/v3/library-materialize.js.map +1 -0
  814. package/dist/workflows/v3/library-schema.d.ts +138 -0
  815. package/dist/workflows/v3/library-schema.d.ts.map +1 -0
  816. package/dist/workflows/v3/library-schema.js +573 -0
  817. package/dist/workflows/v3/library-schema.js.map +1 -0
  818. package/dist/workflows/v3/library-service.d.ts +126 -0
  819. package/dist/workflows/v3/library-service.d.ts.map +1 -0
  820. package/dist/workflows/v3/library-service.js +542 -0
  821. package/dist/workflows/v3/library-service.js.map +1 -0
  822. package/dist/workflows/v3/library-store.d.ts +124 -0
  823. package/dist/workflows/v3/library-store.d.ts.map +1 -0
  824. package/dist/workflows/v3/library-store.js +665 -0
  825. package/dist/workflows/v3/library-store.js.map +1 -0
  826. package/dist/workflows/v3/orchestrator.d.ts +9 -1
  827. package/dist/workflows/v3/orchestrator.d.ts.map +1 -1
  828. package/dist/workflows/v3/orchestrator.js +2 -1
  829. package/dist/workflows/v3/orchestrator.js.map +1 -1
  830. package/dist/workflows/v3/progress-projection.d.ts +99 -0
  831. package/dist/workflows/v3/progress-projection.d.ts.map +1 -0
  832. package/dist/workflows/v3/progress-projection.js +197 -0
  833. package/dist/workflows/v3/progress-projection.js.map +1 -0
  834. package/dist/workflows/v3/run-envelope.d.ts +1279 -0
  835. package/dist/workflows/v3/run-envelope.d.ts.map +1 -0
  836. package/dist/workflows/v3/run-envelope.js +681 -0
  837. package/dist/workflows/v3/run-envelope.js.map +1 -0
  838. package/dist/workflows/v3/runtime.d.ts +39 -7
  839. package/dist/workflows/v3/runtime.d.ts.map +1 -1
  840. package/dist/workflows/v3/runtime.js +1992 -100
  841. package/dist/workflows/v3/runtime.js.map +1 -1
  842. package/dist/workflows/v3/session-relay-client.d.ts +61 -0
  843. package/dist/workflows/v3/session-relay-client.d.ts.map +1 -0
  844. package/dist/workflows/v3/session-relay-client.js +92 -0
  845. package/dist/workflows/v3/session-relay-client.js.map +1 -0
  846. package/dist/workflows/v3/session-relay.d.ts +66 -0
  847. package/dist/workflows/v3/session-relay.d.ts.map +1 -0
  848. package/dist/workflows/v3/session-relay.js +157 -0
  849. package/dist/workflows/v3/session-relay.js.map +1 -0
  850. package/dist/workflows/v3/start-intent.d.ts +8 -0
  851. package/dist/workflows/v3/start-intent.d.ts.map +1 -0
  852. package/dist/workflows/v3/start-intent.js +34 -0
  853. package/dist/workflows/v3/start-intent.js.map +1 -0
  854. package/dist/workflows/v3/state.d.ts +11 -2
  855. package/dist/workflows/v3/state.d.ts.map +1 -1
  856. package/dist/workflows/v3/state.js +182 -10
  857. package/dist/workflows/v3/state.js.map +1 -1
  858. package/dist/workflows/v3/template-bindings.d.ts +22 -0
  859. package/dist/workflows/v3/template-bindings.d.ts.map +1 -0
  860. package/dist/workflows/v3/template-bindings.js +204 -0
  861. package/dist/workflows/v3/template-bindings.js.map +1 -0
  862. package/dist/workflows/v3/worker-fence.d.ts +158 -0
  863. package/dist/workflows/v3/worker-fence.d.ts.map +1 -0
  864. package/dist/workflows/v3/worker-fence.js +685 -0
  865. package/dist/workflows/v3/worker-fence.js.map +1 -0
  866. package/package.json +3 -2
  867. package/dist/core/dashboard-command/workflows.d.ts +0 -20
  868. package/dist/core/dashboard-command/workflows.d.ts.map +0 -1
  869. package/dist/core/dashboard-command/workflows.js +0 -45
  870. package/dist/core/dashboard-command/workflows.js.map +0 -1
  871. package/dist/dashboard/web/legacy-workflow-link.d.ts +0 -2
  872. package/dist/dashboard/web/legacy-workflow-link.d.ts.map +0 -1
  873. package/dist/dashboard/web/legacy-workflow-link.js +0 -12
  874. package/dist/dashboard/web/legacy-workflow-link.js.map +0 -1
  875. package/dist/dashboard/web/legacy-workflow-page.d.ts +0 -3
  876. package/dist/dashboard/web/legacy-workflow-page.d.ts.map +0 -1
  877. package/dist/dashboard/web/legacy-workflow-page.js +0 -717
  878. package/dist/dashboard/web/legacy-workflow-page.js.map +0 -1
  879. package/dist/dashboard/web/workflow-version-switch.d.ts +0 -8
  880. package/dist/dashboard/web/workflow-version-switch.d.ts.map +0 -1
  881. package/dist/dashboard/web/workflow-version-switch.js +0 -9
  882. package/dist/dashboard/web/workflow-version-switch.js.map +0 -1
  883. package/dist/dashboard/web/workflows.d.ts +0 -273
  884. package/dist/dashboard/web/workflows.d.ts.map +0 -1
  885. package/dist/dashboard/web/workflows.js +0 -436
  886. package/dist/dashboard/web/workflows.js.map +0 -1
  887. package/dist/dashboard/workflow-api.d.ts +0 -30
  888. package/dist/dashboard/workflow-api.d.ts.map +0 -1
  889. package/dist/dashboard/workflow-api.js +0 -397
  890. package/dist/dashboard/workflow-api.js.map +0 -1
  891. package/dist/dashboard/workflow-card-model.d.ts +0 -127
  892. package/dist/dashboard/workflow-card-model.d.ts.map +0 -1
  893. package/dist/dashboard/workflow-card-model.js +0 -186
  894. package/dist/dashboard/workflow-card-model.js.map +0 -1
  895. package/dist/dashboard/workflows-action-helpers.d.ts +0 -105
  896. package/dist/dashboard/workflows-action-helpers.d.ts.map +0 -1
  897. package/dist/dashboard/workflows-action-helpers.js +0 -196
  898. package/dist/dashboard/workflows-action-helpers.js.map +0 -1
  899. package/dist/dashboard-web/chunks/bot-defaults-page-7T7DPOV6.js +0 -4
  900. package/dist/dashboard-web/chunks/chunk-IGXYYRYJ.js +0 -1
  901. package/dist/dashboard-web/chunks/chunk-ISOD7VDX.js +0 -1
  902. package/dist/dashboard-web/chunks/chunk-PNK3HQBI.js +0 -37
  903. package/dist/dashboard-web/chunks/chunk-SRIE4MLQ.js +0 -1
  904. package/dist/dashboard-web/chunks/connectors-page-UQ4QBE45.js +0 -1
  905. package/dist/dashboard-web/chunks/legacy-workflow-page-QMC7OZXH.js +0 -2
  906. package/dist/dashboard-web/chunks/sessions-page-NNZIDHZM.js +0 -3
  907. package/dist/dashboard-web/chunks/settings-page-LJIXX5LQ.js +0 -2
  908. package/dist/dashboard-web/chunks/v3-page-YLYVHGKD.js +0 -94
  909. package/dist/dashboard-web/terminal-replay.html +0 -227
  910. package/dist/im/lark/workflow-card-handler.d.ts +0 -51
  911. package/dist/im/lark/workflow-card-handler.d.ts.map +0 -1
  912. package/dist/im/lark/workflow-card-handler.js +0 -163
  913. package/dist/im/lark/workflow-card-handler.js.map +0 -1
  914. package/dist/im/lark/workflow-cards.d.ts +0 -47
  915. package/dist/im/lark/workflow-cards.d.ts.map +0 -1
  916. package/dist/im/lark/workflow-cards.js +0 -231
  917. package/dist/im/lark/workflow-cards.js.map +0 -1
  918. package/dist/im/lark/workflow-progress-card.d.ts +0 -81
  919. package/dist/im/lark/workflow-progress-card.d.ts.map +0 -1
  920. package/dist/im/lark/workflow-progress-card.js +0 -336
  921. package/dist/im/lark/workflow-progress-card.js.map +0 -1
  922. package/dist/im/lark/workflows-card.d.ts +0 -102
  923. package/dist/im/lark/workflows-card.d.ts.map +0 -1
  924. package/dist/im/lark/workflows-card.js +0 -737
  925. package/dist/im/lark/workflows-card.js.map +0 -1
  926. package/dist/workflows/attempt-resume.d.ts +0 -119
  927. package/dist/workflows/attempt-resume.d.ts.map +0 -1
  928. package/dist/workflows/attempt-resume.js +0 -392
  929. package/dist/workflows/attempt-resume.js.map +0 -1
  930. package/dist/workflows/blob.d.ts +0 -27
  931. package/dist/workflows/blob.d.ts.map +0 -1
  932. package/dist/workflows/blob.js +0 -40
  933. package/dist/workflows/blob.js.map +0 -1
  934. package/dist/workflows/cancel-run.d.ts +0 -45
  935. package/dist/workflows/cancel-run.d.ts.map +0 -1
  936. package/dist/workflows/cancel-run.js +0 -99
  937. package/dist/workflows/cancel-run.js.map +0 -1
  938. package/dist/workflows/cancel.d.ts +0 -111
  939. package/dist/workflows/cancel.d.ts.map +0 -1
  940. package/dist/workflows/cancel.js +0 -120
  941. package/dist/workflows/cancel.js.map +0 -1
  942. package/dist/workflows/catalog.d.ts +0 -60
  943. package/dist/workflows/catalog.d.ts.map +0 -1
  944. package/dist/workflows/catalog.js +0 -119
  945. package/dist/workflows/catalog.js.map +0 -1
  946. package/dist/workflows/cold-attach.d.ts +0 -30
  947. package/dist/workflows/cold-attach.d.ts.map +0 -1
  948. package/dist/workflows/cold-attach.js +0 -40
  949. package/dist/workflows/cold-attach.js.map +0 -1
  950. package/dist/workflows/cold-scan.d.ts +0 -21
  951. package/dist/workflows/cold-scan.d.ts.map +0 -1
  952. package/dist/workflows/cold-scan.js +0 -70
  953. package/dist/workflows/cold-scan.js.map +0 -1
  954. package/dist/workflows/daemon-spawn.d.ts +0 -119
  955. package/dist/workflows/daemon-spawn.d.ts.map +0 -1
  956. package/dist/workflows/daemon-spawn.js +0 -564
  957. package/dist/workflows/daemon-spawn.js.map +0 -1
  958. package/dist/workflows/effect-input.d.ts +0 -4
  959. package/dist/workflows/effect-input.d.ts.map +0 -1
  960. package/dist/workflows/effect-input.js +0 -19
  961. package/dist/workflows/effect-input.js.map +0 -1
  962. package/dist/workflows/events/append.d.ts +0 -77
  963. package/dist/workflows/events/append.d.ts.map +0 -1
  964. package/dist/workflows/events/append.js +0 -214
  965. package/dist/workflows/events/append.js.map +0 -1
  966. package/dist/workflows/events/idempotency.d.ts +0 -77
  967. package/dist/workflows/events/idempotency.d.ts.map +0 -1
  968. package/dist/workflows/events/idempotency.js +0 -116
  969. package/dist/workflows/events/idempotency.js.map +0 -1
  970. package/dist/workflows/events/index.d.ts +0 -7
  971. package/dist/workflows/events/index.d.ts.map +0 -1
  972. package/dist/workflows/events/index.js +0 -7
  973. package/dist/workflows/events/index.js.map +0 -1
  974. package/dist/workflows/fanout.d.ts +0 -36
  975. package/dist/workflows/fanout.d.ts.map +0 -1
  976. package/dist/workflows/fanout.js +0 -115
  977. package/dist/workflows/fanout.js.map +0 -1
  978. package/dist/workflows/hostExecutors/protocol.d.ts +0 -42
  979. package/dist/workflows/hostExecutors/protocol.d.ts.map +0 -1
  980. package/dist/workflows/hostExecutors/protocol.js +0 -181
  981. package/dist/workflows/hostExecutors/protocol.js.map +0 -1
  982. package/dist/workflows/loader.d.ts +0 -30
  983. package/dist/workflows/loader.d.ts.map +0 -1
  984. package/dist/workflows/loader.js +0 -84
  985. package/dist/workflows/loader.js.map +0 -1
  986. package/dist/workflows/loop.d.ts +0 -50
  987. package/dist/workflows/loop.d.ts.map +0 -1
  988. package/dist/workflows/loop.js +0 -408
  989. package/dist/workflows/loop.js.map +0 -1
  990. package/dist/workflows/orchestrator.d.ts +0 -171
  991. package/dist/workflows/orchestrator.d.ts.map +0 -1
  992. package/dist/workflows/orchestrator.js +0 -609
  993. package/dist/workflows/orchestrator.js.map +0 -1
  994. package/dist/workflows/output-binding.d.ts +0 -77
  995. package/dist/workflows/output-binding.d.ts.map +0 -1
  996. package/dist/workflows/output-binding.js +0 -329
  997. package/dist/workflows/output-binding.js.map +0 -1
  998. package/dist/workflows/params.d.ts.map +0 -1
  999. package/dist/workflows/params.js.map +0 -1
  1000. package/dist/workflows/resume.d.ts +0 -263
  1001. package/dist/workflows/resume.d.ts.map +0 -1
  1002. package/dist/workflows/resume.js +0 -808
  1003. package/dist/workflows/resume.js.map +0 -1
  1004. package/dist/workflows/run-id.d.ts +0 -2
  1005. package/dist/workflows/run-id.d.ts.map +0 -1
  1006. package/dist/workflows/run-id.js +0 -7
  1007. package/dist/workflows/run-id.js.map +0 -1
  1008. package/dist/workflows/run-init.d.ts +0 -48
  1009. package/dist/workflows/run-init.d.ts.map +0 -1
  1010. package/dist/workflows/run-init.js +0 -100
  1011. package/dist/workflows/run-init.js.map +0 -1
  1012. package/dist/workflows/runs-dir.d.ts +0 -4
  1013. package/dist/workflows/runs-dir.d.ts.map +0 -1
  1014. package/dist/workflows/runs-dir.js +0 -15
  1015. package/dist/workflows/runs-dir.js.map +0 -1
  1016. package/dist/workflows/runtime.d.ts +0 -215
  1017. package/dist/workflows/runtime.d.ts.map +0 -1
  1018. package/dist/workflows/runtime.js +0 -630
  1019. package/dist/workflows/runtime.js.map +0 -1
  1020. package/dist/workflows/spawn-bot.d.ts +0 -165
  1021. package/dist/workflows/spawn-bot.d.ts.map +0 -1
  1022. package/dist/workflows/spawn-bot.js +0 -215
  1023. package/dist/workflows/spawn-bot.js.map +0 -1
  1024. package/dist/workflows/spawn-policy.d.ts.map +0 -1
  1025. package/dist/workflows/spawn-policy.js.map +0 -1
  1026. package/dist/workflows/system.d.ts +0 -49
  1027. package/dist/workflows/system.d.ts.map +0 -1
  1028. package/dist/workflows/system.js +0 -48
  1029. package/dist/workflows/system.js.map +0 -1
  1030. package/dist/workflows/trigger-from-envelope.d.ts +0 -13
  1031. package/dist/workflows/trigger-from-envelope.d.ts.map +0 -1
  1032. package/dist/workflows/trigger-from-envelope.js +0 -68
  1033. package/dist/workflows/trigger-from-envelope.js.map +0 -1
  1034. package/dist/workflows/trigger-run.d.ts +0 -70
  1035. package/dist/workflows/trigger-run.d.ts.map +0 -1
  1036. package/dist/workflows/trigger-run.js +0 -88
  1037. package/dist/workflows/trigger-run.js.map +0 -1
  1038. package/dist/workflows/wait.d.ts +0 -141
  1039. package/dist/workflows/wait.d.ts.map +0 -1
  1040. package/dist/workflows/wait.js +0 -203
  1041. package/dist/workflows/wait.js.map +0 -1
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Host-neutral application service for v3 Saved Workflows.
3
+ *
4
+ * The schema/store/materializer modules own persistence and execution
5
+ * contracts. This layer adds the user-context rules shared by future CLI,
6
+ * IM, and dashboard adapters: source-run ownership, chat/global visibility,
7
+ * explicit name ambiguity, owner-only revision updates, and published-only
8
+ * instantiation. It has no daemon/session-store dependency; hosts pass the
9
+ * already-authenticated actor + chat context in.
10
+ */
11
+ import type { BotConfig } from '../../bot-registry.js';
12
+ import type { RawParamInput } from '../shared/params.js';
13
+ import { type MaterializedSavedWorkflowRun } from './library-materialize.js';
14
+ import { type SavedWorkflowMetadata, type SavedWorkflowOwner } from './library-schema.js';
15
+ import { loadCurrentSavedWorkflow, type SavedWorkflowListResult, type SavedWorkflowWriteResult } from './library-store.js';
16
+ import { type LoadedAuthorizedV3Run } from './run-envelope.js';
17
+ export interface SavedWorkflowActorContext {
18
+ actor: SavedWorkflowOwner;
19
+ /** Current invocation chat. Optional for a global-only list/resolve. */
20
+ chatId?: string;
21
+ chatType?: 'group' | 'p2p';
22
+ rootMessageId?: string;
23
+ sessionId?: string;
24
+ }
25
+ export type SavedWorkflowServiceErrorCode = 'invalid_context' | 'source_not_owned' | 'scope_mismatch' | 'not_found' | 'ambiguous' | 'not_published';
26
+ export declare class SavedWorkflowServiceError extends Error {
27
+ readonly code: SavedWorkflowServiceErrorCode;
28
+ readonly matches: SavedWorkflowMetadata[];
29
+ constructor(code: SavedWorkflowServiceErrorCode, message: string, matches?: SavedWorkflowMetadata[]);
30
+ }
31
+ interface SaveTerminalRunBase {
32
+ dataDir: string;
33
+ runDir: string;
34
+ context: SavedWorkflowActorContext;
35
+ /** Failed/blocked sources are draft-only and require this explicit opt-in. */
36
+ allowDraft?: boolean;
37
+ acknowledgeUnsafeLiterals?: boolean;
38
+ now?: Date;
39
+ }
40
+ export interface SaveTerminalRunAsNewWorkflowInput extends SaveTerminalRunBase {
41
+ workflowId?: never;
42
+ displayName?: string;
43
+ aliases?: string[];
44
+ /** Defaults to the current chat. Global publication must be explicit. */
45
+ scope?: 'chat' | 'global';
46
+ }
47
+ export interface AppendTerminalRunToWorkflowInput extends SaveTerminalRunBase {
48
+ /** Supplying an id always means append; it never creates implicitly. */
49
+ workflowId: string;
50
+ expectedLatestRevision?: string;
51
+ displayName?: never;
52
+ aliases?: never;
53
+ scope?: never;
54
+ }
55
+ export type SaveTerminalRunAsWorkflowInput = SaveTerminalRunAsNewWorkflowInput | AppendTerminalRunToWorkflowInput;
56
+ export type SaveTerminalRunAsWorkflowIdempotentInput = Omit<SaveTerminalRunAsNewWorkflowInput, 'allowDraft'> & {
57
+ allowDraft?: never;
58
+ };
59
+ export interface SaveTerminalRunAsWorkflowResult extends SavedWorkflowWriteResult {
60
+ sourceStatus: 'succeeded' | 'failed' | 'blocked';
61
+ created: boolean;
62
+ }
63
+ /**
64
+ * Stable identity for the default "save this completed run" action. Scope and
65
+ * display name are intentionally excluded: the first valid save wins, so a
66
+ * retried command/card callback can never fork duplicate definitions.
67
+ */
68
+ export declare function savedWorkflowIdForSourceRun(loaded: LoadedAuthorizedV3Run): string;
69
+ export interface ListVisibleSavedWorkflowsInput {
70
+ dataDir: string;
71
+ context: SavedWorkflowActorContext;
72
+ includeArchived?: boolean;
73
+ includeDrafts?: boolean;
74
+ }
75
+ export interface ResolveVisibleSavedWorkflowInput extends ListVisibleSavedWorkflowsInput {
76
+ ref: string;
77
+ }
78
+ export interface InstantiatePublishedSavedWorkflowInput {
79
+ dataDir: string;
80
+ ref: string;
81
+ context: SavedWorkflowActorContext;
82
+ rawParams?: Record<string, RawParamInput>;
83
+ bots: BotConfig[];
84
+ baseDir: string;
85
+ runId?: string;
86
+ now?: Date;
87
+ }
88
+ export interface ResolveOwnedTerminalRunInput {
89
+ baseDir: string;
90
+ source: 'last' | string;
91
+ context: SavedWorkflowActorContext;
92
+ }
93
+ /** Resolve `last` within the authenticated actor+chat scope, never globally. */
94
+ export declare function resolveOwnedTerminalRunDir(input: ResolveOwnedTerminalRunInput): Promise<string>;
95
+ /**
96
+ * Save a terminal run exactly as executed.
97
+ *
98
+ * There is deliberately no literal-to-parameter inference here. Ad-hoc runs
99
+ * become zero-parameter definitions. When the source itself came from a saved
100
+ * definition, its already-explicit input/context declarations are preserved
101
+ * from the integrity-pinned definition snapshot.
102
+ */
103
+ export declare function saveTerminalRunAsWorkflow(input: SaveTerminalRunAsWorkflowInput): Promise<SaveTerminalRunAsWorkflowResult>;
104
+ /**
105
+ * Card callbacks can be delivered or clicked more than once. This dedicated
106
+ * seam gives that surface stable source-run idempotency without changing the
107
+ * existing `/workflow save` command semantics (which may intentionally create
108
+ * another definition with a different name/scope).
109
+ */
110
+ export declare function saveTerminalRunAsWorkflowIdempotent(input: SaveTerminalRunAsWorkflowIdempotentInput): Promise<SaveTerminalRunAsWorkflowResult>;
111
+ /** List the current chat's workflows plus global workflows. */
112
+ export declare function listVisibleSavedWorkflows(input: ListVisibleSavedWorkflowsInput): Promise<SavedWorkflowListResult>;
113
+ /**
114
+ * Resolve a visible id/name/alias. Exact workflowId wins; names never silently
115
+ * prefer chat over global, so a collision is returned as an explicit error.
116
+ */
117
+ export declare function resolveVisibleSavedWorkflow(input: ResolveVisibleSavedWorkflowInput): Promise<SavedWorkflowMetadata>;
118
+ /** Resolve and re-check visibility after the second metadata/revision read. */
119
+ export declare function loadVisibleSavedWorkflow(input: ResolveVisibleSavedWorkflowInput, deps?: {
120
+ resolveVisible?: typeof resolveVisibleSavedWorkflow;
121
+ loadCurrent?: typeof loadCurrentSavedWorkflow;
122
+ }): Promise<SavedWorkflowWriteResult>;
123
+ /** Resolve the active revision and atomically materialize a fresh authorized run. */
124
+ export declare function instantiatePublishedSavedWorkflow(input: InstantiatePublishedSavedWorkflowInput): Promise<MaterializedSavedWorkflowRun>;
125
+ export {};
126
+ //# sourceMappingURL=library-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"library-service.d.ts","sourceRoot":"","sources":["../../../src/workflows/v3/library-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAKvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAIL,KAAK,4BAA4B,EAClC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAKL,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,EAExB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAOL,wBAAwB,EAIxB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAC9B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAS3B,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,wEAAwE;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,6BAA6B,GACrC,iBAAiB,GACjB,kBAAkB,GAClB,gBAAgB,GAChB,WAAW,GACX,WAAW,GACX,eAAe,CAAC;AAEpB,qBAAa,yBAA0B,SAAQ,KAAK;aAEhC,IAAI,EAAE,6BAA6B;aAEnC,OAAO,EAAE,qBAAqB,EAAE;gBAFhC,IAAI,EAAE,6BAA6B,EACnD,OAAO,EAAE,MAAM,EACC,OAAO,GAAE,qBAAqB,EAAO;CAKxD;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,yBAAyB,CAAC;IACnC,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,iCAAkC,SAAQ,mBAAmB;IAC5E,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,yEAAyE;IACzE,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC3B;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,OAAO,CAAC,EAAE,KAAK,CAAC;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,8BAA8B,GACtC,iCAAiC,GACjC,gCAAgC,CAAC;AAErC,MAAM,MAAM,wCAAwC,GAClD,IAAI,CAAC,iCAAiC,EAAE,YAAY,CAAC,GAAG;IAAE,UAAU,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAEjF,MAAM,WAAW,+BAAgC,SAAQ,wBAAwB;IAC/E,YAAY,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS,CAAC;IACjD,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAwBjF;AA6GD,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,yBAAyB,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gCAAiC,SAAQ,8BAA8B;IACtF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,sCAAsC;IACrD,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,yBAAyB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,IAAI,EAAE,SAAS,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,IAAI,CAAC;CACZ;AAED,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,OAAO,EAAE,yBAAyB,CAAC;CACpC;AA0HD,gFAAgF;AAChF,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,4BAA4B,GAClC,OAAO,CAAC,MAAM,CAAC,CAuCjB;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,+BAA+B,CAAC,CA8C1C;AAED;;;;;GAKG;AACH,wBAAsB,mCAAmC,CACvD,KAAK,EAAE,wCAAwC,GAC9C,OAAO,CAAC,+BAA+B,CAAC,CA0B1C;AAED,+DAA+D;AAC/D,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,uBAAuB,CAAC,CAkBlC;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,qBAAqB,CAAC,CAyBhC;AAED,+EAA+E;AAC/E,wBAAsB,wBAAwB,CAC5C,KAAK,EAAE,gCAAgC,EACvC,IAAI,GAAE;IACJ,cAAc,CAAC,EAAE,OAAO,2BAA2B,CAAC;IACpD,WAAW,CAAC,EAAE,OAAO,wBAAwB,CAAC;CAC1C,GACL,OAAO,CAAC,wBAAwB,CAAC,CAmBnC;AAED,qFAAqF;AACrF,wBAAsB,iCAAiC,CACrD,KAAK,EAAE,sCAAsC,GAC5C,OAAO,CAAC,4BAA4B,CAAC,CA6DvC"}
@@ -0,0 +1,542 @@
1
+ /**
2
+ * Host-neutral application service for v3 Saved Workflows.
3
+ *
4
+ * The schema/store/materializer modules own persistence and execution
5
+ * contracts. This layer adds the user-context rules shared by future CLI,
6
+ * IM, and dashboard adapters: source-run ownership, chat/global visibility,
7
+ * explicit name ambiguity, owner-only revision updates, and published-only
8
+ * instantiation. It has no daemon/session-store dependency; hosts pass the
9
+ * already-authenticated actor + chat context in.
10
+ */
11
+ import { createHash } from 'node:crypto';
12
+ import { existsSync, promises as fs, readFileSync } from 'node:fs';
13
+ import { basename, join } from 'node:path';
14
+ import { withFileLock, withFileLockSync } from '../../utils/file-lock.js';
15
+ import { compileSavedWorkflowFromRun, materializeSavedWorkflowRun, } from './library-materialize.js';
16
+ import { SAVED_WORKFLOW_ID_RE, canonicalJsonStringify, normalizeSavedWorkflowLookupKey, validateSavedWorkflowRevisionPayload, } from './library-schema.js';
17
+ import { SavedWorkflowConflictError, SavedWorkflowNotFoundError, SavedWorkflowPermissionError, appendSavedWorkflowRevision, createSavedWorkflow, listSavedWorkflows, loadCurrentSavedWorkflow, readSavedWorkflowMetadata, savedWorkflowDir, workflowLibraryRoot, } from './library-store.js';
18
+ import { artifactRef, loadAuthorizedV3Run, makeLegacyV3RunEnvelope, publishRunEnvelopeOnce, readRunEnvelope, } from './run-envelope.js';
19
+ import { isValidRunId } from './ops-projection.js';
20
+ import { readJournal } from './journal.js';
21
+ import { materialize } from './state.js';
22
+ import { readGrillState } from './grill-state.js';
23
+ import { loadDag } from './dag.js';
24
+ import { validateSpec } from './spec.js';
25
+ import { parseFrozenBotSnapshots } from './bot-resolve.js';
26
+ export class SavedWorkflowServiceError extends Error {
27
+ code;
28
+ matches;
29
+ constructor(code, message, matches = []) {
30
+ super(message);
31
+ this.code = code;
32
+ this.matches = matches;
33
+ this.name = 'SavedWorkflowServiceError';
34
+ }
35
+ }
36
+ /**
37
+ * Stable identity for the default "save this completed run" action. Scope and
38
+ * display name are intentionally excluded: the first valid save wins, so a
39
+ * retried command/card callback can never fork duplicate definitions.
40
+ */
41
+ export function savedWorkflowIdForSourceRun(loaded) {
42
+ const binding = loaded.envelope.chatBinding;
43
+ if (!binding?.ownerOpenId) {
44
+ throw new SavedWorkflowServiceError('source_not_owned', `Source run '${loaded.envelope.runId}' has no authenticated owner binding`);
45
+ }
46
+ const specSha256 = 'spec' in loaded.envelope.artifacts
47
+ ? loaded.envelope.artifacts.spec?.sha256 ?? ''
48
+ : '';
49
+ const digest = createHash('sha256')
50
+ .update([
51
+ 'v3-terminal-save:v1',
52
+ loaded.envelope.runId,
53
+ loaded.envelope.artifacts.dag.sha256,
54
+ specSha256,
55
+ binding.ownerOpenId,
56
+ binding.larkAppId,
57
+ binding.chatId,
58
+ ].join('\0'))
59
+ .digest('hex')
60
+ .slice(0, 32);
61
+ return `wf_${digest}`;
62
+ }
63
+ function comparableRevisionDraft(payload) {
64
+ return {
65
+ ...(payload.sourceRunId ? { sourceRunId: payload.sourceRunId } : {}),
66
+ inputs: payload.inputs,
67
+ contextRefs: payload.contextRefs,
68
+ specTemplate: payload.specTemplate,
69
+ specStatus: payload.specStatus,
70
+ dagTemplate: payload.dagTemplate,
71
+ safety: payload.safety,
72
+ };
73
+ }
74
+ async function loadMatchingIdempotentSave(dataDir, workflowId, context, revision) {
75
+ const current = await loadCurrentSavedWorkflow(dataDir, workflowId, {
76
+ revision: 'latest',
77
+ requireActive: false,
78
+ });
79
+ if (!sameOwner(current.metadata.owner, context.actor)) {
80
+ throw new SavedWorkflowConflictError(`Idempotent saved workflow '${workflowId}' belongs to a different owner`);
81
+ }
82
+ if (current.metadata.status !== 'active' ||
83
+ current.metadata.publishedRevision !== current.revision.revisionId) {
84
+ throw new SavedWorkflowConflictError(`Idempotent saved workflow '${workflowId}' is no longer the active published result`);
85
+ }
86
+ if (canonicalJsonStringify(comparableRevisionDraft(current.revision.payload)) !==
87
+ canonicalJsonStringify(revision)) {
88
+ throw new SavedWorkflowConflictError(`Idempotent saved workflow '${workflowId}' does not match source run artifacts`);
89
+ }
90
+ return current;
91
+ }
92
+ async function createSavedWorkflowIdempotently(input) {
93
+ const root = workflowLibraryRoot(input.dataDir);
94
+ await fs.mkdir(root, { recursive: true, mode: 0o700 });
95
+ const lockTarget = join(root, `.terminal-save-${input.workflowId}`);
96
+ return withFileLock(lockTarget, async () => {
97
+ try {
98
+ const existing = await loadMatchingIdempotentSave(input.dataDir, input.workflowId, input.context, input.revision);
99
+ return { ...existing, created: false };
100
+ }
101
+ catch (err) {
102
+ if (!(err instanceof SavedWorkflowNotFoundError))
103
+ throw err;
104
+ }
105
+ // A process may have died after creating the private directory but before
106
+ // metadata.json became the store's commit marker. The deterministic source
107
+ // lock makes this directory ours; remove only that uncommitted remnant.
108
+ const dir = savedWorkflowDir(input.dataDir, input.workflowId);
109
+ const metadataPath = join(dir, 'metadata.json');
110
+ if (existsSync(dir) && !existsSync(metadataPath)) {
111
+ await fs.rm(dir, { recursive: true, force: true });
112
+ }
113
+ try {
114
+ const written = await createSavedWorkflow(input.dataDir, {
115
+ workflowId: input.workflowId,
116
+ displayName: input.displayName,
117
+ aliases: input.aliases,
118
+ owner: input.owner,
119
+ scope: input.scope,
120
+ revision: input.revision,
121
+ publish: input.publish,
122
+ now: input.now,
123
+ });
124
+ return { ...written, created: true };
125
+ }
126
+ catch (err) {
127
+ if (!(err instanceof SavedWorkflowConflictError))
128
+ throw err;
129
+ const existing = await loadMatchingIdempotentSave(input.dataDir, input.workflowId, input.context, input.revision);
130
+ return { ...existing, created: false };
131
+ }
132
+ });
133
+ }
134
+ function terminalSourceStatus(runDir, runId) {
135
+ const events = readJournal(join(runDir, 'journal.ndjson'));
136
+ const starts = events.filter((event) => event.type === 'runStarted');
137
+ if (starts.length !== 1 || starts[0].runId !== runId) {
138
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' has no single matching runStarted identity`);
139
+ }
140
+ const status = materialize(events).runStatus;
141
+ if (status !== 'succeeded' && status !== 'failed' && status !== 'blocked') {
142
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' is not terminal (status=${status})`);
143
+ }
144
+ return status;
145
+ }
146
+ /**
147
+ * Strictly load a terminal source and opportunistically seal the narrow class
148
+ * of pre-run.json v3 runs whose ownership is still provable from their
149
+ * Gate-2 grill binding. Historical runs without ownerOpenId remain rejected:
150
+ * assigning them to whoever asks first in a shared chat would be an ownership
151
+ * escalation, not a migration.
152
+ */
153
+ function loadOwnedTerminalRunForSave(runDir, context) {
154
+ const runId = basename(runDir);
155
+ if (!isValidRunId(runId)) {
156
+ throw new SavedWorkflowServiceError('invalid_context', `Invalid source runId ${JSON.stringify(runId)}`);
157
+ }
158
+ const sealIfNeeded = () => {
159
+ const initial = readRunEnvelope(runDir, runId);
160
+ if (initial.kind === 'ok')
161
+ return;
162
+ if (initial.kind === 'invalid') {
163
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' has an invalid run.json: ${initial.problems.join('; ')}`);
164
+ }
165
+ withFileLockSync(join(runDir, 'run.json'), () => {
166
+ const current = readRunEnvelope(runDir, runId);
167
+ if (current.kind === 'ok')
168
+ return;
169
+ if (current.kind === 'invalid') {
170
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' has an invalid run.json: ${current.problems.join('; ')}`);
171
+ }
172
+ const grill = readGrillState(runDir);
173
+ const binding = grill?.chatBinding;
174
+ if (!grill ||
175
+ grill.runId !== runId ||
176
+ grill.status !== 'dag_approved' ||
177
+ !binding ||
178
+ !binding.ownerOpenId) {
179
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' predates Saved Workflow sealing and its owner cannot be proven. ` +
180
+ 'Re-run it on the current version, or migrate it explicitly as an administrator.');
181
+ }
182
+ if (binding.ownerOpenId !== context.actor.openId ||
183
+ binding.larkAppId !== context.actor.larkAppId ||
184
+ binding.chatId !== context.chatId) {
185
+ throw new SavedWorkflowServiceError('source_not_owned', `Source run '${runId}' belongs to a different actor`);
186
+ }
187
+ const dagPath = join(runDir, 'dag.json');
188
+ const specPath = join(runDir, 'spec.json');
189
+ const botPath = join(runDir, 'bots.snapshot.json');
190
+ if (![dagPath, specPath, botPath].every(existsSync)) {
191
+ throw new SavedWorkflowServiceError('invalid_context', `Run '${runId}' is missing canonical dag/spec/bot artifacts and cannot be sealed for saving`);
192
+ }
193
+ const dag = loadDag(dagPath);
194
+ if (dag.runId !== runId)
195
+ throw new Error(`legacy DAG runId mismatch: ${dag.runId}`);
196
+ const spec = validateSpec(JSON.parse(readFileSync(specPath, 'utf-8')));
197
+ if (spec.runId !== runId)
198
+ throw new Error(`legacy spec runId mismatch: ${spec.runId}`);
199
+ parseFrozenBotSnapshots(JSON.parse(readFileSync(botPath, 'utf-8')), dag);
200
+ terminalSourceStatus(runDir, runId);
201
+ publishRunEnvelopeOnce(runDir, makeLegacyV3RunEnvelope({
202
+ runId,
203
+ createdAt: grill.createdAt,
204
+ backfilledAt: new Date().toISOString(),
205
+ original: 'grill',
206
+ basis: 'runtime_started',
207
+ chatBinding: binding,
208
+ artifacts: {
209
+ dag: artifactRef(runDir, 'dag.json'),
210
+ spec: artifactRef(runDir, 'spec.json'),
211
+ botSnapshots: artifactRef(runDir, 'bots.snapshot.json'),
212
+ },
213
+ }));
214
+ });
215
+ };
216
+ sealIfNeeded();
217
+ const loaded = loadAuthorizedV3Run(runDir, {
218
+ allowedSources: ['ad_hoc', 'saved_definition', 'legacy_v3'],
219
+ });
220
+ assertSourceOwnedByCaller(loaded, context);
221
+ return { loaded, status: terminalSourceStatus(runDir, runId) };
222
+ }
223
+ /** Resolve `last` within the authenticated actor+chat scope, never globally. */
224
+ export async function resolveOwnedTerminalRunDir(input) {
225
+ const context = requireActorContext(input.context, { requireChat: true });
226
+ if (input.source !== 'last') {
227
+ if (!isValidRunId(input.source)) {
228
+ throw new SavedWorkflowServiceError('invalid_context', `Invalid source runId ${JSON.stringify(input.source)}`);
229
+ }
230
+ const runDir = join(input.baseDir, input.source);
231
+ try {
232
+ const stat = await fs.stat(runDir);
233
+ if (!stat.isDirectory())
234
+ throw notFound(input.source);
235
+ }
236
+ catch (err) {
237
+ if (err.code === 'ENOENT')
238
+ throw notFound(input.source);
239
+ throw err;
240
+ }
241
+ loadOwnedTerminalRunForSave(runDir, context);
242
+ return runDir;
243
+ }
244
+ let names;
245
+ try {
246
+ names = await fs.readdir(input.baseDir);
247
+ }
248
+ catch (err) {
249
+ if (err.code === 'ENOENT')
250
+ throw notFound('last run');
251
+ throw err;
252
+ }
253
+ const candidates = [];
254
+ for (const runId of names) {
255
+ if (!isValidRunId(runId))
256
+ continue;
257
+ const runDir = join(input.baseDir, runId);
258
+ try {
259
+ const stat = await fs.stat(runDir);
260
+ if (!stat.isDirectory())
261
+ continue;
262
+ const candidate = loadOwnedTerminalRunForSave(runDir, context);
263
+ candidates.push({ runDir, createdAt: candidate.loaded.envelope.createdAt, runId });
264
+ }
265
+ catch { /* malformed/incomplete candidate is not "last terminal" */ }
266
+ }
267
+ candidates.sort((a, b) => b.createdAt.localeCompare(a.createdAt) || b.runId.localeCompare(a.runId));
268
+ if (candidates.length === 0)
269
+ throw notFound('last run');
270
+ return candidates[0].runDir;
271
+ }
272
+ /**
273
+ * Save a terminal run exactly as executed.
274
+ *
275
+ * There is deliberately no literal-to-parameter inference here. Ad-hoc runs
276
+ * become zero-parameter definitions. When the source itself came from a saved
277
+ * definition, its already-explicit input/context declarations are preserved
278
+ * from the integrity-pinned definition snapshot.
279
+ */
280
+ export async function saveTerminalRunAsWorkflow(input) {
281
+ const context = requireActorContext(input.context, { requireChat: true });
282
+ const { loaded } = loadOwnedTerminalRunForSave(input.runDir, context);
283
+ const compileOptions = exactCompileOptions(loaded, input.allowDraft === true, input.acknowledgeUnsafeLiterals === true);
284
+ const compiled = compileSavedWorkflowFromRun(input.runDir, compileOptions);
285
+ if (input.workflowId !== undefined) {
286
+ let metadata;
287
+ try {
288
+ metadata = await readSavedWorkflowMetadata(input.dataDir, input.workflowId);
289
+ }
290
+ catch (err) {
291
+ if (err instanceof SavedWorkflowNotFoundError)
292
+ throw notFound(input.workflowId);
293
+ throw err;
294
+ }
295
+ assertMetadataVisibleInContext(metadata, context);
296
+ if (!sameOwner(metadata.owner, context.actor)) {
297
+ throw new SavedWorkflowPermissionError(metadata.workflowId);
298
+ }
299
+ const written = await appendSavedWorkflowRevision(input.dataDir, input.workflowId, {
300
+ actor: context.actor,
301
+ revision: compiled.revision,
302
+ publish: compiled.publish,
303
+ expectedLatestRevision: input.expectedLatestRevision,
304
+ now: input.now,
305
+ });
306
+ return { ...written, sourceStatus: compiled.sourceStatus, created: false };
307
+ }
308
+ const scope = input.scope === 'global'
309
+ ? { kind: 'global' }
310
+ : { kind: 'chat', chatId: context.chatId };
311
+ const written = await createSavedWorkflow(input.dataDir, {
312
+ displayName: input.displayName ?? compiled.displayName,
313
+ aliases: input.aliases,
314
+ owner: context.actor,
315
+ scope,
316
+ revision: compiled.revision,
317
+ publish: compiled.publish,
318
+ now: input.now,
319
+ });
320
+ return { ...written, sourceStatus: compiled.sourceStatus, created: true };
321
+ }
322
+ /**
323
+ * Card callbacks can be delivered or clicked more than once. This dedicated
324
+ * seam gives that surface stable source-run idempotency without changing the
325
+ * existing `/workflow save` command semantics (which may intentionally create
326
+ * another definition with a different name/scope).
327
+ */
328
+ export async function saveTerminalRunAsWorkflowIdempotent(input) {
329
+ const context = requireActorContext(input.context, { requireChat: true });
330
+ const { loaded } = loadOwnedTerminalRunForSave(input.runDir, context);
331
+ const compileOptions = exactCompileOptions(loaded, false, input.acknowledgeUnsafeLiterals === true);
332
+ const compiled = compileSavedWorkflowFromRun(input.runDir, compileOptions);
333
+ const scope = input.scope === 'global'
334
+ ? { kind: 'global' }
335
+ : { kind: 'chat', chatId: context.chatId };
336
+ const workflowId = savedWorkflowIdForSourceRun(loaded);
337
+ const written = await createSavedWorkflowIdempotently({
338
+ workflowId,
339
+ dataDir: input.dataDir,
340
+ displayName: input.displayName ?? compiled.displayName,
341
+ aliases: input.aliases,
342
+ owner: context.actor,
343
+ scope,
344
+ revision: compiled.revision,
345
+ publish: compiled.publish,
346
+ context,
347
+ now: input.now,
348
+ });
349
+ return { ...written, sourceStatus: compiled.sourceStatus, created: written.created };
350
+ }
351
+ /** List the current chat's workflows plus global workflows. */
352
+ export async function listVisibleSavedWorkflows(input) {
353
+ const context = requireActorContext(input.context);
354
+ const listed = await listSavedWorkflows(input.dataDir, {
355
+ chatId: context.chatId,
356
+ actor: context.actor,
357
+ includeArchived: input.includeArchived,
358
+ includeDrafts: input.includeDrafts,
359
+ });
360
+ // Archived definitions are management state, not a shared catalog surface.
361
+ // Even when explicitly requested, only their owner sees them.
362
+ return {
363
+ entries: listed.entries.filter((metadata) => metadata.status !== 'archived' || sameOwner(metadata.owner, context.actor)),
364
+ // A malformed directory has no trustworthy app owner. Exposing even its
365
+ // count would leak shared-dataDir state across bots, so user-facing list
366
+ // operations omit it. Store-level diagnostics remain available to ops.
367
+ invalid: [],
368
+ };
369
+ }
370
+ /**
371
+ * Resolve a visible id/name/alias. Exact workflowId wins; names never silently
372
+ * prefer chat over global, so a collision is returned as an explicit error.
373
+ */
374
+ export async function resolveVisibleSavedWorkflow(input) {
375
+ const ref = input.ref.trim();
376
+ if (!ref) {
377
+ throw new SavedWorkflowServiceError('invalid_context', 'Saved Workflow reference must not be empty');
378
+ }
379
+ const listed = await listVisibleSavedWorkflows(input);
380
+ if (SAVED_WORKFLOW_ID_RE.test(ref)) {
381
+ const exact = listed.entries.find((entry) => entry.workflowId === ref);
382
+ if (exact)
383
+ return exact;
384
+ throw notFound(ref);
385
+ }
386
+ const key = normalizeSavedWorkflowLookupKey(ref);
387
+ const matches = listed.entries.filter((metadata) => normalizeSavedWorkflowLookupKey(metadata.displayName) === key ||
388
+ metadata.aliases.some((alias) => normalizeSavedWorkflowLookupKey(alias) === key));
389
+ if (matches.length === 0)
390
+ throw notFound(ref);
391
+ if (matches.length > 1) {
392
+ throw new SavedWorkflowServiceError('ambiguous', `Saved Workflow reference ${JSON.stringify(ref)} is ambiguous; use a workflowId`, matches);
393
+ }
394
+ return matches[0];
395
+ }
396
+ /** Resolve and re-check visibility after the second metadata/revision read. */
397
+ export async function loadVisibleSavedWorkflow(input, deps = {}) {
398
+ const context = requireActorContext(input.context);
399
+ const resolveVisible = deps.resolveVisible ?? resolveVisibleSavedWorkflow;
400
+ const loadCurrent = deps.loadCurrent ?? loadCurrentSavedWorkflow;
401
+ const resolved = await resolveVisible({ ...input, context });
402
+ let current;
403
+ try {
404
+ current = await loadCurrent(input.dataDir, resolved.workflowId, {
405
+ revision: resolved.publishedRevision ? 'published' : 'latest',
406
+ requireActive: false,
407
+ });
408
+ }
409
+ catch (err) {
410
+ if (err instanceof SavedWorkflowNotFoundError)
411
+ throw notFound(resolved.workflowId);
412
+ throw err;
413
+ }
414
+ // Metadata is mutable. Re-check after loading the revision so a concurrent
415
+ // archive/scope/app change cannot disclose the second read through show.
416
+ assertMetadataVisibleInContext(current.metadata, context);
417
+ return current;
418
+ }
419
+ /** Resolve the active revision and atomically materialize a fresh authorized run. */
420
+ export async function instantiatePublishedSavedWorkflow(input) {
421
+ const context = requireActorContext(input.context, { requireChat: true });
422
+ const resolved = await resolveVisibleSavedWorkflow({
423
+ dataDir: input.dataDir,
424
+ ref: input.ref,
425
+ context,
426
+ includeDrafts: true,
427
+ });
428
+ if (resolved.status !== 'active' || !resolved.publishedRevision) {
429
+ throw new SavedWorkflowServiceError('not_published', `Saved Workflow '${resolved.workflowId}' has no published revision`);
430
+ }
431
+ let current;
432
+ try {
433
+ current = await loadCurrentSavedWorkflow(input.dataDir, resolved.workflowId, {
434
+ revision: 'published',
435
+ requireActive: true,
436
+ });
437
+ }
438
+ catch (err) {
439
+ if (err instanceof SavedWorkflowNotFoundError)
440
+ throw notFound(resolved.workflowId);
441
+ if (err instanceof SavedWorkflowConflictError) {
442
+ throw new SavedWorkflowServiceError('not_published', `Saved Workflow '${resolved.workflowId}' no longer has an active published revision`);
443
+ }
444
+ throw err;
445
+ }
446
+ // Re-check after the second store read so an archive/scope race cannot make a
447
+ // definition executable after it ceased to be visible to this caller.
448
+ assertMetadataVisibleInContext(current.metadata, context);
449
+ if (current.metadata.status !== 'active' || !current.metadata.publishedRevision) {
450
+ throw new SavedWorkflowServiceError('not_published', `Saved Workflow '${current.metadata.workflowId}' has no published revision`);
451
+ }
452
+ return materializeSavedWorkflowRun({
453
+ metadata: current.metadata,
454
+ revision: current.revision,
455
+ rawParams: input.rawParams,
456
+ context: {
457
+ initiatorOpenId: context.actor.openId,
458
+ chatBinding: {
459
+ larkAppId: context.actor.larkAppId,
460
+ chatId: context.chatId,
461
+ ...(context.chatType ? { chatType: context.chatType } : {}),
462
+ ...(context.rootMessageId ? { rootMessageId: context.rootMessageId } : {}),
463
+ ...(context.sessionId ? { sessionId: context.sessionId } : {}),
464
+ ownerOpenId: context.actor.openId,
465
+ },
466
+ },
467
+ bots: input.bots,
468
+ baseDir: input.baseDir,
469
+ runId: input.runId,
470
+ now: input.now,
471
+ });
472
+ }
473
+ function requireActorContext(context, opts = {}) {
474
+ if (!context?.actor?.openId?.trim() || !context.actor.larkAppId?.trim()) {
475
+ throw new SavedWorkflowServiceError('invalid_context', 'Saved Workflow actor requires non-empty openId and larkAppId');
476
+ }
477
+ if (context.chatId !== undefined && !context.chatId.trim()) {
478
+ throw new SavedWorkflowServiceError('invalid_context', 'Saved Workflow chatId must not be empty');
479
+ }
480
+ if (opts.requireChat && !context.chatId) {
481
+ throw new SavedWorkflowServiceError('invalid_context', 'This Saved Workflow operation requires a chat context');
482
+ }
483
+ return context;
484
+ }
485
+ function sameOwner(a, b) {
486
+ return a.openId === b.openId && a.larkAppId === b.larkAppId;
487
+ }
488
+ function assertSourceOwnedByCaller(loaded, context) {
489
+ const binding = loaded.envelope.chatBinding;
490
+ if (!binding) {
491
+ throw new SavedWorkflowServiceError('source_not_owned', `Source run '${loaded.envelope.runId}' has no authenticated chat owner binding`);
492
+ }
493
+ if (binding.chatId !== context.chatId) {
494
+ throw new SavedWorkflowServiceError('scope_mismatch', `Source run '${loaded.envelope.runId}' belongs to a different chat`);
495
+ }
496
+ if (binding.larkAppId !== context.actor.larkAppId ||
497
+ !binding.ownerOpenId ||
498
+ binding.ownerOpenId !== context.actor.openId) {
499
+ throw new SavedWorkflowServiceError('source_not_owned', `Source run '${loaded.envelope.runId}' belongs to a different actor`);
500
+ }
501
+ }
502
+ function assertMetadataVisibleInContext(metadata, context) {
503
+ // Treat a cross-app lookup exactly like a missing workflow: callers must not
504
+ // learn whether another bot sharing dataDir owns this id/name.
505
+ if (metadata.owner.larkAppId !== context.actor.larkAppId)
506
+ throw notFound(metadata.workflowId);
507
+ if (metadata.status === 'archived')
508
+ throw notFound(metadata.workflowId);
509
+ if (metadata.scope.kind === 'chat' && metadata.scope.chatId !== context.chatId) {
510
+ throw new SavedWorkflowServiceError('scope_mismatch', `Saved Workflow '${metadata.workflowId}' belongs to a different chat`);
511
+ }
512
+ if (metadata.status === 'draft' && !sameOwner(metadata.owner, context.actor)) {
513
+ throw notFound(metadata.workflowId);
514
+ }
515
+ }
516
+ function exactCompileOptions(loaded, allowDraft, acknowledgeUnsafeLiterals = false) {
517
+ const opts = { allowDraft, acknowledgeUnsafeLiterals };
518
+ if (loaded.envelope.source.kind !== 'saved_definition')
519
+ return opts;
520
+ const snapshot = loaded.definitionSnapshot;
521
+ if (!snapshot || typeof snapshot !== 'object' || Array.isArray(snapshot)) {
522
+ throw new Error('cannot save workflow: saved-definition source has no valid definition snapshot');
523
+ }
524
+ const record = snapshot;
525
+ const payload = validateSavedWorkflowRevisionPayload(record.definition);
526
+ const source = loaded.envelope.source;
527
+ if (record.workflowId !== source.workflowId ||
528
+ record.revisionId !== source.revisionId ||
529
+ record.humanVersion !== source.humanVersion ||
530
+ payload.workflowId !== source.workflowId ||
531
+ payload.humanVersion !== source.humanVersion) {
532
+ throw new Error('cannot save workflow: definition snapshot identity does not match run envelope');
533
+ }
534
+ opts.inputs = payload.inputs;
535
+ opts.contextRefs = payload.contextRefs;
536
+ opts.specStatus = payload.specStatus;
537
+ return opts;
538
+ }
539
+ function notFound(ref) {
540
+ return new SavedWorkflowServiceError('not_found', `Saved Workflow ${JSON.stringify(ref)} was not found in the current scope`);
541
+ }
542
+ //# sourceMappingURL=library-service.js.map