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 CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/sayiir/sayiir/blob/main/LICENSE)
6
6
  [![Node.js 18+](https://img.shields.io/badge/node-18+-339933.svg)](https://nodejs.org)
7
- [![Discord](https://img.shields.io/badge/Discord-Join-7289da)](https://discord.gg/MWSzsHeg)
7
+ [![Discord](https://img.shields.io/badge/Discord-Join-7289da)](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
- Your TypeScript code Sayiir (Rust) Storage
305
- ┌──────────────┐ ┌─────────────────────┐ ┌──────────────┐
306
- task() │───>│ Orchestration │───>│ Checkpoint │
307
- │ functions │ │ Checkpointing │ │ after each │
308
- │ │<───│ Crash recovery │<───│ task │
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 &amp; 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/MWSzsHeg)
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("fetch", (id) => getUser(id)) // id: number -> User
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
- constructor(inner: NapiWorkflow, taskRegistry: Record<string, TaskCallback>);
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 _lambdaCounter;
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>, branchId: string, keyFn: TaskCallback, declaredKeys: string[]);
186
+ constructor(flow: Flow<TInput, TLast>, keyFn: TaskCallback, declaredKeys: string[]);
158
187
  /**
159
188
  * Add a named branch.
160
189
  *
@@ -1 +1 @@
1
- {"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../src/flow.ts"],"names":[],"mappings":"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"}
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("fetch", (id) => getUser(id)) // id: number -> User
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
- constructor(inner, taskRegistry) {
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
- _lambdaCounter = 0;
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 = `lambda_${this._lambdaCounter++}`;
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
- const branchId = `branch_${this._branchCounter++}`;
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, branchId, keyFn, declaredKeys) {
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(`Branch node '${this.branchId}': orphan branches for keys: ${orphans.join(", ")}`);
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(`Branch node '${this.branchId}': missing branches for keys: ${missing.join(", ")}`);
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
- this.flow._builder.addBranch(this.branchId, napiBranches, napiDefault);
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}_lambda_${flow["_lambdaCounter"]++}`;
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";
@@ -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;AAGpE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,YAAY,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,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"}
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;;;AAaH,uCAAoE;AAA3D,yGAAA,aAAa,OAAA;AAAE,qGAAA,SAAS,OAAA;AAAE,wGAAA,YAAY,OAAA;AAE/C,OAAO;AACP,qCAAiC;AAAxB,+FAAA,IAAI,OAAA;AAGb,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"}
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(branchId: string, branches: NapiBranchEntry[], defaultBranch?: NapiBranchTask[]): void;
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;
@@ -1 +1 @@
1
- {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"native.js","sourceRoot":"","sources":["../src/native.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAoLH,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"}
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 fetchUser = task("fetch-user", async (id: number) => {
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
@@ -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,EAAmB,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErE,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"}
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 fetchUser = task("fetch-user", async (id: number) => {
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":"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"}
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. */
@@ -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.1.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.1.0",
17
- "@sayiir/node-linux-arm64-gnu": "0.1.0",
18
- "@sayiir/node-darwin-x64": "0.1.0",
19
- "@sayiir/node-linux-x64-gnu": "0.1.0",
20
- "@sayiir/node-win32-x64-msvc": "0.1.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"