@cogitator-ai/workflows 0.7.3 → 0.9.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 (70) hide show
  1. package/README.md +28 -0
  2. package/dist/builder.d.ts +1 -1
  3. package/dist/builder.d.ts.map +1 -1
  4. package/dist/builder.js.map +1 -1
  5. package/dist/checkpoint-stores.d.ts +61 -0
  6. package/dist/checkpoint-stores.d.ts.map +1 -0
  7. package/dist/checkpoint-stores.js +111 -0
  8. package/dist/checkpoint-stores.js.map +1 -0
  9. package/dist/executor.d.ts.map +1 -1
  10. package/dist/executor.js +18 -7
  11. package/dist/executor.js.map +1 -1
  12. package/dist/human/approval-outcomes.d.ts +26 -0
  13. package/dist/human/approval-outcomes.d.ts.map +1 -0
  14. package/dist/human/approval-outcomes.js +61 -0
  15. package/dist/human/approval-outcomes.js.map +1 -0
  16. package/dist/human/approval-store.d.ts +12 -0
  17. package/dist/human/approval-store.d.ts.map +1 -1
  18. package/dist/human/approval-store.js +52 -9
  19. package/dist/human/approval-store.js.map +1 -1
  20. package/dist/human/durable-approval-stores.d.ts +118 -0
  21. package/dist/human/durable-approval-stores.d.ts.map +1 -0
  22. package/dist/human/durable-approval-stores.js +383 -0
  23. package/dist/human/durable-approval-stores.js.map +1 -0
  24. package/dist/human/human-node.d.ts +13 -7
  25. package/dist/human/human-node.d.ts.map +1 -1
  26. package/dist/human/human-node.js +9 -8
  27. package/dist/human/human-node.js.map +1 -1
  28. package/dist/human/index.d.ts +2 -1
  29. package/dist/human/index.d.ts.map +1 -1
  30. package/dist/human/index.js +1 -0
  31. package/dist/human/index.js.map +1 -1
  32. package/dist/index.d.ts +8 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -1
  35. package/dist/index.js.map +1 -1
  36. package/dist/manager/durable-run-stores.d.ts +88 -0
  37. package/dist/manager/durable-run-stores.d.ts.map +1 -0
  38. package/dist/manager/durable-run-stores.js +492 -0
  39. package/dist/manager/durable-run-stores.js.map +1 -0
  40. package/dist/manager/run-store.d.ts +1 -0
  41. package/dist/manager/run-store.d.ts.map +1 -1
  42. package/dist/manager/run-store.js +21 -10
  43. package/dist/manager/run-store.js.map +1 -1
  44. package/dist/manager/workflow-manager.d.ts +7 -1
  45. package/dist/manager/workflow-manager.d.ts.map +1 -1
  46. package/dist/manager/workflow-manager.js +42 -16
  47. package/dist/manager/workflow-manager.js.map +1 -1
  48. package/dist/observability/exporters.js +1 -1
  49. package/dist/observability/exporters.js.map +1 -1
  50. package/dist/observability/tracer.d.ts +1 -0
  51. package/dist/observability/tracer.d.ts.map +1 -1
  52. package/dist/observability/tracer.js +2 -1
  53. package/dist/observability/tracer.js.map +1 -1
  54. package/dist/postgres-schema.d.ts +18 -0
  55. package/dist/postgres-schema.d.ts.map +1 -0
  56. package/dist/postgres-schema.js +35 -0
  57. package/dist/postgres-schema.js.map +1 -0
  58. package/dist/subworkflows/parallel-subworkflows.d.ts +15 -11
  59. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
  60. package/dist/subworkflows/parallel-subworkflows.js +21 -31
  61. package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
  62. package/dist/timers/durable-timer-stores.d.ts +174 -0
  63. package/dist/timers/durable-timer-stores.d.ts.map +1 -0
  64. package/dist/timers/durable-timer-stores.js +501 -0
  65. package/dist/timers/durable-timer-stores.js.map +1 -0
  66. package/dist/timers/timer-manager.d.ts +28 -1
  67. package/dist/timers/timer-manager.d.ts.map +1 -1
  68. package/dist/timers/timer-manager.js +87 -3
  69. package/dist/timers/timer-manager.js.map +1 -1
  70. package/package.json +4 -4
