@db-lyon/flowkit 0.9.0 → 0.11.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 (53) hide show
  1. package/README.md +37 -0
  2. package/dist/config/index.d.ts +2 -2
  3. package/dist/config/index.d.ts.map +1 -1
  4. package/dist/config/index.js +1 -1
  5. package/dist/config/index.js.map +1 -1
  6. package/dist/config/schema.d.ts +405 -18
  7. package/dist/config/schema.d.ts.map +1 -1
  8. package/dist/config/schema.js +67 -2
  9. package/dist/config/schema.js.map +1 -1
  10. package/dist/flow/runner.d.ts +14 -1
  11. package/dist/flow/runner.d.ts.map +1 -1
  12. package/dist/flow/runner.js +72 -2
  13. package/dist/flow/runner.js.map +1 -1
  14. package/dist/index.d.ts +10 -3
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +5 -1
  17. package/dist/index.js.map +1 -1
  18. package/dist/task/agent-prompt-task.d.ts +26 -7
  19. package/dist/task/agent-prompt-task.d.ts.map +1 -1
  20. package/dist/task/agent-prompt-task.js +53 -19
  21. package/dist/task/agent-prompt-task.js.map +1 -1
  22. package/dist/task/agent-task.d.ts +98 -0
  23. package/dist/task/agent-task.d.ts.map +1 -0
  24. package/dist/task/agent-task.js +254 -0
  25. package/dist/task/agent-task.js.map +1 -0
  26. package/dist/task/base-task.d.ts +25 -0
  27. package/dist/task/base-task.d.ts.map +1 -1
  28. package/dist/task/base-task.js.map +1 -1
  29. package/dist/task/concurrency.d.ts +9 -0
  30. package/dist/task/concurrency.d.ts.map +1 -0
  31. package/dist/task/concurrency.js +24 -0
  32. package/dist/task/concurrency.js.map +1 -0
  33. package/dist/task/index.d.ts +11 -1
  34. package/dist/task/index.d.ts.map +1 -1
  35. package/dist/task/index.js +6 -0
  36. package/dist/task/index.js.map +1 -1
  37. package/dist/task/json-schema.d.ts +37 -0
  38. package/dist/task/json-schema.d.ts.map +1 -0
  39. package/dist/task/json-schema.js +223 -0
  40. package/dist/task/json-schema.js.map +1 -0
  41. package/dist/task/llm-provider.d.ts +81 -8
  42. package/dist/task/llm-provider.d.ts.map +1 -1
  43. package/dist/task/llm-provider.js +9 -3
  44. package/dist/task/llm-provider.js.map +1 -1
  45. package/dist/task/llm-runner.d.ts +72 -0
  46. package/dist/task/llm-runner.d.ts.map +1 -0
  47. package/dist/task/llm-runner.js +213 -0
  48. package/dist/task/llm-runner.js.map +1 -0
  49. package/dist/task/redact.d.ts +22 -0
  50. package/dist/task/redact.d.ts.map +1 -0
  51. package/dist/task/redact.js +47 -0
  52. package/dist/task/redact.js.map +1 -0
  53. package/package.json +1 -1
package/README.md CHANGED
@@ -163,6 +163,42 @@ import { ShellTask } from '@db-lyon/flowkit';
163
163
  registry.register('shell', ShellTask as any);
