botmux 2.33.0 → 2.33.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (281) hide show
  1. package/README.en.md +12 -1
  2. package/README.md +45 -1
  3. package/dist/adapters/cli/claude-code.d.ts.map +1 -1
  4. package/dist/adapters/cli/claude-code.js +11 -0
  5. package/dist/adapters/cli/claude-code.js.map +1 -1
  6. package/dist/cli/bots-list-output.d.ts +21 -0
  7. package/dist/cli/bots-list-output.d.ts.map +1 -0
  8. package/dist/cli/bots-list-output.js +23 -0
  9. package/dist/cli/bots-list-output.js.map +1 -0
  10. package/dist/cli/workflow.d.ts +13 -0
  11. package/dist/cli/workflow.d.ts.map +1 -0
  12. package/dist/cli/workflow.js +781 -0
  13. package/dist/cli/workflow.js.map +1 -0
  14. package/dist/cli.js +69 -14
  15. package/dist/cli.js.map +1 -1
  16. package/dist/core/command-handler.d.ts.map +1 -1
  17. package/dist/core/command-handler.js +211 -4
  18. package/dist/core/command-handler.js.map +1 -1
  19. package/dist/core/session-manager.d.ts +6 -1
  20. package/dist/core/session-manager.d.ts.map +1 -1
  21. package/dist/core/session-manager.js +22 -12
  22. package/dist/core/session-manager.js.map +1 -1
  23. package/dist/core/worker-pool.d.ts +13 -0
  24. package/dist/core/worker-pool.d.ts.map +1 -1
  25. package/dist/core/worker-pool.js +100 -6
  26. package/dist/core/worker-pool.js.map +1 -1
  27. package/dist/daemon.d.ts +3 -0
  28. package/dist/daemon.d.ts.map +1 -1
  29. package/dist/daemon.js +884 -3
  30. package/dist/daemon.js.map +1 -1
  31. package/dist/dashboard/auth.d.ts +36 -0
  32. package/dist/dashboard/auth.d.ts.map +1 -1
  33. package/dist/dashboard/auth.js +22 -0
  34. package/dist/dashboard/auth.js.map +1 -1
  35. package/dist/dashboard/web/app.js +20 -1
  36. package/dist/dashboard/web/app.js.map +1 -1
  37. package/dist/dashboard/web/i18n.d.ts.map +1 -1
  38. package/dist/dashboard/web/i18n.js +356 -0
  39. package/dist/dashboard/web/i18n.js.map +1 -1
  40. package/dist/dashboard/web/workflow-catalog.d.ts +2 -0
  41. package/dist/dashboard/web/workflow-catalog.d.ts.map +1 -0
  42. package/dist/dashboard/web/workflow-catalog.js +323 -0
  43. package/dist/dashboard/web/workflow-catalog.js.map +1 -0
  44. package/dist/dashboard/web/workflows.d.ts +2 -0
  45. package/dist/dashboard/web/workflows.d.ts.map +1 -0
  46. package/dist/dashboard/web/workflows.js +1618 -0
  47. package/dist/dashboard/web/workflows.js.map +1 -0
  48. package/dist/dashboard/workflow-api.d.ts +23 -0
  49. package/dist/dashboard/workflow-api.d.ts.map +1 -0
  50. package/dist/dashboard/workflow-api.js +463 -0
  51. package/dist/dashboard/workflow-api.js.map +1 -0
  52. package/dist/dashboard-web/app.js +494 -199
  53. package/dist/dashboard-web/index.html +1 -0
  54. package/dist/dashboard-web/style.css +160 -6
  55. package/dist/dashboard-web/terminal-replay.html +227 -0
  56. package/dist/dashboard.js +29 -12
  57. package/dist/dashboard.js.map +1 -1
  58. package/dist/i18n/en.d.ts.map +1 -1
  59. package/dist/i18n/en.js +12 -0
  60. package/dist/i18n/en.js.map +1 -1
  61. package/dist/i18n/zh.d.ts.map +1 -1
  62. package/dist/i18n/zh.js +12 -0
  63. package/dist/i18n/zh.js.map +1 -1
  64. package/dist/im/lark/card-handler.d.ts +3 -0
  65. package/dist/im/lark/card-handler.d.ts.map +1 -1
  66. package/dist/im/lark/card-handler.js +27 -1
  67. package/dist/im/lark/card-handler.js.map +1 -1
  68. package/dist/im/lark/client.d.ts +19 -2
  69. package/dist/im/lark/client.d.ts.map +1 -1
  70. package/dist/im/lark/client.js +21 -2
  71. package/dist/im/lark/client.js.map +1 -1
  72. package/dist/im/lark/workflow-card-handler.d.ts +50 -0
  73. package/dist/im/lark/workflow-card-handler.d.ts.map +1 -0
  74. package/dist/im/lark/workflow-card-handler.js +152 -0
  75. package/dist/im/lark/workflow-card-handler.js.map +1 -0
  76. package/dist/im/lark/workflow-cards.d.ts +46 -0
  77. package/dist/im/lark/workflow-cards.d.ts.map +1 -0
  78. package/dist/im/lark/workflow-cards.js +226 -0
  79. package/dist/im/lark/workflow-cards.js.map +1 -0
  80. package/dist/im/lark/workflow-progress-card.d.ts +76 -0
  81. package/dist/im/lark/workflow-progress-card.d.ts.map +1 -0
  82. package/dist/im/lark/workflow-progress-card.js +279 -0
  83. package/dist/im/lark/workflow-progress-card.js.map +1 -0
  84. package/dist/im/lark/workflow-slash-command.d.ts +92 -0
  85. package/dist/im/lark/workflow-slash-command.d.ts.map +1 -0
  86. package/dist/im/lark/workflow-slash-command.js +185 -0
  87. package/dist/im/lark/workflow-slash-command.js.map +1 -0
  88. package/dist/services/group-creator.d.ts.map +1 -1
  89. package/dist/services/group-creator.js +17 -4
  90. package/dist/services/group-creator.js.map +1 -1
  91. package/dist/services/groups-store.d.ts +11 -0
  92. package/dist/services/groups-store.d.ts.map +1 -1
  93. package/dist/services/groups-store.js +26 -0
  94. package/dist/services/groups-store.js.map +1 -1
  95. package/dist/services/jsonl-cursor.d.ts +12 -0
  96. package/dist/services/jsonl-cursor.d.ts.map +1 -0
  97. package/dist/services/jsonl-cursor.js +45 -0
  98. package/dist/services/jsonl-cursor.js.map +1 -0
  99. package/dist/services/schedule-store.d.ts +35 -0
  100. package/dist/services/schedule-store.d.ts.map +1 -1
  101. package/dist/services/schedule-store.js +108 -1
  102. package/dist/services/schedule-store.js.map +1 -1
  103. package/dist/skills/definitions.d.ts.map +1 -1
  104. package/dist/skills/definitions.js +399 -0
  105. package/dist/skills/definitions.js.map +1 -1
  106. package/dist/types.d.ts +4 -0
  107. package/dist/types.d.ts.map +1 -1
  108. package/dist/utils/cli-usage-limit.d.ts.map +1 -1
  109. package/dist/utils/cli-usage-limit.js +4 -0
  110. package/dist/utils/cli-usage-limit.js.map +1 -1
  111. package/dist/worker.js +118 -14
  112. package/dist/worker.js.map +1 -1
  113. package/dist/workflows/attempt-resume.d.ts +114 -0
  114. package/dist/workflows/attempt-resume.d.ts.map +1 -0
  115. package/dist/workflows/attempt-resume.js +385 -0
  116. package/dist/workflows/attempt-resume.js.map +1 -0
  117. package/dist/workflows/attempt-terminal.d.ts +21 -0
  118. package/dist/workflows/attempt-terminal.d.ts.map +1 -0
  119. package/dist/workflows/attempt-terminal.js +7 -0
  120. package/dist/workflows/attempt-terminal.js.map +1 -0
  121. package/dist/workflows/blob.d.ts +27 -0
  122. package/dist/workflows/blob.d.ts.map +1 -0
  123. package/dist/workflows/blob.js +39 -0
  124. package/dist/workflows/blob.js.map +1 -0
  125. package/dist/workflows/cancel-run.d.ts +45 -0
  126. package/dist/workflows/cancel-run.d.ts.map +1 -0
  127. package/dist/workflows/cancel-run.js +99 -0
  128. package/dist/workflows/cancel-run.js.map +1 -0
  129. package/dist/workflows/cancel.d.ts +111 -0
  130. package/dist/workflows/cancel.d.ts.map +1 -0
  131. package/dist/workflows/cancel.js +120 -0
  132. package/dist/workflows/cancel.js.map +1 -0
  133. package/dist/workflows/catalog.d.ts +60 -0
  134. package/dist/workflows/catalog.d.ts.map +1 -0
  135. package/dist/workflows/catalog.js +119 -0
  136. package/dist/workflows/catalog.js.map +1 -0
  137. package/dist/workflows/cold-attach.d.ts +30 -0
  138. package/dist/workflows/cold-attach.d.ts.map +1 -0
  139. package/dist/workflows/cold-attach.js +40 -0
  140. package/dist/workflows/cold-attach.js.map +1 -0
  141. package/dist/workflows/cold-scan.d.ts +21 -0
  142. package/dist/workflows/cold-scan.d.ts.map +1 -0
  143. package/dist/workflows/cold-scan.js +70 -0
  144. package/dist/workflows/cold-scan.js.map +1 -0
  145. package/dist/workflows/daemon-spawn.d.ts +117 -0
  146. package/dist/workflows/daemon-spawn.d.ts.map +1 -0
  147. package/dist/workflows/daemon-spawn.js +551 -0
  148. package/dist/workflows/daemon-spawn.js.map +1 -0
  149. package/dist/workflows/definition.d.ts +1309 -0
  150. package/dist/workflows/definition.d.ts.map +1 -0
  151. package/dist/workflows/definition.js +334 -0
  152. package/dist/workflows/definition.js.map +1 -0
  153. package/dist/workflows/effect-input.d.ts +4 -0
  154. package/dist/workflows/effect-input.d.ts.map +1 -0
  155. package/dist/workflows/effect-input.js +18 -0
  156. package/dist/workflows/effect-input.js.map +1 -0
  157. package/dist/workflows/events/append.d.ts +77 -0
  158. package/dist/workflows/events/append.d.ts.map +1 -0
  159. package/dist/workflows/events/append.js +214 -0
  160. package/dist/workflows/events/append.js.map +1 -0
  161. package/dist/workflows/events/idempotency.d.ts +77 -0
  162. package/dist/workflows/events/idempotency.d.ts.map +1 -0
  163. package/dist/workflows/events/idempotency.js +116 -0
  164. package/dist/workflows/events/idempotency.js.map +1 -0
  165. package/dist/workflows/events/index.d.ts +7 -0
  166. package/dist/workflows/events/index.d.ts.map +1 -0
  167. package/dist/workflows/events/index.js +7 -0
  168. package/dist/workflows/events/index.js.map +1 -0
  169. package/dist/workflows/events/payloads.d.ts +917 -0
  170. package/dist/workflows/events/payloads.d.ts.map +1 -0
  171. package/dist/workflows/events/payloads.js +337 -0
  172. package/dist/workflows/events/payloads.js.map +1 -0
  173. package/dist/workflows/events/replay.d.ts +238 -0
  174. package/dist/workflows/events/replay.d.ts.map +1 -0
  175. package/dist/workflows/events/replay.js +608 -0
  176. package/dist/workflows/events/replay.js.map +1 -0
  177. package/dist/workflows/events/schema.d.ts +5242 -0
  178. package/dist/workflows/events/schema.d.ts.map +1 -0
  179. package/dist/workflows/events/schema.js +295 -0
  180. package/dist/workflows/events/schema.js.map +1 -0
  181. package/dist/workflows/events/types.d.ts +34 -0
  182. package/dist/workflows/events/types.d.ts.map +1 -0
  183. package/dist/workflows/events/types.js +2 -0
  184. package/dist/workflows/events/types.js.map +1 -0
  185. package/dist/workflows/fanout.d.ts +36 -0
  186. package/dist/workflows/fanout.d.ts.map +1 -0
  187. package/dist/workflows/fanout.js +114 -0
  188. package/dist/workflows/fanout.js.map +1 -0
  189. package/dist/workflows/hostExecutors/botmux-schedule.d.ts +41 -0
  190. package/dist/workflows/hostExecutors/botmux-schedule.d.ts.map +1 -0
  191. package/dist/workflows/hostExecutors/botmux-schedule.js +121 -0
  192. package/dist/workflows/hostExecutors/botmux-schedule.js.map +1 -0
  193. package/dist/workflows/hostExecutors/feishu-im.d.ts +12 -0
  194. package/dist/workflows/hostExecutors/feishu-im.d.ts.map +1 -0
  195. package/dist/workflows/hostExecutors/feishu-im.js +49 -0
  196. package/dist/workflows/hostExecutors/feishu-im.js.map +1 -0
  197. package/dist/workflows/hostExecutors/feishu-reply.d.ts +24 -0
  198. package/dist/workflows/hostExecutors/feishu-reply.d.ts.map +1 -0
  199. package/dist/workflows/hostExecutors/feishu-reply.js +88 -0
  200. package/dist/workflows/hostExecutors/feishu-reply.js.map +1 -0
  201. package/dist/workflows/hostExecutors/feishu-send.d.ts +23 -0
  202. package/dist/workflows/hostExecutors/feishu-send.d.ts.map +1 -0
  203. package/dist/workflows/hostExecutors/feishu-send.js +124 -0
  204. package/dist/workflows/hostExecutors/feishu-send.js.map +1 -0
  205. package/dist/workflows/hostExecutors/index.d.ts +8 -0
  206. package/dist/workflows/hostExecutors/index.d.ts.map +1 -0
  207. package/dist/workflows/hostExecutors/index.js +8 -0
  208. package/dist/workflows/hostExecutors/index.js.map +1 -0
  209. package/dist/workflows/hostExecutors/protocol.d.ts +42 -0
  210. package/dist/workflows/hostExecutors/protocol.d.ts.map +1 -0
  211. package/dist/workflows/hostExecutors/protocol.js +181 -0
  212. package/dist/workflows/hostExecutors/protocol.js.map +1 -0
  213. package/dist/workflows/hostExecutors/registry.d.ts +10 -0
  214. package/dist/workflows/hostExecutors/registry.d.ts.map +1 -0
  215. package/dist/workflows/hostExecutors/registry.js +36 -0
  216. package/dist/workflows/hostExecutors/registry.js.map +1 -0
  217. package/dist/workflows/hostExecutors/types.d.ts +78 -0
  218. package/dist/workflows/hostExecutors/types.d.ts.map +1 -0
  219. package/dist/workflows/hostExecutors/types.js +2 -0
  220. package/dist/workflows/hostExecutors/types.js.map +1 -0
  221. package/dist/workflows/loader.d.ts +16 -0
  222. package/dist/workflows/loader.d.ts.map +1 -0
  223. package/dist/workflows/loader.js +56 -0
  224. package/dist/workflows/loader.js.map +1 -0
  225. package/dist/workflows/loop.d.ts +50 -0
  226. package/dist/workflows/loop.d.ts.map +1 -0
  227. package/dist/workflows/loop.js +350 -0
  228. package/dist/workflows/loop.js.map +1 -0
  229. package/dist/workflows/ops-projection.d.ts +168 -0
  230. package/dist/workflows/ops-projection.d.ts.map +1 -0
  231. package/dist/workflows/ops-projection.js +707 -0
  232. package/dist/workflows/ops-projection.js.map +1 -0
  233. package/dist/workflows/orchestrator.d.ts +107 -0
  234. package/dist/workflows/orchestrator.d.ts.map +1 -0
  235. package/dist/workflows/orchestrator.js +197 -0
  236. package/dist/workflows/orchestrator.js.map +1 -0
  237. package/dist/workflows/output-binding.d.ts +70 -0
  238. package/dist/workflows/output-binding.d.ts.map +1 -0
  239. package/dist/workflows/output-binding.js +265 -0
  240. package/dist/workflows/output-binding.js.map +1 -0
  241. package/dist/workflows/params.d.ts +61 -0
  242. package/dist/workflows/params.d.ts.map +1 -0
  243. package/dist/workflows/params.js +195 -0
  244. package/dist/workflows/params.js.map +1 -0
  245. package/dist/workflows/resume.d.ts +263 -0
  246. package/dist/workflows/resume.d.ts.map +1 -0
  247. package/dist/workflows/resume.js +808 -0
  248. package/dist/workflows/resume.js.map +1 -0
  249. package/dist/workflows/run-id.d.ts +2 -0
  250. package/dist/workflows/run-id.d.ts.map +1 -0
  251. package/dist/workflows/run-id.js +7 -0
  252. package/dist/workflows/run-id.js.map +1 -0
  253. package/dist/workflows/run-init.d.ts +48 -0
  254. package/dist/workflows/run-init.d.ts.map +1 -0
  255. package/dist/workflows/run-init.js +99 -0
  256. package/dist/workflows/run-init.js.map +1 -0
  257. package/dist/workflows/runs-dir.d.ts +4 -0
  258. package/dist/workflows/runs-dir.d.ts.map +1 -0
  259. package/dist/workflows/runs-dir.js +15 -0
  260. package/dist/workflows/runs-dir.js.map +1 -0
  261. package/dist/workflows/runtime.d.ts +211 -0
  262. package/dist/workflows/runtime.d.ts.map +1 -0
  263. package/dist/workflows/runtime.js +594 -0
  264. package/dist/workflows/runtime.js.map +1 -0
  265. package/dist/workflows/spawn-bot.d.ts +165 -0
  266. package/dist/workflows/spawn-bot.d.ts.map +1 -0
  267. package/dist/workflows/spawn-bot.js +215 -0
  268. package/dist/workflows/spawn-bot.js.map +1 -0
  269. package/dist/workflows/system.d.ts +49 -0
  270. package/dist/workflows/system.d.ts.map +1 -0
  271. package/dist/workflows/system.js +48 -0
  272. package/dist/workflows/system.js.map +1 -0
  273. package/dist/workflows/trigger-run.d.ts +70 -0
  274. package/dist/workflows/trigger-run.d.ts.map +1 -0
  275. package/dist/workflows/trigger-run.js +88 -0
  276. package/dist/workflows/trigger-run.js.map +1 -0
  277. package/dist/workflows/wait.d.ts +120 -0
  278. package/dist/workflows/wait.d.ts.map +1 -0
  279. package/dist/workflows/wait.js +181 -0
  280. package/dist/workflows/wait.js.map +1 -0
  281. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-run.js","sourceRoot":"","sources":["../../src/workflows/trigger-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Wait / human-gate host API (events doc v0.1.2 §2.4, Step 8 of 10).