@@ -0,0 +1,383 @@
1
+ /**
2
+ * Durable approval stores: Redis and Postgres.
3
+ *
4
+ * A human node often waits in one process (a worker) while the answer is
5
+ * submitted from another (a web server), so `onResponse` both reacts to
6
+ * responses submitted through the same store instance and polls the backend
7
+ * for responses written elsewhere.
8
+ */
9
+ import { createIfMissing, fromJson, TABLE_NAME } from '../postgres-schema.js';
10
+ import { ApprovalAlreadyAnsweredError, submitOrExisting, withdrawnResponse, } from './approval-outcomes.js';
11
+ const DEFAULT_POLL_INTERVAL = 1000;
12
+ /**
13
+ * Approvals in Redis: requests and responses as JSON under their id, with
14
+ * sorted sets (scored by creation time) of pending request ids overall, per
15
+ * workflow and per assignee, so pending lookups never scan the keyspace.
16
+ */
17
+ export class RedisApprovalStore {
18
+ client;
19
+ prefix;
20
+ watcher;
21
+ constructor(options) {
22
+ this.client = options.client;
23
+ this.prefix = options.keyPrefix ?? 'cogitator:workflow-approvals';
24
+ this.watcher = new ResponseWatcher((requestId) => this.getResponse(requestId), options);
25
+ }
26
+ async createRequest(request) {
27
+ const [previous, answered] = await Promise.all([
28
+ this.getRequest(request.id),
29
+ this.client.get(this.responseKey(request.id)),
30
+ ]);
31
+ await this.client.set(this.requestKey(request.id), JSON.stringify(request));
32
+ const indexes = answered === null ? this.pendingIndexes(request) : [];
33
+ if (previous) {
34
+ const outdated = this.pendingIndexes(previous).filter((key) => !indexes.includes(key));
35
+ await Promise.all(outdated.map((key) => this.client.zrem(key, request.id)));
36
+ }
37
+ await Promise.all(indexes.map((key) => this.client.zadd(key, request.createdAt, request.id)));
38
+ }
39
+ async getRequest(id) {
40
+ const raw = await this.client.get(this.requestKey(id));
41
+ return raw ? JSON.parse(raw) : null;
42
+ }
43
+ async getPendingRequests(workflowId) {
44
+ if (workflowId) {
45
+ return this.readPending(this.workflowIndexKey(workflowId), (request) => request.workflowId === workflowId);
46
+ }
47
+ return this.readPending(this.pendingKey(), () => true);
48
+ }
49
+ async getPendingForAssignee(assignee) {
50
+ return this.readPending(this.assigneeIndexKey(assignee), (request) => isAssignedTo(request, assignee));
51
+ }
52
+ /**
53
+ * Records the answer; the first answer wins (claimed by adding the request
54
+ * to the answered set), a later one throws `ApprovalAlreadyAnsweredError`.
55
+ */
56
+ async submitResponse(response) {
57
+ const claimed = await this.client.zadd(this.answeredKey(), Date.now(), response.requestId);
58
+ if (Number(claimed) !== 1) {
59
+ const existing = await this.getResponse(response.requestId);
60
+ throw new ApprovalAlreadyAnsweredError(response.requestId, existing ?? undefined);
61
+ }
62
+ await this.client.set(this.responseKey(response.requestId), JSON.stringify(response));
63
+ const request = await this.getRequest(response.requestId);
64
+ if (request) {
65
+ await Promise.all(this.pendingIndexes(request).map((key) => this.client.zrem(key, request.id)));
66
+ }
67
+ this.watcher.deliver(response);
68
+ }
69
+ async getResponse(requestId) {
70
+ const raw = await this.client.get(this.responseKey(requestId));
71
+ return raw ? JSON.parse(raw) : null;
72
+ }
73
+ /**
74
+ * Removes the request. A request nobody answered yet gets `withdrawnResponse`
75
+ * as its answer, which stays stored so waiters in other processes see it.
76
+ */
77
+ async deleteRequest(id) {
78
+ const request = await this.getRequest(id);
79
+ const pending = request !== null && (await this.getResponse(id)) === null;
80
+ if (pending) {
81
+ await submitOrExisting(this, withdrawnResponse(id));
82
+ await this.client.del(this.requestKey(id));
83
+ }
84
+ else {
85
+ this.watcher.cancel(id);
86
+ await this.client.del(this.requestKey(id), this.responseKey(id));
87
+ await this.client.zrem(this.answeredKey(), id);
88
+ }
89
+ if (request) {
90
+ await Promise.all(this.pendingIndexes(request).map((key) => this.client.zrem(key, id)));
91
+ }
92
+ }
93
+ onResponse(requestId, callback) {
94
+ return this.watcher.watch(requestId, callback);
95
+ }
96
+ /** Stop polling and drop every registered callback. */
97
+ dispose() {
98
+ this.watcher.dispose();
99
+ }
100
+ async readPending(indexKey, belongs) {
101
+ const ids = await this.client.zrange(indexKey, 0, -1);
102
+ if (ids.length === 0)
103
+ return [];
104
+ const [requests, responses] = await Promise.all([
105
+ this.client.mget(...ids.map((id) => this.requestKey(id))),
106
+ this.client.mget(...ids.map((id) => this.responseKey(id))),
107
+ ]);
108
+ const pending = [];
109
+ const stale = [];
110
+ ids.forEach((id, index) => {
111
+ const raw = requests[index];
112
+ const request = raw ? JSON.parse(raw) : null;
113
+ if (request && responses[index] === null && belongs(request))
114
+ pending.push(request);
115
+ else
116
+ stale.push(id);
117
+ });
118
+ if (stale.length > 0)
119
+ await this.client.zrem(indexKey, ...stale);
120
+ return pending;
121
+ }
122
+ pendingIndexes(request) {
123
+ const assignees = new Set(request.assigneeGroup ?? []);
124
+ if (request.assignee !== undefined)
125
+ assignees.add(request.assignee);
126
+ return [
127
+ this.pendingKey(),
128
+ this.workflowIndexKey(request.workflowId),
129
+ ...[...assignees].map((assignee) => this.assigneeIndexKey(assignee)),
130
+ ];
131
+ }
132
+ requestKey(id) {
133
+ return `${this.prefix}:request:${id}`;
134
+ }
135
+ answeredKey() {
136
+ return `${this.prefix}:answered`;
137
+ }
138
+ responseKey(requestId) {
139
+ return `${this.prefix}:response:${requestId}`;
140
+ }
141
+ pendingKey() {
142
+ return `${this.prefix}:pending`;
143
+ }
144
+ workflowIndexKey(workflowId) {
145
+ return `${this.prefix}:pending:workflow:${workflowId}`;
146
+ }
147
+ assigneeIndexKey(assignee) {
148
+ return `${this.prefix}:pending:assignee:${assignee}`;
149
+ }
150
+ }
151
+ /**
152
+ * Approvals in Postgres: a requests table with the workflow and assignees
153
+ * as indexed columns next to the JSONB request, and a responses table keyed
154
+ * by request id; pending means no matching response row.
155
+ */
156
+ export class PostgresApprovalStore {
157
+ client;
158
+ requests;
159
+ responses;
160
+ indexPrefix;
161
+ watcher;
162
+ ready;
163
+ constructor(options) {
164
+ const prefix = options.tablePrefix ?? 'cogitator_workflow_approvals';
165
+ if (!TABLE_NAME.test(prefix)) {
166
+ throw new Error(`Invalid approval table prefix: ${prefix}`);
167
+ }
168
+ this.client = options.client;
169
+ this.requests = `${prefix}_requests`;
170
+ this.responses = `${prefix}_responses`;
171
+ this.indexPrefix = prefix.replace('.', '_');
172
+ this.watcher = new ResponseWatcher((requestId) => this.getResponse(requestId), options);
173
+ }
174
+ async createRequest(request) {
175
+ await this.ensureTables();
176
+ await this.client.query(`INSERT INTO ${this.requests} (id, workflow_id, assignee, assignee_group, created_at, data)
177
+ VALUES ($1, $2, $3, $4, $5, $6)
178
+ ON CONFLICT (id) DO UPDATE
179
+ SET workflow_id = EXCLUDED.workflow_id, assignee = EXCLUDED.assignee,
180
+ assignee_group = EXCLUDED.assignee_group, created_at = EXCLUDED.created_at,
181
+ data = EXCLUDED.data`, [
182
+ request.id,
183
+ request.workflowId,
184
+ request.assignee ?? null,
185
+ request.assigneeGroup ?? [],
186
+ request.createdAt,
187
+ JSON.stringify(request),
188
+ ]);
189
+ }
190
+ async getRequest(id) {
191
+ await this.ensureTables();
192
+ const { rows } = await this.client.query(`SELECT data FROM ${this.requests} WHERE id = $1`, [
193
+ id,
194
+ ]);
195
+ return rows[0] ? fromJson(rows[0].data) : null;
196
+ }
197
+ async getPendingRequests(workflowId) {
198
+ await this.ensureTables();
199
+ const { rows } = workflowId
200
+ ? await this.client.query(`SELECT r.data FROM ${this.requests} r
201
+ WHERE r.workflow_id = $1 AND ${this.unanswered()}
202
+ ORDER BY r.created_at, r.id`, [workflowId])
203
+ : await this.client.query(`SELECT r.data FROM ${this.requests} r
204
+ WHERE ${this.unanswered()}
205
+ ORDER BY r.created_at, r.id`);
206
+ return rows.map((row) => fromJson(row.data));
207
+ }
208
+ async getPendingForAssignee(assignee) {
209
+ await this.ensureTables();
210
+ const { rows } = await this.client.query(`SELECT r.data FROM ${this.requests} r
211
+ WHERE (r.assignee = $1 OR r.assignee_group @> ARRAY[$1]::text[]) AND ${this.unanswered()}
212
+ ORDER BY r.created_at, r.id`, [assignee]);
213
+ return rows.map((row) => fromJson(row.data));
214
+ }
215
+ /** Records the answer; the first answer wins, a later one throws `ApprovalAlreadyAnsweredError`. */
216
+ async submitResponse(response) {
217
+ await this.ensureTables();
218
+ const { rows } = await this.client.query(`INSERT INTO ${this.responses} (request_id, data)
219
+ VALUES ($1, $2)
220
+ ON CONFLICT (request_id) DO NOTHING
221
+ RETURNING request_id`, [response.requestId, JSON.stringify(response)]);
222
+ if (rows.length === 0) {
223
+ const existing = await this.getResponse(response.requestId);
224
+ throw new ApprovalAlreadyAnsweredError(response.requestId, existing ?? undefined);
225
+ }
226
+ this.watcher.deliver(response);
227
+ }
228
+ async getResponse(requestId) {
229
+ await this.ensureTables();
230
+ const { rows } = await this.client.query(`SELECT data FROM ${this.responses} WHERE request_id = $1`, [requestId]);
231
+ return rows[0] ? fromJson(rows[0].data) : null;
232
+ }
233
+ /**
234
+ * Removes the request. A request nobody answered yet gets `withdrawnResponse`
235
+ * as its answer, which stays stored so waiters in other processes see it.
236
+ */
237
+ async deleteRequest(id) {
238
+ await this.ensureTables();
239
+ const pending = (await this.getRequest(id)) !== null && (await this.getResponse(id)) === null;
240
+ if (pending) {
241
+ await submitOrExisting(this, withdrawnResponse(id));
242
+ await this.client.query(`DELETE FROM ${this.requests} WHERE id = $1`, [id]);
243
+ return;
244
+ }
245
+ this.watcher.cancel(id);
246
+ await this.client.query(`WITH removed AS (DELETE FROM ${this.responses} WHERE request_id = $1)
247
+ DELETE FROM ${this.requests} WHERE id = $1`, [id]);
248
+ }
249
+ onResponse(requestId, callback) {
250
+ return this.watcher.watch(requestId, callback);
251
+ }
252
+ /** Stop polling and drop every registered callback. */
253
+ dispose() {
254
+ this.watcher.dispose();
255
+ }
256
+ unanswered() {
257
+ return `NOT EXISTS (SELECT 1 FROM ${this.responses} s WHERE s.request_id = r.id)`;
258
+ }
259
+ ensureTables() {
260
+ this.ready ??= this.createTables().catch((error) => {
261
+ this.ready = undefined;
262
+ throw error;
263
+ });
264
+ return this.ready;
265
+ }
266
+ async createTables() {
267
+ const statements = [
268
+ `CREATE TABLE IF NOT EXISTS ${this.requests} (
269
+ id TEXT PRIMARY KEY,
270
+ workflow_id TEXT NOT NULL,
271
+ assignee TEXT,
272
+ assignee_group TEXT[] NOT NULL DEFAULT '{}',
273
+ created_at BIGINT NOT NULL,
274
+ data JSONB NOT NULL
275
+ )`,
276
+ `CREATE TABLE IF NOT EXISTS ${this.responses} (
277
+ request_id TEXT PRIMARY KEY,
278
+ data JSONB NOT NULL
279
+ )`,
280
+ `CREATE INDEX IF NOT EXISTS ${this.indexPrefix}_requests_workflow_idx
281
+ ON ${this.requests} (workflow_id, created_at)`,
282
+ `CREATE INDEX IF NOT EXISTS ${this.indexPrefix}_requests_assignee_idx
283
+ ON ${this.requests} (assignee)`,
284
+ `CREATE INDEX IF NOT EXISTS ${this.indexPrefix}_requests_assignee_group_idx
285
+ ON ${this.requests} USING GIN (assignee_group)`,
286
+ ];
287
+ for (const statement of statements)
288
+ await createIfMissing(this.client, statement);
289
+ }
290
+ }
291
+ /**
292
+ * Callbacks waiting for responses: delivered at once for responses submitted
293
+ * through the store, and found by polling for responses written elsewhere
294
+ * while at least one callback for the request is registered.
295
+ */
296
+ class ResponseWatcher {
297
+ fetch;
298
+ watches = new Map();
299
+ pollInterval;
300
+ onPollError;
301
+ constructor(fetch, options) {
302
+ this.fetch = fetch;
303
+ this.pollInterval = options.pollInterval ?? DEFAULT_POLL_INTERVAL;
304
+ this.onPollError = options.onPollError;
305
+ }
306
+ watch(requestId, callback) {
307
+ let watch = this.watches.get(requestId);
308
+ if (!watch) {
309
+ watch = { listeners: new Set() };
310
+ this.watches.set(requestId, watch);
311
+ this.schedule(requestId, watch);
312
+ }
313
+ const listener = { callback };
314
+ watch.listeners.add(listener);
315
+ void this.check(requestId, watch);
316
+ const subscribed = watch;
317
+ return () => {
318
+ subscribed.listeners.delete(listener);
319
+ if (subscribed.listeners.size === 0)
320
+ this.stop(requestId, subscribed);
321
+ };
322
+ }
323
+ deliver(response) {
324
+ const watch = this.watches.get(response.requestId);
325
+ if (!watch)
326
+ return;
327
+ this.stop(response.requestId, watch);
328
+ const listeners = [...watch.listeners];
329
+ watch.listeners.clear();
330
+ for (const { callback } of listeners) {
331
+ try {
332
+ callback(response);
333
+ }
334
+ catch { }
335
+ }
336
+ }
337
+ cancel(requestId) {
338
+ const watch = this.watches.get(requestId);
339
+ if (!watch)
340
+ return;
341
+ this.stop(requestId, watch);
342
+ watch.listeners.clear();
343
+ }
344
+ dispose() {
345
+ for (const requestId of [...this.watches.keys()])
346
+ this.cancel(requestId);
347
+ }
348
+ stop(requestId, watch) {
349
+ if (watch.timer !== undefined)
350
+ clearTimeout(watch.timer);
351
+ watch.timer = undefined;
352
+ if (this.watches.get(requestId) === watch)
353
+ this.watches.delete(requestId);
354
+ }
355
+ schedule(requestId, watch) {
356
+ const timer = setTimeout(() => void this.poll(requestId, watch), this.pollInterval);
357
+ if (typeof timer === 'object' && 'unref' in timer)
358
+ timer.unref();
359
+ watch.timer = timer;
360
+ }
361
+ async poll(requestId, watch) {
362
+ watch.timer = undefined;
363
+ await this.check(requestId, watch);
364
+ if (this.watches.get(requestId) === watch)
365
+ this.schedule(requestId, watch);
366
+ }
367
+ async check(requestId, watch) {
368
+ let response;
369
+ try {
370
+ response = await this.fetch(requestId);
371
+ }
372
+ catch (error) {
373
+ this.onPollError?.(error, requestId);
374
+ return;
375
+ }
376
+ if (response && this.watches.get(requestId) === watch)
377
+ this.deliver(response);
378
+ }
379
+ }
380
+ function isAssignedTo(request, assignee) {
381
+ return request.assignee === assignee || (request.assigneeGroup?.includes(assignee) ?? false);
382
+ }
383
+ //# sourceMappingURL=durable-approval-stores.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-approval-stores.js","sourceRoot":"","sources":["../../src/human/durable-approval-stores.ts"],"names":[],"mappings":"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"}
@@ -30,15 +30,21 @@ export interface HumanNodeResult<S extends WorkflowState> {
30
30
  state: S;
31
31
  timedOut?: boolean;
32
32
  escalated?: boolean;
33
+ /** The request was deleted, or expired, before anyone answered */
34
+ withdrawn?: boolean;
33
35
  }