164
164
  ```
165
165
 
166
+ ### AI agents
167
+
168
+ Run LLM calls as steps. Flowkit has **no SDK dependencies** — you wire a
169
+ model-agnostic `LLMProvider` onto the task context as `ctx.llm`, and two tasks
170
+ consume it:
171
+
172
+ - `agent_prompt` (`AgentPromptTask`) — single-shot prompt, with optional
173
+ JSON-Schema structured output (validated, with a repair re-prompt).
174
+ - `agent` (`AgentTask`) — a tool-calling loop. Tools reference flowkit tasks,
175
+ flows, or other agents (or context handlers), gated by an allowlist and
176
+ per-tool argument validation. Multiple tool calls in a turn (including
177
+ parallel sub-agents) run concurrently under a cap.
178
+
179
+ Reusable agents live under an `agents:` root key and run as flow steps or as
180
+ other agents' tools, with mandatory budgets (`maxIterations`, `tokenBudget`,
181
+ `maxAgentDepth`). Iteration and concurrency live in the agent runtime, so a flow
182
+ stays a sequential spine with no `loop:` or parallel-step primitive.
183
+
184
+ ```yaml
185
+ tasks:
186
+ extract:
187
+ class_path: agent_prompt
188
+ options:
189
+ prompt: "Pull the ticket fields from:\n${steps.1.data.text}"
190
+ schema:
191
+ type: object
192
+ required: [title, priority]
193
+ properties:
194
+ title: { type: string }
195
+ priority: { type: string, enum: [low, medium, high] }
196
+ ```
197
+
198
+ Every call is hardened by a shared core: per-call `timeout` (with provider
199
+ abort), `retries` with exponential backoff, structured-output validation +
200
+ repair, and output-size caps. See [docs/ai-agents.md](docs/ai-agents.md).
201
+
166
202
  ### Nested flows
167
203
 
168
204
  A step can reference another flow instead of a task:
@@ -330,6 +366,7 @@ import { topologicalSort } from '@db-lyon/flowkit/dag';
330
366
 
331
367
  - [Getting started](docs/getting-started.md) — step-by-step setup guide
332
368
  - [Custom tasks](docs/custom-tasks.md) — writing and registering tasks
369
+ - [AI agents](docs/ai-agents.md) — LLM prompts, structured output, tool-calling agents
333
370
  - [Configuration](docs/configuration.md) — YAML schema, layering, deep merge
334
371
  - [API reference](docs/api-reference.md) — full type and function reference
335
372
 
@@ -1,6 +1,6 @@
1
1
  export { deepMerge } from './deep-merge.js';
2
- export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinitionSchema, EngineConfigSchema, } from './schema.js';
3
- export type { TaskOptions, TaskDefinition, FlowStep, FlowDefinition, EngineConfig, } from './schema.js';
2
+ export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinitionSchema, AgentToolSchema, AgentBudgetSchema, AgentDefinitionSchema, EngineConfigSchema, } from './schema.js';
3
+ export type { TaskOptions, TaskDefinition, FlowStep, FlowDefinition, AgentTool, AgentBudget, AgentDefinition, EngineConfig, } from './schema.js';
4
4
  export { loadConfig, loadRawYaml, findConfigFile } from './loader.js';
5
5
  export type { LoadConfigOptions, LoadedConfig } from './loader.js';
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,WAAW,EACX,cAAc,EACd,QAAQ,EACR,cAAc,EACd,SAAS,EACT,WAAW,EACX,eAAe,EACf,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACtE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { deepMerge } from './deep-merge.js';
2
- export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinitionSchema, EngineConfigSchema, } from './schema.js';
2
+ export { TaskOptionsSchema, TaskDefinitionSchema, FlowStepSchema, FlowDefinitionSchema, AgentToolSchema, AgentBudgetSchema, AgentDefinitionSchema, EngineConfigSchema, } from './schema.js';
3
3
  export { loadConfig, loadRawYaml, findConfigFile } from './loader.js';
4
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAUrB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAarB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
@@ -86,8 +86,13 @@ export declare const FlowStepSchema: z.ZodEffects<z.ZodObject<{
86
86
  ignore_failure?: boolean | undefined;
87
87
  }>;
88
88
  export declare const FlowDefinitionSchema: z.ZodObject<{
89
- description: z.ZodString;
90
- steps: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
89
+ /**
90
+ * Optional: a flow override (one that layers steps/hooks onto a same-named
91
+ * base) need not restate the description. Tolerates an explicit null.
92
+ */
93
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
94
+ /** Optional/defaulted so an override that only adjusts hooks/options is valid. */
95
+ steps: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
91
96
  task: z.ZodOptional<z.ZodString>;
92
97
  flow: z.ZodOptional<z.ZodString>;
93
98
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -142,7 +147,7 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
142
147
  retryOn?: string | undefined;
143
148
  when?: string | boolean | undefined;
144
149
  ignore_failure?: boolean | undefined;
145
- }>>;
150
+ }>>>;
146
151
  /** Runs before the first step. Failure fails the flow before steps execute. */
147
152
  on_start: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
148
153
  task: z.ZodOptional<z.ZodString>;
@@ -374,7 +379,6 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
374
379
  /** If true, invoke rollback records from completed steps in reverse order on failure. */
375
380
  rollback_on_failure: z.ZodOptional<z.ZodBoolean>;
376
381
  }, "strip", z.ZodTypeAny, {
377
- description: string;
378
382
  steps: Record<string, {
379
383
  options?: Record<string, unknown> | undefined;
380
384
  task?: string | undefined;
@@ -385,6 +389,7 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
385
389
  when?: string | boolean | undefined;
386
390
  ignore_failure?: boolean | undefined;
387
391
  }>;
392
+ description?: string | null | undefined;
388
393
  on_start?: {
389
394
  options?: Record<string, unknown> | undefined;
390
395
  task?: string | undefined;
@@ -427,8 +432,8 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
427
432
  }[] | undefined;
428
433
  rollback_on_failure?: boolean | undefined;
429
434
  }, {
430
- description: string;
431
- steps: Record<string, {
435
+ description?: string | null | undefined;
436
+ steps?: Record<string, {
432
437
  options?: Record<string, unknown> | undefined;
433
438
  task?: string | undefined;
434
439
  flow?: string | undefined;
@@ -437,7 +442,7 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
437
442
  retryOn?: string | undefined;
438
443
  when?: string | boolean | undefined;
439
444
  ignore_failure?: boolean | undefined;
440
- }>;
445
+ }> | undefined;
441
446
  on_start?: {
442
447
  options?: Record<string, unknown> | undefined;
443
448
  task?: string | undefined;
@@ -480,6 +485,203 @@ export declare const FlowDefinitionSchema: z.ZodObject<{
480
485
  }[] | undefined;
481
486
  rollback_on_failure?: boolean | undefined;
482
487
  }>;
488
+ /**
489
+ * A tool an agent may call. References an existing flowkit primitive — a `task`,
490
+ * a `flow`, or another `agent` — so tool dispatch reuses the registry, options,
491
+ * and `${...}` reference machinery rather than inventing a parallel concept.
492
+ * `name` (defaulted from the reference) is what the model sees.
493
+ */
494
+ export declare const AgentToolSchema: z.ZodEffects<z.ZodObject<{
495
+ name: z.ZodOptional<z.ZodString>;
496
+ task: z.ZodOptional<z.ZodString>;
497
+ flow: z.ZodOptional<z.ZodString>;
498
+ agent: z.ZodOptional<z.ZodString>;
499
+ description: z.ZodOptional<z.ZodString>;
500
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
501
+ }, "strip", z.ZodTypeAny, {
502
+ description?: string | undefined;
503
+ task?: string | undefined;
504
+ flow?: string | undefined;
505
+ name?: string | undefined;
506
+ agent?: string | undefined;
507
+ parameters?: Record<string, unknown> | undefined;
508
+ }, {
509
+ description?: string | undefined;
510
+ task?: string | undefined;
511
+ flow?: string | undefined;
512
+ name?: string | undefined;
513
+ agent?: string | undefined;
514
+ parameters?: Record<string, unknown> | undefined;
515
+ }>, {
516
+ description?: string | undefined;
517
+ task?: string | undefined;
518
+ flow?: string | undefined;
519
+ name?: string | undefined;
520
+ agent?: string | undefined;
521
+ parameters?: Record<string, unknown> | undefined;
522
+ }, {
523
+ description?: string | undefined;
524
+ task?: string | undefined;
525
+ flow?: string | undefined;
526
+ name?: string | undefined;
527
+ agent?: string | undefined;
528
+ parameters?: Record<string, unknown> | undefined;
529
+ }>;
530
+ /**
531
+ * Hard bounds on an agent run. A tool-using agent with no caps is unbounded
532
+ * spend, so a budget is the intended companion to every agent definition.
533
+ */
534
+ export declare const AgentBudgetSchema: z.ZodObject<{
535
+ /** Max model turns. */
536
+ maxIterations: z.ZodOptional<z.ZodNumber>;
537
+ /** Aggregate input+output token cap across the whole loop (incl. sub-agents). */
538
+ tokenBudget: z.ZodOptional<z.ZodNumber>;
539
+ /** Cap on a single tool result's serialized size, in chars. */
540
+ maxToolResultChars: z.ZodOptional<z.ZodNumber>;
541
+ /** Max tool calls run concurrently within a turn. */
542
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
543
+ /** Max depth of agent-calls-agent recursion. */
544
+ maxAgentDepth: z.ZodOptional<z.ZodNumber>;
545
+ }, "strip", z.ZodTypeAny, {
546
+ maxIterations?: number | undefined;
547
+ tokenBudget?: number | undefined;
548
+ maxToolResultChars?: number | undefined;
549
+ maxConcurrency?: number | undefined;
550
+ maxAgentDepth?: number | undefined;
551
+ }, {
552
+ maxIterations?: number | undefined;
553
+ tokenBudget?: number | undefined;
554
+ maxToolResultChars?: number | undefined;
555
+ maxConcurrency?: number | undefined;
556
+ maxAgentDepth?: number | undefined;
557
+ }>;
558
+ export declare const AgentDefinitionSchema: z.ZodObject<{
559
+ description: z.ZodOptional<z.ZodString>;
560
+ /** Model identifier — provider-specific. */
561
+ model: z.ZodOptional<z.ZodString>;
562
+ /** System prompt / rules. */
563
+ system: z.ZodOptional<z.ZodString>;
564
+ /** Tools the agent may call (its allowlist). */
565
+ tools: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
566
+ name: z.ZodOptional<z.ZodString>;
567
+ task: z.ZodOptional<z.ZodString>;
568
+ flow: z.ZodOptional<z.ZodString>;
569
+ agent: z.ZodOptional<z.ZodString>;
570
+ description: z.ZodOptional<z.ZodString>;
571
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
572
+ }, "strip", z.ZodTypeAny, {
573
+ description?: string | undefined;
574
+ task?: string | undefined;
575
+ flow?: string | undefined;
576
+ name?: string | undefined;
577
+ agent?: string | undefined;
578
+ parameters?: Record<string, unknown> | undefined;
579
+ }, {
580
+ description?: string | undefined;
581
+ task?: string | undefined;
582
+ flow?: string | undefined;
583
+ name?: string | undefined;
584
+ agent?: string | undefined;
585
+ parameters?: Record<string, unknown> | undefined;
586
+ }>, {
587
+ description?: string | undefined;
588
+ task?: string | undefined;
589
+ flow?: string | undefined;
590
+ name?: string | undefined;
591
+ agent?: string | undefined;
592
+ parameters?: Record<string, unknown> | undefined;
593
+ }, {
594
+ description?: string | undefined;
595
+ task?: string | undefined;
596
+ flow?: string | undefined;
597
+ name?: string | undefined;
598
+ agent?: string | undefined;
599
+ parameters?: Record<string, unknown> | undefined;
600
+ }>, "many">>;
601
+ /** JSON Schema for the agent's final answer. */
602
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
603
+ /** Hard run bounds. */
604
+ budget: z.ZodOptional<z.ZodObject<{
605
+ /** Max model turns. */
606
+ maxIterations: z.ZodOptional<z.ZodNumber>;
607
+ /** Aggregate input+output token cap across the whole loop (incl. sub-agents). */
608
+ tokenBudget: z.ZodOptional<z.ZodNumber>;
609
+ /** Cap on a single tool result's serialized size, in chars. */
610
+ maxToolResultChars: z.ZodOptional<z.ZodNumber>;
611
+ /** Max tool calls run concurrently within a turn. */
612
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
613
+ /** Max depth of agent-calls-agent recursion. */
614
+ maxAgentDepth: z.ZodOptional<z.ZodNumber>;
615
+ }, "strip", z.ZodTypeAny, {
616
+ maxIterations?: number | undefined;
617
+ tokenBudget?: number | undefined;
618
+ maxToolResultChars?: number | undefined;
619
+ maxConcurrency?: number | undefined;
620
+ maxAgentDepth?: number | undefined;
621
+ }, {
622
+ maxIterations?: number | undefined;
623
+ tokenBudget?: number | undefined;
624
+ maxToolResultChars?: number | undefined;
625
+ maxConcurrency?: number | undefined;
626
+ maxAgentDepth?: number | undefined;
627
+ }>>;
628
+ /** Sampling temperature. */
629
+ temperature: z.ZodOptional<z.ZodNumber>;
630
+ /** Per-call max output tokens. */
631
+ maxTokens: z.ZodOptional<z.ZodNumber>;
632
+ /** Per-call timeout in ms. */
633
+ timeout: z.ZodOptional<z.ZodNumber>;
634
+ /** Transport retries per call. */
635
+ retries: z.ZodOptional<z.ZodNumber>;
636
+ }, "strip", z.ZodTypeAny, {
637
+ tools: {
638
+ description?: string | undefined;
639
+ task?: string | undefined;
640
+ flow?: string | undefined;
641
+ name?: string | undefined;
642
+ agent?: string | undefined;
643
+ parameters?: Record<string, unknown> | undefined;
644
+ }[];
645
+ description?: string | undefined;
646
+ retries?: number | undefined;
647
+ model?: string | undefined;
648
+ system?: string | undefined;
649
+ schema?: Record<string, unknown> | undefined;
650
+ budget?: {
651
+ maxIterations?: number | undefined;
652
+ tokenBudget?: number | undefined;
653
+ maxToolResultChars?: number | undefined;
654
+ maxConcurrency?: number | undefined;
655
+ maxAgentDepth?: number | undefined;
656
+ } | undefined;
657
+ temperature?: number | undefined;
658
+ maxTokens?: number | undefined;
659
+ timeout?: number | undefined;
660
+ }, {
661
+ description?: string | undefined;
662
+ retries?: number | undefined;
663
+ model?: string | undefined;
664
+ system?: string | undefined;
665
+ tools?: {
666
+ description?: string | undefined;
667
+ task?: string | undefined;
668
+ flow?: string | undefined;
669
+ name?: string | undefined;
670
+ agent?: string | undefined;
671
+ parameters?: Record<string, unknown> | undefined;
672
+ }[] | undefined;
673
+ schema?: Record<string, unknown> | undefined;
674
+ budget?: {
675
+ maxIterations?: number | undefined;
676
+ tokenBudget?: number | undefined;
677
+ maxToolResultChars?: number | undefined;
678
+ maxConcurrency?: number | undefined;
679
+ maxAgentDepth?: number | undefined;
680
+ } | undefined;
681
+ temperature?: number | undefined;
682
+ maxTokens?: number | undefined;
683
+ timeout?: number | undefined;
684
+ }>;
483
685
  /** Minimal config shape the engine requires. Consumers extend with their own sections. */
484
686
  export declare const EngineConfigSchema: z.ZodObject<{
485
687
  tasks: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -512,8 +714,13 @@ export declare const EngineConfigSchema: z.ZodObject<{
512
714
  reversible?: boolean | undefined;
513
715
  }>>>;
514
716
  flows: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
515
- description: z.ZodString;
516
- steps: z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
717
+ /**
718
+ * Optional: a flow override (one that layers steps/hooks onto a same-named
719
+ * base) need not restate the description. Tolerates an explicit null.
720
+ */
721
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
722
+ /** Optional/defaulted so an override that only adjusts hooks/options is valid. */
723
+ steps: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodEffects<z.ZodObject<{
517
724
  task: z.ZodOptional<z.ZodString>;
518
725
  flow: z.ZodOptional<z.ZodString>;
519
726
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
@@ -568,7 +775,7 @@ export declare const EngineConfigSchema: z.ZodObject<{
568
775
  retryOn?: string | undefined;
569
776
  when?: string | boolean | undefined;
570
777
  ignore_failure?: boolean | undefined;
571
- }>>;
778
+ }>>>;
572
779
  /** Runs before the first step. Failure fails the flow before steps execute. */
573
780
  on_start: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
574
781
  task: z.ZodOptional<z.ZodString>;
@@ -800,7 +1007,6 @@ export declare const EngineConfigSchema: z.ZodObject<{
800
1007
  /** If true, invoke rollback records from completed steps in reverse order on failure. */
801
1008
  rollback_on_failure: z.ZodOptional<z.ZodBoolean>;
802
1009
  }, "strip", z.ZodTypeAny, {
803
- description: string;
804
1010
  steps: Record<string, {
805
1011
  options?: Record<string, unknown> | undefined;
806
1012
  task?: string | undefined;
@@ -811,6 +1017,7 @@ export declare const EngineConfigSchema: z.ZodObject<{
811
1017
  when?: string | boolean | undefined;
812
1018
  ignore_failure?: boolean | undefined;
813
1019
  }>;
1020
+ description?: string | null | undefined;
814
1021
  on_start?: {
815
1022
  options?: Record<string, unknown> | undefined;
816
1023
  task?: string | undefined;
@@ -853,8 +1060,8 @@ export declare const EngineConfigSchema: z.ZodObject<{
853
1060
  }[] | undefined;
854
1061
  rollback_on_failure?: boolean | undefined;
855
1062
  }, {
856
- description: string;
857
- steps: Record<string, {
1063
+ description?: string | null | undefined;
1064
+ steps?: Record<string, {
858
1065
  options?: Record<string, unknown> | undefined;
859
1066
  task?: string | undefined;
860
1067
  flow?: string | undefined;
@@ -863,7 +1070,7 @@ export declare const EngineConfigSchema: z.ZodObject<{
863
1070
  retryOn?: string | undefined;
864
1071
  when?: string | boolean | undefined;
865
1072
  ignore_failure?: boolean | undefined;
866
- }>;
1073
+ }> | undefined;
867
1074
  on_start?: {
868
1075
  options?: Record<string, unknown> | undefined;
869
1076
  task?: string | undefined;
@@ -906,6 +1113,133 @@ export declare const EngineConfigSchema: z.ZodObject<{
906
1113
  }[] | undefined;
907
1114
  rollback_on_failure?: boolean | undefined;
908
1115
  }>>>;
1116
+ agents: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodObject<{
1117
+ description: z.ZodOptional<z.ZodString>;
1118
+ /** Model identifier — provider-specific. */
1119
+ model: z.ZodOptional<z.ZodString>;
1120
+ /** System prompt / rules. */
1121
+ system: z.ZodOptional<z.ZodString>;
1122
+ /** Tools the agent may call (its allowlist). */
1123
+ tools: z.ZodDefault<z.ZodArray<z.ZodEffects<z.ZodObject<{
1124
+ name: z.ZodOptional<z.ZodString>;
1125
+ task: z.ZodOptional<z.ZodString>;
1126
+ flow: z.ZodOptional<z.ZodString>;
1127
+ agent: z.ZodOptional<z.ZodString>;
1128
+ description: z.ZodOptional<z.ZodString>;
1129
+ parameters: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1130
+ }, "strip", z.ZodTypeAny, {
1131
+ description?: string | undefined;
1132
+ task?: string | undefined;
1133
+ flow?: string | undefined;
1134
+ name?: string | undefined;
1135
+ agent?: string | undefined;
1136
+ parameters?: Record<string, unknown> | undefined;
1137
+ }, {
1138
+ description?: string | undefined;
1139
+ task?: string | undefined;
1140
+ flow?: string | undefined;
1141
+ name?: string | undefined;
1142
+ agent?: string | undefined;
1143
+ parameters?: Record<string, unknown> | undefined;
1144
+ }>, {
1145
+ description?: string | undefined;
1146
+ task?: string | undefined;
1147
+ flow?: string | undefined;
1148
+ name?: string | undefined;
1149
+ agent?: string | undefined;
1150
+ parameters?: Record<string, unknown> | undefined;
1151
+ }, {
1152
+ description?: string | undefined;
1153
+ task?: string | undefined;
1154
+ flow?: string | undefined;
1155
+ name?: string | undefined;
1156
+ agent?: string | undefined;
1157
+ parameters?: Record<string, unknown> | undefined;
1158
+ }>, "many">>;
1159
+ /** JSON Schema for the agent's final answer. */
1160
+ schema: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1161
+ /** Hard run bounds. */
1162
+ budget: z.ZodOptional<z.ZodObject<{
1163
+ /** Max model turns. */
1164
+ maxIterations: z.ZodOptional<z.ZodNumber>;
1165
+ /** Aggregate input+output token cap across the whole loop (incl. sub-agents). */
1166
+ tokenBudget: z.ZodOptional<z.ZodNumber>;
1167
+ /** Cap on a single tool result's serialized size, in chars. */
1168
+ maxToolResultChars: z.ZodOptional<z.ZodNumber>;
1169
+ /** Max tool calls run concurrently within a turn. */
1170
+ maxConcurrency: z.ZodOptional<z.ZodNumber>;
1171
+ /** Max depth of agent-calls-agent recursion. */
1172
+ maxAgentDepth: z.ZodOptional<z.ZodNumber>;
1173
+ }, "strip", z.ZodTypeAny, {
1174
+ maxIterations?: number | undefined;
1175
+ tokenBudget?: number | undefined;
1176
+ maxToolResultChars?: number | undefined;
1177
+ maxConcurrency?: number | undefined;
1178
+ maxAgentDepth?: number | undefined;
1179
+ }, {
1180
+ maxIterations?: number | undefined;
1181
+ tokenBudget?: number | undefined;
1182
+ maxToolResultChars?: number | undefined;
1183
+ maxConcurrency?: number | undefined;
1184
+ maxAgentDepth?: number | undefined;
1185
+ }>>;
1186
+ /** Sampling temperature. */
1187
+ temperature: z.ZodOptional<z.ZodNumber>;
1188
+ /** Per-call max output tokens. */
1189
+ maxTokens: z.ZodOptional<z.ZodNumber>;
1190
+ /** Per-call timeout in ms. */
1191
+ timeout: z.ZodOptional<z.ZodNumber>;
1192
+ /** Transport retries per call. */
1193
+ retries: z.ZodOptional<z.ZodNumber>;
1194
+ }, "strip", z.ZodTypeAny, {
1195
+ tools: {
1196
+ description?: string | undefined;
1197
+ task?: string | undefined;
1198
+ flow?: string | undefined;
1199
+ name?: string | undefined;
1200
+ agent?: string | undefined;
1201
+ parameters?: Record<string, unknown> | undefined;
1202
+ }[];
1203
+ description?: string | undefined;
1204
+ retries?: number | undefined;
1205
+ model?: string | undefined;
1206
+ system?: string | undefined;
1207
+ schema?: Record<string, unknown> | undefined;
1208
+ budget?: {
1209
+ maxIterations?: number | undefined;
1210
+ tokenBudget?: number | undefined;
1211
+ maxToolResultChars?: number | undefined;
1212
+ maxConcurrency?: number | undefined;
1213
+ maxAgentDepth?: number | undefined;
1214
+ } | undefined;
1215
+ temperature?: number | undefined;
1216
+ maxTokens?: number | undefined;
1217
+ timeout?: number | undefined;
1218
+ }, {
1219
+ description?: string | undefined;
1220
+ retries?: number | undefined;
1221
+ model?: string | undefined;
1222
+ system?: string | undefined;
1223
+ tools?: {
1224
+ description?: string | undefined;
1225
+ task?: string | undefined;
1226
+ flow?: string | undefined;
1227
+ name?: string | undefined;
1228
+ agent?: string | undefined;
1229
+ parameters?: Record<string, unknown> | undefined;
1230
+ }[] | undefined;
1231
+ schema?: Record<string, unknown> | undefined;
1232
+ budget?: {
1233
+ maxIterations?: number | undefined;
1234
+ tokenBudget?: number | undefined;
1235
+ maxToolResultChars?: number | undefined;
1236
+ maxConcurrency?: number | undefined;
1237
+ maxAgentDepth?: number | undefined;
1238
+ } | undefined;
1239
+ temperature?: number | undefined;
1240
+ maxTokens?: number | undefined;
1241
+ timeout?: number | undefined;
1242
+ }>>>;
909
1243
  }, "strip", z.ZodTypeAny, {
910
1244
  tasks: Record<string, {
911
1245
  options: Record<string, unknown>;
@@ -916,7 +1250,6 @@ export declare const EngineConfigSchema: z.ZodObject<{
916
1250
  reversible?: boolean | undefined;
917
1251
  }>;
918
1252
  flows: Record<string, {
919
- description: string;
920
1253
  steps: Record<string, {
921
1254
  options?: Record<string, unknown> | undefined;
922
1255
  task?: string | undefined;
@@ -927,6 +1260,7 @@ export declare const EngineConfigSchema: z.ZodObject<{
927
1260
  when?: string | boolean | undefined;
928
1261
  ignore_failure?: boolean | undefined;
929
1262
  }>;
1263
+ description?: string | null | undefined;
930
1264
  on_start?: {
931
1265
  options?: Record<string, unknown> | undefined;
932
1266
  task?: string | undefined;
@@ -969,6 +1303,31 @@ export declare const EngineConfigSchema: z.ZodObject<{
969
1303
  }[] | undefined;
970
1304
  rollback_on_failure?: boolean | undefined;
971
1305
  }>;
1306
+ agents: Record<string, {
1307
+ tools: {
1308
+ description?: string | undefined;
1309
+ task?: string | undefined;
1310
+ flow?: string | undefined;
1311
+ name?: string | undefined;
1312
+ agent?: string | undefined;
1313
+ parameters?: Record<string, unknown> | undefined;
1314
+ }[];
1315
+ description?: string | undefined;
1316
+ retries?: number | undefined;
1317
+ model?: string | undefined;
1318
+ system?: string | undefined;
1319
+ schema?: Record<string, unknown> | undefined;
1320
+ budget?: {
1321
+ maxIterations?: number | undefined;
1322
+ tokenBudget?: number | undefined;
1323
+ maxToolResultChars?: number | undefined;
1324
+ maxConcurrency?: number | undefined;
1325
+ maxAgentDepth?: number | undefined;
1326
+ } | undefined;
1327
+ temperature?: number | undefined;
1328
+ maxTokens?: number | undefined;
1329
+ timeout?: number | undefined;
1330
+ }>;
972
1331
  }, {
973
1332
  tasks?: Record<string, {
974
1333
  options?: Record<string, unknown> | undefined;
@@ -979,8 +1338,8 @@ export declare const EngineConfigSchema: z.ZodObject<{
979
1338
  reversible?: boolean | undefined;
980
1339
  }> | undefined;
981
1340
  flows?: Record<string, {
982
- description: string;
983
- steps: Record<string, {
1341
+ description?: string | null | undefined;
1342
+ steps?: Record<string, {
984
1343
  options?: Record<string, unknown> | undefined;
985
1344
  task?: string | undefined;
986
1345
  flow?: string | undefined;
@@ -989,7 +1348,7 @@ export declare const EngineConfigSchema: z.ZodObject<{
989
1348
  retryOn?: string | undefined;
990
1349
  when?: string | boolean | undefined;
991
1350
  ignore_failure?: boolean | undefined;
992
- }>;
1351
+ }> | undefined;
993
1352
  on_start?: {
994
1353
  options?: Record<string, unknown> | undefined;
995
1354
  task?: string | undefined;
@@ -1032,10 +1391,38 @@ export declare const EngineConfigSchema: z.ZodObject<{
1032
1391
  }[] | undefined;
1033
1392
  rollback_on_failure?: boolean | undefined;
1034
1393
  }> | undefined;
1394
+ agents?: Record<string, {
1395
+ description?: string | undefined;
1396
+ retries?: number | undefined;
1397
+ model?: string | undefined;
1398
+ system?: string | undefined;
1399
+ tools?: {
1400
+ description?: string | undefined;
1401
+ task?: string | undefined;
1402
+ flow?: string | undefined;
1403
+ name?: string | undefined;
1404
+ agent?: string | undefined;
1405
+ parameters?: Record<string, unknown> | undefined;
1406
+ }[] | undefined;
1407
+ schema?: Record<string, unknown> | undefined;
1408
+ budget?: {
1409
+ maxIterations?: number | undefined;
1410
+ tokenBudget?: number | undefined;
1411
+ maxToolResultChars?: number | undefined;
1412
+ maxConcurrency?: number | undefined;
1413
+ maxAgentDepth?: number | undefined;
1414
+ } | undefined;
1415
+ temperature?: number | undefined;
1416
+ maxTokens?: number | undefined;
1417
+ timeout?: number | undefined;
1418
+ }> | undefined;
1035
1419
  }>;
1036
1420
  export type TaskOptions = z.infer<typeof TaskOptionsSchema>;
1037
1421
  export type TaskDefinition = z.infer<typeof TaskDefinitionSchema>;
1038
1422
  export type FlowStep = z.infer<typeof FlowStepSchema>;
1039
1423
  export type FlowDefinition = z.infer<typeof FlowDefinitionSchema>;
1424
+ export type AgentTool = z.infer<typeof AgentToolSchema>;
1425
+ export type AgentBudget = z.infer<typeof AgentBudgetSchema>;
1426
+ export type AgentDefinition = z.infer<typeof AgentDefinitionSchema>;
1040
1427
  export type EngineConfig = z.infer<typeof EngineConfigSchema>;
1041
1428
  //# sourceMappingURL=schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"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"}