sayiir 0.1.0 → 0.2.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.
- package/README.md +69 -11
- package/dist/flow.d.ts +37 -8
- package/dist/flow.d.ts.map +1 -1
- package/dist/flow.js +73 -19
- package/dist/flow.js.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/native.d.ts +13 -1
- package/dist/native.d.ts.map +1 -1
- package/dist/native.js.map +1 -1
- package/dist/task.d.ts +17 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +18 -1
- package/dist/task.js.map +1 -1
- package/dist/types.d.ts +32 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://github.com/sayiir/sayiir/blob/main/LICENSE)
|
|
6
6
|
[](https://nodejs.org)
|
|
7
|
-
[](https://discord.gg/
|
|
7
|
+
[](https://discord.gg/A2jWBFZsNK)
|
|
8
8
|
|
|
9
9
|
Write plain TypeScript functions. Sayiir makes them durable — automatic checkpointing, crash recovery, and parallel execution with zero infrastructure.
|
|
10
10
|
|
|
@@ -158,6 +158,53 @@ const workflow = flow<{ id: number }>("checkout")
|
|
|
158
158
|
const result = await runWorkflow(workflow, { id: 1 });
|
|
159
159
|
```
|
|
160
160
|
|
|
161
|
+
### Loops
|
|
162
|
+
|
|
163
|
+
Repeat a task until it signals completion with `LoopResult.done()`.
|
|
164
|
+
|
|
165
|
+
```typescript
|
|
166
|
+
import { task, flow, LoopResult, runWorkflow } from "sayiir";
|
|
167
|
+
|
|
168
|
+
const refine = task("refine", (draft: string) => {
|
|
169
|
+
const improved = improve(draft);
|
|
170
|
+
return isGoodEnough(improved)
|
|
171
|
+
? LoopResult.done(improved)
|
|
172
|
+
: LoopResult.again(improved);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
const workflow = flow<string>("iterative")
|
|
176
|
+
.then(initialDraft)
|
|
177
|
+
.loop(refine, { maxIterations: 5 })
|
|
178
|
+
.then(publish)
|
|
179
|
+
.build();
|
|
180
|
+
|
|
181
|
+
const result = await runWorkflow(workflow, "rough draft");
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
The body task returns `LoopResult.again(value)` to continue iterating or `LoopResult.done(value)` to exit. When `maxIterations` is reached, the default behavior is to fail; pass `onMax: "exit_with_last"` to exit with the last value instead.
|
|
185
|
+
|
|
186
|
+
### Task execution context
|
|
187
|
+
|
|
188
|
+
Access workflow and task metadata from within a running task using `getTaskContext()`.
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
import { task, getTaskContext } from "sayiir";
|
|
192
|
+
|
|
193
|
+
const fetchData = task("fetch-data", async (url: string) => {
|
|
194
|
+
const ctx = getTaskContext();
|
|
195
|
+
if (ctx) {
|
|
196
|
+
console.log(`Running task ${ctx.taskId} in workflow ${ctx.workflowId}`);
|
|
197
|
+
console.log(`Instance: ${ctx.instanceId}`);
|
|
198
|
+
console.log(`Timeout: ${ctx.metadata.timeoutSecs}s`);
|
|
199
|
+
console.log(`Tags: ${ctx.metadata.tags}`);
|
|
200
|
+
console.log(`Workflow metadata:`, ctx.workflowMetadata);
|
|
201
|
+
}
|
|
202
|
+
return doFetch(url);
|
|
203
|
+
}, { timeout: "30s", tags: ["io"] });
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
`getTaskContext()` returns a `TaskExecutionContext` with `workflowId`, `instanceId`, `taskId`, `metadata` (timeout, retries, tags, version, etc.), and `workflowMetadata` (the object passed via `flow("name", { metadata: {...} })`), or `null` if called outside of a task execution.
|
|
207
|
+
|
|
161
208
|
### Delays and signals
|
|
162
209
|
|
|
163
210
|
```typescript
|
|
@@ -254,10 +301,15 @@ const processPayment = task("process-payment", (order) => {
|
|
|
254
301
|
|
|
255
302
|
- **`task(id, fn, opts?)`** — Create a named task. Optional: `timeout`, `retries`, `retry`, `tags`, `description`, `input`/`output` (Zod schemas).
|
|
256
303
|
|
|
304
|
+
### Task Context
|
|
305
|
+
|
|
306
|
+
- **`getTaskContext()`** — Returns a `TaskExecutionContext` with `workflowId`, `instanceId`, `taskId`, `metadata`, and `workflowMetadata`, or `null` outside of task execution.
|
|
307
|
+
|
|
257
308
|
### Flow Builder
|
|
258
309
|
|
|
259
310
|
- **`flow<TInput>(name)`** — Create a new type-safe flow builder.
|
|
260
311
|
- **`.then(fn)`** / **`.then(id, fn, opts?)`** — Append a task step. Accepts `task()` functions, plain functions, or lambdas.
|
|
312
|
+
- **`.loop(fn, opts?)`** / **`.loop(id, fn, opts?)`** — Add a loop. Body returns `LoopResult.again(value)` or `LoopResult.done(value)`. Options: `maxIterations` (default: 10), `onMax` (`"fail"` | `"exit_with_last"`).
|
|
261
313
|
- **`.fork(branches)`** — Start parallel branches. Takes an array of `branch()` definitions.
|
|
262
314
|
- **`.join(id, fn)`** — Merge branches with a combining function.
|
|
263
315
|
- **`.delay(id, duration)`** — Durable delay (`"30s"`, `"5m"`, `"1h"`, or milliseconds).
|
|
@@ -293,6 +345,11 @@ if (status.status === "completed") {
|
|
|
293
345
|
|
|
294
346
|
Variants: `completed`, `in_progress`, `failed`, `cancelled`, `paused`, `waiting`, `awaiting_signal`.
|
|
295
347
|
|
|
348
|
+
### Loop Control
|
|
349
|
+
|
|
350
|
+
- **`LoopResult.again(value)`** — Continue iterating with a new value.
|
|
351
|
+
- **`LoopResult.done(value)`** — Exit the loop with a final value.
|
|
352
|
+
|
|
296
353
|
### Backends
|
|
297
354
|
|
|
298
355
|
- **`new InMemoryBackend()`** — In-memory storage for development and testing.
|
|
@@ -300,15 +357,12 @@ Variants: `completed`, `in_progress`, `failed`, `cancelled`, `paused`, `waiting`
|
|
|
300
357
|
|
|
301
358
|
## Architecture
|
|
302
359
|
|
|
303
|
-
```
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
└──────────────┘ │ Fork/join/branch │ └──────────────┘
|
|
310
|
-
│ Serialization │
|
|
311
|
-
└─────────────────────┘
|
|
360
|
+
```mermaid
|
|
361
|
+
graph LR
|
|
362
|
+
A["Your TypeScript code<br/><b>task()</b> functions"] -->|input| B["Sayiir · Rust<br/>Orchestration<br/>Checkpointing<br/>Crash recovery<br/>Fork/join/branch<br/>Loops & routing<br/>Serialization"]
|
|
363
|
+
B -->|checkpoint<br/>after each task| C["Storage"]
|
|
364
|
+
C -->|resume| B
|
|
365
|
+
B -->|output| A
|
|
312
366
|
```
|
|
313
367
|
|
|
314
368
|
TypeScript provides task implementations. Rust handles everything else: building the execution graph, running tasks in order, checkpointing results, recovering from crashes, and managing parallel branches.
|
|
@@ -327,5 +381,9 @@ MIT
|
|
|
327
381
|
- [Documentation](https://docs.sayiir.dev/getting-started/nodejs/)
|
|
328
382
|
- [Examples](https://github.com/sayiir/sayiir/tree/main/examples)
|
|
329
383
|
- [GitHub](https://github.com/sayiir/sayiir)
|
|
330
|
-
- [Discord](https://discord.gg/
|
|
384
|
+
- [Discord](https://discord.gg/A2jWBFZsNK)
|
|
331
385
|
- [Roadmap](https://github.com/sayiir/sayiir/blob/main/ROADMAP.md)
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
> ⭐ If you find Sayiir useful, [give us a star on GitHub](https://github.com/sayiir/sayiir) ⭐
|
package/dist/flow.d.ts
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
*
|
|
7
7
|
* ```ts
|
|
8
8
|
* const wf = flow<number>("welcome")
|
|
9
|
-
* .then("
|
|
9
|
+
* .then("load", (id) => getUser(id)) // id: number -> User
|
|
10
10
|
* .then("greet", (user) => `Hi ${user.name}`) // user: User -> string
|
|
11
11
|
* .build(); // Workflow<number, string>
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
14
|
-
import type { Duration, StepOptions, TaskCallback } from "./types.js";
|
|
14
|
+
import type { Duration, LoopOptions, LoopResult, StepOptions, TaskCallback } from "./types.js";
|
|
15
15
|
import type { TaskFn } from "./task.js";
|
|
16
16
|
import type { NapiFlowBuilder, NapiTaskMetadata, NapiWorkflow } from "./native.js";
|
|
17
17
|
/** A compiled workflow ready for execution. */
|
|
@@ -20,7 +20,9 @@ export declare class Workflow<TIn, TOut> {
|
|
|
20
20
|
readonly _inner: NapiWorkflow;
|
|
21
21
|
/** @internal */
|
|
22
22
|
readonly _taskRegistry: Record<string, TaskCallback>;
|
|
23
|
-
|
|
23
|
+
/** @internal — kept for child workflow composition via `thenFlow`. */
|
|
24
|
+
readonly _builder: NapiFlowBuilder;
|
|
25
|
+
constructor(inner: NapiWorkflow, taskRegistry: Record<string, TaskCallback>, builder: NapiFlowBuilder);
|
|
24
26
|
get workflowId(): string;
|
|
25
27
|
get definitionHash(): string;
|
|
26
28
|
/** Workflow-level metadata, or `undefined` if none was provided. */
|
|
@@ -70,9 +72,7 @@ export declare class Flow<TInput, TLast = TInput> {
|
|
|
70
72
|
/** @internal */
|
|
71
73
|
readonly _taskRegistry: Record<string, TaskCallback>;
|
|
72
74
|
/** @internal */
|
|
73
|
-
private
|
|
74
|
-
/** @internal */
|
|
75
|
-
private _branchCounter;
|
|
75
|
+
private _childCounter;
|
|
76
76
|
constructor(name: string, opts?: FlowOptions);
|
|
77
77
|
/**
|
|
78
78
|
* Add a sequential task step.
|
|
@@ -126,6 +126,36 @@ export declare class Flow<TInput, TLast = TInput> {
|
|
|
126
126
|
* ```
|
|
127
127
|
*/
|
|
128
128
|
route<const TKeys extends readonly string[]>(keyFn: TaskFn<TLast, TKeys[number]> | ((input: TLast) => TKeys[number] | Promise<TKeys[number]>), keys: TKeys): RouteBuilder<TInput, TLast, never, TKeys[number]>;
|
|
129
|
+
/**
|
|
130
|
+
* Add a loop step whose body repeats until it returns `LoopResult.done()`.
|
|
131
|
+
*
|
|
132
|
+
* The body task receives the current value and must return a `LoopResult<T>`.
|
|
133
|
+
* `LoopResult.again(newValue)` continues the loop; `LoopResult.done(finalValue)` exits.
|
|
134
|
+
*
|
|
135
|
+
* ```ts
|
|
136
|
+
* flow<string>("refine")
|
|
137
|
+
* .loop("refine", (draft) => {
|
|
138
|
+
* const improved = improve(draft);
|
|
139
|
+
* return isGood(improved) ? LoopResult.done(improved) : LoopResult.again(improved);
|
|
140
|
+
* }, { maxIterations: 5 })
|
|
141
|
+
* .build();
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
loop<TOut>(fn: TaskFn<TLast, LoopResult<TOut>>, opts?: LoopOptions): Flow<TInput, TOut>;
|
|
145
|
+
loop<TOut>(id: string, fn: ((input: TLast) => LoopResult<TOut> | Promise<LoopResult<TOut>>) | TaskFn<TLast, LoopResult<TOut>>, opts?: LoopOptions): Flow<TInput, TOut>;
|
|
146
|
+
/**
|
|
147
|
+
* Compose another workflow inline as a child.
|
|
148
|
+
*
|
|
149
|
+
* The child workflow's tasks execute as a sub-pipeline: the current
|
|
150
|
+
* step's output feeds into the child's first task, and the child's
|
|
151
|
+
* final output continues to the next step.
|
|
152
|
+
*
|
|
153
|
+
* ```ts
|
|
154
|
+
* const child = flow<number>("double").then("x2", (n) => n * 2).build();
|
|
155
|
+
* const parent = flow<number>("pipeline").then("inc", (n) => n + 1).thenFlow(child).build();
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
thenFlow<TOut>(workflow: Workflow<TLast, TOut>): Flow<TInput, Awaited<TOut>>;
|
|
129
159
|
/** Build the workflow definition. */
|
|
130
160
|
build(): Workflow<TInput, TLast>;
|
|
131
161
|
}
|
|
@@ -149,12 +179,11 @@ export interface BranchEnvelope<T> {
|
|
|
149
179
|
/** Builder for conditional branching (route). */
|
|
150
180
|
export declare class RouteBuilder<TInput, TLast, TBranchOut = never, TKey extends string = string> {
|
|
151
181
|
private readonly flow;
|
|
152
|
-
private readonly branchId;
|
|
153
182
|
private readonly keyFn;
|
|
154
183
|
private readonly declaredKeys;
|
|
155
184
|
private readonly branches;
|
|
156
185
|
private defaultSteps;
|
|
157
|
-
constructor(flow: Flow<TInput, TLast>,
|
|
186
|
+
constructor(flow: Flow<TInput, TLast>, keyFn: TaskCallback, declaredKeys: string[]);
|
|
158
187
|
/**
|
|
159
188
|
* Add a named branch.
|
|
160
189
|
*
|
package/dist/flow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/flow.js
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* ```ts
|
|
9
9
|
* const wf = flow<number>("welcome")
|
|
10
|
-
* .then("
|
|
10
|
+
* .then("load", (id) => getUser(id)) // id: number -> User
|
|
11
11
|
* .then("greet", (user) => `Hi ${user.name}`) // user: User -> string
|
|
12
12
|
* .build(); // Workflow<number, string>
|
|
13
13
|
* ```
|
|
@@ -30,9 +30,12 @@ class Workflow {
|
|
|
30
30
|
_inner;
|
|
31
31
|
/** @internal */
|
|
32
32
|
_taskRegistry;
|
|
33
|
-
|
|
33
|
+
/** @internal — kept for child workflow composition via `thenFlow`. */
|
|
34
|
+
_builder;
|
|
35
|
+
constructor(inner, taskRegistry, builder) {
|
|
34
36
|
this._inner = inner;
|
|
35
37
|
this._taskRegistry = taskRegistry;
|
|
38
|
+
this._builder = builder;
|
|
36
39
|
}
|
|
37
40
|
get workflowId() {
|
|
38
41
|
return this._inner.workflowId;
|
|
@@ -76,9 +79,7 @@ class Flow {
|
|
|
76
79
|
/** @internal */
|
|
77
80
|
_taskRegistry = {};
|
|
78
81
|
/** @internal */
|
|
79
|
-
|
|
80
|
-
/** @internal */
|
|
81
|
-
_branchCounter = 0;
|
|
82
|
+
_childCounter = 0;
|
|
82
83
|
constructor(name, opts) {
|
|
83
84
|
this._builder = new ((0, native_js_1.getNative)().NapiFlowBuilder)(name);
|
|
84
85
|
if (opts?.metadata != null) {
|
|
@@ -110,7 +111,7 @@ class Flow {
|
|
|
110
111
|
}
|
|
111
112
|
else {
|
|
112
113
|
// .then(lambda) — auto-generate id
|
|
113
|
-
taskId =
|
|
114
|
+
taskId = this._builder.nextLambdaId();
|
|
114
115
|
taskFn = idOrFn;
|
|
115
116
|
}
|
|
116
117
|
this._taskRegistry[taskId] = taskFn;
|
|
@@ -170,15 +171,69 @@ class Flow {
|
|
|
170
171
|
* ```
|
|
171
172
|
*/
|
|
172
173
|
route(keyFn, keys) {
|
|
173
|
-
|
|
174
|
-
return new RouteBuilder(this, branchId, keyFn, [
|
|
174
|
+
return new RouteBuilder(this, keyFn, [
|
|
175
175
|
...keys,
|
|
176
176
|
]);
|
|
177
177
|
}
|
|
178
|
+
loop(idOrFn, fnOrOpts, maybeOpts) {
|
|
179
|
+
let taskId;
|
|
180
|
+
let taskFn;
|
|
181
|
+
let metadata;
|
|
182
|
+
let opts;
|
|
183
|
+
if (typeof idOrFn === "string") {
|
|
184
|
+
taskId = idOrFn;
|
|
185
|
+
taskFn = fnOrOpts;
|
|
186
|
+
opts = maybeOpts;
|
|
187
|
+
if (isTaskFn(taskFn)) {
|
|
188
|
+
metadata = taskFn._metadata;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
else if (isTaskFn(idOrFn)) {
|
|
192
|
+
taskId = idOrFn._taskId;
|
|
193
|
+
taskFn = idOrFn;
|
|
194
|
+
metadata = idOrFn._metadata;
|
|
195
|
+
opts = fnOrOpts;
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
taskId = this._builder.nextLambdaId();
|
|
199
|
+
taskFn = idOrFn;
|
|
200
|
+
opts = fnOrOpts;
|
|
201
|
+
}
|
|
202
|
+
this._taskRegistry[taskId] = taskFn;
|
|
203
|
+
const maxIterations = opts?.maxIterations ?? 10;
|
|
204
|
+
if (maxIterations < 1) {
|
|
205
|
+
throw new Error("maxIterations must be at least 1");
|
|
206
|
+
}
|
|
207
|
+
const onMax = opts?.onMax ?? "fail";
|
|
208
|
+
this._builder.addLoop(taskId, metadata, maxIterations, onMax);
|
|
209
|
+
return this;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Compose another workflow inline as a child.
|
|
213
|
+
*
|
|
214
|
+
* The child workflow's tasks execute as a sub-pipeline: the current
|
|
215
|
+
* step's output feeds into the child's first task, and the child's
|
|
216
|
+
* final output continues to the next step.
|
|
217
|
+
*
|
|
218
|
+
* ```ts
|
|
219
|
+
* const child = flow<number>("double").then("x2", (n) => n * 2).build();
|
|
220
|
+
* const parent = flow<number>("pipeline").then("inc", (n) => n + 1).thenFlow(child).build();
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
thenFlow(workflow) {
|
|
224
|
+
const childId = `child_${this._childCounter++}`;
|
|
225
|
+
// Merge child task registry into parent (parent takes precedence)
|
|
226
|
+
for (const [key, value] of Object.entries(workflow._taskRegistry)) {
|
|
227
|
+
this._taskRegistry[key] ??= value;
|
|
228
|
+
}
|
|
229
|
+
// Tell native builder about the child
|
|
230
|
+
this._builder.addChildWorkflow(childId, workflow._builder);
|
|
231
|
+
return this;
|
|
232
|
+
}
|
|
178
233
|
/** Build the workflow definition. */
|
|
179
234
|
build() {
|
|
180
235
|
const inner = this._builder.build();
|
|
181
|
-
return new Workflow(inner, this._taskRegistry);
|
|
236
|
+
return new Workflow(inner, this._taskRegistry, this._builder);
|
|
182
237
|
}
|
|
183
238
|
}
|
|
184
239
|
exports.Flow = Flow;
|
|
@@ -219,14 +274,12 @@ exports.ForkBuilder = ForkBuilder;
|
|
|
219
274
|
/** Builder for conditional branching (route). */
|
|
220
275
|
class RouteBuilder {
|
|
221
276
|
flow;
|
|
222
|
-
branchId;
|
|
223
277
|
keyFn;
|
|
224
278
|
declaredKeys;
|
|
225
279
|
branches = [];
|
|
226
280
|
defaultSteps;
|
|
227
|
-
constructor(flow,
|
|
281
|
+
constructor(flow, keyFn, declaredKeys) {
|
|
228
282
|
this.flow = flow;
|
|
229
|
-
this.branchId = branchId;
|
|
230
283
|
this.keyFn = keyFn;
|
|
231
284
|
this.declaredKeys = declaredKeys;
|
|
232
285
|
}
|
|
@@ -256,18 +309,15 @@ class RouteBuilder {
|
|
|
256
309
|
// Check for orphan branches
|
|
257
310
|
const orphans = [...branchedKeys].filter((k) => !declaredSet.has(k));
|
|
258
311
|
if (orphans.length > 0) {
|
|
259
|
-
throw new Error(`
|
|
312
|
+
throw new Error(`Route: orphan branches for keys: ${orphans.join(", ")}`);
|
|
260
313
|
}
|
|
261
314
|
// Check for missing branches (no default)
|
|
262
315
|
if (!this.defaultSteps) {
|
|
263
316
|
const missing = this.declaredKeys.filter((k) => !branchedKeys.has(k));
|
|
264
317
|
if (missing.length > 0) {
|
|
265
|
-
throw new Error(`
|
|
318
|
+
throw new Error(`Route: missing branches for keys: ${missing.join(", ")}`);
|
|
266
319
|
}
|
|
267
320
|
}
|
|
268
|
-
// Register key function
|
|
269
|
-
const keyFnId = `${this.branchId}${KEY_FN_SUFFIX}`;
|
|
270
|
-
this.flow._taskRegistry[keyFnId] = this.keyFn;
|
|
271
321
|
// Build native branch entries
|
|
272
322
|
const napiBranches = this.branches.map((b) => ({
|
|
273
323
|
key: b.key,
|
|
@@ -280,7 +330,11 @@ class RouteBuilder {
|
|
|
280
330
|
this.flow._taskRegistry[step.taskId] = step.fn;
|
|
281
331
|
return { taskId: step.taskId, metadata: step.metadata };
|
|
282
332
|
});
|
|
283
|
-
|
|
333
|
+
// addBranch returns the generated branch ID
|
|
334
|
+
const branchId = this.flow._builder.addBranch(napiBranches, napiDefault);
|
|
335
|
+
// Register key function using the generated branch ID
|
|
336
|
+
const keyFnId = `${branchId}${KEY_FN_SUFFIX}`;
|
|
337
|
+
this.flow._taskRegistry[keyFnId] = this.keyFn;
|
|
284
338
|
return this.flow;
|
|
285
339
|
}
|
|
286
340
|
}
|
|
@@ -310,7 +364,7 @@ function resolveBranchTask(fallbackId, idOrFn, maybeFn, flow) {
|
|
|
310
364
|
};
|
|
311
365
|
}
|
|
312
366
|
else {
|
|
313
|
-
const taskId = `${fallbackId}
|
|
367
|
+
const taskId = `${fallbackId}_${flow._builder.nextLambdaId()}`;
|
|
314
368
|
return { taskId, taskFn: idOrFn };
|
|
315
369
|
}
|
|
316
370
|
}
|
package/dist/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*
|
|
4
4
|
* All orchestration runs in Rust. JavaScript provides task implementations.
|
|
5
5
|
*/
|
|
6
|
-
export type { Duration, RetryPolicy, TaskCallback, TaskOptions, StepOptions, WorkflowStatus, ZodLike, } from "./types.js";
|
|
7
|
-
export { WorkflowError, TaskError, BackendError } from "./types.js";
|
|
8
|
-
export { task } from "./task.js";
|
|
9
|
-
export type { TaskFn } from "./task.js";
|
|
6
|
+
export type { Duration, LoopOptions, RetryPolicy, TaskCallback, TaskOptions, StepOptions, WorkflowStatus, ZodLike, } from "./types.js";
|
|
7
|
+
export { LoopResult, WorkflowError, TaskError, BackendError } from "./types.js";
|
|
8
|
+
export { task, getTaskContext } from "./task.js";
|
|
9
|
+
export type { TaskFn, TaskExecutionContext } from "./task.js";
|
|
10
10
|
export { flow, branch, Flow, ForkBuilder, RouteBuilder, Workflow, } from "./flow.js";
|
|
11
11
|
export type { BranchDef, BranchEnvelope, FlowOptions, InferBranchOutputs } from "./flow.js";
|
|
12
12
|
export { runWorkflow, runWorkflowSync, runDurableWorkflow, resumeWorkflow, cancelWorkflow, pauseWorkflow, unpauseWorkflow, sendSignal, InMemoryBackend, PostgresBackend, } from "./executor.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,QAAQ,EACR,WAAW,EACX,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,cAAc,EACd,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAGhF,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACjD,YAAY,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAG9D,OAAO,EACL,IAAI,EACJ,MAAM,EACN,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,QAAQ,GACT,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG5F,OAAO,EACL,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,aAAa,EACb,eAAe,EACf,UAAU,EACV,eAAe,EACf,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -5,14 +5,16 @@
|
|
|
5
5
|
* All orchestration runs in Rust. JavaScript provides task implementations.
|
|
6
6
|
*/
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.WorkerHandle = exports.Worker = exports.parseDuration = exports.PostgresBackend = exports.InMemoryBackend = exports.sendSignal = exports.unpauseWorkflow = exports.pauseWorkflow = exports.cancelWorkflow = exports.resumeWorkflow = exports.runDurableWorkflow = exports.runWorkflowSync = exports.runWorkflow = exports.Workflow = exports.RouteBuilder = exports.ForkBuilder = exports.Flow = exports.branch = exports.flow = exports.task = exports.BackendError = exports.TaskError = exports.WorkflowError = void 0;
|
|
8
|
+
exports.WorkerHandle = exports.Worker = exports.parseDuration = exports.PostgresBackend = exports.InMemoryBackend = exports.sendSignal = exports.unpauseWorkflow = exports.pauseWorkflow = exports.cancelWorkflow = exports.resumeWorkflow = exports.runDurableWorkflow = exports.runWorkflowSync = exports.runWorkflow = exports.Workflow = exports.RouteBuilder = exports.ForkBuilder = exports.Flow = exports.branch = exports.flow = exports.getTaskContext = exports.task = exports.BackendError = exports.TaskError = exports.WorkflowError = exports.LoopResult = void 0;
|
|
9
9
|
var types_js_1 = require("./types.js");
|
|
10
|
+
Object.defineProperty(exports, "LoopResult", { enumerable: true, get: function () { return types_js_1.LoopResult; } });
|
|
10
11
|
Object.defineProperty(exports, "WorkflowError", { enumerable: true, get: function () { return types_js_1.WorkflowError; } });
|
|
11
12
|
Object.defineProperty(exports, "TaskError", { enumerable: true, get: function () { return types_js_1.TaskError; } });
|
|
12
13
|
Object.defineProperty(exports, "BackendError", { enumerable: true, get: function () { return types_js_1.BackendError; } });
|
|
13
14
|
// Task
|
|
14
15
|
var task_js_1 = require("./task.js");
|
|
15
16
|
Object.defineProperty(exports, "task", { enumerable: true, get: function () { return task_js_1.task; } });
|
|
17
|
+
Object.defineProperty(exports, "getTaskContext", { enumerable: true, get: function () { return task_js_1.getTaskContext; } });
|
|
16
18
|
// Flow
|
|
17
19
|
var flow_js_1 = require("./flow.js");
|
|
18
20
|
Object.defineProperty(exports, "flow", { enumerable: true, get: function () { return flow_js_1.flow; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAcH,uCAAgF;AAAvE,sGAAA,UAAU,OAAA;AAAE,yGAAA,aAAa,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,wGAAA,YAAY,OAAA;AAE3D,OAAO;AACP,qCAAiD;AAAxC,+FAAA,IAAI,OAAA;AAAE,yGAAA,cAAc,OAAA;AAG7B,OAAO;AACP,qCAOmB;AANjB,+FAAA,IAAI,OAAA;AACJ,iGAAA,MAAM,OAAA;AACN,+FAAA,IAAI,OAAA;AACJ,sGAAA,WAAW,OAAA;AACX,uGAAA,YAAY,OAAA;AACZ,mGAAA,QAAQ,OAAA;AAIV,WAAW;AACX,6CAWuB;AAVrB,0GAAA,WAAW,OAAA;AACX,8GAAA,eAAe,OAAA;AACf,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,6GAAA,cAAc,OAAA;AACd,4GAAA,aAAa,OAAA;AACb,8GAAA,eAAe,OAAA;AACf,yGAAA,UAAU,OAAA;AACV,8GAAA,eAAe,OAAA;AACf,8GAAA,eAAe,OAAA;AAIjB,mBAAmB;AACnB,6CAA8C;AAArC,4GAAA,aAAa,OAAA;AAEtB,SAAS;AACT,yCAAmD;AAA1C,mGAAA,MAAM,OAAA;AAAE,yGAAA,YAAY,OAAA"}
|
package/dist/native.d.ts
CHANGED
|
@@ -17,6 +17,14 @@ export interface NapiTaskMetadata {
|
|
|
17
17
|
timeoutSecs?: number;
|
|
18
18
|
retries?: NapiRetryPolicy;
|
|
19
19
|
tags?: string[];
|
|
20
|
+
version?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface NapiTaskExecutionContext {
|
|
23
|
+
workflowId: string;
|
|
24
|
+
instanceId: string;
|
|
25
|
+
taskId: string;
|
|
26
|
+
metadata: NapiTaskMetadata;
|
|
27
|
+
workflowMetadata?: Record<string, unknown> | null;
|
|
20
28
|
}
|
|
21
29
|
export interface NapiBranchTask {
|
|
22
30
|
taskId: string;
|
|
@@ -27,11 +35,14 @@ export interface NapiBranchEntry {
|
|
|
27
35
|
tasks: NapiBranchTask[];
|
|
28
36
|
}
|
|
29
37
|
export interface NapiFlowBuilder {
|
|
38
|
+
nextLambdaId(): string;
|
|
30
39
|
then(taskId: string, metadata?: NapiTaskMetadata): void;
|
|
31
40
|
addFork(branches: NapiBranchTask[][], joinId: string, joinMetadata?: NapiTaskMetadata): void;
|
|
32
|
-
addBranch(
|
|
41
|
+
addBranch(branches: NapiBranchEntry[], defaultBranch?: NapiBranchTask[]): string;
|
|
33
42
|
waitForSignal(signalId: string, signalName: string, timeoutSecs?: number): void;
|
|
34
43
|
delay(delayId: string, seconds: number): void;
|
|
44
|
+
addLoop(bodyTaskId: string, bodyMetadata?: NapiTaskMetadata, maxIterations?: number, onMax?: string): string;
|
|
45
|
+
addChildWorkflow(childId: string, childBuilder: NapiFlowBuilder): void;
|
|
35
46
|
setMetadataJson(json: string): void;
|
|
36
47
|
build(): NapiWorkflow;
|
|
37
48
|
}
|
|
@@ -76,6 +87,7 @@ export interface NapiWorkerHandle {
|
|
|
76
87
|
sendSignal(instanceId: string, signalName: string, payloadJson: string): void;
|
|
77
88
|
}
|
|
78
89
|
export interface NativeAddon {
|
|
90
|
+
getTaskContext(): NapiTaskExecutionContext | null;
|
|
79
91
|
NapiFlowBuilder: new (name: string) => NapiFlowBuilder;
|
|
80
92
|
NapiWorkflowEngine: new () => NapiWorkflowEngine;
|
|
81
93
|
NapiContinuationStepper: new (workflow: NapiWorkflow, input: unknown) => NapiContinuationStepper;
|
package/dist/native.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAErE,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
|
package/dist/native.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAqMH,8BAKC;AAlBD,yEAAyE;AACzE,MAAM,iBAAiB,GAA2B;IAChD,WAAW,EAAE,4BAA4B;IACzC,aAAa,EAAE,8BAA8B;IAC7C,YAAY,EAAE,yBAAyB;IACvC,cAAc,EAAE,2BAA2B;IAC3C,WAAW,EAAE,6BAA6B;CAC3C,CAAC;AAEF,kEAAkE;AAClE,sDAAsD;AACtD,IAAI,OAAgC,CAAC;AAErC,SAAgB,SAAS;IACvB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,GAAG,UAAU,EAAE,CAAC;IACzB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU;IACjB,iFAAiF;IACjF,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IAClD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,EAAE,CAAC;QACR,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,GAAG,CAAgB,CAAC;QACrC,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;QACnD,CAAC;IACH,CAAC;IAED,gEAAgE;IAChE,IAAI,CAAC;QACH,OAAO,OAAO,CAAC,4BAA4B,CAAgB,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sCAAsC,GAAG,IAAI;QAC3C,8DAA8D,CACjE,CAAC;AACJ,CAAC"}
|
package/dist/task.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* reads these properties when constructing workflows.
|
|
7
7
|
*/
|
|
8
8
|
import type { TaskOptions, ZodLike } from "./types.js";
|
|
9
|
-
import type { NapiTaskMetadata } from "./native.js";
|
|
9
|
+
import type { NapiTaskExecutionContext, NapiTaskMetadata } from "./native.js";
|
|
10
10
|
/** Branded type for a registered task function. */
|
|
11
11
|
export interface TaskFn<TIn, TOut> {
|
|
12
12
|
(input: TIn): TOut | Promise<TOut>;
|
|
@@ -20,10 +20,25 @@ export interface TaskFn<TIn, TOut> {
|
|
|
20
20
|
* Define a named task with optional configuration.
|
|
21
21
|
*
|
|
22
22
|
* ```ts
|
|
23
|
-
* const
|
|
23
|
+
* const getUser = task("get-user", async (id: number) => {
|
|
24
24
|
* return await db.getUser(id);
|
|
25
25
|
* }, { timeout: "30s", retries: 3 });
|
|
26
26
|
* ```
|
|
27
27
|
*/
|
|
28
28
|
export declare function task<TIn, TOut>(id: string, fn: (input: TIn) => TOut | Promise<TOut>, opts?: TaskOptions<TIn>): TaskFn<TIn, TOut>;
|
|
29
|
+
/** Task execution context available from within a running task. */
|
|
30
|
+
export type TaskExecutionContext = NapiTaskExecutionContext;
|
|
31
|
+
/**
|
|
32
|
+
* Get the current task execution context.
|
|
33
|
+
*
|
|
34
|
+
* Returns `null` if called outside of a task execution.
|
|
35
|
+
*
|
|
36
|
+
* ```ts
|
|
37
|
+
* const ctx = getTaskContext();
|
|
38
|
+
* if (ctx) {
|
|
39
|
+
* console.log(`Running task ${ctx.taskId} in workflow ${ctx.workflowId}`);
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*/
|
|
43
|
+
export declare function getTaskContext(): TaskExecutionContext | null;
|
|
29
44
|
//# sourceMappingURL=task.d.ts.map
|
package/dist/task.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAe,WAAW,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAEpE,OAAO,KAAK,EAEV,wBAAwB,EACxB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAGrB,mDAAmD;AACnD,MAAM,WAAW,MAAM,CAAC,GAAG,EAAE,IAAI;IAC/B,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACrC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAED;;;;;;;;GAQG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,IAAI,EAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACxC,IAAI,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,GACtB,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAiBnB;AA8DD,mEAAmE;AACnE,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,CAAC;AAE5D;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,IAAI,oBAAoB,GAAG,IAAI,CAE5D"}
|
package/dist/task.js
CHANGED
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
exports.task = task;
|
|
11
|
+
exports.getTaskContext = getTaskContext;
|
|
11
12
|
const duration_js_1 = require("./duration.js");
|
|
13
|
+
const native_js_1 = require("./native.js");
|
|
12
14
|
/**
|
|
13
15
|
* Define a named task with optional configuration.
|
|
14
16
|
*
|
|
15
17
|
* ```ts
|
|
16
|
-
* const
|
|
18
|
+
* const getUser = task("get-user", async (id: number) => {
|
|
17
19
|
* return await db.getUser(id);
|
|
18
20
|
* }, { timeout: "30s", retries: 3 });
|
|
19
21
|
* ```
|
|
@@ -81,4 +83,19 @@ function wrapWithValidation(fn, inputSchema, outputSchema) {
|
|
|
81
83
|
return outputSchema.parse(result);
|
|
82
84
|
};
|
|
83
85
|
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the current task execution context.
|
|
88
|
+
*
|
|
89
|
+
* Returns `null` if called outside of a task execution.
|
|
90
|
+
*
|
|
91
|
+
* ```ts
|
|
92
|
+
* const ctx = getTaskContext();
|
|
93
|
+
* if (ctx) {
|
|
94
|
+
* console.log(`Running task ${ctx.taskId} in workflow ${ctx.workflowId}`);
|
|
95
|
+
* }
|
|
96
|
+
* ```
|
|
97
|
+
*/
|
|
98
|
+
function getTaskContext() {
|
|
99
|
+
return (0, native_js_1.getNative)().getTaskContext();
|
|
100
|
+
}
|
|
84
101
|
//# sourceMappingURL=task.js.map
|
package/dist/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -78,6 +78,38 @@ export declare class TaskError extends WorkflowError {
|
|
|
78
78
|
export declare class BackendError extends WorkflowError {
|
|
79
79
|
constructor(message: string);
|
|
80
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Result from a loop body task.
|
|
83
|
+
*
|
|
84
|
+
* Return `LoopResult.again(value)` to continue iterating,
|
|
85
|
+
* or `LoopResult.done(value)` to exit the loop.
|
|
86
|
+
*
|
|
87
|
+
* Serializes as `{ _loop: "again"|"done", value: ... }` matching the
|
|
88
|
+
* Rust `LoopResult<T>` serde format.
|
|
89
|
+
*/
|
|
90
|
+
export type LoopResult<T> = {
|
|
91
|
+
_loop: "again";
|
|
92
|
+
value: T;
|
|
93
|
+
} | {
|
|
94
|
+
_loop: "done";
|
|
95
|
+
value: T;
|
|
96
|
+
};
|
|
97
|
+
/** Factory functions for creating `LoopResult` values. */
|
|
98
|
+
export declare const LoopResult: {
|
|
99
|
+
/** Continue the loop with a new value. */
|
|
100
|
+
readonly again: <T>(value: T) => LoopResult<T>;
|
|
101
|
+
/** Exit the loop with a final value. */
|
|
102
|
+
readonly done: <T>(value: T) => LoopResult<T>;
|
|
103
|
+
};
|
|
104
|
+
/** Policy for when max iterations is reached. */
|
|
105
|
+
export type MaxIterationsPolicy = "fail" | "exit_with_last";
|
|
106
|
+
/** Options for a loop step. */
|
|
107
|
+
export interface LoopOptions {
|
|
108
|
+
/** Maximum number of iterations (default: 10). */
|
|
109
|
+
maxIterations?: number;
|
|
110
|
+
/** What to do when max iterations is reached (default: "fail"). */
|
|
111
|
+
onMax?: MaxIterationsPolicy;
|
|
112
|
+
}
|
|
81
113
|
/** All possible workflow status values returned by the native layer. */
|
|
82
114
|
export type NativeWorkflowStatusKind = "completed" | "in_progress" | "failed" | "cancelled" | "paused" | "waiting" | "awaiting_signal";
|
|
83
115
|
/** Internal type for native addon workflow status. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Core type definitions for the Sayiir workflow engine.
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BackendError = exports.TaskError = exports.WorkflowError = void 0;
|
|
6
|
+
exports.LoopResult = exports.BackendError = exports.TaskError = exports.WorkflowError = void 0;
|
|
7
7
|
/** Error classes */
|
|
8
8
|
class WorkflowError extends Error {
|
|
9
9
|
constructor(message) {
|
|
@@ -26,4 +26,15 @@ class BackendError extends WorkflowError {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
exports.BackendError = BackendError;
|
|
29
|
+
/** Factory functions for creating `LoopResult` values. */
|
|
30
|
+
exports.LoopResult = {
|
|
31
|
+
/** Continue the loop with a new value. */
|
|
32
|
+
again(value) {
|
|
33
|
+
return { _loop: "again", value };
|
|
34
|
+
},
|
|
35
|
+
/** Exit the loop with a final value. */
|
|
36
|
+
done(value) {
|
|
37
|
+
return { _loop: "done", value };
|
|
38
|
+
},
|
|
39
|
+
};
|
|
29
40
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+DH,oBAAoB;AACpB,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC;AAED,MAAa,SAAU,SAAQ,aAAa;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AALD,8BAKC;AAED,MAAa,YAAa,SAAQ,aAAa;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+DH,oBAAoB;AACpB,MAAa,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AALD,sCAKC;AAED,MAAa,SAAU,SAAQ,aAAa;IAC1C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;IAC1B,CAAC;CACF;AALD,8BAKC;AAED,MAAa,YAAa,SAAQ,aAAa;IAC7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;CACF;AALD,oCAKC;AAaD,0DAA0D;AAC7C,QAAA,UAAU,GAAG;IACxB,0CAA0C;IAC1C,KAAK,CAAI,KAAQ;QACf,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnC,CAAC;IACD,wCAAwC;IACxC,IAAI,CAAI,KAAQ;QACd,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;CACO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sayiir",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Durable workflow engine for Node.js — type-safe, fault-tolerant task orchestration",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -13,11 +13,11 @@
|
|
|
13
13
|
"ms": "^2.1.3"
|
|
14
14
|
},
|
|
15
15
|
"optionalDependencies": {
|
|
16
|
-
"@sayiir/node-darwin-arm64": "0.
|
|
17
|
-
"@sayiir/node-
|
|
18
|
-
"@sayiir/node-
|
|
19
|
-
"@sayiir/node-linux-x64-gnu": "0.
|
|
20
|
-
"@sayiir/node-win32-x64-msvc": "0.
|
|
16
|
+
"@sayiir/node-darwin-arm64": "0.2.0",
|
|
17
|
+
"@sayiir/node-darwin-x64": "0.2.0",
|
|
18
|
+
"@sayiir/node-linux-arm64-gnu": "0.2.0",
|
|
19
|
+
"@sayiir/node-linux-x64-gnu": "0.2.0",
|
|
20
|
+
"@sayiir/node-win32-x64-msvc": "0.2.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
23
|
"zod": "^3.0.0"
|