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
@@ -1,788 +1,109 @@
1
- /**
2
- * `botmux workflow <sub>` CLI subcommand handlers.
3
- *
4
- * v0 offline-runner: load a workflow definition, drive `runLoop` against
5
- * a stub spawn, and print events to stdout. No daemon / no IM
6
- * integration — used for smoke-testing the orchestrator end-to-end.
7
- *
8
- * The on-daemon path (with lark fan-out, real worker spawn) lives in
9
- * the `/workflow run` Skill (Slice E-2). This module deliberately
10
- * keeps the CLI route the simplest possible smoke test.
11
- */
12
- import { promises as fs } from 'node:fs';
13
- import { join } from 'node:path';
14
- import { ZodError } from 'zod';
15
- import { EventLog } from '../workflows/events/append.js';
16
- import { replay } from '../workflows/events/replay.js';
17
- import { parseWorkflowDefinition } from '../workflows/definition.js';
18
- import { loadWorkflowDefinition } from '../workflows/loader.js';
19
- import { coerceWorkflowParams, ParamCoerceFailure, } from '../workflows/params.js';
20
- import { runLoop } from '../workflows/loop.js';
21
- import { mintWorkflowRunId } from '../workflows/run-id.js';
22
- import { createRun } from '../workflows/run-init.js';
23
- import { getRunsDir, runDir } from '../workflows/runs-dir.js';
24
- import { createDefaultHostExecutorRegistry, createDefaultProviderReconcilers, } from '../workflows/hostExecutors/registry.js';
25
- import { loadEffectInputSidecar } from '../workflows/effect-input.js';
26
- import { cancelWorkflowRun, isTerminalRunStatus, } from '../workflows/cancel-run.js';
27
- import { createStubSpawnFn, } from '../workflows/spawn-bot.js';
28
- import { eventSeqFromId, extractEventContext, listRuns, } from '../workflows/ops-projection.js';
29
- // Local arg parsers — mirror cli.ts shape; deliberately not exported.
30
- function argValue(args, ...flags) {
31
- for (let i = 0; i < args.length; i++) {
32
- const a = args[i];
33
- for (const f of flags) {
34
- if (a === f && i + 1 < args.length)
35
- return args[i + 1];
36
- if (a.startsWith(f + '='))
37
- return a.slice(f.length + 1);
38
- }
39
- }
40
- return undefined;
41
- }
42
- function positionals(args) {
43
- const out = [];
44
- for (let i = 0; i < args.length; i++) {
45
- const a = args[i];
46
- if (a.startsWith('--')) {
47
- if (!a.includes('=') && i + 1 < args.length)
48
- i++;
49
- continue;
50
- }
51
- out.push(a);
52
- }
53
- return out;
54
- }
1
+ /** Workflow command dispatch after the v2 runtime retirement. */
2
+ const LEGACY_TEMPLATE_RETIRED = 'v2 workflow runtime 已下线;请先用 `botmux template migrate-v3` 迁移定义,' +
3
+ '再用 `botmux workflow run <名称|workflowId>` 执行 Saved Workflow。';
4
+ const V3_HOST_SUBCOMMANDS = new Set([
5
+ 'new',
6
+ 'spec-finalize',
7
+ 'approve-spec',
8
+ 'revise-spec',
9
+ 'architect',
10
+ 'revise-dag',
11
+ 'approve-dag',
12
+ ]);
13
+ const V3_SAVED_SUBCOMMANDS = new Set(['save', 'run', 'list', 'show']);
14
+ const RETIRED_TEMPLATE_SUBCOMMANDS = new Set([
15
+ 'run',
16
+ 'resume',
17
+ 'cancel',
18
+ 'ls',
19
+ 'list',
20
+ 'tail',
21
+ 'validate',
22
+ 'show',
23
+ ]);
55
24
  export async function cmdWorkflow(sub, rest) {
56
- // v3 grill host-controller verbs route to host.ts (lazy import — keeps the v3
57
- // ephemeral-pool / worker deps out of the v0.2 workflow path).
58
- if (['new', 'spec-finalize', 'approve-spec', 'revise-spec', 'architect', 'revise-dag', 'approve-dag'].includes(sub)) {
25
+ if (V3_HOST_SUBCOMMANDS.has(sub)) {
59
26
  const { cmdWorkflowHost } = await import('../workflows/v3/host.js');
60
27
  await cmdWorkflowHost(sub, rest);
61
28
  return;
62
29
  }
30
+ if (V3_SAVED_SUBCOMMANDS.has(sub)) {
31
+ const { cmdSavedWorkflow } = await import('./saved-workflow.js');
32
+ await cmdSavedWorkflow(sub, rest);
33
+ return;
34
+ }
35
+ if (sub === 'help' || !sub) {
36
+ printWorkflowHelp();
37
+ return;
38
+ }
39
+ if (RETIRED_TEMPLATE_SUBCOMMANDS.has(sub)) {
40
+ failRetired(`workflow ${sub}`);
41
+ }
42
+ console.error(`未知子命令: workflow ${sub}`);
43
+ printWorkflowHelp();
44
+ process.exit(1);
45
+ }
46
+ /**
47
+ * `template` is now an offline retirement namespace only. It never reads or
48
+ * drives legacy run state except through the explicit migration/archive tools.
49
+ */
50
+ export async function cmdTemplate(sub, rest) {
63
51
  switch (sub) {
64
- case 'run':
65
- await cmdWorkflowRun(rest);
66
- return;
67
- case 'resume':
68
- await cmdWorkflowResume(rest);
69
- return;
70
- case 'cancel':
71
- await cmdWorkflowCancel(rest);
72
- return;
73
- case 'ls':
74
- case 'list':
75
- await cmdWorkflowLs(rest);
52
+ case 'archive-runs': {
53
+ const { cmdWorkflowRunArchive } = await import('./workflow-run-archive.js');
54
+ await cmdWorkflowRunArchive(rest);
76
55
  return;
77
- case 'tail':
78
- await cmdWorkflowTail(rest);
79
- return;
80
- case 'validate':
81
- await cmdWorkflowValidate(rest);
82
- return;
83
- case 'show':
84
- await cmdWorkflowShow(rest);
56
+ }
57
+ case 'migrate-v3': {
58
+ const { cmdWorkflowMigration } = await import('./workflow-migration.js');
59
+ await cmdWorkflowMigration(rest);
85
60
  return;
61
+ }
86
62
  case 'help':
87
63
  case '':
88
- case undefined:
89
- printHelp();
64
+ printTemplateHelp();
90
65
  return;
91
66
  default:
92
- console.error(`未知子命令: workflow ${sub}`);
93
- printHelp();
67
+ if (RETIRED_TEMPLATE_SUBCOMMANDS.has(sub))
68
+ failRetired(`template ${sub}`);
69
+ console.error(`未知子命令: template ${sub}`);
70
+ printTemplateHelp();
94
71
  process.exit(1);
95
72
  }
96
73
  }
97
- function printHelp() {
98
- console.log(`用法: botmux workflow <run|resume|cancel|ls|tail|validate|show> [...]
99
-
100
- 子命令:
101
- run <id> [--param key=value ...] [--param-json key=<json> ...] [--run-id <id>] [--bot-resolver echo]
102
- 离线驱动 workflow(stub spawn)。事件 / 状态打到 stdout。
103
- humanGate 节点跑到 'awaiting-wait' 即退出(CLI 离线场景下没有审批入口)。
104
- --param 适合标量(string/number/boolean);--param-json 适合 object/array
105
- 或希望严格保留 JSON 类型的值,例如 --param-json users='["a","b"]'。
106
- 未声明的 param 名会被拒;type 不匹配 / 缺 required 会清晰报错。
107
-
108
- resume <runId>
109
- 从磁盘 runDir 冷恢复一个已有 run。R0 recovery 先收 dangling effect,
110
- 之后 orchestrator 继续推进;遇到 humanGate 只输出 awaiting-wait,
111
- 不伪造审批;run 已 terminal 则直接打摘要,零事件写入。
112
- CLI 不会 spawn 新 subagent —— 现有 in-flight subagent 会被标记
113
- WorkerCrashed/manual 并由 orchestrator 终结 run。
74
+ function failRetired(command) {
75
+ console.error(`无法执行 \`botmux ${command}\`:${LEGACY_TEMPLATE_RETIRED}`);
76
+ process.exit(1);
77
+ }
78
+ function printWorkflowHelp() {
79
+ console.log(`用法: botmux workflow <目标控制|save|run|list|show|start|cancel|retry|grant> [...]
114
80
 
115
- cancel <runId> [--reason <text>]
116
- 写入 run-level cancelRequested 并驱动 cancel recovery。terminal run
117
- 直接 no-op;不会发 IM 通知或重发审批卡。
81
+ Saved Workflow:
82
+ save [last|runId] [名称] [--workflow-id <chat-scope-id>]
83
+ run <名称|workflowId> [--param key=value ...] [--param-json key=<json> ...]
84
+ list [--json]
85
+ show <名称|workflowId>
118
86
 
119
- ls [--all] [--status running,failed,...] [--wide] [--json]
120
- 列出 runsDir 下所有 run。默认仅 non-terminal;--all 全列;--status
121
- 支持逗号多选;--wide 增加 failedNodeId/chatId/larkAppId;--json
122
- 输出完整 JSON 行。
87
+ 即兴 Workflow:
88
+ new / spec-finalize / approve-spec / architect / approve-dag / start
89
+ cancel <runId> [--reason <text>] [--bot <larkAppId>]
123
90
 
124
- tail <runId> [--from <seq>] [--follow] [--json]
125
- 打印 run 的事件简表(seq / type / node / activity / errorCode)。
126
- 默认 history-only;--follow 才轮询 events.ndjson 增量。--from 默认 1。
91
+ v2 资产离线处理: botmux template <migrate-v3|archive-runs>
92
+ `);
93
+ }
94
+ function printTemplateHelp() {
95
+ console.log(`用法: botmux template <migrate-v3|archive-runs> [...]
127
96
 
128
- validate <path>
129
- 校验 workflow.json 文件。成功打印 workflowId / node 数;失败打印
130
- JSON parse、Zod issue path + message,或 graph invariant 错误。
97
+ 子命令:
98
+ migrate-v3 [workflowId|path ...] [--all] [--json]
99
+ 默认 dry-run;--commit 将可转换的 v2 定义固化为 v3 Saved Workflow。
131
100
 
132
- show <runId>
133
- replay 当前 run 的事件,打印 Snapshot 摘要 JSON(含 nodes/dangling 等)。
101
+ archive-runs [--commit] [--verify <archiveId|path>] [--json]
102
+ archive-runs --retire <archiveId|path> --ack-daemon-stopped [--json]
103
+ 扫描、归档或校验已终态的 v2 历史运行;retire 仅在维护窗双验后原子迁入 quarantine。
104
+ 该命令不会执行 v2 workflow,也不会直接删除历史字节。
134
105
 
135
- 环境变量:
136
- BOTMUX_WORKFLOW_RUNS_DIR=<path> 覆盖 runs 根目录(默认 ~/.botmux/workflow-runs)
106
+ v2 run/resume/cancel/ls/tail/show/validate 已下线。
137
107
  `);
138
108
  }
139
- // ─── run ──────────────────────────────────────────────────────────────────
140
- async function cmdWorkflowRun(rest) {
141
- const id = positionals(rest)[0];
142
- if (!id) {
143
- console.error('用法: botmux workflow run <id> [--param key=value ...] [--param-json key=<json> ...]');
144
- process.exit(1);
145
- }
146
- const runId = argValue(rest, '--run-id') ?? mintWorkflowRunId(id);
147
- const rawParams = collectRawParams(rest);
148
- const def = await loadWorkflowDefinition(id).catch((err) => {
149
- console.error(err.message);
150
- process.exit(1);
151
- });
152
- // unreachable after process.exit, but TS doesn't know
153
- if (!def)
154
- return;
155
- let params;
156
- try {
157
- params = coerceWorkflowParams(def, rawParams);
158
- }
159
- catch (err) {
160
- if (err instanceof ParamCoerceFailure) {
161
- console.error('参数校验失败:');
162
- for (const issue of err.issues) {
163
- console.error(`- ${issue.message}`);
164
- }
165
- }
166
- else {
167
- console.error(`参数校验失败:${err instanceof Error ? err.message : String(err)}`);
168
- }
169
- process.exit(1);
170
- }
171
- // Bootstrap the in-memory bot registry so hostExecutors like
172
- // feishu-send can resolve `larkAppId` → Lark client. IM path inherits
173
- // the daemon's already-registered bots; the standalone CLI doesn't.
174
- try {
175
- const { registerBot, loadBotConfigs } = await import('../bot-registry.js');
176
- for (const cfg of loadBotConfigs())
177
- registerBot(cfg);
178
- }
179
- catch {
180
- // Missing/invalid bots.json is fine — workflows that don't touch
181
- // Feishu still run; the host executor will surface a clear
182
- // "Bot not registered" error if one does.
183
- }
184
- const log = new EventLog(runId, getRunsDir());
185
- const botResolver = () => ({});
186
- const spawnSubagent = createStubSpawnFn(echoHandler);
187
- console.log(`workflow=${id} runId=${runId} params=${JSON.stringify(params)}`);
188
- console.log(`runsDir=${getRunsDir()}`);
189
- await createRun(log, { def, params, initiator: 'cli', botResolver });
190
- console.log('runCreated, runStarted');
191
- const ctx = {
192
- log,
193
- def,
194
- spawnSubagent,
195
- hostExecutors: createDefaultHostExecutorRegistry(),
196
- reconcilers: createDefaultProviderReconcilers(),
197
- loadEffectInput: (activityId, attemptId) => loadEffectInputSidecar(log, activityId, attemptId),
198
- };
199
- const result = await runLoop(ctx, { maxTicks: 200 });
200
- console.log(`\nloop stopped: ${result.reason} after ${result.ticks} tick(s)`);
201
- console.log(`run.status=${result.lastSnapshot.run.status}`);
202
- console.log(`events: ${result.lastSnapshot.lastSeq}`);
203
- if (result.reason === 'awaiting-wait') {
204
- console.log(`awaiting-wait on: ${result.lastSnapshot.danglingWaits.join(', ')}`);
205
- console.log(`(CLI 离线模式没有审批入口;从 IM 用 /template run 跑能拿到审批卡)`);
206
- }
207
- if (result.reason === 'terminal' && result.lastSnapshot.run.output) {
208
- console.log(`output: ${result.lastSnapshot.run.output.outputHash}`);
209
- }
210
- }
211
- const echoHandler = (input) => ({
212
- echo: input.prompt.slice(0, 200),
213
- bot: input.botName,
214
- activityId: input.activityId,
215
- });
216
- // ─── resume ───────────────────────────────────────────────────────────────
217
- /**
218
- * R1 cold resume — pick up an existing run from its on-disk runDir.
219
- *
220
- * Contract (codex-loopy review 2026-05-20):
221
- * - Replay first. If the run is already terminal, print summary and
222
- * write zero events.
223
- * - Do NOT call `createRun` / write `runStarted` — those are mint-time
224
- * events. Resume just attaches a fresh ctx to the existing log.
225
- * - `spawnSubagent` is a no-throw failure stub: returns
226
- * `WorkerCrashed/manual` so any subagent dispatch the orchestrator
227
- * decides to do during resume lands as a recorded `activityFailed`
228
- * (NOT a thrown JS error that would crash the CLI). manual class
229
- * prevents R0 from auto-retrying.
230
- * - hostExecutors / reconcilers / loadEffectInput are wired so the
231
- * recovery phase can settle dangling side-effects via reconciler.
232
- *
233
- * Out of scope for R1: daemon-startup scan, watcher rebuild, real worker
234
- * reattach, dashboard surface.
235
- */
236
- async function cmdWorkflowResume(rest) {
237
- const runId = positionals(rest)[0];
238
- if (!runId) {
239
- console.error('用法: botmux workflow resume <runId>');
240
- process.exit(1);
241
- }
242
- const runsDir = getRunsDir();
243
- const dir = runDir(runId, runsDir);
244
- const workflowJsonPath = join(dir, 'workflow.json');
245
- let defRaw;
246
- try {
247
- defRaw = await fs.readFile(workflowJsonPath, 'utf-8');
248
- }
249
- catch (err) {
250
- if (err.code === 'ENOENT') {
251
- console.error(`找不到 runDir 的 workflow.json:${workflowJsonPath}`);
252
- console.error(`(runsDir=${runsDir};用 BOTMUX_WORKFLOW_RUNS_DIR 覆盖)`);
253
- }
254
- else {
255
- console.error(`读取 ${workflowJsonPath} 失败:${err.message}`);
256
- }
257
- process.exit(1);
258
- }
259
- let def;
260
- try {
261
- def = parseWorkflowDefinition(JSON.parse(defRaw));
262
- }
263
- catch (err) {
264
- console.error(`解析 ${workflowJsonPath} 失败:${err.message}`);
265
- process.exit(1);
266
- return;
267
- }
268
- // Same as run: load bots so feishu host executors can resolve larkAppId.
269
- try {
270
- const { registerBot, loadBotConfigs } = await import('../bot-registry.js');
271
- for (const cfg of loadBotConfigs())
272
- registerBot(cfg);
273
- }
274
- catch {
275
- // bots.json missing/invalid is fine — workflows that don't touch IM
276
- // still resume; IM-touching steps will surface a clear error.
277
- }
278
- const log = new EventLog(runId, runsDir);
279
- const events = await log.readAll();
280
- if (events.length === 0) {
281
- console.error(`runId=${runId} 没找到任何事件 (runsDir=${runsDir})`);
282
- process.exit(1);
283
- }
284
- const { replay } = await import('../workflows/events/replay.js');
285
- const initialSnap = replay(events);
286
- console.log(`workflow=${def.workflowId} runId=${runId}`);
287
- console.log(`runsDir=${runsDir}`);
288
- // ── Terminal short-circuit ────────────────────────────────────────────
289
- // Per codex review: replay first; if the run already finished, print
290
- // summary and DON'T enter runLoop (no new events written).
291
- if (initialSnap.run.status === 'succeeded' ||
292
- initialSnap.run.status === 'failed' ||
293
- initialSnap.run.status === 'cancelled') {
294
- console.log(`\nrun.status=${initialSnap.run.status} (terminal — nothing to resume)`);
295
- console.log(`events: ${initialSnap.lastSeq}`);
296
- if (initialSnap.run.output) {
297
- console.log(`output: ${initialSnap.run.output.outputHash}`);
298
- }
299
- if (initialSnap.run.status !== 'succeeded') {
300
- process.exit(1);
301
- }
302
- return;
303
- }
304
- const spawnSubagent = async (input) => ({
305
- kind: 'failure',
306
- errorCode: 'WorkerCrashed',
307
- errorClass: 'manual',
308
- errorMessage: `subagent '${input.botName}' (node=${input.nodeId}, activity=${input.activityId}) ` +
309
- `is not resumable via 'botmux workflow resume' — CLI does not spawn workers. ` +
310
- `Use IM /template run for full execution, or restart the run.`,
311
- });
312
- const ctx = {
313
- log,
314
- def: def,
315
- spawnSubagent,
316
- hostExecutors: createDefaultHostExecutorRegistry(),
317
- reconcilers: createDefaultProviderReconcilers(),
318
- loadEffectInput: (activityId, attemptId) => loadEffectInputSidecar(log, activityId, attemptId),
319
- };
320
- const result = await runLoop(ctx, { maxTicks: 200 });
321
- console.log(`\nloop stopped: ${result.reason} after ${result.ticks} tick(s)`);
322
- console.log(`run.status=${result.lastSnapshot.run.status}`);
323
- console.log(`events: ${result.lastSnapshot.lastSeq}`);
324
- if (result.reason === 'awaiting-wait') {
325
- console.log(`awaiting-wait on: ${result.lastSnapshot.danglingWaits.join(', ')}`);
326
- console.log(`(CLI resume 不发卡;从 IM 用 /template run 进的话审批入口在那边)`);
327
- }
328
- if (result.reason === 'no-progress') {
329
- if (result.lastSnapshot.danglingEffectAttempted.length > 0) {
330
- console.log(`dangling effects: ${result.lastSnapshot.danglingEffectAttempted.join(', ')}`);
331
- }
332
- const danglingNonEffect = result.lastSnapshot.danglingActivities.filter((a) => !result.lastSnapshot.danglingEffectAttempted.includes(a));
333
- if (danglingNonEffect.length > 0) {
334
- console.log(`dangling activities (non-effect): ${danglingNonEffect.join(', ')}`);
335
- }
336
- }
337
- if (result.reason === 'terminal' && result.lastSnapshot.run.output) {
338
- console.log(`output: ${result.lastSnapshot.run.output.outputHash}`);
339
- }
340
- // Non-zero exit when the run did not resolve to a clean terminal/awaiting.
341
- if (result.reason !== 'terminal' &&
342
- result.reason !== 'awaiting-wait') {
343
- process.exit(1);
344
- }
345
- if (result.reason === 'terminal' && result.lastSnapshot.run.status !== 'succeeded') {
346
- process.exit(1);
347
- }
348
- }
349
- // ─── cancel ───────────────────────────────────────────────────────────────
350
- async function cmdWorkflowCancel(rest) {
351
- const runId = positionals(rest)[0];
352
- if (!runId) {
353
- console.error('用法: botmux workflow cancel <runId> [--reason <text>]');
354
- process.exit(1);
355
- }
356
- const reason = argValue(rest, '--reason') ?? 'cancelled via botmux workflow cancel';
357
- const runsDir = getRunsDir();
358
- const log = new EventLog(runId, runsDir);
359
- const def = await loadRunWorkflowDefinition(runId, runsDir);
360
- let snapshot = replay(await readExistingRunEvents(log, runsDir, runId));
361
- console.log(`workflow=${def.workflowId} runId=${runId}`);
362
- console.log(`runsDir=${runsDir}`);
363
- if (isTerminalRunStatus(snapshot.run.status)) {
364
- console.log(`\nrun.status=${snapshot.run.status} (terminal — nothing to cancel)`);
365
- console.log(`events: ${snapshot.lastSeq}`);
366
- return;
367
- }
368
- const ctx = workflowCliRuntimeContext(log, def, cliResumeSpawnSubagent);
369
- const result = await cancelWorkflowRun({
370
- ctx,
371
- reason,
372
- by: 'cli',
373
- actor: 'human',
374
- maxTicks: 200,
375
- });
376
- snapshot = result.snapshot;
377
- if (result.cancelEventId) {
378
- console.log(result.cancelAlreadyRequested
379
- ? `cancel already requested: ${result.cancelEventId}`
380
- : `cancelRequested: ${result.cancelEventId}`);
381
- }
382
- console.log(`\nloop stopped: ${result.loopResult?.reason ?? 'terminal'} ` +
383
- `after ${result.loopResult?.ticks ?? 0} tick(s)`);
384
- console.log(`run.status=${snapshot.run.status}`);
385
- console.log(`events: ${snapshot.lastSeq}`);
386
- if (snapshot.danglingCancels.length > 0) {
387
- console.log(`dangling cancels: ${snapshot.danglingCancels.join(', ')}`);
388
- }
389
- if (snapshot.danglingEffectAttempted.length > 0) {
390
- console.log(`dangling effects: ${snapshot.danglingEffectAttempted.join(', ')}`);
391
- }
392
- if (snapshot.danglingWaits.length > 0) {
393
- console.log(`dangling waits: ${snapshot.danglingWaits.join(', ')}`);
394
- }
395
- if (snapshot.run.status !== 'cancelled') {
396
- process.exit(1);
397
- }
398
- }
399
- function workflowCliRuntimeContext(log, def, spawnSubagent) {
400
- return {
401
- log,
402
- def,
403
- spawnSubagent,
404
- hostExecutors: createDefaultHostExecutorRegistry(),
405
- reconcilers: createDefaultProviderReconcilers(),
406
- loadEffectInput: (activityId, attemptId) => loadEffectInputSidecar(log, activityId, attemptId),
407
- };
408
- }
409
- const cliResumeSpawnSubagent = async (input) => ({
410
- kind: 'failure',
411
- errorCode: 'WorkerCrashed',
412
- errorClass: 'manual',
413
- errorMessage: `subagent '${input.botName}' (node=${input.nodeId}, activity=${input.activityId}) ` +
414
- `is not resumable via 'botmux workflow resume' — CLI does not spawn workers. ` +
415
- `Use IM /template run for full execution, or restart the run.`,
416
- });
417
- async function loadRunWorkflowDefinition(runId, runsDir = getRunsDir()) {
418
- const workflowJsonPath = join(runDir(runId, runsDir), 'workflow.json');
419
- let defRaw;
420
- try {
421
- defRaw = await fs.readFile(workflowJsonPath, 'utf-8');
422
- }
423
- catch (err) {
424
- if (err.code === 'ENOENT') {
425
- console.error(`找不到 runDir 的 workflow.json:${workflowJsonPath}`);
426
- console.error(`(runsDir=${runsDir};用 BOTMUX_WORKFLOW_RUNS_DIR 覆盖)`);
427
- }
428
- else {
429
- console.error(`读取 ${workflowJsonPath} 失败:${err.message}`);
430
- }
431
- process.exit(1);
432
- }
433
- try {
434
- return parseWorkflowDefinition(JSON.parse(defRaw));
435
- }
436
- catch (err) {
437
- console.error(`解析 ${workflowJsonPath} 失败:${err.message}`);
438
- process.exit(1);
439
- }
440
- }
441
- async function readExistingRunEvents(log, runsDir, runId) {
442
- const events = await log.readAll();
443
- if (events.length === 0) {
444
- console.error(`runId=${runId} 没找到任何事件 (runsDir=${runsDir})`);
445
- process.exit(1);
446
- }
447
- return events;
448
- }
449
- /**
450
- * Parse CLI args into raw param inputs. Each `--param key=value` carries a
451
- * plain string (type coercion happens in `coerceWorkflowParams` against the
452
- * workflow's `params` schema); each `--param-json key=<json>` carries a
453
- * parsed JSON value, which is the only way to thread `object` / `array`
454
- * params (or numbers / booleans you'd rather not stringify) into a run.
455
- *
456
- * Both flags accept the `--flag value` and `--flag=value` forms.
457
- */
458
- function collectRawParams(rest) {
459
- const out = {};
460
- const ingestStringKV = (kv) => {
461
- const eq = kv.indexOf('=');
462
- if (eq <= 0) {
463
- console.error(`--param 期望 key=value,收到 "${kv}"`);
464
- process.exit(1);
465
- }
466
- out[kv.slice(0, eq)] = { kind: 'string', value: kv.slice(eq + 1) };
467
- };
468
- const ingestJsonKV = (kv) => {
469
- const eq = kv.indexOf('=');
470
- if (eq <= 0) {
471
- console.error(`--param-json 期望 key=<json>,收到 "${kv}"`);
472
- process.exit(1);
473
- }
474
- const key = kv.slice(0, eq);
475
- const jsonText = kv.slice(eq + 1);
476
- try {
477
- out[key] = { kind: 'json', value: JSON.parse(jsonText) };
478
- }
479
- catch (err) {
480
- console.error(`--param-json ${key} 的 JSON 解析失败:` +
481
- (err instanceof Error ? err.message : String(err)));
482
- process.exit(1);
483
- }
484
- };
485
- for (let i = 0; i < rest.length; i++) {
486
- if (rest[i] === '--param' && i + 1 < rest.length) {
487
- ingestStringKV(rest[i + 1]);
488
- i++;
489
- }
490
- else if (rest[i]?.startsWith('--param=')) {
491
- ingestStringKV(rest[i].slice('--param='.length));
492
- }
493
- else if (rest[i] === '--param-json' && i + 1 < rest.length) {
494
- ingestJsonKV(rest[i + 1]);
495
- i++;
496
- }
497
- else if (rest[i]?.startsWith('--param-json=')) {
498
- ingestJsonKV(rest[i].slice('--param-json='.length));
499
- }
500
- }
501
- return out;
502
- }
503
- // ─── validate ─────────────────────────────────────────────────────────────
504
- async function cmdWorkflowValidate(rest) {
505
- const path = positionals(rest)[0];
506
- if (!path) {
507
- console.error('用法: botmux workflow validate <path>');
508
- process.exit(1);
509
- }
510
- let rawText;
511
- try {
512
- rawText = await fs.readFile(path, 'utf-8');
513
- }
514
- catch (err) {
515
- console.error(`读取 ${path} 失败:${err.message}`);
516
- process.exit(1);
517
- }
518
- let raw;
519
- try {
520
- raw = JSON.parse(rawText);
521
- }
522
- catch (err) {
523
- console.error(`解析 JSON 失败:${err.message}`);
524
- process.exit(1);
525
- }
526
- try {
527
- const def = parseWorkflowDefinition(raw);
528
- console.log(`workflow valid: ${def.workflowId} ` +
529
- `(version=${def.version}, nodes=${Object.keys(def.nodes).length})`);
530
- }
531
- catch (err) {
532
- console.error(`workflow invalid: ${path}`);
533
- if (err instanceof ZodError) {
534
- for (const issue of err.issues) {
535
- const p = issue.path.length ? issue.path.join('.') : '<root>';
536
- console.error(`- ${p}: ${issue.message}`);
537
- }
538
- }
539
- else {
540
- console.error(`- ${err instanceof Error ? err.message : String(err)}`);
541
- }
542
- process.exit(1);
543
- }
544
- }
545
- // ─── ls ───────────────────────────────────────────────────────────────────
546
- /**
547
- * `botmux workflow ls` — operator surface for "what's running on disk?"
548
- *
549
- * Read-only: walks runsDir/<runId>/events.ndjson, replays each, projects a
550
- * row. By default lists only non-terminal runs (the typical operator
551
- * question: "what's still hot?"). Terminal runs are useful for triage
552
- * and stay one `--all` flag away.
553
- *
554
- * Output:
555
- * - default: aligned table on stdout. Column set tuned to fit ~120
556
- * cols: runId | workflowId | status | lastSeq | dEf/dAct/dWait | updatedAt
557
- * - `--wide`: appends failedNodeId / chatId / larkAppId.
558
- * - `--json`: one JSON object per line (machine-parseable).
559
- *
560
- * Filters:
561
- * - `--all`: include terminal (succeeded/failed/cancelled).
562
- * - `--status running,failed`: comma-separated set; overrides `--all`.
563
- */
564
- async function cmdWorkflowLs(rest) {
565
- const all = rest.includes('--all');
566
- const wide = rest.includes('--wide');
567
- const json = rest.includes('--json');
568
- const statusFilter = argValue(rest, '--status');
569
- const wantStatuses = statusFilter
570
- ? new Set(statusFilter.split(',').map((s) => s.trim()).filter(Boolean))
571
- : undefined;
572
- const runsDir = getRunsDir();
573
- let rows;
574
- try {
575
- rows = await listRuns(runsDir, {
576
- all,
577
- statuses: wantStatuses,
578
- // chat-binding columns are only printed in --wide or --json; skip the
579
- // extra fs op otherwise.
580
- includeBinding: wide || json,
581
- });
582
- }
583
- catch (err) {
584
- console.error(`读取 ${runsDir} 失败:${err.message}`);
585
- process.exit(1);
586
- }
587
- if (json) {
588
- for (const r of rows)
589
- console.log(JSON.stringify(r));
590
- return;
591
- }
592
- if (rows.length === 0) {
593
- console.log('(no runs match)');
594
- return;
595
- }
596
- const headers = wide
597
- ? ['RUN_ID', 'WORKFLOW', 'STATUS', 'LAST_SEQ', 'dEf/dAct/dWait', 'UPDATED', 'FAILED_NODE', 'CHAT_ID', 'LARK_APP']
598
- : ['RUN_ID', 'WORKFLOW', 'STATUS', 'LAST_SEQ', 'dEf/dAct/dWait', 'UPDATED'];
599
- const rowCells = rows.map((r) => {
600
- const dangling = `${r.dEf}/${r.dAct}/${r.dWait}`;
601
- const updated = new Date(r.updatedAt).toISOString().slice(0, 19).replace('T', ' ');
602
- const base = [r.runId, r.workflowId, r.status, String(r.lastSeq), dangling, updated];
603
- if (!wide)
604
- return base;
605
- return [...base, r.failedNodeId ?? '-', r.chatId ?? '-', r.larkAppId ?? '-'];
606
- });
607
- const widths = headers.map((h, i) => Math.max(h.length, ...rowCells.map((row) => row[i].length)));
608
- const pad = (s, w) => s + ' '.repeat(w - s.length);
609
- console.log(headers.map((h, i) => pad(h, widths[i])).join(' '));
610
- for (const cells of rowCells) {
611
- console.log(cells.map((c, i) => pad(c, widths[i])).join(' '));
612
- }
613
- }
614
- // ─── tail ─────────────────────────────────────────────────────────────────
615
- /**
616
- * `botmux workflow tail <runId>` — operator surface for "show me the
617
- * event stream of this run".
618
- *
619
- * Default mode is history-only (codex review 2026-05-20): print every
620
- * event from `--from` (default 1) and exit. CLI defaults that hang are
621
- * a footgun for scripts and tests — `--follow` is the opt-in that turns
622
- * on the watch loop.
623
- *
624
- * Follow strategy: poll `fs.stat` on the events.ndjson file at 200ms
625
- * cadence and incrementally read new bytes from the recorded offset.
626
- * NDJSON makes the boundary handling trivial — we only emit on `\n`.
627
- * Truncation / rotation isn't supported here (events.ndjson is
628
- * append-only by design); if the file shrinks we surface a warning.
629
- */
630
- async function cmdWorkflowTail(rest) {
631
- const runId = positionals(rest)[0];
632
- if (!runId) {
633
- console.error('用法: botmux workflow tail <runId> [--from <seq>] [--follow] [--json]');
634
- process.exit(1);
635
- }
636
- const fromArg = argValue(rest, '--from');
637
- const fromSeq = fromArg ? Number(fromArg) : 1;
638
- if (!Number.isFinite(fromSeq) || fromSeq < 1) {
639
- console.error(`--from 必须是 >=1 的整数,收到 "${fromArg}"`);
640
- process.exit(1);
641
- }
642
- const follow = rest.includes('--follow') || rest.includes('-f');
643
- const json = rest.includes('--json');
644
- const runsDir = getRunsDir();
645
- const eventsPath = join(runsDir, runId, 'events.ndjson');
646
- const log = new EventLog(runId, runsDir);
647
- // Capture the watch starting offset BEFORE readAll so that any event
648
- // appended between readAll and the first stat is still picked up by
649
- // the watch loop (lastSeq dedups any overlap). Codex review (O1
650
- // medium #1): if we stat AFTER readAll, a race-window event lands
651
- // past readAll's view but inside the offset, and follow silently
652
- // skips it forever.
653
- let followOffset = 0;
654
- if (follow) {
655
- try {
656
- followOffset = (await fs.stat(eventsPath)).size;
657
- }
658
- catch {
659
- // events.ndjson must exist if readAll below succeeds; defensive
660
- // fallback keeps offset 0 so the watch re-reads the whole file
661
- // and lastSeq still dedups.
662
- followOffset = 0;
663
- }
664
- }
665
- let initial;
666
- try {
667
- initial = await log.readAll();
668
- }
669
- catch (err) {
670
- console.error(`读取 ${eventsPath} 失败:${err.message}`);
671
- process.exit(1);
672
- }
673
- if (initial.length === 0) {
674
- console.error(`runId=${runId} 没找到任何事件 (runsDir=${runsDir})`);
675
- process.exit(1);
676
- }
677
- for (const ev of initial) {
678
- const seq = eventSeqFromId(ev.eventId);
679
- if (seq < fromSeq)
680
- continue;
681
- printEventLine(ev, json);
682
- }
683
- if (!follow)
684
- return;
685
- // Watch loop. Resume from `followOffset` (captured pre-readAll); parse
686
- // incrementally by line. Stop on Ctrl-C; until then we never resolve.
687
- let offset = followOffset;
688
- let lastSeq = eventSeqFromId(initial[initial.length - 1].eventId);
689
- let buffer = '';
690
- process.on('SIGINT', () => process.exit(0));
691
- while (true) {
692
- await new Promise((r) => setTimeout(r, 200));
693
- const stat = await fs.stat(eventsPath).catch(() => null);
694
- if (!stat)
695
- continue;
696
- if (stat.size < offset) {
697
- console.error(`(events.ndjson 大小回退 ${offset} → ${stat.size},停止 tail)`);
698
- return;
699
- }
700
- if (stat.size === offset)
701
- continue;
702
- const fd = await fs.open(eventsPath, 'r');
703
- try {
704
- const chunk = Buffer.alloc(stat.size - offset);
705
- await fd.read(chunk, 0, chunk.length, offset);
706
- offset = stat.size;
707
- buffer += chunk.toString('utf-8');
708
- }
709
- finally {
710
- await fd.close();
711
- }
712
- let nl;
713
- while ((nl = buffer.indexOf('\n')) >= 0) {
714
- const line = buffer.slice(0, nl);
715
- buffer = buffer.slice(nl + 1);
716
- if (!line.trim())
717
- continue;
718
- let ev;
719
- try {
720
- ev = JSON.parse(line);
721
- }
722
- catch {
723
- continue;
724
- }
725
- if (typeof ev?.eventId !== 'string')
726
- continue;
727
- const seq = eventSeqFromId(ev.eventId);
728
- if (seq <= lastSeq)
729
- continue;
730
- lastSeq = seq;
731
- if (seq < fromSeq)
732
- continue;
733
- printEventLine(ev, json);
734
- }
735
- }
736
- }
737
- function printEventLine(ev, json) {
738
- if (json) {
739
- console.log(JSON.stringify(ev));
740
- return;
741
- }
742
- const e = ev;
743
- const seq = String(eventSeqFromId(e.eventId)).padStart(4);
744
- const type = e.type.padEnd(22);
745
- const ctx = extractEventContext(e.payload);
746
- const parts = [];
747
- if (ctx.nodeId)
748
- parts.push('node=' + ctx.nodeId);
749
- if (ctx.activityId)
750
- parts.push('act=' + ctx.activityId);
751
- const where = parts.join(' ');
752
- const err = ctx.errorCode ? ' err=' + ctx.errorCode : '';
753
- console.log(seq + ' ' + type + ' ' + where + err);
754
- }
755
- // ─── show ─────────────────────────────────────────────────────────────────
756
- async function cmdWorkflowShow(rest) {
757
- const runId = positionals(rest)[0];
758
- if (!runId) {
759
- console.error('用法: botmux workflow show <runId>');
760
- process.exit(1);
761
- }
762
- const { replay } = await import('../workflows/events/replay.js');
763
- const log = new EventLog(runId, getRunsDir());
764
- const events = await log.readAll();
765
- if (events.length === 0) {
766
- console.error(`runId=${runId} 没找到任何事件 (runsDir=${getRunsDir()})`);
767
- process.exit(1);
768
- }
769
- const snap = replay(events);
770
- console.log(JSON.stringify({
771
- runId,
772
- workflowId: snap.run.workflowId,
773
- revisionId: snap.run.revisionId,
774
- status: snap.run.status,
775
- lastSeq: snap.lastSeq,
776
- nodes: [...snap.nodes.entries()].map(([id, n]) => ({
777
- id,
778
- status: n.status,
779
- retryCount: n.retryCount,
780
- })),
781
- danglingActivities: snap.danglingActivities,
782
- danglingWaits: snap.danglingWaits,
783
- }, null, 2));
784
- // `parseWorkflowDefinition` re-exported here only so the bundler keeps it
785
- // alongside loader (some smoke tests dlopen the helpers directly).
786
- void parseWorkflowDefinition;
787
- }
788
109
  //# sourceMappingURL=workflow.js.map