@cogitator-ai/workflows 0.8.0 → 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 (66) hide show
  1. package/README.md +17 -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.map +1 -1
  6. package/dist/checkpoint-stores.js +4 -5
  7. package/dist/checkpoint-stores.js.map +1 -1
  8. package/dist/human/approval-outcomes.d.ts +26 -0
  9. package/dist/human/approval-outcomes.d.ts.map +1 -0
  10. package/dist/human/approval-outcomes.js +61 -0
  11. package/dist/human/approval-outcomes.js.map +1 -0
  12. package/dist/human/approval-store.d.ts +12 -0
  13. package/dist/human/approval-store.d.ts.map +1 -1
  14. package/dist/human/approval-store.js +52 -9
  15. package/dist/human/approval-store.js.map +1 -1
  16. package/dist/human/durable-approval-stores.d.ts +118 -0
  17. package/dist/human/durable-approval-stores.d.ts.map +1 -0
  18. package/dist/human/durable-approval-stores.js +383 -0
  19. package/dist/human/durable-approval-stores.js.map +1 -0
  20. package/dist/human/human-node.d.ts +13 -7
  21. package/dist/human/human-node.d.ts.map +1 -1
  22. package/dist/human/human-node.js +9 -8
  23. package/dist/human/human-node.js.map +1 -1
  24. package/dist/human/index.d.ts +2 -1
  25. package/dist/human/index.d.ts.map +1 -1
  26. package/dist/human/index.js +1 -0
  27. package/dist/human/index.js.map +1 -1
  28. package/dist/index.d.ts +6 -2
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +4 -1
  31. package/dist/index.js.map +1 -1
  32. package/dist/manager/durable-run-stores.d.ts +88 -0
  33. package/dist/manager/durable-run-stores.d.ts.map +1 -0
  34. package/dist/manager/durable-run-stores.js +492 -0
  35. package/dist/manager/durable-run-stores.js.map +1 -0
  36. package/dist/manager/run-store.d.ts +1 -0
  37. package/dist/manager/run-store.d.ts.map +1 -1
  38. package/dist/manager/run-store.js +21 -10
  39. package/dist/manager/run-store.js.map +1 -1
  40. package/dist/manager/workflow-manager.d.ts +4 -0
  41. package/dist/manager/workflow-manager.d.ts.map +1 -1
  42. package/dist/manager/workflow-manager.js +28 -12
  43. package/dist/manager/workflow-manager.js.map +1 -1
  44. package/dist/observability/exporters.js +1 -1
  45. package/dist/observability/exporters.js.map +1 -1
  46. package/dist/observability/tracer.d.ts +1 -0
  47. package/dist/observability/tracer.d.ts.map +1 -1
  48. package/dist/observability/tracer.js +2 -1
  49. package/dist/observability/tracer.js.map +1 -1
  50. package/dist/postgres-schema.d.ts +18 -0
  51. package/dist/postgres-schema.d.ts.map +1 -0
  52. package/dist/postgres-schema.js +35 -0
  53. package/dist/postgres-schema.js.map +1 -0
  54. package/dist/subworkflows/parallel-subworkflows.d.ts +15 -11
  55. package/dist/subworkflows/parallel-subworkflows.d.ts.map +1 -1
  56. package/dist/subworkflows/parallel-subworkflows.js +21 -31
  57. package/dist/subworkflows/parallel-subworkflows.js.map +1 -1
  58. package/dist/timers/durable-timer-stores.d.ts +174 -0
  59. package/dist/timers/durable-timer-stores.d.ts.map +1 -0
  60. package/dist/timers/durable-timer-stores.js +501 -0
  61. package/dist/timers/durable-timer-stores.js.map +1 -0
  62. package/dist/timers/timer-manager.d.ts +28 -1
  63. package/dist/timers/timer-manager.d.ts.map +1 -1
  64. package/dist/timers/timer-manager.js +87 -3
  65. package/dist/timers/timer-manager.js.map +1 -1
  66. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres-schema.js","sourceRoot":"","sources":["../src/postgres-schema.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,UAAU,GAAG,qDAAqD,CAAC;AAEhF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAqE,EACrE,SAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;YAAE,MAAM,KAAK,CAAC;QAC3C,MAAM,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,MAAM,IAAI,KAAK;QACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CACvC,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,QAAQ,CAAI,IAAa;IACvC,OAAO,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAM,CAAC;AACnE,CAAC"}