34
36
  /**
35
37
  * Execute a human approval node
36
38
  */
37
39
  export declare function executeHumanNode<S extends WorkflowState>(state: S, config: HumanNodeConfig<S>, context: HumanNodeContext): Promise<HumanNodeResult<S>>;
40
+ /** A human node config with its name set, as the node factories return it. */
41
+ export type NamedHumanNodeConfig<S extends WorkflowState> = HumanNodeConfig<S> & {
42
+ name: string;
43
+ };
38
44
  /**
39
45
  * Create a human approval node factory
40
46
  */
41
- export declare function humanNode<S extends WorkflowState>(name: string, approval: HumanNodeConfig<S>['approval']): HumanNodeConfig<S>;
47
+ export declare function humanNode<S extends WorkflowState>(name: string, approval: HumanNodeConfig<S>['approval']): NamedHumanNodeConfig<S>;
42
48
  /**
43
49
  * Create a simple approve/reject node
44
50
  */
@@ -49,7 +55,7 @@ export declare function approvalNode<S extends WorkflowState>(name: string, opti
49
55
  timeout?: number;
50
56
  timeoutAction?: 'approve' | 'reject' | 'fail';
51
57
  priority?: 'low' | 'normal' | 'high' | 'urgent';
52
- }): HumanNodeConfig<S>;
58
+ }): NamedHumanNodeConfig<S>;
53
59
  /**
54
60
  * Create a multi-choice selection node
55
61
  */