3
+ *
4
+ * Three operations:
5
+ * - `createWait` — declares a wait activity; writes `waitCreated`.
6
+ * - `resolveWait` — closes a wait by external decision; writes
7
+ * `waitResolved` + activity terminal.
8
+ * - `expireWait` — closes a wait by deadline; writes
9
+ * `waitDeadlineExceeded` + activity terminal.
10
+ *
11
+ * Spec contract (§2.4):
12
+ * - `waitResolved` is NOT a terminal event; activity terminal follows.
13
+ * - `approved` resolution → `activitySucceeded`.
14
+ * - `rejected` resolution → `activityFailed { WaitDeadlineExceeded?, userFault }`.
15
+ * Per spec the errorCode for rejection isn't explicitly enumerated;
16
+ * v0 picks `userFault` class with a reusable code so dashboards can
17
+ * filter. We use `InputValidationFailed` — closest fit from the
18
+ * existing enum (rejection is "input not accepted").
19
+ * - `external` resolution → `activitySucceeded` with the resolution
20
+ * reflected in `externalRefs.resolution = 'external'`.
21
+ * - `waitDeadlineExceeded` → either `activityFailed` ({WaitDeadlineExceeded,
22
+ * userFault}) when `onTimeout='fail'` (default), or
23
+ * `activitySucceeded { externalRefs.defaultedToTimeout=true }` when
24
+ * `onTimeout='success'` (spec §6 open Q7 resolved at Step 8).
25
+ *
26
+ * Step 8 does NOT:
27
+ * - schedule deadline timers (caller wires them up; we just write the
28
+ * event when the timer fires);
29
+ * - implement cancel propagation (Step 9).
30
+ */
31
+ import type { EventLog } from './events/append.js';
32
+ import type { OutputRef } from './events/payloads.js';
33
+ import type { ActivityFailedEvent, ActivitySucceededEvent, WaitCreatedEvent, WaitDeadlineExceededEvent, WaitResolvedEvent } from './events/types.js';
34
+ export type WaitKind = 'human-gate' | 'time' | 'condition';
35
+ export type WaitResolution = 'approved' | 'rejected' | 'external';
36
+ export type WaitOnTimeout = 'fail' | 'success';
37
+ export type CreateWaitInput = {
38
+ activityId: string;
39
+ attemptId: string;
40
+ nodeId: string;
41
+ waitKind: WaitKind;
42
+ /** Wall-clock ms epoch. Required for `time` kind, optional otherwise. */
43
+ deadlineAt?: number;
44
+ /** Human-readable prompt (rendered to approvers / dashboards). Small
45
+ * prompts go here inline; large ones spill to `promptRef` per
46
+ * `checkWaitCreatedPromptInvariant` (mutually exclusive). */
47
+ prompt?: string;
48
+ /** Blob spill for prompts that don't fit in the inline envelope.
49
+ * Consumers (card-builder / dashboard) read the blob on demand;
50
+ * replay never touches it. */
51
+ promptRef?: OutputRef;
52
+ /** Required short preview when `promptRef` is set so cards / dashboards
53
+ * can render without reading the blob. Up to 500 chars (schema cap);
54
+ * producer is responsible for keeping bytes reasonable for UTF-8. */
55
+ promptPreview?: string;
56
+ /** Optional open_id allow list for human-gate card actions. */
57
+ approvers?: string[];
58
+ /** What to write as the activity terminal when the deadline fires
59
+ * without resolution. Default `fail` (spec default). */
60
+ onTimeout?: WaitOnTimeout;
61
+ };
62
+ export type ResolveWaitInput = {
63
+ activityId: string;
64
+ attemptId: string;
65
+ resolution: WaitResolution;
66
+ /** Identifier of the resolver — open_id / system actor name. */
67
+ by: string;
68
+ comment?: string;
69
+ /**
70
+ * Extra business output to record in the resulting
71
+ * `activitySucceeded.externalRefs` (only used when the resolution
72
+ * leads to success — approved / external). Ignored for rejected.
73
+ */
74
+ output?: Record<string, unknown>;
75
+ };
76
+ export type ExpireWaitInput = {
77
+ activityId: string;
78
+ attemptId: string;
79
+ /** Wall-clock ms at which the deadline was scheduled. */
80
+ deadlineAt: number;
81
+ /** Wall-clock ms when the timer actually fired (may be slightly later
82
+ * due to scheduler latency). */
83
+ exceededAtMs: number;
84
+ /** Policy for the resulting activity terminal. Default `fail`. */
85
+ onTimeout?: WaitOnTimeout;
86
+ };
87
+ export type ResolveWaitResult = {
88
+ resolutionEvent: WaitResolvedEvent;
89
+ terminalEvent: ActivitySucceededEvent | ActivityFailedEvent;
90
+ };
91
+ export type ExpireWaitResult = {
92
+ deadlineEvent: WaitDeadlineExceededEvent;
93
+ terminalEvent: ActivitySucceededEvent | ActivityFailedEvent;
94
+ };
95
+ /**
96
+ * Declare a wait activity. Writes `waitCreated`. The caller is
97
+ * responsible for advancing the parent node into `waiting` via
98
+ * `nodeWaiting` (scheduling concern, not host-API).
99
+ */
100
+ export declare function createWait(log: EventLog, input: CreateWaitInput): Promise<WaitCreatedEvent>;
101
+ /**
102
+ * Close a wait via external decision. Writes `waitResolved` followed
103
+ * by the activity terminal. The terminal mapping is fixed by spec
104
+ * §2.4:
105
+ * - approved → activitySucceeded
106
+ * - rejected → activityFailed { InputValidationFailed, userFault }
107
+ * - external → activitySucceeded { externalRefs.resolution='external' }
108
+ */
109
+ export declare function resolveWait(log: EventLog, input: ResolveWaitInput): Promise<ResolveWaitResult>;
110
+ /**
111
+ * Close a wait via deadline expiry. Writes `waitDeadlineExceeded`
112
+ * followed by the activity terminal driven by `onTimeout` (default
113
+ * `fail`).
114
+ *
115
+ * The terminal policy:
116
+ * - fail (default) → activityFailed { WaitDeadlineExceeded, userFault }
117
+ * - success → activitySucceeded { externalRefs.defaultedToTimeout=true }
118
+ */
119
+ export declare function expireWait(log: EventLog, input: ExpireWaitInput): Promise<ExpireWaitResult>;
120
+ //# sourceMappingURL=wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../src/workflows/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EACV,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAI3B,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,WAAW,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,UAAU,GAAG,UAAU,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;AAE/C,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;kEAE8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;mCAE+B;IAC/B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;0EAEsE;IACtE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB;8DAC0D;IAC1D,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,cAAc,CAAC;IAC3B,gEAAgE;IAChE,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,UAAU,EAAE,MAAM,CAAC;IACnB;qCACiC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,mEAAmE;IACnE,SAAS,CAAC,EAAE,aAAa,CAAC;CAC3B,CAAC;AAIF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,eAAe,EAAE,iBAAiB,CAAC;IACnC,aAAa,EAAE,sBAAsB,GAAG,mBAAmB,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,aAAa,EAAE,yBAAyB,CAAC;IACzC,aAAa,EAAE,sBAAsB,GAAG,mBAAmB,CAAC;CAC7D,CAAC;AAIF;;;;GAIG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAsB3B;AAID;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAsC5B;AAID;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,eAAe,GACrB,OAAO,CAAC,gBAAgB,CAAC,CA+B3B"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Wait / human-gate host API (events doc v0.1.2 §2.4, Step 8 of 10).
3
+ *
4
+ * Three operations:
5
+ * - `createWait` — declares a wait activity; writes `waitCreated`.
6
+ * - `resolveWait` — closes a wait by external decision; writes
7
+ * `waitResolved` + activity terminal.
8
+ * - `expireWait` — closes a wait by deadline; writes
9
+ * `waitDeadlineExceeded` + activity terminal.
10
+ *
11
+ * Spec contract (§2.4):
12
+ * - `waitResolved` is NOT a terminal event; activity terminal follows.
13
+ * - `approved` resolution → `activitySucceeded`.
14
+ * - `rejected` resolution → `activityFailed { WaitDeadlineExceeded?, userFault }`.
15
+ * Per spec the errorCode for rejection isn't explicitly enumerated;
16
+ * v0 picks `userFault` class with a reusable code so dashboards can
17
+ * filter. We use `InputValidationFailed` — closest fit from the
18
+ * existing enum (rejection is "input not accepted").
19
+ * - `external` resolution → `activitySucceeded` with the resolution
20
+ * reflected in `externalRefs.resolution = 'external'`.
21
+ * - `waitDeadlineExceeded` → either `activityFailed` ({WaitDeadlineExceeded,
22
+ * userFault}) when `onTimeout='fail'` (default), or
23
+ * `activitySucceeded { externalRefs.defaultedToTimeout=true }` when
24
+ * `onTimeout='success'` (spec §6 open Q7 resolved at Step 8).
25
+ *
26
+ * Step 8 does NOT:
27
+ * - schedule deadline timers (caller wires them up; we just write the
28
+ * event when the timer fires);
29
+ * - implement cancel propagation (Step 9).
30
+ */
31
+ // ─── createWait ────────────────────────────────────────────────────────────
32
+ /**
33
+ * Declare a wait activity. Writes `waitCreated`. The caller is
34
+ * responsible for advancing the parent node into `waiting` via
35
+ * `nodeWaiting` (scheduling concern, not host-API).
36
+ */
37
+ export async function createWait(log, input) {
38
+ if (input.waitKind === 'time' && input.deadlineAt === undefined) {
39
+ throw new Error(`createWait(${input.activityId}): waitKind='time' requires deadlineAt`);
40
+ }
41
+ return (await log.append({
42
+ runId: log.runId,
43
+ type: 'waitCreated',
44
+ actor: 'scheduler',
45
+ payload: {
46
+ activityId: input.activityId,
47
+ nodeId: input.nodeId,
48
+ waitKind: input.waitKind,
49
+ deadlineAt: input.deadlineAt,
50
+ prompt: input.prompt,
51
+ promptRef: input.promptRef,
52
+ promptPreview: input.promptPreview,
53
+ approvers: input.approvers,
54
+ onTimeout: input.onTimeout,
55
+ },
56
+ }));
57
+ }
58
+ // ─── resolveWait ───────────────────────────────────────────────────────────
59
+ /**
60
+ * Close a wait via external decision. Writes `waitResolved` followed
61
+ * by the activity terminal. The terminal mapping is fixed by spec
62
+ * §2.4:
63
+ * - approved → activitySucceeded
64
+ * - rejected → activityFailed { InputValidationFailed, userFault }
65
+ * - external → activitySucceeded { externalRefs.resolution='external' }
66
+ */
67
+ export async function resolveWait(log, input) {
68
+ const resolutionEvent = (await log.append({
69
+ runId: log.runId,
70
+ type: 'waitResolved',
71
+ actor: input.resolution === 'external' ? 'system' : 'human',
72
+ payload: {
73
+ activityId: input.activityId,
74
+ resolution: input.resolution,
75
+ by: input.by,
76
+ comment: input.comment,
77
+ },
78
+ }));
79
+ const terminalEvent = await writeWaitTerminal(log, {
80
+ activityId: input.activityId,
81
+ attemptId: input.attemptId,
82
+ kind: input.resolution === 'rejected'
83
+ ? {
84
+ tag: 'failed',
85
+ errorCode: 'InputValidationFailed',
86
+ errorClass: 'userFault',
87
+ errorMessage: `Wait resolved with rejected by ${input.by}${input.comment ? `: ${input.comment}` : ''}`,
88
+ }
89
+ : {
90
+ tag: 'succeeded',
91
+ externalRefs: {
92
+ resolution: input.resolution,
93
+ by: input.by,
94
+ ...(input.comment ? { comment: input.comment } : {}),
95
+ ...(input.output ?? {}),
96
+ },
97
+ },
98
+ });
99
+ return { resolutionEvent, terminalEvent };
100
+ }
101
+ // ─── expireWait ────────────────────────────────────────────────────────────
102
+ /**
103
+ * Close a wait via deadline expiry. Writes `waitDeadlineExceeded`
104
+ * followed by the activity terminal driven by `onTimeout` (default
105
+ * `fail`).
106
+ *
107
+ * The terminal policy:
108
+ * - fail (default) → activityFailed { WaitDeadlineExceeded, userFault }
109
+ * - success → activitySucceeded { externalRefs.defaultedToTimeout=true }
110
+ */
111
+ export async function expireWait(log, input) {
112
+ const deadlineEvent = (await log.append({
113
+ runId: log.runId,
114
+ type: 'waitDeadlineExceeded',
115
+ actor: 'scheduler',
116
+ payload: {
117
+ activityId: input.activityId,
118
+ deadlineAt: input.deadlineAt,
119
+ exceededAtMs: input.exceededAtMs,
120
+ },
121
+ }));
122
+ const policy = input.onTimeout ?? 'fail';
123
+ const terminalEvent = await writeWaitTerminal(log, {
124
+ activityId: input.activityId,
125
+ attemptId: input.attemptId,
126
+ kind: policy === 'success'
127
+ ? {
128
+ tag: 'succeeded',
129
+ externalRefs: { defaultedToTimeout: true, deadlineAt: input.deadlineAt },
130
+ }
131
+ : {
132
+ tag: 'failed',
133
+ errorCode: 'WaitDeadlineExceeded',
134
+ errorClass: 'userFault',
135
+ errorMessage: `Wait deadline (${input.deadlineAt}) exceeded at ${input.exceededAtMs}`,
136
+ },
137
+ });
138
+ return { deadlineEvent, terminalEvent };
139
+ }
140
+ async function writeWaitTerminal(log, spec) {
141
+ if (spec.kind.tag === 'succeeded') {
142
+ const externalRefs = spec.kind.externalRefs;
143
+ const outputBuf = Buffer.from(JSON.stringify(externalRefs), 'utf-8');
144
+ const outputHash = await sha256Hex(outputBuf);
145
+ return (await log.append({
146
+ runId: log.runId,
147
+ type: 'activitySucceeded',
148
+ actor: 'scheduler',
149
+ payload: {
150
+ activityId: spec.activityId,
151
+ attemptId: spec.attemptId,
152
+ outputRef: {
153
+ outputHash: `sha256:${outputHash}`,
154
+ outputBytes: outputBuf.length,
155
+ outputSchemaVersion: 1,
156
+ contentType: 'application/json',
157
+ },
158
+ externalRefs,
159
+ },
160
+ }));
161
+ }
162
+ return (await log.append({
163
+ runId: log.runId,
164
+ type: 'activityFailed',
165
+ actor: 'scheduler',
166
+ payload: {
167
+ activityId: spec.activityId,
168
+ attemptId: spec.attemptId,
169
+ error: {
170
+ errorCode: spec.kind.errorCode,
171
+ errorClass: spec.kind.errorClass,
172
+ errorMessage: spec.kind.errorMessage,
173
+ },
174
+ },
175
+ }));
176
+ }
177
+ async function sha256Hex(buf) {
178
+ const { createHash } = await import('node:crypto');
179
+ return createHash('sha256').update(buf).digest('hex');
180
+ }
181
+ //# sourceMappingURL=wait.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait.js","sourceRoot":"","sources":["../../src/workflows/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAmFH,8EAA8E;AAE9E;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAa,EACb,KAAsB;IAEtB,IAAI,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,cAAc,KAAK,CAAC,UAAU,wCAAwC,CACvE,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;SAC3B;KACF,CAAC,CAAqB,CAAC;AAC1B,CAAC;AAED,8EAA8E;AAE9E;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,GAAa,EACb,KAAuB;IAEvB,MAAM,eAAe,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;QACxC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO;QAC3D,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;KACF,CAAC,CAAsB,CAAC;IAEzB,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE;QACjD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EACF,KAAK,CAAC,UAAU,KAAK,UAAU;YAC7B,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ;gBACb,SAAS,EAAE,uBAAuB;gBAClC,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,kCAAkC,KAAK,CAAC,EAAE,GACtD,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EACzC,EAAE;aACH;YACH,CAAC,CAAC;gBACE,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE;oBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,EAAE,EAAE,KAAK,CAAC,EAAE;oBACZ,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC;iBACxB;aACF;KACR,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;AAC5C,CAAC;AAED,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,GAAa,EACb,KAAsB;IAEtB,MAAM,aAAa,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;QACtC,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,sBAAsB;QAC5B,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE;YACP,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,YAAY,EAAE,KAAK,CAAC,YAAY;SACjC;KACF,CAAC,CAA8B,CAAC;IAEjC,MAAM,MAAM,GAAkB,KAAK,CAAC,SAAS,IAAI,MAAM,CAAC;IACxD,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE;QACjD,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,IAAI,EACF,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC;gBACE,GAAG,EAAE,WAAW;gBAChB,YAAY,EAAE,EAAE,kBAAkB,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,CAAC,UAAU,EAAE;aACzE;YACH,CAAC,CAAC;gBACE,GAAG,EAAE,QAAQ;gBACb,SAAS,EAAE,sBAAsB;gBACjC,UAAU,EAAE,WAAW;gBACvB,YAAY,EAAE,kBAAkB,KAAK,CAAC,UAAU,iBAAiB,KAAK,CAAC,YAAY,EAAE;aACtF;KACR,CAAC,CAAC;IAEH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AAC1C,CAAC;AAoBD,KAAK,UAAU,iBAAiB,CAC9B,GAAa,EACb,IAAkB;IAElB,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,WAAW,EAAE,CAAC;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9C,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,IAAI,EAAE,mBAAmB;YACzB,KAAK,EAAE,WAAW;YAClB,OAAO,EAAE;gBACP,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,SAAS,EAAE;oBACT,UAAU,EAAE,UAAU,UAAU,EAAE;oBAClC,WAAW,EAAE,SAAS,CAAC,MAAM;oBAC7B,mBAAmB,EAAE,CAAC;oBACtB,WAAW,EAAE,kBAAkB;iBAChC;gBACD,YAAY;aACb;SACF,CAAC,CAA2B,CAAC;IAChC,CAAC;IACD,OAAO,CAAC,MAAM,GAAG,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,gBAAgB;QACtB,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE;YACP,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;gBAC9B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU;gBAChC,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY;aACrC;SACF;KACF,CAAC,CAAwB,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,GAAW;IAClC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;IACnD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "botmux",
3
- "version": "2.33.0",
3
+ "version": "2.33.1",
4
4
  "description": "Bridge between IM platforms and AI coding CLIs — one topic, one CLI session with live streaming",