@@ -4,17 +4,21 @@ export interface ParallelSubworkflowDef<PS extends WorkflowState, CS extends Wor
4
4
  id: string;
5
5
  config: SubworkflowConfig<PS, CS>;
6
6
  }
7
- export interface ParallelSubworkflowsConfig<S extends WorkflowState> {
7
+ /**
8
+ * Child workflows run side by side. `CS` is the state of the children when
9
+ * they share one, so mappers and results stay typed.
10
+ */
11
+ export interface ParallelSubworkflowsConfig<S extends WorkflowState, CS extends WorkflowState = WorkflowState> {
8
12
  name: string;
9
- subworkflows: ParallelSubworkflowDef<S, WorkflowState>[] | ((state: S) => ParallelSubworkflowDef<S, WorkflowState>[]);
13
+ subworkflows: ParallelSubworkflowDef<S, CS>[] | ((state: S) => ParallelSubworkflowDef<S, CS>[]);
10
14
  concurrency?: number;
11
15
  continueOnError?: boolean;
12
16
  onError?: SubworkflowErrorStrategy;
13
- aggregator: (results: Map<string, SubworkflowResult<S, WorkflowState>>, parentState: S) => S;
17
+ aggregator: (results: Map<string, SubworkflowResult<S, CS>>, parentState: S) => S;
14
18
  maxDepth?: number;
15
19
  shareCheckpoints?: boolean;
16
- onSubworkflowStart?: (id: string, config: SubworkflowConfig<S, WorkflowState>) => void;
17
- onSubworkflowComplete?: (id: string, result: SubworkflowResult<S, WorkflowState>) => void;
20
+ onSubworkflowStart?: (id: string, config: SubworkflowConfig<S, CS>) => void;
21
+ onSubworkflowComplete?: (id: string, result: SubworkflowResult<S, CS>) => void;
18
22
  onProgress?: (progress: ParallelProgress) => void;
19
23
  }
20
24
  export interface ParallelProgress {
@@ -25,10 +29,10 @@ export interface ParallelProgress {
25
29
  pending: number;
26
30
  running: number;
27
31
  }
28
- export interface ParallelSubworkflowsResult<S extends WorkflowState> {
32
+ export interface ParallelSubworkflowsResult<S extends WorkflowState, CS extends WorkflowState = WorkflowState> {
29
33
  success: boolean;
30
34
  parentState: S;
31
- results: Map<string, SubworkflowResult<S, WorkflowState>>;
35
+ results: Map<string, SubworkflowResult<S, CS>>;
32
36
  errors: Map<string, Error>;
33
37
  duration: number;
34
38
  stats: {
@@ -38,8 +42,8 @@ export interface ParallelSubworkflowsResult<S extends WorkflowState> {
38
42
  skipped: number;
39
43
  };
40
44
  }
41
- export declare function executeParallelSubworkflows<S extends WorkflowState>(parentState: S, config: ParallelSubworkflowsConfig<S>, context: SubworkflowContext): Promise<ParallelSubworkflowsResult<S>>;
42
- export declare function parallelSubworkflows<S extends WorkflowState>(name: string, config: Omit<ParallelSubworkflowsConfig<S>, 'name'>): ParallelSubworkflowsConfig<S>;
45
+ export declare function executeParallelSubworkflows<S extends WorkflowState, CS extends WorkflowState = WorkflowState>(parentState: S, config: ParallelSubworkflowsConfig<S, CS>, context: SubworkflowContext): Promise<ParallelSubworkflowsResult<S, CS>>;
46
+ export declare function parallelSubworkflows<S extends WorkflowState, CS extends WorkflowState = WorkflowState>(name: string, config: Omit<ParallelSubworkflowsConfig<S, CS>, 'name'>): ParallelSubworkflowsConfig<S, CS>;
43
47
  export declare function fanOutFanIn<S extends WorkflowState, CS extends WorkflowState>(name: string, config: {
44
48
  workflow: Workflow<CS>;
45
49
  getInputs: (state: S) => {
@@ -49,7 +53,7 @@ export declare function fanOutFanIn<S extends WorkflowState, CS extends Workflow
49
53
  aggregator: (results: Map<string, WorkflowResult<CS>>, state: S) => S;
50
54
  concurrency?: number;
51
55
  continueOnError?: boolean;
52
- }): ParallelSubworkflowsConfig<S>;
56
+ }): ParallelSubworkflowsConfig<S, CS>;
53
57
  export declare function scatterGather<S extends WorkflowState, CS extends WorkflowState>(name: string, config: {
54
58
  workflows: Map<string, Workflow<CS>>;
55
59
  inputMapper: (state: S, workflowId: string) => Partial<CS>;
@@ -57,7 +61,7 @@ export declare function scatterGather<S extends WorkflowState, CS extends Workfl
57
61
  concurrency?: number;
58
62
  timeout?: number;
59
63
  continueOnError?: boolean;
60
- }): ParallelSubworkflowsConfig<S>;
64
+ }): ParallelSubworkflowsConfig<S, CS>;
61
65
  export declare function raceSubworkflows<PS extends WorkflowState, CS extends WorkflowState>(parentState: PS, subworkflows: SubworkflowConfig<PS, CS>[], context: SubworkflowContext): Promise<SubworkflowResult<PS, CS> | null>;
62
66
  export declare function fallbackSubworkflows<PS extends WorkflowState, CS extends WorkflowState>(parentState: PS, subworkflows: SubworkflowConfig<PS, CS>[], context: SubworkflowContext): Promise<SubworkflowResult<PS, CS>>;
63
67
  //# sourceMappingURL=parallel-subworkflows.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-subworkflows.d.ts","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-subworkflows.d.ts","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
@@ -146,47 +146,37 @@ export function fanOutFanIn(name, config) {
146
146
  outputMapper: (_result, parentState) => parentState,
147
147
  },
148
148
  })),