@@ -60,7 +66,7 @@ export declare function choiceNode<S extends WorkflowState>(name: string, option
60
66
  assignee?: string | ((state: S) => string);
61
67
  timeout?: number;
62
68
  priority?: 'low' | 'normal' | 'high' | 'urgent';
63
- }): HumanNodeConfig<S>;
69
+ }): NamedHumanNodeConfig<S>;
64
70
  /**
65
71
  * Create a free-form input node
66
72
  */
@@ -70,7 +76,7 @@ export declare function inputNode<S extends WorkflowState>(name: string, options
70
76
  assignee?: string | ((state: S) => string);
71
77
  timeout?: number;
72
78
  priority?: 'low' | 'normal' | 'high' | 'urgent';
73
- }): HumanNodeConfig<S>;
79
+ }): NamedHumanNodeConfig<S>;
74
80
  /**
75
81
  * Create a rating node
76
82
  */
@@ -80,7 +86,7 @@ export declare function ratingNode<S extends WorkflowState>(name: string, option
80
86
  assignee?: string | ((state: S) => string);
81
87
  timeout?: number;
82
88
  priority?: 'low' | 'normal' | 'high' | 'urgent';
83
- }): HumanNodeConfig<S>;
89
+ }): NamedHumanNodeConfig<S>;
84
90
  /**
85
91
  * Create an approval chain node
86
92
  */