5
5
  "type": "module",
6
6
  "main": "dist/index-daemon.js",
@@ -15,8 +15,8 @@
15
15
  "LICENSE"
16
16
  ],
17
17
  "scripts": {
18
- "build": "tsc && cp src/setup/lark-scopes.json dist/setup/ && pnpm dashboard:bundle",
19
- "dashboard:bundle": "esbuild src/dashboard/web/app.ts --bundle --outfile=dist/dashboard-web/app.js --platform=browser --format=iife --minify && cp src/dashboard/web/index.html dist/dashboard-web/index.html && cp src/dashboard/web/style.css dist/dashboard-web/style.css",
18
+ "build": "tsc && cp src/setup/lark-scopes.json dist/setup/ && pnpm dashboard:bundle && chmod +x dist/cli.js",
19
+ "dashboard:bundle": "esbuild src/dashboard/web/app.ts --bundle --outfile=dist/dashboard-web/app.js --platform=browser --format=iife --minify && cp src/dashboard/web/index.html dist/dashboard-web/index.html && cp src/dashboard/web/style.css dist/dashboard-web/style.css && cp src/dashboard/web/terminal-replay.html dist/dashboard-web/terminal-replay.html",
20
20
  "daemon": "tsx src/index-daemon.ts",
21
21
  "daemon:start": "node dist/cli.js start",
22
22
  "daemon:stop": "node dist/cli.js stop",