149
- aggregator: (results, state) => {
150
- const workflowResults = new Map();
151
- for (const [id, result] of results) {
152
- if (result.childResult) {
153
- workflowResults.set(id, result.childResult);
154
- }
155
- }
156
- return config.aggregator(workflowResults, state);
157
- },
149
+ aggregator: (results, state) => config.aggregator(childResults(results), state),
158
150
  };
159
151
  }
160
152
  export function scatterGather(name, config) {
161
- const subworkflows = [];
162
- for (const [id, workflow] of config.workflows) {
163
- subworkflows.push({
164
- id,
165
- config: {
166
- name: `${name}:${id}`,
167
- workflow: workflow,
168
- inputMapper: (state) => config.inputMapper(state, id),
169
- outputMapper: (_result, parentState) => parentState,
170
- timeout: config.timeout,
171
- },
172
- });
173
- }
153
+ const subworkflows = [...config.workflows].map(([id, workflow]) => ({
154
+ id,
155
+ config: {
156
+ name: `${name}:${id}`,
157
+ workflow,
158
+ inputMapper: (state) => config.inputMapper(state, id),
159
+ outputMapper: (_result, parentState) => parentState,
160
+ timeout: config.timeout,
161
+ },
162
+ }));
174
163
  return {
175
164
  name,
176
165
  subworkflows,
177
166
  concurrency: config.concurrency,
178
167
  continueOnError: config.continueOnError ?? true,
179
- aggregator: (results, state) => {
180
- const workflowResults = new Map();
181
- for (const [id, result] of results) {
182
- if (result.childResult) {
183
- workflowResults.set(id, result.childResult);
184
- }
185
- }
186
- return config.outputMapper(workflowResults, state);
187
- },
168
+ aggregator: (results, state) => config.outputMapper(childResults(results), state),
188
169
  };
189
170
  }