@@ -89,7 +95,7 @@ export declare function chainNode<S extends WorkflowState>(name: string, options
89
95
  description?: string | ((state: S) => string);
90
96
  chain: ApprovalChainStep[];
91
97
  priority?: 'low' | 'normal' | 'high' | 'urgent';
92
- }): HumanNodeConfig<S>;
98
+ }): NamedHumanNodeConfig<S>;
93
99
  /**
94
100
  * Create a manager → director → VP chain
95
101
  */
@@ -100,5 +106,5 @@ export declare function managementChain<S extends WorkflowState>(name: string, o
100
106
  director?: string;
101
107
  vp?: string;
102
108
  timeoutPerStep?: number;
103
- }): HumanNodeConfig<S>;
109
+ }): NamedHumanNodeConfig<S>;
104
110
  //# sourceMappingURL=human-node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"human-node.d.ts","sourceRoot":"","sources":["../../src/human/human-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"human-node.d.ts","sourceRoot":"","sources":["../../src/human/human-node.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@
10
10
  * - Priority-based routing
11
11
  */
12
12
  import { nanoid } from 'nanoid';
13
+ import { isUnanswered, submitOrExisting, WITHDRAWN } from './approval-outcomes.js';
13
14
  /**
14
15
  * Execute a human approval node
15
16
  */