171
+ /** The child workflow results of the subworkflows that ran. */
172
+ function childResults(results) {
173
+ const children = new Map();
174
+ for (const [id, result] of results) {
175
+ if (result.childResult)
176
+ children.set(id, result.childResult);
177
+ }
178
+ return children;
179
+ }
190
180
  export async function raceSubworkflows(parentState, subworkflows, context) {
191
181
  const controller = new AbortController();
192
182
  const { signal } = controller;
@@ -1 +1 @@
1
- {"version":3,"file":"parallel-subworkflows.js","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parallel-subworkflows.js","sourceRoot":"","sources":["../../src/subworkflows/parallel-subworkflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * Durable workflow timer stores: Redis and Postgres.
3
+ *
4
+ * Several workers may run a `TimerManager` against one durable store, so
5
+ * `getOverdue()` claims what it returns: each overdue timer is leased to the
6
+ * store instance that returned it for `claimTtl` ms and skipped by every
7
+ * other `getOverdue()` until `markFired`/`cancel` ends the claim, the owner
8
+ * gives it up with `release`, or the lease runs out (a crashed worker's
9
+ * timers come back after that). The owner keeps a long-running timer with
10
+ * `renew`; a timer whose handler failed stays claimed, so it is retried once
11
+ * its lease expires.
12
+ */
13
+ import type { TimerEntry, TimerStore } from '@cogitator-ai/types';
14
+ type FireCallback = (entry: TimerEntry) => void;
15
+ type NewTimer = Omit<TimerEntry, 'id' | 'cancelled' | 'fired' | 'createdAt'>;
16
+ /**
17
+ * The Redis commands the store uses; `@cogitator-ai/redis` clients and
18
+ * ioredis both provide them. Every command touches a single key, so it also
19
+ * works on Redis Cluster.
20
+ */
21
+ export interface TimerStoreRedisClient {
22
+ get(key: string): Promise<string | null>;
23
+ set(key: string, value: string): Promise<unknown>;
24
+ del(...keys: string[]): Promise<number>;
25
+ /** Resolves to the number of members added (0 when the member existed). */
26
+ zadd(key: string, score: number, member: string): Promise<number>;
27
+ zrange(key: string, start: number, stop: number): Promise<string[]>;
28
+ zrangebyscore(key: string, min: number | string, max: number | string): Promise<string[]>;
29
+ zrem(key: string, ...members: string[]): Promise<unknown>;
30
+ }
31
+ export interface RedisTimerStoreOptions {
32
+ client: TimerStoreRedisClient;
33
+ /** Prefix of every key (default `cogitator:workflow-timers`) */
34
+ keyPrefix?: string;
35
+ /** How long a timer handed out by `getOverdue()` stays claimed, in ms (default 60 000) */
36
+ claimTtl?: number;
37
+ }
38
+ /**
39
+ * Timers in Redis: each as JSON under its id, indexed by sorted sets scored
40
+ * by `firesAt` (all timers, pending timers, per workflow, per run) and a
41
+ * sorted set of finished timers scored by `createdAt` for `cleanup`.
42
+ *
43
+ * A claim is a per-timer sorted set of lease generations scored by their
44
+ * expiry. Claiming adds the next generation; only the caller whose `ZADD`
45
+ * creates it owns the lease, and it backs off if another generation is still
46
+ * live afterwards, so concurrent workers never share one. Each store
47
+ * instance remembers the generations it holds, which is what `renew` and
48
+ * `release` act on. Leases are measured on the workers' clocks, so keep
49
+ * them in sync.
50
+ *
51
+ * `cancel`, `markFired` and `update` read, change and write a timer, so
52
+ * concurrent writes to one timer are last-writer-wins. `onFire` callbacks run
53
+ * in the process that calls `markFired`.
54
+ */
55
+ export declare class RedisTimerStore implements TimerStore {
56
+ readonly claimTtl: number;
57
+ private readonly client;
58
+ private readonly prefix;
59
+ private readonly listeners;
60
+ private readonly held;
61
+ constructor(options: RedisTimerStoreOptions);
62
+ schedule(entry: NewTimer): Promise<string>;
63
+ get(id: string): Promise<TimerEntry | null>;
64
+ cancel(id: string): Promise<void>;
65
+ /** Extends this instance's live claim on a timer; `false` when it no longer holds one. */
66
+ renew(id: string): Promise<boolean>;
67
+ /** Expires this instance's claim on a timer so any worker can take it now. */
68
+ release(id: string): Promise<void>;
69
+ getByWorkflow(workflowId: string): Promise<TimerEntry[]>;
70
+ getByRun(runId: string): Promise<TimerEntry[]>;
71
+ getPending(): Promise<TimerEntry[]>;
72
+ /**
73
+ * Overdue pending timers, oldest first, each claimed for `claimTtl` ms:
74
+ * timers claimed by another caller are left out until their lease expires.
75
+ */
76
+ getOverdue(): Promise<TimerEntry[]>;
77
+ markFired(id: string): Promise<void>;
78
+ cleanup(olderThan: number): Promise<number>;
79
+ onFire(callback: FireCallback): () => void;
80
+ /** Patches a timer; it keeps its id, and a patch that finishes it ends its claim. */
81
+ update(id: string, patch: Partial<TimerEntry>): Promise<void>;
82
+ list(filter?: {
83
+ enabled?: boolean;
84
+ type?: string;
85
+ }): Promise<TimerEntry[]>;
86
+ private claimIfDue;
87
+ /**
88
+ * Takes the lease on a timer unless a live one exists, returning the lease
89
+ * generation it now owns. Generations only grow while the claim key lives,
90
+ * and releasing a lease expires its generation in place, so two callers can
91
+ * only contend for the same generation and `ZADD` picks one of them; a
92
+ * winner that finds an older generation renewed meanwhile backs off.
93
+ */
94
+ private claim;
95
+ private write;
96
+ private unindex;
97
+ private loadIndex;
98
+ private timerKey;
99
+ private claimKey;
100
+ private allKey;
101
+ private pendingKey;
102
+ private doneKey;
103
+ private workflowKey;
104
+ private runKey;
105
+ }
106
+ /** The query method of a `pg` Pool or Client. */
107
+ export interface TimerStorePgClient {
108
+ query(text: string, values?: unknown[]): Promise<{
109
+ rows: Array<Record<string, unknown>>;
110
+ }>;
111
+ }
112
+ export interface PostgresTimerStoreOptions {
113
+ client: TimerStorePgClient;
114
+ /** Table name (default `cogitator_workflow_timers`); created on first use */
115
+ table?: string;
116
+ /** How long a timer handed out by `getOverdue()` stays claimed, in ms (default 60 000) */
117
+ claimTtl?: number;
118
+ }
119
+ /**
120
+ * Timers in a Postgres table, as JSONB rows with indexed `status`,
121
+ * `fires_at`, `workflow_id` and `run_id` columns.
122
+ *
123
+ * `getOverdue()` claims rows with `UPDATE … SET claimed_until, claimed_by`
124
+ * over a `SELECT … FOR UPDATE SKIP LOCKED`, so concurrent workers split the
125
+ * overdue timers between them; `claimed_by` is a random id per store
126
+ * instance, which `renew` and `release` check. Leases are measured on the
127
+ * database clock. `cancel`,
128
+ * `markFired` and `update` are single statements, so concurrent writers never
129
+ * lose each other's changes and `onFire` callbacks run once, in the process
130
+ * whose `markFired` fired the timer.
131
+ */
132
+ export declare class PostgresTimerStore implements TimerStore {
133
+ readonly claimTtl: number;
134
+ private readonly client;
135
+ private readonly table;
136
+ private readonly owner;
137
+ private readonly listeners;
138
+ private ready?;
139
+ constructor(options: PostgresTimerStoreOptions);
140
+ schedule(entry: NewTimer): Promise<string>;
141
+ get(id: string): Promise<TimerEntry | null>;
142
+ cancel(id: string): Promise<void>;
143
+ /** Extends this instance's live claim on a timer; `false` when it no longer holds one. */
144
+ renew(id: string): Promise<boolean>;
145
+ /** Clears this instance's claim on a timer so any worker can take it now. */
146
+ release(id: string): Promise<void>;
147
+ getByWorkflow(workflowId: string): Promise<TimerEntry[]>;
148
+ getByRun(runId: string): Promise<TimerEntry[]>;
149
+ getPending(): Promise<TimerEntry[]>;
150
+ /**
151
+ * Overdue pending timers, oldest first, each claimed for `claimTtl` ms:
152
+ * timers claimed by another caller are left out until their lease expires.
153
+ */
154
+ getOverdue(): Promise<TimerEntry[]>;
155
+ markFired(id: string): Promise<void>;
156
+ cleanup(olderThan: number): Promise<number>;
157
+ onFire(callback: FireCallback): () => void;
158
+ /**
159
+ * Patches a timer in one statement (top-level keys, like `Object.assign`;
160
+ * `undefined` removes a key); it keeps its id, and a patch that finishes it
161
+ * ends its claim.
162
+ */
163
+ update(id: string, patch: Partial<TimerEntry>): Promise<void>;
164
+ list(filter?: {
165
+ enabled?: boolean;
166
+ type?: string;
167
+ }): Promise<TimerEntry[]>;
168
+ private finish;
169
+ private select;
170
+ private ensureTable;
171
+ private createTable;
172
+ }
173
+ export {};
174
+ //# sourceMappingURL=durable-timer-stores.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"durable-timer-stores.d.ts","sourceRoot":"","sources":["../../src/timers/durable-timer-stores.ts"],"names":[],"mappings":"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"}