@@ -45,7 +46,7 @@ export async function executeHumanNode(state, config, context) {
45
46
  await context.approvalStore.createRequest(request);
46
47
  await context.approvalNotifier?.notify(request);
47
48
  const response = await waitForResponse(request, context.approvalStore, context.approvalNotifier);
48
- const approved = isApproved(request.type, response.decision);
49
+ const approved = !isUnanswered(response) && isApproved(request.type, response.decision);
49
50
  return {
50
51
  approved,
51
52
  decision: response.decision,
@@ -53,6 +54,7 @@ export async function executeHumanNode(state, config, context) {
53
54
  state,
54
55
  timedOut: response.respondedBy === '__timeout__',
55
56
  escalated: response.respondedBy === '__escalation__',
57
+ withdrawn: response.respondedBy === WITHDRAWN,
56
58
  };
57
59
  }
58
60
  /**
@@ -99,7 +101,8 @@ async function executeApprovalChain(state, config, context, chain) {
99
101
  if (timedOut && step.timeoutAction === 'skip') {
100
102
  continue;
101
103
  }
102
- if (step.required && !isApproved(approval.type, response.decision)) {
104
+ if (step.required &&
105
+ (isUnanswered(response) || !isApproved(approval.type, response.decision))) {
103
106
  return {
104
107
  approved: false,
105
108
  decision: response.decision,
@@ -107,6 +110,7 @@ async function executeApprovalChain(state, config, context, chain) {
107
110
  state,
108
111
  timedOut,
109
112
  escalated: response.respondedBy === '__escalation__',
113
+ withdrawn: response.respondedBy === WITHDRAWN,
110
114
  };
111
115
  }
112
116
  }
@@ -153,8 +157,7 @@ async function createFailResponse(request, store) {
153
157
  respondedAt: Date.now(),
154
158
  comment: 'Request timed out without response',
155
159
  };
156
- await store.submitResponse(response);
157
- return response;
160
+ return submitOrExisting(store, response);
158
161
  }
159
162
  /**
160
163
  * Handle timeout based on configured action
@@ -171,8 +174,7 @@ async function handleTimeout(request, store, notifier) {
171
174
  respondedAt: Date.now(),
172
175
  comment: 'Auto-approved due to timeout',
173
176
  };
174
- await store.submitResponse(response);
175
- return response;
177
+ return submitOrExisting(store, response);
176
178
  }
177
179
  case 'reject': {
178
180
  const response = {
@@ -182,8 +184,7 @@ async function handleTimeout(request, store, notifier) {
182
184
  respondedAt: Date.now(),
183
185
  comment: 'Auto-rejected due to timeout',
184
186
  };
185
- await store.submitResponse(response);
186
- return response;
187
+ return submitOrExisting(store, response);
187
188
  }
188
189
  case 'escalate': {
189
190
  if (request.escalateTo) {
@@ -1 +1 @@
1
- {"version":3,"file":"human-node.js","sourceRoot":"","sources":["../../src/human/human-node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"human-node.js","sourceRoot":"","sources":["../../src/human/human-node.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@
12
12
  * - Audit trail via checkpoint store
13
13
  */
14
14
  export { InMemoryApprovalStore, FileApprovalStore, withDelegation } from './approval-store.js';
15
+ export { ApprovalAlreadyAnsweredError, WITHDRAWN, isUnanswered, submitOrExisting, withdrawnResponse, } from './approval-outcomes.js';
15
16
  export { ConsoleNotifier, WebhookNotifier, CompositeNotifier, slackNotifier, filteredNotifier, priorityRouter, nullNotifier, } from './notifiers.js';
16
- export { type HumanNodeContext, type HumanNodeResult, executeHumanNode, humanNode, approvalNode, choiceNode, inputNode, ratingNode, chainNode, managementChain, } from './human-node.js';
17
+ export { type HumanNodeContext, type HumanNodeResult, type NamedHumanNodeConfig, executeHumanNode, humanNode, approvalNode, choiceNode, inputNode, ratingNode, chainNode, managementChain, } from './human-node.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EACL,4BAA4B,EAC5B,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,cAAc,CAAC"}
@@ -12,6 +12,7 @@
12
12
  * - Audit trail via checkpoint store
13
13
  */
14
14
  export { InMemoryApprovalStore, FileApprovalStore, withDelegation } from './approval-store.js';
15
+ export { ApprovalAlreadyAnsweredError, WITHDRAWN, isUnanswered, submitOrExisting, withdrawnResponse, } from './approval-outcomes.js';
15
16
  export { ConsoleNotifier, WebhookNotifier, CompositeNotifier, slackNotifier, filteredNotifier, priorityRouter, nullNotifier, } from './notifiers.js';
16
17
  export { executeHumanNode, humanNode, approvalNode, choiceNode, inputNode, ratingNode, chainNode, managementChain, } from './human-node.js';
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE5F,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAGL,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/human/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EACL,4BAA4B,EAC5B,SAAS,EACT,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAIL,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,UAAU,EACV,SAAS,EACT,UAAU,EACV,SAAS,EACT,eAAe,GAChB,MAAM,cAAc,CAAC"}