@remoraflow/core 0.6.0 → 0.7.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAYnD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAGd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GACA,OAAO,CAAC,cAAc,CAAC,CAwEzB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compiler/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAElC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAanD,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EAGd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,kBAAkB,EAC5B,OAAO,CAAC,EAAE;IACR,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB,GACA,OAAO,CAAC,cAAc,CAAC,CA6EzB;AAED,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,CAAC,CAc5B;AAED,YAAY,EACV,cAAc,EACd,cAAc,EACd,qBAAqB,EACrB,wBAAwB,EACxB,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,GACrB,MAAM,SAAS,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { WorkflowDefinition } from "../../types";
2
+ import type { Diagnostic, ExecutionGraph, ToolDefinitionMap } from "../types";
3
+ /**
4
+ * Validate that property paths in JMESPath expressions reference properties
5
+ * that actually exist in the referenced step's output schema.
6
+ *
7
+ * Only validates simple dotted paths (e.g. `stepId.field.nested`). Complex
8
+ * expressions (filters, projections, functions) are silently skipped.
9
+ * Steps without a known output schema are also skipped.
10
+ */
11
+ export declare function validateExpressionPaths(workflow: WorkflowDefinition, graph: ExecutionGraph, tools: ToolDefinitionMap | null): Diagnostic[];
12
+ //# sourceMappingURL=validate-expression-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-expression-paths.d.ts","sourceRoot":"","sources":["../../../src/compiler/passes/validate-expression-paths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAI9E;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,EACrB,KAAK,EAAE,iBAAiB,GAAG,IAAI,GAC9B,UAAU,EAAE,CAiCd"}
@@ -1,4 +1,13 @@
1
1
  import type { WorkflowDefinition } from "../../types";
2
2
  import type { Diagnostic, ExecutionGraph } from "../types";
3
+ export interface ExpressionInfo {
4
+ expression: string;
5
+ stepId: string;
6
+ field: string;
7
+ }
3
8
  export declare function validateJmespath(workflow: WorkflowDefinition, graph: ExecutionGraph): Diagnostic[];
9
+ export declare function collectExpressions(workflow: WorkflowDefinition): {
10
+ expressions: ExpressionInfo[];
11
+ templateDiagnostics: Diagnostic[];
12
+ };
4
13
  //# sourceMappingURL=validate-jmespath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate-jmespath.d.ts","sourceRoot":"","sources":["../../../src/compiler/passes/validate-jmespath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAa3D,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,UAAU,EAAE,CAyBd"}
1
+ {"version":3,"file":"validate-jmespath.d.ts","sourceRoot":"","sources":["../../../src/compiler/passes/validate-jmespath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO3D,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,UAAU,EAAE,CAyBd;AAqCD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG;IAChE,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,mBAAmB,EAAE,UAAU,EAAE,CAAC;CACnC,CAoIA"}
@@ -12,7 +12,7 @@ export interface DiagnosticLocation {
12
12
  * Machine-readable code identifying the specific diagnostic.
13
13
  * Useful for programmatic handling of compiler feedback.
14
14
  */
15
- export type DiagnosticCode = "INVALID_STEP_ID" | "INVALID_ITEM_NAME" | "ITEM_NAME_SHADOWS_STEP_ID" | "DUPLICATE_STEP_ID" | "MISSING_INITIAL_STEP" | "MISSING_NEXT_STEP" | "MISSING_BRANCH_BODY_STEP" | "MISSING_LOOP_BODY_STEP" | "UNREACHABLE_STEP" | "CYCLE_DETECTED" | "UNCLOSED_TEMPLATE_EXPRESSION" | "JMESPATH_SYNTAX_ERROR" | "JMESPATH_INVALID_ROOT_REFERENCE" | "JMESPATH_FORWARD_REFERENCE" | "END_STEP_HAS_NEXT" | "BRANCH_BODY_ESCAPES" | "LOOP_BODY_ESCAPES" | "MULTIPLE_DEFAULT_CASES" | "UNKNOWN_TOOL" | "MISSING_TOOL_INPUT_KEY" | "EXTRA_TOOL_INPUT_KEY" | "TOOL_INPUT_TYPE_MISMATCH" | "MISSING_START_STEP" | "END_STEP_MISSING_OUTPUT" | "END_STEP_UNEXPECTED_OUTPUT" | "PATH_MISSING_END_STEP" | "LITERAL_OUTPUT_SHAPE_MISMATCH" | "FOREACH_TARGET_NOT_ARRAY" | "MISSING_CONDITION_BODY_STEP" | "CONDITION_BODY_ESCAPES" | "SLEEP_DURATION_EXCEEDS_LIMIT" | "WAIT_ATTEMPTS_EXCEEDS_LIMIT" | "WAIT_INTERVAL_EXCEEDS_LIMIT" | "BACKOFF_MULTIPLIER_OUT_OF_RANGE" | "WAIT_TIMEOUT_EXCEEDS_LIMIT" | "UNSUPPORTED_SCHEMA_KEYWORD";
15
+ export type DiagnosticCode = "INVALID_STEP_ID" | "INVALID_ITEM_NAME" | "ITEM_NAME_SHADOWS_STEP_ID" | "DUPLICATE_STEP_ID" | "MISSING_INITIAL_STEP" | "MISSING_NEXT_STEP" | "MISSING_BRANCH_BODY_STEP" | "MISSING_LOOP_BODY_STEP" | "UNREACHABLE_STEP" | "CYCLE_DETECTED" | "UNCLOSED_TEMPLATE_EXPRESSION" | "JMESPATH_SYNTAX_ERROR" | "JMESPATH_INVALID_ROOT_REFERENCE" | "JMESPATH_FORWARD_REFERENCE" | "JMESPATH_INVALID_PROPERTY_PATH" | "END_STEP_HAS_NEXT" | "BRANCH_BODY_ESCAPES" | "LOOP_BODY_ESCAPES" | "MULTIPLE_DEFAULT_CASES" | "UNKNOWN_TOOL" | "MISSING_TOOL_INPUT_KEY" | "EXTRA_TOOL_INPUT_KEY" | "TOOL_INPUT_TYPE_MISMATCH" | "MISSING_START_STEP" | "END_STEP_MISSING_OUTPUT" | "END_STEP_UNEXPECTED_OUTPUT" | "PATH_MISSING_END_STEP" | "LITERAL_OUTPUT_SHAPE_MISMATCH" | "FOREACH_TARGET_NOT_ARRAY" | "MISSING_CONDITION_BODY_STEP" | "CONDITION_BODY_ESCAPES" | "SLEEP_DURATION_EXCEEDS_LIMIT" | "WAIT_ATTEMPTS_EXCEEDS_LIMIT" | "WAIT_INTERVAL_EXCEEDS_LIMIT" | "BACKOFF_MULTIPLIER_OUT_OF_RANGE" | "WAIT_TIMEOUT_EXCEEDS_LIMIT" | "UNSUPPORTED_SCHEMA_KEYWORD";
16
16
  /**
17
17
  * A structured compiler diagnostic with a severity, location, human-readable message,
18
18
  * and machine-readable code. Emitted during compilation to report errors and warnings.
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compiler/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/compiler/types.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,30 @@ export declare function findArrayProperties(schema: Record<string, unknown>): st
24
24
  * output schema is unknown or can't be determined statically.
25
25
  */
26
26
  export declare function getStepOutputSchema(step: WorkflowStep, tools: ToolDefinitionMap | null, workflow: WorkflowDefinition, graph: ExecutionGraph): Record<string, unknown> | null;
27
+ /**
28
+ * Discriminated result of resolving a JMESPath expression's property path
29
+ * against known output schemas. Unlike {@link resolveExpressionSchema},
30
+ * this distinguishes between "can't validate" and "property doesn't exist".
31
+ */
32
+ export type ExpressionPathResult = {
33
+ status: "resolved";
34
+ schema: Record<string, unknown>;
35
+ } | {
36
+ status: "no_schema";
37
+ } | {
38
+ status: "not_simple";
39
+ } | {
40
+ status: "unknown_root";
41
+ } | {
42
+ status: "property_not_found";
43
+ failedAtSegment: string;
44
+ parentSchema: Record<string, unknown>;
45
+ };
46
+ /**
47
+ * Resolve a JMESPath expression's full property path and report why
48
+ * resolution failed. Only handles simple dotted paths.
49
+ */
50
+ export declare function resolveExpressionPath(expression: string, _contextStepId: string, tools: ToolDefinitionMap | null, workflow: WorkflowDefinition, graph: ExecutionGraph): ExpressionPathResult;
27
51
  /**
28
52
  * Resolve a JMESPath output expression to a JSON Schema by tracing
29
53
  * through step output schemas. Only handles simple dotted paths.
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/compiler/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAKnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EAAE,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAUhC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAQ7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiChC;AAgCD;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoBhC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/compiler/utils/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAElE;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAKnE;AAED;;;GAGG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,IAAI,EAAE,MAAM,EAAE,GACb,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAUhC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAG5E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAQ7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAiChC;AAgCD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC5B;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACvD;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,YAAY,CAAA;CAAE,GACxB;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IACE,MAAM,EAAE,oBAAoB,CAAC;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,CAAC;AAEN;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,cAAc,EAAE,MAAM,EACtB,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,oBAAoB,CAmCtB;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,iBAAiB,GAAG,IAAI,EAC/B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,cAAc,GACpB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoBhC"}
package/dist/lib.js CHANGED
@@ -577,6 +577,40 @@ function resolveChainOutputSchema(startId, tools, workflow, graph) {
577
577
  }
578
578
  return null;
579
579
  }
580
+ function resolveExpressionPath(expression, _contextStepId, tools, workflow, graph) {
581
+ const segments = parseSimplePath(expression);
582
+ if (!segments)
583
+ return { status: "not_simple" };
584
+ const [rootId, ...fieldPath] = segments;
585
+ if (!rootId)
586
+ return { status: "not_simple" };
587
+ let rootSchema = null;
588
+ if (rootId === "input" && workflow.inputSchema) {
589
+ rootSchema = workflow.inputSchema;
590
+ } else {
591
+ const referencedStep = graph.stepIndex.get(rootId);
592
+ if (!referencedStep)
593
+ return { status: "unknown_root" };
594
+ rootSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);
595
+ }
596
+ if (!rootSchema)
597
+ return { status: "no_schema" };
598
+ if (fieldPath.length === 0)
599
+ return { status: "resolved", schema: rootSchema };
600
+ let current = rootSchema;
601
+ for (const segment of fieldPath) {
602
+ const properties = current.properties;
603
+ if (!properties?.[segment]) {
604
+ return {
605
+ status: "property_not_found",
606
+ failedAtSegment: segment,
607
+ parentSchema: current
608
+ };
609
+ }
610
+ current = properties[segment];
611
+ }
612
+ return { status: "resolved", schema: current };
613
+ }
580
614
  function resolveExpressionSchema(expression, _endStepId, tools, workflow, graph) {
581
615
  const segments = parseSimplePath(expression);
582
616
  if (!segments)
@@ -875,59 +909,6 @@ function validateSchemaCompatibility(resolvedSchema, outputSchema, stepId, expre
875
909
  return diagnostics;
876
910
  }
877
911
 
878
- // src/compiler/passes/validate-foreach-target.ts
879
- function validateForeachTarget(workflow, graph, tools) {
880
- const diagnostics = [];
881
- for (const step of workflow.steps) {
882
- if (step.type !== "for-each")
883
- continue;
884
- if (step.params.target.type !== "jmespath")
885
- continue;
886
- const expression = step.params.target.expression;
887
- const segments = parseSimplePath(expression);
888
- if (!segments)
889
- continue;
890
- const [rootId, ...fieldPath] = segments;
891
- if (!rootId)
892
- continue;
893
- let outputSchema = null;
894
- if (rootId === "input" && workflow.inputSchema) {
895
- outputSchema = workflow.inputSchema;
896
- } else {
897
- const referencedStep = graph.stepIndex.get(rootId);
898
- if (!referencedStep)
899
- continue;
900
- outputSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);
901
- }
902
- if (!outputSchema)
903
- continue;
904
- const resolvedSchema = resolvePath(outputSchema, fieldPath);
905
- if (!resolvedSchema)
906
- continue;
907
- const resolvedType = getSchemaType(resolvedSchema);
908
- if (resolvedType === "array")
909
- continue;
910
- if (resolvedType === "object") {
911
- const suggestions = findArrayProperties(resolvedSchema);
912
- const hint = suggestions.length > 0 ? ` Did you mean ${suggestions.map((s) => `'${rootId}.${s}'`).join(" or ")}?` : "";
913
- diagnostics.push({
914
- severity: "error",
915
- location: { stepId: step.id, field: "params.target" },
916
- message: `for-each target '${expression}' resolves to an object, not an array.${hint}`,
917
- code: "FOREACH_TARGET_NOT_ARRAY"
918
- });
919
- } else if (resolvedType !== null) {
920
- diagnostics.push({
921
- severity: "error",
922
- location: { stepId: step.id, field: "params.target" },
923
- message: `for-each target '${expression}' resolves to type '${resolvedType}', not an array.`,
924
- code: "FOREACH_TARGET_NOT_ARRAY"
925
- });
926
- }
927
- }
928
- return diagnostics;
929
- }
930
-
931
912
  // src/compiler/utils/jmespath-helpers.ts
932
913
  import { compile } from "@jmespath-community/jmespath";
933
914
  function validateJmespathSyntax(expression) {
@@ -1250,6 +1231,80 @@ function validateExpressionScope(expr, graph, hasInputSchema, diagnostics) {
1250
1231
  }
1251
1232
  }
1252
1233
 
1234
+ // src/compiler/passes/validate-expression-paths.ts
1235
+ function validateExpressionPaths(workflow, graph, tools) {
1236
+ const diagnostics = [];
1237
+ const { expressions } = collectExpressions(workflow);
1238
+ for (const expr of expressions) {
1239
+ const result = resolveExpressionPath(expr.expression, expr.stepId, tools, workflow, graph);
1240
+ if (result.status === "property_not_found") {
1241
+ const parentProps = result.parentSchema.properties;
1242
+ const available = parentProps ? Object.keys(parentProps) : [];
1243
+ const hint = available.length > 0 ? ` Available properties: ${available.map((p) => `'${p}'`).join(", ")}` : "";
1244
+ diagnostics.push({
1245
+ severity: "warning",
1246
+ location: { stepId: expr.stepId, field: expr.field },
1247
+ message: `Expression '${expr.expression}' references property '${result.failedAtSegment}' which does not exist in the output schema.${hint}`,
1248
+ code: "JMESPATH_INVALID_PROPERTY_PATH"
1249
+ });
1250
+ }
1251
+ }
1252
+ return diagnostics;
1253
+ }
1254
+
1255
+ // src/compiler/passes/validate-foreach-target.ts
1256
+ function validateForeachTarget(workflow, graph, tools) {
1257
+ const diagnostics = [];
1258
+ for (const step of workflow.steps) {
1259
+ if (step.type !== "for-each")
1260
+ continue;
1261
+ if (step.params.target.type !== "jmespath")
1262
+ continue;
1263
+ const expression = step.params.target.expression;
1264
+ const segments = parseSimplePath(expression);
1265
+ if (!segments)
1266
+ continue;
1267
+ const [rootId, ...fieldPath] = segments;
1268
+ if (!rootId)
1269
+ continue;
1270
+ let outputSchema = null;
1271
+ if (rootId === "input" && workflow.inputSchema) {
1272
+ outputSchema = workflow.inputSchema;
1273
+ } else {
1274
+ const referencedStep = graph.stepIndex.get(rootId);
1275
+ if (!referencedStep)
1276
+ continue;
1277
+ outputSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);
1278
+ }
1279
+ if (!outputSchema)
1280
+ continue;
1281
+ const resolvedSchema = resolvePath(outputSchema, fieldPath);
1282
+ if (!resolvedSchema)
1283
+ continue;
1284
+ const resolvedType = getSchemaType(resolvedSchema);
1285
+ if (resolvedType === "array")
1286
+ continue;
1287
+ if (resolvedType === "object") {
1288
+ const suggestions = findArrayProperties(resolvedSchema);
1289
+ const hint = suggestions.length > 0 ? ` Did you mean ${suggestions.map((s) => `'${rootId}.${s}'`).join(" or ")}?` : "";
1290
+ diagnostics.push({
1291
+ severity: "error",
1292
+ location: { stepId: step.id, field: "params.target" },
1293
+ message: `for-each target '${expression}' resolves to an object, not an array.${hint}`,
1294
+ code: "FOREACH_TARGET_NOT_ARRAY"
1295
+ });
1296
+ } else if (resolvedType !== null) {
1297
+ diagnostics.push({
1298
+ severity: "error",
1299
+ location: { stepId: step.id, field: "params.target" },
1300
+ message: `for-each target '${expression}' resolves to type '${resolvedType}', not an array.`,
1301
+ code: "FOREACH_TARGET_NOT_ARRAY"
1302
+ });
1303
+ }
1304
+ }
1305
+ return diagnostics;
1306
+ }
1307
+
1253
1308
  // src/compiler/passes/validate-limits.ts
1254
1309
  var DEFAULT_LIMITS = {
1255
1310
  maxAttempts: Number.POSITIVE_INFINITY,
@@ -1606,6 +1661,7 @@ async function compileWorkflow(workflow, options) {
1606
1661
  if (graphResult.graph) {
1607
1662
  diagnostics.push(...validateControlFlow(workflow, graphResult.graph, toolSchemas));
1608
1663
  diagnostics.push(...validateJmespath(workflow, graphResult.graph));
1664
+ diagnostics.push(...validateExpressionPaths(workflow, graphResult.graph, toolSchemas));
1609
1665
  if (toolSchemas) {
1610
1666
  diagnostics.push(...validateForeachTarget(workflow, graphResult.graph, toolSchemas));
1611
1667
  diagnostics.push(...validateToolInputTypes(workflow, graphResult.graph, toolSchemas));
@@ -4174,4 +4230,4 @@ export {
4174
4230
  AuthorizationError
4175
4231
  };
4176
4232
 
4177
- //# debugId=E9F30A16D12E624164756E2164756E21
4233
+ //# debugId=170DD60659C2B42A64756E2164756E21
package/dist/lib.js.map CHANGED
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/compiler/index.ts", "../src/compiler/passes/apply-best-practices.ts", "../src/compiler/utils/graph.ts", "../src/compiler/passes/build-graph.ts", "../src/compiler/passes/generate-constrained-tool-schemas.ts", "../src/compiler/utils/schema.ts", "../src/compiler/passes/validate-control-flow.ts", "../src/compiler/passes/validate-foreach-target.ts", "../src/compiler/utils/jmespath-helpers.ts", "../src/compiler/passes/validate-jmespath.ts", "../src/compiler/passes/validate-limits.ts", "../src/compiler/passes/validate-output-schemas.ts", "../src/compiler/passes/validate-references.ts", "../src/compiler/passes/validate-tool-input-types.ts", "../src/compiler/passes/validate-tools.ts", "../src/executor/channel.ts", "../src/executor/errors.ts", "../src/executor/context.ts", "../src/executor/state.ts", "../src/executor/executor-types.ts", "../src/executor/hash.ts", "../src/executor/steps/agent-loop.ts", "../src/executor/helpers.ts", "../src/executor/sanitize-output-schema.ts", "../src/executor/steps/end.ts", "../src/executor/steps/extract-data.ts", "../src/executor/schema-inference.ts", "../src/executor/steps/for-each.ts", "../src/executor/steps/llm-prompt.ts", "../src/executor/steps/sleep.ts", "../src/executor/steps/start.ts", "../src/executor/steps/switch-case.ts", "../src/executor/steps/tool-call.ts", "../src/executor/steps/wait-for-condition.ts", "../src/executor/index.ts", "../src/generator/index.ts", "../src/types.ts", "../src/generator/prompt.ts"],
3
+ "sources": ["../src/compiler/index.ts", "../src/compiler/passes/apply-best-practices.ts", "../src/compiler/utils/graph.ts", "../src/compiler/passes/build-graph.ts", "../src/compiler/passes/generate-constrained-tool-schemas.ts", "../src/compiler/utils/schema.ts", "../src/compiler/passes/validate-control-flow.ts", "../src/compiler/utils/jmespath-helpers.ts", "../src/compiler/passes/validate-jmespath.ts", "../src/compiler/passes/validate-expression-paths.ts", "../src/compiler/passes/validate-foreach-target.ts", "../src/compiler/passes/validate-limits.ts", "../src/compiler/passes/validate-output-schemas.ts", "../src/compiler/passes/validate-references.ts", "../src/compiler/passes/validate-tool-input-types.ts", "../src/compiler/passes/validate-tools.ts", "../src/executor/channel.ts", "../src/executor/errors.ts", "../src/executor/context.ts", "../src/executor/state.ts", "../src/executor/executor-types.ts", "../src/executor/hash.ts", "../src/executor/steps/agent-loop.ts", "../src/executor/helpers.ts", "../src/executor/sanitize-output-schema.ts", "../src/executor/steps/end.ts", "../src/executor/steps/extract-data.ts", "../src/executor/schema-inference.ts", "../src/executor/steps/for-each.ts", "../src/executor/steps/llm-prompt.ts", "../src/executor/steps/sleep.ts", "../src/executor/steps/start.ts", "../src/executor/steps/switch-case.ts", "../src/executor/steps/tool-call.ts", "../src/executor/steps/wait-for-condition.ts", "../src/executor/index.ts", "../src/generator/index.ts", "../src/types.ts", "../src/generator/prompt.ts"],
4
4
  "sourcesContent": [
5
- "import type { ToolSet } from \"ai\";\nimport { asSchema } from \"ai\";\nimport type { WorkflowDefinition } from \"../types\";\nimport { applyBestPractices } from \"./passes/apply-best-practices\";\nimport { buildGraph } from \"./passes/build-graph\";\nimport { generateConstrainedToolSchemas } from \"./passes/generate-constrained-tool-schemas\";\nimport { validateControlFlow } from \"./passes/validate-control-flow\";\nimport { validateForeachTarget } from \"./passes/validate-foreach-target\";\nimport { validateJmespath } from \"./passes/validate-jmespath\";\nimport { validateLimits } from \"./passes/validate-limits\";\nimport { validateOutputSchemas } from \"./passes/validate-output-schemas\";\nimport { validateReferences } from \"./passes/validate-references\";\nimport { validateToolInputTypes } from \"./passes/validate-tool-input-types\";\nimport { validateTools } from \"./passes/validate-tools\";\nimport type {\n CompilerLimits,\n CompilerResult,\n ConstrainedToolSchemaMap,\n Diagnostic,\n ToolDefinitionMap,\n} from \"./types\";\n\n/**\n * Compiles a workflow definition through a multi-pass validation pipeline,\n * producing an execution graph and structured diagnostics.\n *\n * Passes: graph construction, reference validation, control flow validation,\n * JMESPath validation, tool validation, for-each target validation, and\n * best-practice transformations.\n *\n * @param workflow - The workflow definition to compile.\n * @param options - Optional configuration.\n * @param options.tools - Tool definitions to validate tool-call steps against.\n * When provided, enables tool input validation and constrained schema generation.\n * @returns A {@link CompilerResult} containing diagnostics, the execution graph\n * (if structurally valid), an optimized workflow (if error-free), and\n * constrained tool schemas (if tools were provided).\n */\nexport async function compileWorkflow(\n workflow: WorkflowDefinition,\n options?: {\n tools?: ToolSet;\n limits?: CompilerLimits;\n },\n): Promise<CompilerResult> {\n const diagnostics: Diagnostic[] = [];\n\n // Pass 1: Build execution graph\n const graphResult = buildGraph(workflow);\n diagnostics.push(...graphResult.diagnostics);\n\n // Pass 2: Validate step references\n const refDiagnostics = validateReferences(workflow);\n // Deduplicate MISSING_INITIAL_STEP (emitted by both build-graph and validate-references)\n for (const d of refDiagnostics) {\n if (\n d.code === \"MISSING_INITIAL_STEP\" &&\n diagnostics.some((e) => e.code === \"MISSING_INITIAL_STEP\")\n ) {\n continue;\n }\n diagnostics.push(d);\n }\n\n // Pass 2b: Validate sleep/wait literal values against configured limits\n diagnostics.push(...validateLimits(workflow, options?.limits));\n\n // Pass 2c: Warn about unsupported JSON Schema keywords in outputFormat\n diagnostics.push(...validateOutputSchemas(workflow));\n\n // Pass 3: Extract tool schemas (needed by control flow and for-each validation)\n let constrainedToolSchemas: ConstrainedToolSchemaMap | null = null;\n let toolSchemas: ToolDefinitionMap | null = null;\n if (options?.tools) {\n toolSchemas = await extractToolSchemas(options.tools);\n diagnostics.push(...validateTools(workflow, toolSchemas));\n constrainedToolSchemas = generateConstrainedToolSchemas(\n workflow,\n toolSchemas,\n );\n }\n\n // Pass 4+: Only proceed with graph-dependent passes if we have a valid graph\n if (graphResult.graph) {\n diagnostics.push(\n ...validateControlFlow(workflow, graphResult.graph, toolSchemas),\n );\n\n diagnostics.push(...validateJmespath(workflow, graphResult.graph));\n\n // Validate for-each targets resolve to array types\n if (toolSchemas) {\n diagnostics.push(\n ...validateForeachTarget(workflow, graphResult.graph, toolSchemas),\n );\n diagnostics.push(\n ...validateToolInputTypes(workflow, graphResult.graph, toolSchemas),\n );\n }\n }\n\n // Final pass: apply best-practice transformations (non-destructive)\n const hasErrors = diagnostics.some((d) => d.severity === \"error\");\n let optimizedWorkflow: WorkflowDefinition | null = null;\n if (graphResult.graph && !hasErrors) {\n const bpResult = applyBestPractices(workflow, graphResult.graph);\n optimizedWorkflow = bpResult.workflow;\n diagnostics.push(...bpResult.diagnostics);\n }\n\n return {\n diagnostics,\n graph: graphResult.graph,\n workflow: optimizedWorkflow,\n constrainedToolSchemas,\n };\n}\n\nexport async function extractToolSchemas(\n tools: ToolSet,\n): Promise<ToolDefinitionMap> {\n const schemas: ToolDefinitionMap = {};\n for (const [name, toolDef] of Object.entries(tools)) {\n const jsonSchema = await asSchema(toolDef.inputSchema).jsonSchema;\n schemas[name] = {\n description: toolDef.description,\n inputSchema: jsonSchema as ToolDefinitionMap[string][\"inputSchema\"],\n };\n if (toolDef.outputSchema) {\n schemas[name].outputSchema = (await asSchema(toolDef.outputSchema)\n .jsonSchema) as Record<string, unknown>;\n }\n }\n return schemas;\n}\n\nexport type {\n CompilerLimits,\n CompilerResult,\n ConstrainedToolSchema,\n ConstrainedToolSchemaMap,\n Diagnostic,\n DiagnosticCode,\n DiagnosticLocation,\n DiagnosticSeverity,\n ExecutionGraph,\n ToolDefinitionMap,\n ToolSchemaDefinition,\n} from \"./types\";\n",
5
+ "import type { ToolSet } from \"ai\";\nimport { asSchema } from \"ai\";\nimport type { WorkflowDefinition } from \"../types\";\nimport { applyBestPractices } from \"./passes/apply-best-practices\";\nimport { buildGraph } from \"./passes/build-graph\";\nimport { generateConstrainedToolSchemas } from \"./passes/generate-constrained-tool-schemas\";\nimport { validateControlFlow } from \"./passes/validate-control-flow\";\nimport { validateExpressionPaths } from \"./passes/validate-expression-paths\";\nimport { validateForeachTarget } from \"./passes/validate-foreach-target\";\nimport { validateJmespath } from \"./passes/validate-jmespath\";\nimport { validateLimits } from \"./passes/validate-limits\";\nimport { validateOutputSchemas } from \"./passes/validate-output-schemas\";\nimport { validateReferences } from \"./passes/validate-references\";\nimport { validateToolInputTypes } from \"./passes/validate-tool-input-types\";\nimport { validateTools } from \"./passes/validate-tools\";\nimport type {\n CompilerLimits,\n CompilerResult,\n ConstrainedToolSchemaMap,\n Diagnostic,\n ToolDefinitionMap,\n} from \"./types\";\n\n/**\n * Compiles a workflow definition through a multi-pass validation pipeline,\n * producing an execution graph and structured diagnostics.\n *\n * Passes: graph construction, reference validation, control flow validation,\n * JMESPath validation, tool validation, for-each target validation, and\n * best-practice transformations.\n *\n * @param workflow - The workflow definition to compile.\n * @param options - Optional configuration.\n * @param options.tools - Tool definitions to validate tool-call steps against.\n * When provided, enables tool input validation and constrained schema generation.\n * @returns A {@link CompilerResult} containing diagnostics, the execution graph\n * (if structurally valid), an optimized workflow (if error-free), and\n * constrained tool schemas (if tools were provided).\n */\nexport async function compileWorkflow(\n workflow: WorkflowDefinition,\n options?: {\n tools?: ToolSet;\n limits?: CompilerLimits;\n },\n): Promise<CompilerResult> {\n const diagnostics: Diagnostic[] = [];\n\n // Pass 1: Build execution graph\n const graphResult = buildGraph(workflow);\n diagnostics.push(...graphResult.diagnostics);\n\n // Pass 2: Validate step references\n const refDiagnostics = validateReferences(workflow);\n // Deduplicate MISSING_INITIAL_STEP (emitted by both build-graph and validate-references)\n for (const d of refDiagnostics) {\n if (\n d.code === \"MISSING_INITIAL_STEP\" &&\n diagnostics.some((e) => e.code === \"MISSING_INITIAL_STEP\")\n ) {\n continue;\n }\n diagnostics.push(d);\n }\n\n // Pass 2b: Validate sleep/wait literal values against configured limits\n diagnostics.push(...validateLimits(workflow, options?.limits));\n\n // Pass 2c: Warn about unsupported JSON Schema keywords in outputFormat\n diagnostics.push(...validateOutputSchemas(workflow));\n\n // Pass 3: Extract tool schemas (needed by control flow and for-each validation)\n let constrainedToolSchemas: ConstrainedToolSchemaMap | null = null;\n let toolSchemas: ToolDefinitionMap | null = null;\n if (options?.tools) {\n toolSchemas = await extractToolSchemas(options.tools);\n diagnostics.push(...validateTools(workflow, toolSchemas));\n constrainedToolSchemas = generateConstrainedToolSchemas(\n workflow,\n toolSchemas,\n );\n }\n\n // Pass 4+: Only proceed with graph-dependent passes if we have a valid graph\n if (graphResult.graph) {\n diagnostics.push(\n ...validateControlFlow(workflow, graphResult.graph, toolSchemas),\n );\n\n diagnostics.push(...validateJmespath(workflow, graphResult.graph));\n\n // Validate property paths in all expressions against known output schemas\n diagnostics.push(\n ...validateExpressionPaths(workflow, graphResult.graph, toolSchemas),\n );\n\n // Validate for-each targets resolve to array types\n if (toolSchemas) {\n diagnostics.push(\n ...validateForeachTarget(workflow, graphResult.graph, toolSchemas),\n );\n diagnostics.push(\n ...validateToolInputTypes(workflow, graphResult.graph, toolSchemas),\n );\n }\n }\n\n // Final pass: apply best-practice transformations (non-destructive)\n const hasErrors = diagnostics.some((d) => d.severity === \"error\");\n let optimizedWorkflow: WorkflowDefinition | null = null;\n if (graphResult.graph && !hasErrors) {\n const bpResult = applyBestPractices(workflow, graphResult.graph);\n optimizedWorkflow = bpResult.workflow;\n diagnostics.push(...bpResult.diagnostics);\n }\n\n return {\n diagnostics,\n graph: graphResult.graph,\n workflow: optimizedWorkflow,\n constrainedToolSchemas,\n };\n}\n\nexport async function extractToolSchemas(\n tools: ToolSet,\n): Promise<ToolDefinitionMap> {\n const schemas: ToolDefinitionMap = {};\n for (const [name, toolDef] of Object.entries(tools)) {\n const jsonSchema = await asSchema(toolDef.inputSchema).jsonSchema;\n schemas[name] = {\n description: toolDef.description,\n inputSchema: jsonSchema as ToolDefinitionMap[string][\"inputSchema\"],\n };\n if (toolDef.outputSchema) {\n schemas[name].outputSchema = (await asSchema(toolDef.outputSchema)\n .jsonSchema) as Record<string, unknown>;\n }\n }\n return schemas;\n}\n\nexport type {\n CompilerLimits,\n CompilerResult,\n ConstrainedToolSchema,\n ConstrainedToolSchemaMap,\n Diagnostic,\n DiagnosticCode,\n DiagnosticLocation,\n DiagnosticSeverity,\n ExecutionGraph,\n ToolDefinitionMap,\n ToolSchemaDefinition,\n} from \"./types\";\n",
6
6
  "import type { WorkflowDefinition, WorkflowStep } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph } from \"../types\";\n\ninterface BestPracticeRuleResult {\n workflow: WorkflowDefinition;\n diagnostics: Diagnostic[];\n}\n\n/**\n * A best-practice rule that can non-destructively modify a workflow.\n * Each rule receives a deep-cloned workflow and the execution graph,\n * and returns the (possibly modified) workflow along with any diagnostics.\n */\nexport type BestPracticeRule = (\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n) => BestPracticeRuleResult;\n\n/**\n * Registry of best-practice rules applied in order.\n * Add new rules here to have them run automatically.\n */\nconst rules: BestPracticeRule[] = [addMissingStartStep, addMissingEndSteps];\n\n/**\n * Applies all registered best-practice rules to a deep copy of the workflow.\n * The original workflow is never mutated.\n */\nexport function applyBestPractices(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): BestPracticeRuleResult {\n let result = structuredClone(workflow);\n const allDiagnostics: Diagnostic[] = [];\n\n for (const rule of rules) {\n const ruleResult = rule(result, graph);\n result = ruleResult.workflow;\n allDiagnostics.push(...ruleResult.diagnostics);\n }\n\n return { workflow: result, diagnostics: allDiagnostics };\n}\n\n/**\n * Ensures the workflow has a start step. If none exists, one is\n * auto-inserted with an empty input schema.\n */\nfunction addMissingStartStep(\n workflow: WorkflowDefinition,\n _graph: ExecutionGraph,\n): BestPracticeRuleResult {\n const diagnostics: Diagnostic[] = [];\n\n const hasStartStep = workflow.steps.some((s) => s.type === \"start\");\n if (hasStartStep) {\n return { workflow, diagnostics };\n }\n\n const startStepId = \"__start\";\n const oldInitialStepId = workflow.initialStepId;\n\n const startStep: WorkflowStep = {\n id: startStepId,\n name: \"Start\",\n description: \"Auto-generated start step\",\n type: \"start\",\n nextStepId: oldInitialStepId,\n };\n\n workflow.steps.unshift(startStep);\n workflow.initialStepId = startStepId;\n\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: null, field: \"initialStepId\" },\n message:\n \"Workflow has no start step; one was automatically added with an empty input schema\",\n code: \"MISSING_START_STEP\",\n });\n\n return { workflow, diagnostics };\n}\n\n/**\n * Ensures every terminal step (a step with no nextStepId that isn't\n * already an \"end\" step) gets an explicit \"end\" step appended.\n */\nfunction addMissingEndSteps(\n workflow: WorkflowDefinition,\n _graph: ExecutionGraph,\n): BestPracticeRuleResult {\n const newEndSteps: WorkflowStep[] = [];\n\n for (const step of workflow.steps) {\n if (step.type === \"end\") continue;\n if (step.nextStepId) continue;\n\n const endStepId = `${step.id}_end`;\n step.nextStepId = endStepId;\n newEndSteps.push({\n id: endStepId,\n name: \"End\",\n description: `End of chain after ${step.id}`,\n type: \"end\",\n });\n }\n\n workflow.steps.push(...newEndSteps);\n return { workflow, diagnostics: [] };\n}\n",
7
7
  "import type { WorkflowStep } from \"../../types\";\n\nexport function buildStepIndex(steps: WorkflowStep[]): {\n index: Map<string, WorkflowStep>;\n duplicates: string[];\n} {\n const index = new Map<string, WorkflowStep>();\n const duplicates: string[] = [];\n\n for (const step of steps) {\n if (index.has(step.id)) {\n duplicates.push(step.id);\n } else {\n index.set(step.id, step);\n }\n }\n\n return { index, duplicates };\n}\n\nexport function computeSuccessors(\n stepIndex: Map<string, WorkflowStep>,\n): Map<string, Set<string>> {\n const successors = new Map<string, Set<string>>();\n\n for (const [id, step] of stepIndex) {\n const succs = new Set<string>();\n\n if (step.nextStepId) {\n succs.add(step.nextStepId);\n }\n\n if (step.type === \"switch-case\") {\n for (const c of step.params.cases) {\n succs.add(c.branchBodyStepId);\n }\n }\n\n if (step.type === \"for-each\") {\n succs.add(step.params.loopBodyStepId);\n }\n\n if (step.type === \"wait-for-condition\") {\n succs.add(step.params.conditionStepId);\n }\n\n successors.set(id, succs);\n }\n\n return successors;\n}\n\nexport function computeReachability(\n initialStepId: string,\n successors: Map<string, Set<string>>,\n): Set<string> {\n const reachable = new Set<string>();\n const queue = [initialStepId];\n\n while (queue.length > 0) {\n const current = queue.shift();\n if (current === undefined) break;\n if (reachable.has(current)) continue;\n reachable.add(current);\n\n const succs = successors.get(current);\n if (succs) {\n for (const s of succs) {\n if (!reachable.has(s)) {\n queue.push(s);\n }\n }\n }\n }\n\n return reachable;\n}\n\n/**\n * Detect cycles using DFS with white/gray/black coloring.\n * Returns arrays of step IDs forming each detected cycle.\n */\nexport function detectCycles(\n stepIndex: Map<string, WorkflowStep>,\n successors: Map<string, Set<string>>,\n): string[][] {\n const WHITE = 0;\n const GRAY = 1;\n const BLACK = 2;\n\n const color = new Map<string, number>();\n for (const id of stepIndex.keys()) {\n color.set(id, WHITE);\n }\n\n const cycles: string[][] = [];\n const path: string[] = [];\n\n function dfs(node: string) {\n if (!stepIndex.has(node)) return;\n\n color.set(node, GRAY);\n path.push(node);\n\n const succs = successors.get(node);\n if (succs) {\n for (const next of succs) {\n if (!stepIndex.has(next)) continue;\n\n const c = color.get(next);\n if (c === undefined) continue;\n if (c === GRAY) {\n // Found a cycle — extract the cycle from the path\n const cycleStart = path.indexOf(next);\n cycles.push(path.slice(cycleStart));\n } else if (c === WHITE) {\n dfs(next);\n }\n }\n }\n\n path.pop();\n color.set(node, BLACK);\n }\n\n for (const id of stepIndex.keys()) {\n if (color.get(id) === WHITE) {\n dfs(id);\n }\n }\n\n return cycles;\n}\n\n/**\n * Compute the set of predecessor step IDs for each step.\n * A predecessor of step X is any step that must have executed before X\n * in the execution order.\n *\n * This uses topological order: for each step, its predecessors are the\n * union of all steps that can reach it via successor edges.\n */\nexport function computePredecessors(\n topologicalOrder: string[],\n successors: Map<string, Set<string>>,\n): Map<string, Set<string>> {\n const predecessors = new Map<string, Set<string>>();\n\n for (const id of topologicalOrder) {\n predecessors.set(id, new Set());\n }\n\n for (const id of topologicalOrder) {\n const succs = successors.get(id);\n if (!succs) continue;\n\n for (const succ of succs) {\n const predSet = predecessors.get(succ);\n if (!predSet) continue;\n\n // succ's predecessors include id and all of id's predecessors\n predSet.add(id);\n const idPreds = predecessors.get(id);\n if (idPreds) {\n for (const p of idPreds) {\n predSet.add(p);\n }\n }\n }\n }\n\n return predecessors;\n}\n\n/**\n * Compute topological order using Kahn's algorithm.\n * Returns null if cycles exist.\n */\nexport function topologicalSort(\n stepIds: string[],\n successors: Map<string, Set<string>>,\n): string[] | null {\n const inDegree = new Map<string, number>();\n const stepIdSet = new Set(stepIds);\n\n for (const id of stepIds) {\n inDegree.set(id, 0);\n }\n\n for (const id of stepIds) {\n const succs = successors.get(id);\n if (!succs) continue;\n for (const s of succs) {\n if (stepIdSet.has(s)) {\n inDegree.set(s, (inDegree.get(s) ?? 0) + 1);\n }\n }\n }\n\n const queue: string[] = [];\n for (const [id, deg] of inDegree) {\n if (deg === 0) queue.push(id);\n }\n\n const order: string[] = [];\n while (queue.length > 0) {\n const node = queue.shift();\n if (node === undefined) break;\n order.push(node);\n\n const succs = successors.get(node);\n if (!succs) continue;\n for (const s of succs) {\n if (!stepIdSet.has(s)) continue;\n const currentDeg = inDegree.get(s);\n if (currentDeg === undefined) continue;\n const newDeg = currentDeg - 1;\n inDegree.set(s, newDeg);\n if (newDeg === 0) {\n queue.push(s);\n }\n }\n }\n\n return order.length === stepIds.length ? order : null;\n}\n\n/**\n * Walk the execution graph to determine which loop variables (itemName)\n * are in scope at each step, and which steps belong to a body (loop or branch).\n */\nexport function computeLoopScopesAndOwnership(\n initialStepId: string,\n stepIndex: Map<string, WorkflowStep>,\n): {\n loopVariablesInScope: Map<string, Set<string>>;\n bodyOwnership: Map<string, string>;\n} {\n const loopVariablesInScope = new Map<string, Set<string>>();\n const bodyOwnership = new Map<string, string>();\n\n function walkChain(\n startId: string,\n loopVars: Set<string>,\n ownerStepId: string | null,\n ) {\n // First pass: claim all steps on this chain (following nextStepId only)\n // This ensures the main chain is claimed before body sub-chains,\n // so body chains can't accidentally claim main-chain steps.\n let currentId: string | undefined = startId;\n const chainSteps: import(\"../../types\").WorkflowStep[] = [];\n\n while (currentId) {\n if (loopVariablesInScope.has(currentId)) break;\n\n const step = stepIndex.get(currentId);\n if (!step) break;\n\n loopVariablesInScope.set(currentId, new Set(loopVars));\n if (ownerStepId !== null) {\n bodyOwnership.set(currentId, ownerStepId);\n }\n\n chainSteps.push(step);\n currentId = step.nextStepId;\n }\n\n // Second pass: recurse into control flow sub-chains (bodies)\n for (const step of chainSteps) {\n if (step.type === \"for-each\") {\n const innerVars = new Set(loopVars);\n innerVars.add(step.params.itemName);\n walkChain(step.params.loopBodyStepId, innerVars, step.id);\n }\n\n if (step.type === \"switch-case\") {\n for (const c of step.params.cases) {\n walkChain(c.branchBodyStepId, loopVars, step.id);\n }\n }\n\n if (step.type === \"wait-for-condition\") {\n walkChain(step.params.conditionStepId, loopVars, step.id);\n }\n }\n }\n\n walkChain(initialStepId, new Set(), null);\n\n return { loopVariablesInScope, bodyOwnership };\n}\n",
8
8
  "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph } from \"../types\";\nimport {\n buildStepIndex,\n computeLoopScopesAndOwnership,\n computePredecessors,\n computeReachability,\n computeSuccessors,\n detectCycles,\n topologicalSort,\n} from \"../utils/graph\";\n\nexport function buildGraph(workflow: WorkflowDefinition): {\n graph: ExecutionGraph | null;\n diagnostics: Diagnostic[];\n} {\n const diagnostics: Diagnostic[] = [];\n\n // Validate step ID format\n const VALID_STEP_ID = /^[a-zA-Z_][a-zA-Z0-9_]*$/;\n for (const step of workflow.steps) {\n if (!VALID_STEP_ID.test(step.id)) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"id\" },\n message: `Step ID '${step.id}' is invalid — must match [a-zA-Z_][a-zA-Z0-9_]* (use underscores, not hyphens)`,\n code: \"INVALID_STEP_ID\",\n });\n }\n }\n\n // Validate itemName format and shadowing\n const stepIdSet = new Set(workflow.steps.map((s) => s.id));\n for (const step of workflow.steps) {\n if (step.type === \"for-each\") {\n const { itemName } = step.params;\n if (!VALID_STEP_ID.test(itemName)) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.itemName\" },\n message: `Item name '${itemName}' is invalid — must match [a-zA-Z_][a-zA-Z0-9_]*`,\n code: \"INVALID_ITEM_NAME\",\n });\n }\n if (stepIdSet.has(itemName)) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: step.id, field: \"params.itemName\" },\n message: `Item name '${itemName}' shadows step ID '${itemName}' — references to '${itemName}' inside the loop body will resolve to the loop variable, not the step output`,\n code: \"ITEM_NAME_SHADOWS_STEP_ID\",\n });\n }\n }\n }\n\n // Build step index, detect duplicates\n const { index: stepIndex, duplicates } = buildStepIndex(workflow.steps);\n for (const dupId of duplicates) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: dupId, field: \"id\" },\n message: `Duplicate step ID '${dupId}'`,\n code: \"DUPLICATE_STEP_ID\",\n });\n }\n\n // Check initialStepId exists\n if (!stepIndex.has(workflow.initialStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: null, field: \"initialStepId\" },\n message: `Initial step '${workflow.initialStepId}' does not exist`,\n code: \"MISSING_INITIAL_STEP\",\n });\n // Can't build a graph without a valid initial step\n return { graph: null, diagnostics };\n }\n\n // If there are duplicate IDs, the step index is unreliable\n if (duplicates.length > 0) {\n return { graph: null, diagnostics };\n }\n\n const successors = computeSuccessors(stepIndex);\n\n // Detect cycles\n const cycles = detectCycles(stepIndex, successors);\n for (const cycle of cycles) {\n const firstStep = cycle[0];\n if (!firstStep) continue;\n diagnostics.push({\n severity: \"error\",\n location: { stepId: firstStep, field: \"nextStepId\" },\n message: `Cycle detected: ${cycle.join(\" → \")} → ${firstStep}`,\n code: \"CYCLE_DETECTED\",\n });\n }\n\n // Compute reachability\n const reachableSteps = computeReachability(\n workflow.initialStepId,\n successors,\n );\n\n // Warn about unreachable steps\n for (const [id] of stepIndex) {\n if (!reachableSteps.has(id)) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: id, field: \"id\" },\n message: `Step '${id}' is not reachable from initial step '${workflow.initialStepId}'`,\n code: \"UNREACHABLE_STEP\",\n });\n }\n }\n\n // If cycles exist, we can't compute topological order or predecessors\n if (cycles.length > 0) {\n return { graph: null, diagnostics };\n }\n\n // Compute topological order\n const reachableIds = [...reachableSteps];\n const topologicalOrder = topologicalSort(reachableIds, successors);\n if (!topologicalOrder) {\n // Shouldn't happen since we already checked for cycles\n return { graph: null, diagnostics };\n }\n\n // Compute predecessors\n const predecessors = computePredecessors(topologicalOrder, successors);\n\n // Compute loop variable scopes and body ownership\n const { loopVariablesInScope, bodyOwnership } = computeLoopScopesAndOwnership(\n workflow.initialStepId,\n stepIndex,\n );\n\n return {\n graph: {\n stepIndex,\n successors,\n predecessors,\n topologicalOrder,\n reachableSteps,\n loopVariablesInScope,\n bodyOwnership,\n },\n diagnostics,\n };\n}\n",
9
9
  "import type { WorkflowDefinition } from \"../../types\";\nimport type {\n ConstrainedToolSchema,\n ConstrainedToolSchemaMap,\n ToolDefinitionMap,\n} from \"../types\";\n\n// ─── Internal Types ──────────────────────────────────────────────\n\ninterface CallSiteKeyInfo {\n type: \"literal\";\n value: unknown;\n}\n\ninterface CallSiteKeyDynamic {\n type: \"jmespath\";\n}\n\ninterface CallSiteInfo {\n stepId: string;\n keys: Map<string, CallSiteKeyInfo | CallSiteKeyDynamic>;\n}\n\n// ─── Phase 1: Collect Call Sites ─────────────────────────────────\n\nfunction collectCallSites(\n workflow: WorkflowDefinition,\n): Map<string, CallSiteInfo[]> {\n const callSitesByTool = new Map<string, CallSiteInfo[]>();\n\n for (const step of workflow.steps) {\n if (step.type !== \"tool-call\") continue;\n\n const { toolName, toolInput } = step.params;\n const keys = new Map<string, CallSiteKeyInfo | CallSiteKeyDynamic>();\n\n for (const [key, expr] of Object.entries(toolInput)) {\n const expression = expr as { type: string; value?: unknown };\n if (expression.type === \"literal\") {\n keys.set(key, { type: \"literal\", value: expression.value });\n } else {\n keys.set(key, { type: \"jmespath\" });\n }\n }\n\n let sites = callSitesByTool.get(toolName);\n if (!sites) {\n sites = [];\n callSitesByTool.set(toolName, sites);\n }\n sites.push({ stepId: step.id, keys });\n }\n\n return callSitesByTool;\n}\n\n// ─── Phase 2–3: Analyze and Constrain Properties ─────────────────\n\nfunction constrainProperty(\n callSites: CallSiteInfo[],\n key: string,\n originalPropertySchema: unknown,\n): { schema: unknown; allLiteral: boolean; providedInAll: boolean } {\n let providedCount = 0;\n let allLiteral = true;\n const literalValues: unknown[] = [];\n const seen = new Set<string>();\n\n for (const site of callSites) {\n const entry = site.keys.get(key);\n if (!entry) continue;\n\n providedCount++;\n\n if (entry.type === \"jmespath\") {\n allLiteral = false;\n } else {\n const serialized = JSON.stringify(entry.value);\n if (!seen.has(serialized)) {\n seen.add(serialized);\n literalValues.push(entry.value);\n }\n }\n }\n\n const providedInAll = providedCount === callSites.length;\n\n if (!allLiteral) {\n return { schema: originalPropertySchema, allLiteral: false, providedInAll };\n }\n\n const original =\n originalPropertySchema && typeof originalPropertySchema === \"object\"\n ? (originalPropertySchema as Record<string, unknown>)\n : {};\n\n if (literalValues.length === 1) {\n return {\n schema: { ...original, const: literalValues[0] },\n allLiteral: true,\n providedInAll,\n };\n }\n\n return {\n schema: { ...original, enum: literalValues },\n allLiteral: true,\n providedInAll,\n };\n}\n\n// ─── Phase 4: Assemble Constrained Schemas ───────────────────────\n\nexport function generateConstrainedToolSchemas(\n workflow: WorkflowDefinition,\n tools: ToolDefinitionMap,\n): ConstrainedToolSchemaMap {\n const callSitesByTool = collectCallSites(workflow);\n const result: ConstrainedToolSchemaMap = {};\n\n for (const [toolName, callSites] of callSitesByTool) {\n const toolDef = tools[toolName];\n if (!toolDef) continue; // Unknown tool — already reported by validate-tools\n\n const originalProperties = toolDef.inputSchema.properties ?? {};\n\n // Collect all keys used across any call site\n const allUsedKeys = new Set<string>();\n for (const site of callSites) {\n for (const key of site.keys.keys()) {\n allUsedKeys.add(key);\n }\n }\n\n const constrainedProperties: Record<string, unknown> = {};\n const requiredKeys: string[] = [];\n let fullyStatic = true;\n\n for (const key of allUsedKeys) {\n const originalProp = originalProperties[key];\n if (originalProp === undefined) continue; // Extra key not in schema — skip\n\n const { schema, allLiteral, providedInAll } = constrainProperty(\n callSites,\n key,\n originalProp,\n );\n\n constrainedProperties[key] = schema;\n\n if (providedInAll) {\n requiredKeys.push(key);\n }\n\n if (!allLiteral) {\n fullyStatic = false;\n }\n }\n\n const constrained: ConstrainedToolSchema = {\n inputSchema: {\n required: requiredKeys.sort(),\n properties: constrainedProperties,\n },\n fullyStatic,\n callSites: callSites.map((s) => s.stepId).sort(),\n };\n\n if (toolDef.outputSchema) {\n constrained.outputSchema = toolDef.outputSchema;\n }\n\n result[toolName] = constrained;\n }\n\n // Agent-loop tools are used dynamically — the agent decides what inputs\n // to pass at runtime. Mark them as not fully static and add call sites.\n for (const step of workflow.steps) {\n if (step.type !== \"agent-loop\") continue;\n for (const toolName of step.params.tools) {\n if (result[toolName]) {\n result[toolName].fullyStatic = false;\n if (!result[toolName].callSites.includes(step.id)) {\n result[toolName].callSites.push(step.id);\n result[toolName].callSites.sort();\n }\n } else if (tools[toolName]) {\n // Tool is only used by agent-loop, not by any tool-call step\n const toolDef = tools[toolName];\n const constrained: ConstrainedToolSchema = {\n inputSchema: {\n required: [],\n properties: {},\n },\n fullyStatic: false,\n callSites: [step.id],\n };\n if (toolDef.outputSchema) {\n constrained.outputSchema = toolDef.outputSchema;\n }\n result[toolName] = constrained;\n }\n }\n }\n\n return result;\n}\n",
10
- "import type { WorkflowDefinition, WorkflowStep } from \"../../types\";\nimport type { ExecutionGraph, ToolDefinitionMap } from \"../types\";\n\n/**\n * Parse a simple dotted JMESPath expression (e.g. \"step_id.field.nested\")\n * into path segments. Returns null for complex expressions (filters,\n * projections, functions, etc.).\n */\nexport function parseSimplePath(expression: string): string[] | null {\n if (!/^[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*$/.test(expression)) {\n return null;\n }\n return expression.split(\".\");\n}\n\n/**\n * Walk a JSON Schema along a dotted path, resolving through `properties`\n * at each segment. Returns null if the path can't be resolved.\n */\nexport function resolvePath(\n schema: Record<string, unknown>,\n path: string[],\n): Record<string, unknown> | null {\n let current = schema;\n for (const segment of path) {\n const properties = current.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties?.[segment]) return null;\n current = properties[segment];\n }\n return current;\n}\n\n/**\n * Extract the `type` string from a JSON Schema object.\n */\nexport function getSchemaType(schema: Record<string, unknown>): string | null {\n if (typeof schema.type === \"string\") return schema.type;\n return null;\n}\n\n/**\n * Find property names in a schema that are arrays.\n */\nexport function findArrayProperties(schema: Record<string, unknown>): string[] {\n const properties = schema.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties) return [];\n return Object.entries(properties)\n .filter(([_, propSchema]) => propSchema.type === \"array\")\n .map(([name]) => name);\n}\n\n/**\n * Resolve the output schema of a workflow step. Returns null if the\n * output schema is unknown or can't be determined statically.\n */\nexport function getStepOutputSchema(\n step: WorkflowStep,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n switch (step.type) {\n case \"tool-call\": {\n if (!tools) return null;\n const toolDef = tools[step.params.toolName];\n return toolDef?.outputSchema ?? null;\n }\n case \"llm-prompt\":\n case \"extract-data\":\n case \"agent-loop\":\n return (step.params.outputFormat as Record<string, unknown>) ?? null;\n case \"for-each\": {\n // for-each produces an array whose items have the shape of the loop body's last output\n const bodyItemSchema = resolveChainOutputSchema(\n step.params.loopBodyStepId,\n tools,\n workflow,\n graph,\n );\n if (!bodyItemSchema) return null;\n return { type: \"array\", items: bodyItemSchema };\n }\n case \"switch-case\":\n // Can't statically determine which branch runs; return null\n // (individual branches are checked separately via output points)\n return null;\n case \"start\":\n return null;\n case \"end\":\n return null;\n default:\n return null;\n }\n}\n\n/**\n * Resolve the output schema that a chain produces by walking it to its\n * terminal step and returning that step's output schema.\n */\nfunction resolveChainOutputSchema(\n startId: string,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n let currentId: string | undefined = startId;\n const visited = new Set<string>();\n\n while (currentId) {\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n const step = graph.stepIndex.get(currentId);\n if (!step) break;\n\n if (!step.nextStepId) {\n return getStepOutputSchema(step, tools, workflow, graph);\n }\n\n currentId = step.nextStepId;\n }\n\n return null;\n}\n\n/**\n * Resolve a JMESPath output expression to a JSON Schema by tracing\n * through step output schemas. Only handles simple dotted paths.\n * Returns null for complex expressions or when schemas are unavailable.\n */\nexport function resolveExpressionSchema(\n expression: string,\n _endStepId: string,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n const segments = parseSimplePath(expression);\n if (!segments) return null;\n\n const [rootId, ...fieldPath] = segments;\n if (!rootId) return null;\n\n let rootSchema: Record<string, unknown> | null = null;\n if (rootId === \"input\" && workflow.inputSchema) {\n rootSchema = workflow.inputSchema as Record<string, unknown>;\n } else {\n const referencedStep = graph.stepIndex.get(rootId);\n if (!referencedStep) return null;\n rootSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);\n }\n\n if (!rootSchema) return null;\n\n if (fieldPath.length === 0) return rootSchema;\n return resolvePath(rootSchema, fieldPath);\n}\n",
10
+ "import type { WorkflowDefinition, WorkflowStep } from \"../../types\";\nimport type { ExecutionGraph, ToolDefinitionMap } from \"../types\";\n\n/**\n * Parse a simple dotted JMESPath expression (e.g. \"step_id.field.nested\")\n * into path segments. Returns null for complex expressions (filters,\n * projections, functions, etc.).\n */\nexport function parseSimplePath(expression: string): string[] | null {\n if (!/^[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z_][a-zA-Z0-9_]*)*$/.test(expression)) {\n return null;\n }\n return expression.split(\".\");\n}\n\n/**\n * Walk a JSON Schema along a dotted path, resolving through `properties`\n * at each segment. Returns null if the path can't be resolved.\n */\nexport function resolvePath(\n schema: Record<string, unknown>,\n path: string[],\n): Record<string, unknown> | null {\n let current = schema;\n for (const segment of path) {\n const properties = current.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties?.[segment]) return null;\n current = properties[segment];\n }\n return current;\n}\n\n/**\n * Extract the `type` string from a JSON Schema object.\n */\nexport function getSchemaType(schema: Record<string, unknown>): string | null {\n if (typeof schema.type === \"string\") return schema.type;\n return null;\n}\n\n/**\n * Find property names in a schema that are arrays.\n */\nexport function findArrayProperties(schema: Record<string, unknown>): string[] {\n const properties = schema.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties) return [];\n return Object.entries(properties)\n .filter(([_, propSchema]) => propSchema.type === \"array\")\n .map(([name]) => name);\n}\n\n/**\n * Resolve the output schema of a workflow step. Returns null if the\n * output schema is unknown or can't be determined statically.\n */\nexport function getStepOutputSchema(\n step: WorkflowStep,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n switch (step.type) {\n case \"tool-call\": {\n if (!tools) return null;\n const toolDef = tools[step.params.toolName];\n return toolDef?.outputSchema ?? null;\n }\n case \"llm-prompt\":\n case \"extract-data\":\n case \"agent-loop\":\n return (step.params.outputFormat as Record<string, unknown>) ?? null;\n case \"for-each\": {\n // for-each produces an array whose items have the shape of the loop body's last output\n const bodyItemSchema = resolveChainOutputSchema(\n step.params.loopBodyStepId,\n tools,\n workflow,\n graph,\n );\n if (!bodyItemSchema) return null;\n return { type: \"array\", items: bodyItemSchema };\n }\n case \"switch-case\":\n // Can't statically determine which branch runs; return null\n // (individual branches are checked separately via output points)\n return null;\n case \"start\":\n return null;\n case \"end\":\n return null;\n default:\n return null;\n }\n}\n\n/**\n * Resolve the output schema that a chain produces by walking it to its\n * terminal step and returning that step's output schema.\n */\nfunction resolveChainOutputSchema(\n startId: string,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n let currentId: string | undefined = startId;\n const visited = new Set<string>();\n\n while (currentId) {\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n const step = graph.stepIndex.get(currentId);\n if (!step) break;\n\n if (!step.nextStepId) {\n return getStepOutputSchema(step, tools, workflow, graph);\n }\n\n currentId = step.nextStepId;\n }\n\n return null;\n}\n\n/**\n * Discriminated result of resolving a JMESPath expression's property path\n * against known output schemas. Unlike {@link resolveExpressionSchema},\n * this distinguishes between \"can't validate\" and \"property doesn't exist\".\n */\nexport type ExpressionPathResult =\n | { status: \"resolved\"; schema: Record<string, unknown> }\n | { status: \"no_schema\" }\n | { status: \"not_simple\" }\n | { status: \"unknown_root\" }\n | {\n status: \"property_not_found\";\n failedAtSegment: string;\n parentSchema: Record<string, unknown>;\n };\n\n/**\n * Resolve a JMESPath expression's full property path and report why\n * resolution failed. Only handles simple dotted paths.\n */\nexport function resolveExpressionPath(\n expression: string,\n _contextStepId: string,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): ExpressionPathResult {\n const segments = parseSimplePath(expression);\n if (!segments) return { status: \"not_simple\" };\n\n const [rootId, ...fieldPath] = segments;\n if (!rootId) return { status: \"not_simple\" };\n\n let rootSchema: Record<string, unknown> | null = null;\n if (rootId === \"input\" && workflow.inputSchema) {\n rootSchema = workflow.inputSchema as Record<string, unknown>;\n } else {\n const referencedStep = graph.stepIndex.get(rootId);\n if (!referencedStep) return { status: \"unknown_root\" };\n rootSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);\n }\n\n if (!rootSchema) return { status: \"no_schema\" };\n if (fieldPath.length === 0) return { status: \"resolved\", schema: rootSchema };\n\n let current = rootSchema;\n for (const segment of fieldPath) {\n const properties = current.properties as\n | Record<string, Record<string, unknown>>\n | undefined;\n if (!properties?.[segment]) {\n return {\n status: \"property_not_found\",\n failedAtSegment: segment,\n parentSchema: current,\n };\n }\n current = properties[segment];\n }\n\n return { status: \"resolved\", schema: current };\n}\n\n/**\n * Resolve a JMESPath output expression to a JSON Schema by tracing\n * through step output schemas. Only handles simple dotted paths.\n * Returns null for complex expressions or when schemas are unavailable.\n */\nexport function resolveExpressionSchema(\n expression: string,\n _endStepId: string,\n tools: ToolDefinitionMap | null,\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Record<string, unknown> | null {\n const segments = parseSimplePath(expression);\n if (!segments) return null;\n\n const [rootId, ...fieldPath] = segments;\n if (!rootId) return null;\n\n let rootSchema: Record<string, unknown> | null = null;\n if (rootId === \"input\" && workflow.inputSchema) {\n rootSchema = workflow.inputSchema as Record<string, unknown>;\n } else {\n const referencedStep = graph.stepIndex.get(rootId);\n if (!referencedStep) return null;\n rootSchema = getStepOutputSchema(referencedStep, tools, workflow, graph);\n }\n\n if (!rootSchema) return null;\n\n if (fieldPath.length === 0) return rootSchema;\n return resolvePath(rootSchema, fieldPath);\n}\n",
11
11
  "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph, ToolDefinitionMap } from \"../types\";\nimport { resolveExpressionSchema } from \"../utils/schema\";\n\nexport function validateControlFlow(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n tools?: ToolDefinitionMap | null,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n // End steps should not have nextStepId\n if (step.type === \"end\" && step.nextStepId) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"nextStepId\" },\n message: `End step '${step.id}' should not have a nextStepId`,\n code: \"END_STEP_HAS_NEXT\",\n });\n }\n\n // Switch-case: at most one default case\n if (step.type === \"switch-case\") {\n const defaultCount = step.params.cases.filter(\n (c) => c.value.type === \"default\",\n ).length;\n if (defaultCount > 1) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.cases\" },\n message: `Switch-case step '${step.id}' has ${defaultCount} default cases (expected at most 1)`,\n code: \"MULTIPLE_DEFAULT_CASES\",\n });\n }\n\n // Validate branch bodies don't escape\n for (const [i, c] of step.params.cases.entries()) {\n const escapes = checkBodyEscapes(c.branchBodyStepId, step.id, graph);\n if (escapes) {\n diagnostics.push({\n severity: \"warning\",\n location: {\n stepId: step.id,\n field: `params.cases[${i}].branchBodyStepId`,\n },\n message: `Branch body starting at '${c.branchBodyStepId}' in step '${step.id}' has a step ('${escapes.escapingStep}') whose nextStepId points outside the branch body to '${escapes.target}'`,\n code: \"BRANCH_BODY_ESCAPES\",\n });\n }\n }\n }\n\n // For-each: validate loop body doesn't escape\n if (step.type === \"for-each\") {\n const escapes = checkBodyEscapes(\n step.params.loopBodyStepId,\n step.id,\n graph,\n );\n if (escapes) {\n diagnostics.push({\n severity: \"warning\",\n location: {\n stepId: step.id,\n field: \"params.loopBodyStepId\",\n },\n message: `Loop body starting at '${step.params.loopBodyStepId}' in step '${step.id}' has a step ('${escapes.escapingStep}') whose nextStepId points outside the loop body to '${escapes.target}'`,\n code: \"LOOP_BODY_ESCAPES\",\n });\n }\n }\n\n // Wait-for-condition: validate condition body doesn't escape\n if (step.type === \"wait-for-condition\") {\n const escapes = checkBodyEscapes(\n step.params.conditionStepId,\n step.id,\n graph,\n );\n if (escapes) {\n diagnostics.push({\n severity: \"warning\",\n location: {\n stepId: step.id,\n field: \"params.conditionStepId\",\n },\n message: `Condition body starting at '${step.params.conditionStepId}' in step '${step.id}' has a step ('${escapes.escapingStep}') whose nextStepId points outside the condition body to '${escapes.target}'`,\n code: \"CONDITION_BODY_ESCAPES\",\n });\n }\n }\n }\n\n // Output consistency checks\n if (workflow.outputSchema) {\n // Check that all execution paths reach an end step with a valid output expression\n const outputPoints = findWorkflowOutputPoints(\n workflow.initialStepId,\n graph,\n );\n for (const point of outputPoints) {\n if (point.type === \"missing_end\") {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: point.stepId, field: \"nextStepId\" },\n message: `Step '${point.stepId}' is a terminal step but is not an end step; all execution paths must terminate at an end step when outputSchema is declared`,\n code: \"PATH_MISSING_END_STEP\",\n });\n } else if (point.type === \"end_without_output\") {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: point.stepId, field: \"params\" },\n message: `End step '${point.stepId}' has no output expression, but the workflow declares an outputSchema`,\n code: \"END_STEP_MISSING_OUTPUT\",\n });\n } else if (point.type === \"end_with_output\") {\n // Validate output shapes against outputSchema at compile time\n const step = graph.stepIndex.get(point.stepId);\n if (step?.type === \"end\" && step.params?.output) {\n const expr = step.params.output;\n const outputSchema = workflow.outputSchema as Record<string, unknown>;\n if (expr.type === \"literal\") {\n diagnostics.push(\n ...validateOutputShapeMismatch(\n expr.value,\n outputSchema,\n point.stepId,\n ),\n );\n } else if (expr.type === \"jmespath\") {\n const resolvedSchema = resolveExpressionSchema(\n expr.expression,\n point.stepId,\n tools ?? null,\n workflow,\n graph,\n );\n if (resolvedSchema) {\n diagnostics.push(\n ...validateSchemaCompatibility(\n resolvedSchema,\n outputSchema,\n point.stepId,\n expr.expression,\n ),\n );\n }\n }\n }\n }\n }\n } else {\n for (const step of workflow.steps) {\n if (step.type === \"end\" && step.params?.output) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: step.id, field: \"params.output\" },\n message: `End step '${step.id}' has an output expression, but the workflow does not declare an outputSchema`,\n code: \"END_STEP_UNEXPECTED_OUTPUT\",\n });\n }\n }\n }\n\n return diagnostics;\n}\n\n/**\n * Check if a body chain (loop body or branch body) has a step whose\n * nextStepId points outside the body. Follow the chain from startId\n * through nextStepId links; all steps in this chain should be owned\n * by parentStepId.\n */\nfunction checkBodyEscapes(\n startId: string,\n parentStepId: string,\n graph: ExecutionGraph,\n): { escapingStep: string; target: string } | null {\n let currentId: string | undefined = startId;\n const visited = new Set<string>();\n\n while (currentId) {\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n const step = graph.stepIndex.get(currentId);\n if (!step) break;\n\n if (step.nextStepId) {\n // Check if the next step is still owned by the same parent\n const nextOwner = graph.bodyOwnership.get(step.nextStepId);\n const currentOwner = graph.bodyOwnership.get(currentId);\n\n // The next step is escaping if:\n // 1. The current step is in the body (owned by parentStepId)\n // 2. The next step is NOT in the body (not owned by parentStepId)\n if (\n (currentOwner === parentStepId || currentId === startId) &&\n nextOwner !== parentStepId\n ) {\n return { escapingStep: currentId, target: step.nextStepId };\n }\n }\n\n currentId = step.nextStepId;\n }\n\n return null;\n}\n\ntype OutputPoint =\n | { type: \"end_with_output\"; stepId: string }\n | { type: \"end_without_output\"; stepId: string }\n | { type: \"missing_end\"; stepId: string };\n\n/**\n * Find all workflow output points — the terminal positions where execution\n * stops and produces the workflow's final output. This walks the main chain\n * and recurses into branch/loop bodies when they are terminal (the parent\n * step has no nextStepId).\n */\nfunction findWorkflowOutputPoints(\n startId: string,\n graph: ExecutionGraph,\n): OutputPoint[] {\n return collectOutputPoints(startId, graph, new Set());\n}\n\nfunction collectOutputPoints(\n startId: string,\n graph: ExecutionGraph,\n visited: Set<string>,\n): OutputPoint[] {\n const points: OutputPoint[] = [];\n let currentId: string | undefined = startId;\n\n while (currentId) {\n if (visited.has(currentId)) break;\n visited.add(currentId);\n\n const step = graph.stepIndex.get(currentId);\n if (!step) break;\n\n if (!step.nextStepId) {\n // This is a terminal step on this chain\n if (step.type === \"end\") {\n points.push({\n type: step.params?.output ? \"end_with_output\" : \"end_without_output\",\n stepId: step.id,\n });\n } else if (step.type === \"switch-case\") {\n // Terminal switch-case: each branch is an output point\n for (const c of step.params.cases) {\n points.push(\n ...collectOutputPoints(c.branchBodyStepId, graph, visited),\n );\n }\n } else if (step.type === \"for-each\") {\n // Terminal for-each: loop body determines output shape\n points.push(\n ...collectOutputPoints(step.params.loopBodyStepId, graph, visited),\n );\n } else {\n // Non-end, non-branching terminal step — path doesn't reach an end step\n points.push({ type: \"missing_end\", stepId: step.id });\n }\n break;\n }\n\n currentId = step.nextStepId;\n }\n\n return points;\n}\n\n/**\n * Validate a literal output value against the outputSchema at compile time.\n */\nfunction validateOutputShapeMismatch(\n value: unknown,\n schema: Record<string, unknown>,\n stepId: string,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n const expectedType = schema.type;\n\n if (typeof expectedType !== \"string\") return diagnostics;\n\n const actualType = getValueType(value);\n if (expectedType !== actualType) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output literal has type '${actualType}' but outputSchema expects '${expectedType}'`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n return diagnostics;\n }\n\n // For objects, validate required fields and property types\n if (\n expectedType === \"object\" &&\n typeof value === \"object\" &&\n value !== null &&\n !Array.isArray(value)\n ) {\n const obj = value as Record<string, unknown>;\n const required = schema.required;\n if (Array.isArray(required)) {\n const missing = required.filter(\n (key: unknown) => typeof key === \"string\" && !((key as string) in obj),\n );\n if (missing.length > 0) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output literal is missing required field(s): ${missing.join(\", \")}`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n }\n }\n\n const properties = schema.properties;\n if (properties && typeof properties === \"object\") {\n for (const [key, val] of Object.entries(obj)) {\n const propSchema = (properties as Record<string, unknown>)[key];\n if (\n propSchema &&\n typeof propSchema === \"object\" &&\n \"type\" in propSchema\n ) {\n const propExpected = (propSchema as { type: string }).type;\n const propActual = getValueType(val);\n if (propExpected !== propActual) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output literal field '${key}' has type '${propActual}' but schema expects '${propExpected}'`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n }\n }\n }\n }\n }\n\n return diagnostics;\n}\n\nfunction getValueType(value: unknown): string {\n if (value === null) return \"null\";\n if (Array.isArray(value)) return \"array\";\n return typeof value;\n}\n\n/**\n * Validate that a resolved JMESPath expression schema is compatible with\n * the declared outputSchema. Checks root type and, for objects, required\n * fields and property types.\n */\nfunction validateSchemaCompatibility(\n resolvedSchema: Record<string, unknown>,\n outputSchema: Record<string, unknown>,\n stepId: string,\n expression: string,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n const expectedType = outputSchema.type;\n const resolvedType = resolvedSchema.type;\n\n if (typeof expectedType !== \"string\" || typeof resolvedType !== \"string\") {\n return diagnostics;\n }\n\n // Root type check\n if (expectedType !== resolvedType) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output expression '${expression}' resolves to type '${resolvedType}' but outputSchema expects '${expectedType}'`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n return diagnostics;\n }\n\n // For objects, check required fields and property types\n if (expectedType === \"object\") {\n const expectedRequired = outputSchema.required;\n const resolvedProps = (resolvedSchema.properties ?? {}) as Record<\n string,\n Record<string, unknown>\n >;\n\n if (Array.isArray(expectedRequired)) {\n const missing = expectedRequired.filter(\n (key: unknown) =>\n typeof key === \"string\" && !((key as string) in resolvedProps),\n );\n if (missing.length > 0) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output expression '${expression}' schema is missing required field(s): ${missing.join(\", \")}`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n }\n }\n\n const expectedProps = (outputSchema.properties ?? {}) as Record<\n string,\n Record<string, unknown>\n >;\n for (const [key, expectedPropSchema] of Object.entries(expectedProps)) {\n const resolvedPropSchema = resolvedProps[key];\n if (!resolvedPropSchema) continue;\n const expectedPropType = expectedPropSchema.type;\n const resolvedPropType = resolvedPropSchema.type;\n if (\n typeof expectedPropType === \"string\" &&\n typeof resolvedPropType === \"string\" &&\n expectedPropType !== resolvedPropType\n ) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId, field: \"params.output\" },\n message: `End step '${stepId}' output expression '${expression}' field '${key}' has type '${resolvedPropType}' but outputSchema expects '${expectedPropType}'`,\n code: \"LITERAL_OUTPUT_SHAPE_MISMATCH\",\n });\n }\n }\n }\n\n return diagnostics;\n}\n",
12
- "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph, ToolDefinitionMap } from \"../types\";\nimport {\n findArrayProperties,\n getSchemaType,\n getStepOutputSchema,\n parseSimplePath,\n resolvePath,\n} from \"../utils/schema\";\n\nexport function validateForeachTarget(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n tools: ToolDefinitionMap,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n if (step.type !== \"for-each\") continue;\n if (step.params.target.type !== \"jmespath\") continue;\n\n const expression = step.params.target.expression;\n\n // Only handle simple dotted paths (e.g. \"step_id\" or \"step_id.field\")\n const segments = parseSimplePath(expression);\n if (!segments) continue;\n\n const [rootId, ...fieldPath] = segments;\n if (!rootId) continue;\n\n let outputSchema: Record<string, unknown> | null = null;\n if (rootId === \"input\" && workflow.inputSchema) {\n outputSchema = workflow.inputSchema as Record<string, unknown>;\n } else {\n const referencedStep = graph.stepIndex.get(rootId);\n if (!referencedStep) continue; // Handled by jmespath validation\n outputSchema = getStepOutputSchema(\n referencedStep,\n tools,\n workflow,\n graph,\n );\n }\n if (!outputSchema) continue;\n\n const resolvedSchema = resolvePath(outputSchema, fieldPath);\n if (!resolvedSchema) continue;\n\n const resolvedType = getSchemaType(resolvedSchema);\n if (resolvedType === \"array\") continue;\n\n if (resolvedType === \"object\") {\n const suggestions = findArrayProperties(resolvedSchema);\n const hint =\n suggestions.length > 0\n ? ` Did you mean ${suggestions.map((s) => `'${rootId}.${s}'`).join(\" or \")}?`\n : \"\";\n\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.target\" },\n message: `for-each target '${expression}' resolves to an object, not an array.${hint}`,\n code: \"FOREACH_TARGET_NOT_ARRAY\",\n });\n } else if (resolvedType !== null) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.target\" },\n message: `for-each target '${expression}' resolves to type '${resolvedType}', not an array.`,\n code: \"FOREACH_TARGET_NOT_ARRAY\",\n });\n }\n }\n\n return diagnostics;\n}\n",
13
12
  "import { compile } from \"@jmespath-community/jmespath\";\n\n/**\n * Validate that a JMESPath expression is syntactically valid.\n */\nexport function validateJmespathSyntax(\n expression: string,\n): { valid: true } | { valid: false; error: string } {\n try {\n compile(expression);\n return { valid: true };\n } catch (e) {\n return { valid: false, error: (e as Error).message };\n }\n}\n\ninterface ASTNode {\n type: string;\n name?: string;\n left?: ASTNode;\n right?: ASTNode;\n children?: ASTNode[];\n condition?: ASTNode;\n [key: string]: unknown;\n}\n\n/**\n * Extract root identifiers from a JMESPath AST.\n * A \"root identifier\" is a Field node that represents a top-level\n * reference (e.g., `stepId` in `stepId.field`, `foo` in `length(foo.bar)`).\n *\n * We walk the AST and collect Field nodes that appear in \"root position\" —\n * meaning they are the leftmost leaf in a chain of Subexpressions,\n * or standalone fields, or the first field in a function argument.\n */\nexport function extractRootIdentifiers(expression: string): string[] {\n let ast: ASTNode;\n try {\n ast = compile(expression) as unknown as ASTNode;\n } catch {\n return [];\n }\n\n const roots = new Set<string>();\n collectRoots(ast, roots);\n return [...roots];\n}\n\nfunction collectRoots(node: ASTNode, roots: Set<string>): void {\n if (!node || typeof node !== \"object\") return;\n\n switch (node.type) {\n case \"Field\":\n // Standalone field — this IS a root reference\n if (node.name) roots.add(node.name);\n break;\n\n case \"Subexpression\":\n // Only the leftmost field in the chain is a root\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n\n case \"FilterProjection\":\n // Only the left side contains root references.\n // The condition and right are relative to the filtered items,\n // NOT root-level references.\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n\n case \"Projection\":\n case \"Flatten\":\n // The left side contains the root; right is relative\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n\n case \"Function\":\n // Recurse into function arguments\n if (node.children) {\n for (const child of node.children) {\n collectRoots(child, roots);\n }\n }\n break;\n\n case \"MultiSelectList\":\n case \"MultiSelectHash\":\n if (node.children) {\n for (const child of node.children) {\n collectRoots(child, roots);\n }\n }\n break;\n\n case \"Comparator\":\n case \"And\":\n case \"Or\":\n case \"Arithmetic\":\n if (node.left) collectRoots(node.left, roots);\n if (node.right) collectRoots(node.right, roots);\n break;\n\n case \"Not\":\n case \"Negate\":\n if (node.children?.[0]) collectRoots(node.children[0], roots);\n break;\n\n case \"Pipe\":\n // Only the left side of a pipe has root references from the data\n if (node.left) collectRoots(node.left, roots);\n break;\n\n case \"IndexExpression\":\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n\n case \"ValueProjection\":\n case \"Slice\":\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n\n case \"Literal\":\n case \"Current\":\n case \"Identity\":\n case \"Expref\":\n // No root references\n break;\n\n case \"KeyValuePair\": {\n const kvValue = (node as Record<string, ASTNode>).value;\n if (kvValue) {\n collectRoots(kvValue, roots);\n }\n break;\n }\n\n default:\n // Unknown node type — try to recurse into known fields\n if (node.left) collectRoots(node.left, roots);\n if (node.right) collectRoots(node.right, roots);\n if (node.children) {\n for (const child of node.children) {\n collectRoots(child, roots);\n }\n }\n break;\n }\n}\n\n/**\n * Follow the left side of subexpressions/projections to find the\n * leftmost root field.\n */\nfunction collectLeftmostRoot(node: ASTNode, roots: Set<string>): void {\n if (!node) return;\n\n switch (node.type) {\n case \"Field\":\n if (node.name) roots.add(node.name);\n break;\n case \"Subexpression\":\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n case \"FilterProjection\":\n case \"Projection\":\n case \"Flatten\":\n case \"IndexExpression\":\n case \"ValueProjection\":\n case \"Slice\":\n if (node.left) collectLeftmostRoot(node.left, roots);\n break;\n default:\n // For other types (like Arithmetic for hyphenated IDs), fall through\n collectRoots(node, roots);\n break;\n }\n}\n\nexport interface TemplateExpression {\n expression: string;\n start: number;\n end: number;\n}\n\nexport interface TemplateExtractionResult {\n expressions: TemplateExpression[];\n unclosed: number[]; // start positions of unclosed ${\n}\n\n/**\n * Extract all ${...} template expressions from an llm-prompt template string.\n * Also reports positions of unclosed ${ sequences.\n */\nexport function extractTemplateExpressions(\n template: string,\n): TemplateExtractionResult {\n const expressions: TemplateExpression[] = [];\n const unclosed: number[] = [];\n let i = 0;\n\n while (i < template.length) {\n if (template[i] === \"$\" && template[i + 1] === \"{\") {\n const start = i;\n i += 2; // Skip ${\n let depth = 1;\n const exprStart = i;\n\n while (i < template.length && depth > 0) {\n if (template[i] === \"{\") depth++;\n else if (template[i] === \"}\") depth--;\n if (depth > 0) i++;\n }\n\n if (depth === 0) {\n const expression = template.slice(exprStart, i);\n expressions.push({ expression, start, end: i + 1 });\n i++; // Skip closing }\n } else {\n unclosed.push(start);\n }\n } else {\n i++;\n }\n }\n\n return { expressions, unclosed };\n}\n",
14
- "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph } from \"../types\";\nimport {\n extractRootIdentifiers,\n extractTemplateExpressions,\n validateJmespathSyntax,\n} from \"../utils/jmespath-helpers\";\n\ninterface ExpressionInfo {\n expression: string;\n stepId: string;\n field: string;\n}\n\nexport function validateJmespath(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n // Collect all JMESPath expressions with location info\n const { expressions, templateDiagnostics } = collectExpressions(workflow);\n diagnostics.push(...templateDiagnostics);\n\n for (const expr of expressions) {\n // Syntax validation\n const syntaxResult = validateJmespathSyntax(expr.expression);\n if (!syntaxResult.valid) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Invalid JMESPath syntax in '${expr.expression}': ${syntaxResult.error}`,\n code: \"JMESPATH_SYNTAX_ERROR\",\n });\n continue; // Can't do scope validation on invalid syntax\n }\n\n // Scope/reference validation\n validateExpressionScope(expr, graph, !!workflow.inputSchema, diagnostics);\n }\n\n return diagnostics;\n}\n\nfunction collectFromExpressionValue(\n val: { type: string; expression?: string; template?: string },\n stepId: string,\n field: string,\n expressions: ExpressionInfo[],\n templateDiagnostics: Diagnostic[],\n): void {\n if (val.type === \"jmespath\" && val.expression) {\n expressions.push({\n expression: val.expression,\n stepId,\n field: `${field}.expression`,\n });\n } else if (val.type === \"template\" && val.template) {\n const { expressions: templateExprs, unclosed } = extractTemplateExpressions(\n val.template,\n );\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId,\n field: `${field}.template[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: { stepId, field: `${field}.template[${pos}]` },\n message: `Unclosed template expression at position ${pos} in template`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n }\n}\n\nfunction collectExpressions(workflow: WorkflowDefinition): {\n expressions: ExpressionInfo[];\n templateDiagnostics: Diagnostic[];\n} {\n const expressions: ExpressionInfo[] = [];\n const templateDiagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n switch (step.type) {\n case \"tool-call\":\n for (const [key, val] of Object.entries(step.params.toolInput)) {\n collectFromExpressionValue(\n val,\n step.id,\n `params.toolInput.${key}`,\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"switch-case\":\n collectFromExpressionValue(\n step.params.switchOn,\n step.id,\n \"params.switchOn\",\n expressions,\n templateDiagnostics,\n );\n for (const [i, c] of step.params.cases.entries()) {\n collectFromExpressionValue(\n c.value,\n step.id,\n `params.cases[${i}].value`,\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"for-each\":\n collectFromExpressionValue(\n step.params.target,\n step.id,\n \"params.target\",\n expressions,\n templateDiagnostics,\n );\n break;\n\n case \"extract-data\":\n collectFromExpressionValue(\n step.params.sourceData,\n step.id,\n \"params.sourceData\",\n expressions,\n templateDiagnostics,\n );\n break;\n\n case \"start\":\n break;\n\n case \"end\":\n if (step.params?.output) {\n collectFromExpressionValue(\n step.params.output,\n step.id,\n \"params.output\",\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"llm-prompt\": {\n const { expressions: templateExprs, unclosed } =\n extractTemplateExpressions(step.params.prompt);\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId: step.id,\n field: `params.prompt[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: `params.prompt[${pos}]`,\n },\n message: `Unclosed template expression at position ${pos} in prompt`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n break;\n }\n\n case \"agent-loop\": {\n const { expressions: templateExprs, unclosed } =\n extractTemplateExpressions(step.params.instructions);\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId: step.id,\n field: `params.instructions[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: `params.instructions[${pos}]`,\n },\n message: `Unclosed template expression at position ${pos} in instructions`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n if (step.params.maxSteps) {\n collectFromExpressionValue(\n step.params.maxSteps,\n step.id,\n \"params.maxSteps\",\n expressions,\n templateDiagnostics,\n );\n }\n break;\n }\n }\n }\n\n return { expressions, templateDiagnostics };\n}\n\nfunction validateExpressionScope(\n expr: ExpressionInfo,\n graph: ExecutionGraph,\n hasInputSchema: boolean,\n diagnostics: Diagnostic[],\n): void {\n const astRoots = extractRootIdentifiers(expr.expression);\n const loopVars = graph.loopVariablesInScope.get(expr.stepId);\n const predecessors = graph.predecessors.get(expr.stepId);\n\n for (const root of astRoots) {\n // Skip if it's the workflow input alias\n if (root === \"input\" && hasInputSchema) continue;\n\n // Skip if it's a loop variable in scope\n if (loopVars?.has(root)) continue;\n\n // Check if it's a step ID\n if (graph.stepIndex.has(root)) {\n // Check if the step is a predecessor (has executed before this step)\n if (predecessors && !predecessors.has(root)) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Expression '${expr.expression}' references step '${root}' which may not have executed before step '${expr.stepId}'`,\n code: \"JMESPATH_FORWARD_REFERENCE\",\n });\n }\n continue;\n }\n\n diagnostics.push({\n severity: \"error\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Expression '${expr.expression}' references '${root}' which is not a known step ID or loop variable in scope`,\n code: \"JMESPATH_INVALID_ROOT_REFERENCE\",\n });\n }\n}\n",
13
+ "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph } from \"../types\";\nimport {\n extractRootIdentifiers,\n extractTemplateExpressions,\n validateJmespathSyntax,\n} from \"../utils/jmespath-helpers\";\n\nexport interface ExpressionInfo {\n expression: string;\n stepId: string;\n field: string;\n}\n\nexport function validateJmespath(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n // Collect all JMESPath expressions with location info\n const { expressions, templateDiagnostics } = collectExpressions(workflow);\n diagnostics.push(...templateDiagnostics);\n\n for (const expr of expressions) {\n // Syntax validation\n const syntaxResult = validateJmespathSyntax(expr.expression);\n if (!syntaxResult.valid) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Invalid JMESPath syntax in '${expr.expression}': ${syntaxResult.error}`,\n code: \"JMESPATH_SYNTAX_ERROR\",\n });\n continue; // Can't do scope validation on invalid syntax\n }\n\n // Scope/reference validation\n validateExpressionScope(expr, graph, !!workflow.inputSchema, diagnostics);\n }\n\n return diagnostics;\n}\n\nfunction collectFromExpressionValue(\n val: { type: string; expression?: string; template?: string },\n stepId: string,\n field: string,\n expressions: ExpressionInfo[],\n templateDiagnostics: Diagnostic[],\n): void {\n if (val.type === \"jmespath\" && val.expression) {\n expressions.push({\n expression: val.expression,\n stepId,\n field: `${field}.expression`,\n });\n } else if (val.type === \"template\" && val.template) {\n const { expressions: templateExprs, unclosed } = extractTemplateExpressions(\n val.template,\n );\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId,\n field: `${field}.template[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: { stepId, field: `${field}.template[${pos}]` },\n message: `Unclosed template expression at position ${pos} in template`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n }\n}\n\nexport function collectExpressions(workflow: WorkflowDefinition): {\n expressions: ExpressionInfo[];\n templateDiagnostics: Diagnostic[];\n} {\n const expressions: ExpressionInfo[] = [];\n const templateDiagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n switch (step.type) {\n case \"tool-call\":\n for (const [key, val] of Object.entries(step.params.toolInput)) {\n collectFromExpressionValue(\n val,\n step.id,\n `params.toolInput.${key}`,\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"switch-case\":\n collectFromExpressionValue(\n step.params.switchOn,\n step.id,\n \"params.switchOn\",\n expressions,\n templateDiagnostics,\n );\n for (const [i, c] of step.params.cases.entries()) {\n collectFromExpressionValue(\n c.value,\n step.id,\n `params.cases[${i}].value`,\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"for-each\":\n collectFromExpressionValue(\n step.params.target,\n step.id,\n \"params.target\",\n expressions,\n templateDiagnostics,\n );\n break;\n\n case \"extract-data\":\n collectFromExpressionValue(\n step.params.sourceData,\n step.id,\n \"params.sourceData\",\n expressions,\n templateDiagnostics,\n );\n break;\n\n case \"start\":\n break;\n\n case \"end\":\n if (step.params?.output) {\n collectFromExpressionValue(\n step.params.output,\n step.id,\n \"params.output\",\n expressions,\n templateDiagnostics,\n );\n }\n break;\n\n case \"llm-prompt\": {\n const { expressions: templateExprs, unclosed } =\n extractTemplateExpressions(step.params.prompt);\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId: step.id,\n field: `params.prompt[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: `params.prompt[${pos}]`,\n },\n message: `Unclosed template expression at position ${pos} in prompt`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n break;\n }\n\n case \"agent-loop\": {\n const { expressions: templateExprs, unclosed } =\n extractTemplateExpressions(step.params.instructions);\n for (const te of templateExprs) {\n expressions.push({\n expression: te.expression,\n stepId: step.id,\n field: `params.instructions[${te.start}:${te.end}]`,\n });\n }\n for (const pos of unclosed) {\n templateDiagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: `params.instructions[${pos}]`,\n },\n message: `Unclosed template expression at position ${pos} in instructions`,\n code: \"UNCLOSED_TEMPLATE_EXPRESSION\",\n });\n }\n if (step.params.maxSteps) {\n collectFromExpressionValue(\n step.params.maxSteps,\n step.id,\n \"params.maxSteps\",\n expressions,\n templateDiagnostics,\n );\n }\n break;\n }\n }\n }\n\n return { expressions, templateDiagnostics };\n}\n\nfunction validateExpressionScope(\n expr: ExpressionInfo,\n graph: ExecutionGraph,\n hasInputSchema: boolean,\n diagnostics: Diagnostic[],\n): void {\n const astRoots = extractRootIdentifiers(expr.expression);\n const loopVars = graph.loopVariablesInScope.get(expr.stepId);\n const predecessors = graph.predecessors.get(expr.stepId);\n\n for (const root of astRoots) {\n // Skip if it's the workflow input alias\n if (root === \"input\" && hasInputSchema) continue;\n\n // Skip if it's a loop variable in scope\n if (loopVars?.has(root)) continue;\n\n // Check if it's a step ID\n if (graph.stepIndex.has(root)) {\n // Check if the step is a predecessor (has executed before this step)\n if (predecessors && !predecessors.has(root)) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Expression '${expr.expression}' references step '${root}' which may not have executed before step '${expr.stepId}'`,\n code: \"JMESPATH_FORWARD_REFERENCE\",\n });\n }\n continue;\n }\n\n diagnostics.push({\n severity: \"error\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Expression '${expr.expression}' references '${root}' which is not a known step ID or loop variable in scope`,\n code: \"JMESPATH_INVALID_ROOT_REFERENCE\",\n });\n }\n}\n",
14
+ "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph, ToolDefinitionMap } from \"../types\";\nimport { resolveExpressionPath } from \"../utils/schema\";\nimport { collectExpressions } from \"./validate-jmespath\";\n\n/**\n * Validate that property paths in JMESPath expressions reference properties\n * that actually exist in the referenced step's output schema.\n *\n * Only validates simple dotted paths (e.g. `stepId.field.nested`). Complex\n * expressions (filters, projections, functions) are silently skipped.\n * Steps without a known output schema are also skipped.\n */\nexport function validateExpressionPaths(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n tools: ToolDefinitionMap | null,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n const { expressions } = collectExpressions(workflow);\n\n for (const expr of expressions) {\n const result = resolveExpressionPath(\n expr.expression,\n expr.stepId,\n tools,\n workflow,\n graph,\n );\n\n if (result.status === \"property_not_found\") {\n const parentProps = result.parentSchema.properties as\n | Record<string, unknown>\n | undefined;\n const available = parentProps ? Object.keys(parentProps) : [];\n const hint =\n available.length > 0\n ? ` Available properties: ${available.map((p) => `'${p}'`).join(\", \")}`\n : \"\";\n\n diagnostics.push({\n severity: \"warning\",\n location: { stepId: expr.stepId, field: expr.field },\n message: `Expression '${expr.expression}' references property '${result.failedAtSegment}' which does not exist in the output schema.${hint}`,\n code: \"JMESPATH_INVALID_PROPERTY_PATH\",\n });\n }\n }\n\n return diagnostics;\n}\n",
15
+ "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic, ExecutionGraph, ToolDefinitionMap } from \"../types\";\nimport {\n findArrayProperties,\n getSchemaType,\n getStepOutputSchema,\n parseSimplePath,\n resolvePath,\n} from \"../utils/schema\";\n\nexport function validateForeachTarget(\n workflow: WorkflowDefinition,\n graph: ExecutionGraph,\n tools: ToolDefinitionMap,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n if (step.type !== \"for-each\") continue;\n if (step.params.target.type !== \"jmespath\") continue;\n\n const expression = step.params.target.expression;\n\n // Only handle simple dotted paths (e.g. \"step_id\" or \"step_id.field\")\n const segments = parseSimplePath(expression);\n if (!segments) continue;\n\n const [rootId, ...fieldPath] = segments;\n if (!rootId) continue;\n\n let outputSchema: Record<string, unknown> | null = null;\n if (rootId === \"input\" && workflow.inputSchema) {\n outputSchema = workflow.inputSchema as Record<string, unknown>;\n } else {\n const referencedStep = graph.stepIndex.get(rootId);\n if (!referencedStep) continue; // Handled by jmespath validation\n outputSchema = getStepOutputSchema(\n referencedStep,\n tools,\n workflow,\n graph,\n );\n }\n if (!outputSchema) continue;\n\n const resolvedSchema = resolvePath(outputSchema, fieldPath);\n if (!resolvedSchema) continue;\n\n const resolvedType = getSchemaType(resolvedSchema);\n if (resolvedType === \"array\") continue;\n\n if (resolvedType === \"object\") {\n const suggestions = findArrayProperties(resolvedSchema);\n const hint =\n suggestions.length > 0\n ? ` Did you mean ${suggestions.map((s) => `'${rootId}.${s}'`).join(\" or \")}?`\n : \"\";\n\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.target\" },\n message: `for-each target '${expression}' resolves to an object, not an array.${hint}`,\n code: \"FOREACH_TARGET_NOT_ARRAY\",\n });\n } else if (resolvedType !== null) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.target\" },\n message: `for-each target '${expression}' resolves to type '${resolvedType}', not an array.`,\n code: \"FOREACH_TARGET_NOT_ARRAY\",\n });\n }\n }\n\n return diagnostics;\n}\n",
15
16
  "import type { WorkflowDefinition } from \"../../types\";\nimport type { CompilerLimits, Diagnostic } from \"../types\";\n\nconst DEFAULT_LIMITS: Required<CompilerLimits> = {\n maxAttempts: Number.POSITIVE_INFINITY,\n maxSleepMs: 300_000, // 5 minutes\n maxBackoffMultiplier: 2,\n minBackoffMultiplier: 1,\n maxTimeoutMs: 600_000, // 10 minutes\n};\n\n/**\n * Validates literal values in sleep/wait-for-condition steps against\n * configured upper/lower bounds. Only checks expressions with\n * type === 'literal' — JMESPath expressions are unknown at compile time.\n */\nexport function validateLimits(\n workflow: WorkflowDefinition,\n limits?: CompilerLimits,\n): Diagnostic[] {\n const resolved = { ...DEFAULT_LIMITS, ...limits };\n const diagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n if (step.type === \"sleep\") {\n const expr = step.params.durationMs;\n if (expr.type === \"literal\" && typeof expr.value === \"number\") {\n if (expr.value > resolved.maxSleepMs) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.durationMs\" },\n message: `Sleep duration ${expr.value}ms exceeds limit of ${resolved.maxSleepMs}ms`,\n code: \"SLEEP_DURATION_EXCEEDS_LIMIT\",\n });\n }\n }\n }\n\n if (step.type === \"wait-for-condition\") {\n const { maxAttempts, intervalMs, backoffMultiplier, timeoutMs } =\n step.params;\n\n if (\n maxAttempts?.type === \"literal\" &&\n typeof maxAttempts.value === \"number\"\n ) {\n if (maxAttempts.value > resolved.maxAttempts) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.maxAttempts\" },\n message: `maxAttempts ${maxAttempts.value} exceeds limit of ${resolved.maxAttempts}`,\n code: \"WAIT_ATTEMPTS_EXCEEDS_LIMIT\",\n });\n }\n }\n\n if (\n intervalMs?.type === \"literal\" &&\n typeof intervalMs.value === \"number\"\n ) {\n if (intervalMs.value > resolved.maxSleepMs) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.intervalMs\" },\n message: `intervalMs ${intervalMs.value}ms exceeds limit of ${resolved.maxSleepMs}ms`,\n code: \"WAIT_INTERVAL_EXCEEDS_LIMIT\",\n });\n }\n }\n\n if (\n backoffMultiplier?.type === \"literal\" &&\n typeof backoffMultiplier.value === \"number\"\n ) {\n if (\n backoffMultiplier.value < resolved.minBackoffMultiplier ||\n backoffMultiplier.value > resolved.maxBackoffMultiplier\n ) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.backoffMultiplier\" },\n message: `backoffMultiplier ${backoffMultiplier.value} is outside allowed range [${resolved.minBackoffMultiplier}, ${resolved.maxBackoffMultiplier}]`,\n code: \"BACKOFF_MULTIPLIER_OUT_OF_RANGE\",\n });\n }\n }\n\n if (\n timeoutMs?.type === \"literal\" &&\n typeof timeoutMs.value === \"number\"\n ) {\n if (timeoutMs.value > resolved.maxTimeoutMs) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"params.timeoutMs\" },\n message: `timeoutMs ${timeoutMs.value}ms exceeds limit of ${resolved.maxTimeoutMs}ms`,\n code: \"WAIT_TIMEOUT_EXCEEDS_LIMIT\",\n });\n }\n }\n }\n }\n\n return diagnostics;\n}\n",
16
17
  "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic } from \"../types\";\n\n/**\n * Warn about JSON Schema keywords in outputFormat that are not supported\n * by most LLM structured output APIs (e.g. minItems > 1, maxItems, pattern).\n */\nexport function validateOutputSchemas(\n workflow: WorkflowDefinition,\n): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n\n for (const step of workflow.steps) {\n if (\n step.type !== \"llm-prompt\" &&\n step.type !== \"extract-data\" &&\n step.type !== \"agent-loop\"\n ) {\n continue;\n }\n\n const outputFormat = step.params.outputFormat;\n if (!outputFormat || typeof outputFormat !== \"object\") continue;\n\n collectUnsupported(\n outputFormat as Record<string, unknown>,\n step.id,\n \"params.outputFormat\",\n diagnostics,\n );\n }\n\n return diagnostics;\n}\n\n/** Keywords that are unconditionally unsupported and will be stripped at runtime. */\nconst UNSUPPORTED_KEYWORDS = new Set([\n \"maxItems\",\n \"minLength\",\n \"maxLength\",\n \"minProperties\",\n \"maxProperties\",\n \"minimum\",\n \"maximum\",\n \"exclusiveMinimum\",\n \"exclusiveMaximum\",\n \"multipleOf\",\n \"pattern\",\n \"uniqueItems\",\n]);\n\nfunction collectUnsupported(\n schema: Record<string, unknown>,\n stepId: string,\n path: string,\n diagnostics: Diagnostic[],\n): void {\n for (const [key, value] of Object.entries(schema)) {\n if (UNSUPPORTED_KEYWORDS.has(key)) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId, field: `${path}.${key}` },\n message: `Step '${stepId}' outputFormat uses '${key}' (value: ${JSON.stringify(value)}) which is not supported by most LLM providers and will be stripped at runtime`,\n code: \"UNSUPPORTED_SCHEMA_KEYWORD\",\n });\n }\n\n // minItems > 1 is unsupported (0 and 1 are fine)\n if (key === \"minItems\" && typeof value === \"number\" && value > 1) {\n diagnostics.push({\n severity: \"warning\",\n location: { stepId, field: `${path}.minItems` },\n message: `Step '${stepId}' outputFormat uses 'minItems' with value ${value} but only 0 and 1 are supported; it will be stripped at runtime`,\n code: \"UNSUPPORTED_SCHEMA_KEYWORD\",\n });\n }\n\n // Recurse into nested schemas\n if (typeof value === \"object\" && value !== null && !Array.isArray(value)) {\n collectUnsupported(\n value as Record<string, unknown>,\n stepId,\n `${path}.${key}`,\n diagnostics,\n );\n }\n }\n}\n",
17
18
  "import type { WorkflowDefinition } from \"../../types\";\nimport type { Diagnostic } from \"../types\";\n\nexport function validateReferences(workflow: WorkflowDefinition): Diagnostic[] {\n const diagnostics: Diagnostic[] = [];\n const stepIds = new Set(workflow.steps.map((s) => s.id));\n\n // Check initialStepId\n if (!stepIds.has(workflow.initialStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: null, field: \"initialStepId\" },\n message: `Initial step '${workflow.initialStepId}' does not exist`,\n code: \"MISSING_INITIAL_STEP\",\n });\n }\n\n for (const step of workflow.steps) {\n // Check nextStepId\n if (step.nextStepId && !stepIds.has(step.nextStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: { stepId: step.id, field: \"nextStepId\" },\n message: `Step '${step.id}' references non-existent next step '${step.nextStepId}'`,\n code: \"MISSING_NEXT_STEP\",\n });\n }\n\n // Check branchBodyStepId in switch-case\n if (step.type === \"switch-case\") {\n for (const [i, c] of step.params.cases.entries()) {\n if (!stepIds.has(c.branchBodyStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: `params.cases[${i}].branchBodyStepId`,\n },\n message: `Step '${step.id}' case ${i} references non-existent branch body step '${c.branchBodyStepId}'`,\n code: \"MISSING_BRANCH_BODY_STEP\",\n });\n }\n }\n }\n\n // Check loopBodyStepId in for-each\n if (step.type === \"for-each\") {\n if (!stepIds.has(step.params.loopBodyStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: \"params.loopBodyStepId\",\n },\n message: `Step '${step.id}' references non-existent loop body step '${step.params.loopBodyStepId}'`,\n code: \"MISSING_LOOP_BODY_STEP\",\n });\n }\n }\n\n // Check conditionStepId in wait-for-condition\n if (step.type === \"wait-for-condition\") {\n if (!stepIds.has(step.params.conditionStepId)) {\n diagnostics.push({\n severity: \"error\",\n location: {\n stepId: step.id,\n field: \"params.conditionStepId\",\n },\n message: `Step '${step.id}' references non-existent condition body step '${step.params.conditionStepId}'`,\n code: \"MISSING_CONDITION_BODY_STEP\",\n });\n }\n }\n }\n\n return diagnostics;\n}\n",
@@ -41,7 +42,7 @@
41
42
  "import { type } from \"arktype\";\n\nconst expressionSchema = type({\n type: \"'literal'\",\n value: \"unknown\",\n})\n .or({\n type: \"'jmespath'\",\n expression: \"string\",\n })\n .or({\n type: \"'template'\",\n template: \"string\",\n })\n .describe(\n \"a value that must always be wrapped as an expression object — use { type: 'literal', value: ... } for any static value (strings, numbers, booleans, etc.), { type: 'jmespath', expression: '...' } for dynamic data extracted from previous steps' outputs (via their step ids, e.g. `stepId.someKey`) or loop variables (e.g. `itemName.someKey` within a for-each loop body), or { type: 'template', template: '...' } for string interpolation with embedded JMESPath expressions using ${...} syntax (e.g. 'Hello ${user.name}, order ${order.id}') — template expressions always resolve to a string\",\n );\n\nconst toolCallParamsSchema = type({\n type: \"'tool-call'\",\n params: {\n toolName: \"string\",\n toolInput: [\n {\n \"[string]\": expressionSchema,\n },\n \"@\",\n \"a map of input parameter names to their values; ALL values must be wrapped as expression objects — even static strings like email addresses must use { type: 'literal', value: '...' }, never plain primitives\",\n ],\n },\n}).describe(\n \"a step that calls a tool with specified input parameters (which can be static values or expressions)\",\n);\n\nconst switchCaseParamsSchema = type({\n type: \"'switch-case'\",\n params: {\n switchOn: expressionSchema,\n cases: [\n {\n value: expressionSchema.or({ type: \"'default'\" }),\n branchBodyStepId: [\n \"string\",\n \"@\",\n \"the id of the first step in the branch body chain to execute if this case matches\",\n ],\n },\n \"[]\",\n ],\n },\n}).describe(\n \"a step that branches to different step chains based on the value of an expression; each case's chain runs until a step with no nextStepId, at which point execution continues with this step's nextStepId; a case with type 'default' serves as the fallback if no other case matches\",\n);\n\nconst forEachParamsSchema = type({\n type: \"'for-each'\",\n params: {\n target: expressionSchema,\n itemName: [\n \"string\",\n \"@\",\n \"the name to refer to the current item in the list within expressions in the loop body\",\n ],\n loopBodyStepId: [\n \"string\",\n \"@\",\n \"the id of the first step in the loop body chain to execute for each item in the list\",\n ],\n },\n}).describe(\n \"a step that iterates over a list and executes a chain of steps for each item; the loop body chain runs until a step with no nextStepId, at which point the next iteration begins; once all items are exhausted, execution continues with this step's nextStepId\",\n);\n\nconst llmPromptSchema = type({\n type: \"'llm-prompt'\",\n params: {\n prompt: [\n \"string\",\n \"@\",\n \"a template string where JMESPath expressions can be embedded using ${...} syntax (e.g. 'Hello ${user.name}, you have ${length(user.messages)} messages'). All data from previous steps is available via their step ids (e.g. ${stepId.someKey}), and loop variables are available within for-each loop bodies (e.g. ${itemName.someKey})\",\n ],\n outputFormat: [\n \"object\",\n \"@\",\n \"JSON schema specifying the output format expected from the LLM\",\n ],\n },\n}).describe(\n \"a step that prompts an LLM with a text prompt to produce an output in a specified format\",\n);\n\nconst extractDataParamsSchema = type({\n type: \"'extract-data'\",\n params: {\n sourceData: [expressionSchema, \"@\", \"the data to extract information from\"],\n outputFormat: [\n \"object\",\n \"@\",\n \"JSON schema specifying the output format expected from the data extraction\",\n ],\n },\n}).describe(\n \"a step that uses an LLM to extract structured data from a larger blob of source data (e.g. llm responses or tool outputs with unknown output formats) based on a specified output format\",\n);\n\nconst sleepParamsSchema = type({\n type: \"'sleep'\",\n params: {\n durationMs: expressionSchema,\n },\n}).describe(\n \"a step that pauses workflow execution for a specified duration in milliseconds; the durationMs parameter must evaluate to a non-negative number\",\n);\n\nconst waitForConditionParamsSchema = type({\n type: \"'wait-for-condition'\",\n params: {\n conditionStepId: [\n \"string\",\n \"@\",\n \"the id of the first step in the condition-check chain that will be executed on each polling attempt; this chain runs until a step with no nextStepId, then the condition expression is evaluated\",\n ],\n condition: [\n expressionSchema,\n \"@\",\n \"an expression evaluated after each execution of the condition-check chain; if it evaluates to a truthy value, the wait completes with that value as its output; all step outputs from the condition chain are available in scope for this expression\",\n ],\n \"maxAttempts?\": [\n expressionSchema,\n \"@\",\n \"maximum number of polling attempts before giving up (default: 10)\",\n ],\n \"intervalMs?\": [\n expressionSchema,\n \"@\",\n \"milliseconds to wait between polling attempts (default: 1000)\",\n ],\n \"backoffMultiplier?\": [\n expressionSchema,\n \"@\",\n \"multiply the interval by this factor after each attempt (default: 1, i.e. no backoff; use 2 for exponential backoff)\",\n ],\n \"timeoutMs?\": [\n expressionSchema,\n \"@\",\n \"hard timeout in milliseconds; if the total elapsed time exceeds this, the step fails regardless of remaining attempts\",\n ],\n },\n}).describe(\n \"a step that repeatedly executes a condition-check chain (starting at conditionStepId) and then evaluates the condition expression against the updated scope; if the condition expression evaluates to a truthy value, the step completes with that value as its output; otherwise it waits for intervalMs milliseconds (multiplied by backoffMultiplier after each attempt) and tries again, up to maxAttempts times or until timeoutMs milliseconds have elapsed; the condition-check chain runs until a step with no nextStepId, at which point the condition expression is evaluated; all step outputs from the condition chain are available in scope for the condition expression\",\n);\n\nconst agentLoopParamsSchema = type({\n type: \"'agent-loop'\",\n params: {\n instructions: [\n \"string\",\n \"@\",\n \"a template string with task instructions for the agent; JMESPath expressions can be embedded using ${...} syntax (e.g. 'Research ${input.topic} and summarize findings'). All data from previous steps is available via their step ids, and loop variables are available within for-each loop bodies\",\n ],\n tools: [\n [\"string\", \"[]\"],\n \"@\",\n \"names of tools from the workflow's tool set that the agent is allowed to use\",\n ],\n outputFormat: [\n \"object\",\n \"@\",\n \"JSON schema specifying the structured output format expected from the agent\",\n ],\n \"maxSteps?\": [\n expressionSchema,\n \"@\",\n \"maximum number of tool-calling steps the agent may take (default: 10)\",\n ],\n },\n}).describe(\n \"a step that delegates work to an autonomous agent with its own tool-calling loop; USE SPARINGLY — this sacrifices the determinism that is the core value of the workflow DSL. Prefer explicit tool-call, llm-prompt, and control flow steps whenever the task can be decomposed into predictable operations\",\n);\n\nconst startParamsSchema = type({\n type: \"'start'\",\n}).describe(\n \"a step that marks the entry point of a workflow; a no-op marker whose execution continues to the next step\",\n);\n\nconst endSchema = type({\n type: \"'end'\",\n \"params?\": {\n output: expressionSchema,\n },\n}).describe(\n \"a step that indicates the end of a branch; optionally specify an output expression whose evaluated value becomes the workflow's output\",\n);\n\nconst workflowStepSchema = type({\n id: /^[a-zA-Z_][a-zA-Z0-9_]+$/,\n name: \"string\",\n description: \"string\",\n \"nextStepId?\": \"string\",\n}).and(\n toolCallParamsSchema\n .or(llmPromptSchema)\n .or(extractDataParamsSchema)\n .or(switchCaseParamsSchema)\n .or(forEachParamsSchema)\n .or(sleepParamsSchema)\n .or(waitForConditionParamsSchema)\n .or(agentLoopParamsSchema)\n .or(startParamsSchema)\n .or(endSchema),\n);\n\n/**\n * ArkType schema for validating workflow definitions. Use this to validate\n * workflow JSON before passing it to {@link compileWorkflow}.\n */\nexport const workflowDefinitionSchema = type({\n initialStepId: \"string\",\n \"inputSchema?\": [\n \"object\",\n \"@\",\n \"an optional JSON Schema object defining the inputs required to run the workflow; the executor validates provided inputs against this schema, and the validated inputs become available in JMESPath scope via the root identifier 'input' (e.g. input.fieldName)\",\n ],\n \"outputSchema?\": [\n \"object\",\n \"@\",\n \"an optional JSON Schema object declaring the shape of the workflow's output; when present, the value produced by the end step's output expression will be validated against this schema\",\n ],\n steps: [\n [workflowStepSchema, \"[]\"],\n \"@\",\n \"a list of steps to execute in the workflow; these should be in no particular order as execution flow is determined by the nextStepId fields and branching logic within the steps\",\n ],\n});\n\n/**\n * A single step in a workflow. Each step has a type that determines its behavior:\n * - `start` — entry point, declares input schema\n * - `tool-call` — calls a tool with literal or expression-based arguments\n * - `llm-prompt` — prompts an LLM with template string interpolation\n * - `extract-data` — uses an LLM to extract structured data from unstructured source\n * - `switch-case` — branches to different step chains based on an expression value\n * - `for-each` — iterates over an array, executing a chain of steps per item\n * - `agent-loop` — delegates work to an autonomous agent with its own tool-calling loop (use sparingly)\n * - `end` — terminates a branch, optionally producing workflow output\n */\nexport type WorkflowStep = typeof workflowStepSchema.infer;\n\n/**\n * A complete workflow definition. Contains an initial step ID and an ordered list of steps.\n * Execution flow is determined by each step's `nextStepId` and branching/looping logic,\n * not by the order of steps in the array.\n */\nexport type WorkflowDefinition = typeof workflowDefinitionSchema.infer;\n",
42
43
  "import { asSchema, type ToolSet } from \"ai\";\nimport type { Diagnostic } from \"../compiler/types\";\n\nexport async function serializeToolsForPrompt(tools: ToolSet): Promise<string> {\n return JSON.stringify(\n await Promise.all(\n Object.entries(tools).map(async ([toolName, toolDef]) => ({\n name: toolName,\n description: toolDef.description,\n inputSchema: await asSchema(toolDef.inputSchema).jsonSchema,\n outputSchema: toolDef.outputSchema\n ? await asSchema(toolDef.outputSchema).jsonSchema\n : undefined,\n })),\n ),\n );\n}\n\nexport function buildWorkflowGenerationPrompt(\n serializedTools: string,\n additionalInstructions?: string,\n): string {\n return `You are a workflow architect. Your job is to design a workflow definition in the remora DSL that accomplishes a given task using the provided tools. In almost all cases you should call the \\`createWorkflow\\` tool with a valid workflow definition.\n\nIf — and only if — you determine that you cannot produce a valid workflow for the given task, call the \\`giveUp\\` tool with both a categorical \\`code\\` and a free-form \\`reason\\` explaining why. The \\`code\\` field's allowed values and their meanings are documented in the tool's input schema; pick the one that best matches your reason. Do NOT call \\`giveUp\\` just because an earlier \\`createWorkflow\\` attempt failed to compile — fix the diagnostics and try again. \\`giveUp\\` is an escape hatch, not a shortcut for hard tasks.\n\n## Workflow Structure\n\nA workflow has:\n- \\`initialStepId\\`: the id of the first step to execute\n- \\`inputSchema\\` (optional): a JSON Schema object defining the inputs required to run the workflow. When present, provided inputs are validated against this schema and become available in JMESPath expressions via the root identifier \\`input\\` (e.g. \\`input.fieldName\\`).\n- \\`outputSchema\\` (optional): a JSON Schema object declaring the shape of the workflow's output. When present, every \\`end\\` step should have an \\`output\\` expression that evaluates to a value matching this schema.\n- \\`steps\\`: an array of step objects (order does not matter — execution flow is determined by nextStepId links)\n\n## Step Common Fields\n\nEvery step has:\n- \\`id\\`: unique identifier matching /^[a-zA-Z_][a-zA-Z0-9_]+$/ (letters, digits, underscores; at least 2 characters)\n- \\`name\\`: human-readable name\n- \\`description\\`: what this step does\n- \\`type\\`: one of the step types below\n- \\`nextStepId\\` (optional): id of the next step to execute after this one\n\n## Step Types\n\n### start\nA no-op marker that indicates the entry point of a workflow. It takes no parameters. Workflow inputs are declared via \\`inputSchema\\` on the workflow definition itself, not on the start step.\n\\`\\`\\`json\n{\n \"type\": \"start\"\n}\n\\`\\`\\`\n\n### tool-call\nCalls a tool with input parameters. All values in toolInput MUST be expression objects.\n\\`\\`\\`json\n{\n \"type\": \"tool-call\",\n \"params\": {\n \"toolName\": \"name-of-tool\",\n \"toolInput\": {\n \"paramName\": { \"type\": \"literal\", \"value\": \"static value\" },\n \"otherParam\": { \"type\": \"jmespath\", \"expression\": \"previous_step.someField\" }\n }\n }\n}\n\\`\\`\\`\n\n### llm-prompt\nPrompts an LLM with a template string to produce structured output. Use \\${...} syntax to embed JMESPath expressions in the prompt.\n\\`\\`\\`json\n{\n \"type\": \"llm-prompt\",\n \"params\": {\n \"prompt\": \"Classify this ticket: \\${get_tickets.tickets[0].subject}\",\n \"outputFormat\": { \"type\": \"object\", \"properties\": { \"category\": { \"type\": \"string\" } }, \"required\": [\"category\"] }\n }\n}\n\\`\\`\\`\n\n### extract-data\nUses an LLM to extract structured data from a source. Use when you need to parse unstructured or semi-structured data into a known shape.\n\\`\\`\\`json\n{\n \"type\": \"extract-data\",\n \"params\": {\n \"sourceData\": { \"type\": \"jmespath\", \"expression\": \"previous_step.rawContent\" },\n \"outputFormat\": { \"type\": \"object\", \"properties\": { ... }, \"required\": [...] }\n }\n}\n\\`\\`\\`\n\n### switch-case\nBranches execution based on a value. Each case's branch chain runs until a step with no nextStepId, then execution continues with this step's nextStepId. Use \\`{ \"type\": \"default\" }\\` for a fallback case.\n\\`\\`\\`json\n{\n \"type\": \"switch-case\",\n \"params\": {\n \"switchOn\": { \"type\": \"jmespath\", \"expression\": \"classify.category\" },\n \"cases\": [\n {\n \"value\": { \"type\": \"literal\", \"value\": \"critical\" },\n \"branchBodyStepId\": \"handle_critical\"\n },\n {\n \"value\": { \"type\": \"default\" },\n \"branchBodyStepId\": \"handle_other\"\n }\n ]\n }\n}\n\\`\\`\\`\n\n### for-each\nIterates over a list and executes a chain of steps for each item. The loop body chain runs until a step with no nextStepId, then the next iteration begins. After all items, execution continues with this step's nextStepId. The \\`itemName\\` becomes a scoped variable accessible only within the loop body.\n\\`\\`\\`json\n{\n \"type\": \"for-each\",\n \"params\": {\n \"target\": { \"type\": \"jmespath\", \"expression\": \"get_items.items\" },\n \"itemName\": \"item\",\n \"loopBodyStepId\": \"process_item\"\n }\n}\n\\`\\`\\`\n\n### sleep\nPauses workflow execution for a fixed duration. Use when you need to wait between operations (e.g., rate limiting, propagation delays).\n\\`\\`\\`json\n{\n \"type\": \"sleep\",\n \"params\": {\n \"durationMs\": { \"type\": \"literal\", \"value\": 5000 }\n }\n}\n\\`\\`\\`\n\n### wait-for-condition\nRepeatedly executes a condition-check chain and evaluates a condition expression until it returns a truthy value. Use when you need to poll for a state change (e.g., waiting for a job to complete, a resource to become available).\n\nThe \\`conditionStepId\\` points to the first step of a sub-chain that will be executed on each polling attempt. After the chain runs, the \\`condition\\` expression is evaluated against the current scope (including all outputs from the condition chain). If the result is truthy, the wait-for-condition step completes with that value as its output. Otherwise, it waits and retries.\n\nOptional parameters control polling behavior:\n- \\`maxAttempts\\`: maximum number of polling attempts (default: 10)\n- \\`intervalMs\\`: milliseconds between attempts (default: 1000)\n- \\`backoffMultiplier\\`: multiply interval by this after each attempt (default: 1, i.e. no backoff; use 2 for exponential)\n- \\`timeoutMs\\`: hard timeout in milliseconds (optional)\n\\`\\`\\`json\n{\n \"type\": \"wait-for-condition\",\n \"params\": {\n \"conditionStepId\": \"poll_status\",\n \"condition\": { \"type\": \"jmespath\", \"expression\": \"poll_status.status == 'complete'\" },\n \"maxAttempts\": { \"type\": \"literal\", \"value\": 30 },\n \"intervalMs\": { \"type\": \"literal\", \"value\": 2000 },\n \"backoffMultiplier\": { \"type\": \"literal\", \"value\": 1.5 },\n \"timeoutMs\": { \"type\": \"literal\", \"value\": 120000 }\n }\n}\n\\`\\`\\`\n\n### agent-loop\n**USE SPARINGLY.** Delegates work to an autonomous agent with its own tool-calling loop. This step sacrifices the determinism that is the core value of the workflow DSL. Only use when the task genuinely cannot be decomposed into predictable tool-call, llm-prompt, and control flow steps (e.g., open-ended research tasks, complex multi-step reasoning that depends on intermediate results in unpredictable ways).\n\nThe agent receives the interpolated \\`instructions\\` as a prompt, has access to the listed \\`tools\\`, and must produce output matching \\`outputFormat\\`. The \\`maxSteps\\` parameter bounds the number of tool-calling iterations (default: 10).\n\\`\\`\\`json\n{\n \"type\": \"agent-loop\",\n \"params\": {\n \"instructions\": \"Research \\${input.topic} using the available search tools and compile a summary with at least 3 sources.\",\n \"tools\": [\"web_search\", \"fetch_page\"],\n \"outputFormat\": {\n \"type\": \"object\",\n \"properties\": {\n \"summary\": { \"type\": \"string\" },\n \"sources\": { \"type\": \"array\", \"items\": { \"type\": \"string\" } }\n },\n \"required\": [\"summary\", \"sources\"]\n },\n \"maxSteps\": { \"type\": \"literal\", \"value\": 15 }\n }\n}\n\\`\\`\\`\n\n### end\nMarks the end of a branch or the workflow. Must NOT have a nextStepId. Optionally, specify an output expression whose value becomes the workflow's return value.\n\\`\\`\\`json\n{\n \"type\": \"end\"\n}\n\\`\\`\\`\n\nWith output (when the workflow declares an outputSchema):\n\\`\\`\\`json\n{\n \"type\": \"end\",\n \"params\": {\n \"output\": { \"type\": \"jmespath\", \"expression\": \"summarize.result\" }\n }\n}\n\\`\\`\\`\n\n## Expression System\n\nEvery dynamic value must be an expression object:\n\n1. **Literal** — for static values known at design time:\n \\`{ \"type\": \"literal\", \"value\": <any value> }\\`\n\n2. **JMESPath** — for referencing data from previous steps, workflow inputs, or loop variables:\n \\`{ \"type\": \"jmespath\", \"expression\": \"<expression>\" }\\`\n The root of a JMESPath expression must be one of: the \\`input\\` alias (e.g. \\`input.orderId\\`) for workflow inputs, a step id (e.g. \\`get_orders.orders\\`) for previous step outputs, or a loop variable name (e.g. \\`item.id\\` within a for-each body).\n\n3. **Template strings** (llm-prompt only) — embed JMESPath in the prompt string using \\${...}:\n \\`\"Summarize: \\${fetch_data.content}\"\\`\n These are NOT expression objects — they appear directly in the prompt string.\n\n## Structural Rules\n\n1. Step IDs must be unique and match /^[a-zA-Z_][a-zA-Z0-9_]+$/.\n2. Steps link via nextStepId. Omitting nextStepId ends the chain.\n3. Branch body chains (switch-case), loop body chains (for-each), and condition body chains (wait-for-condition) must terminate — their last step must NOT have a nextStepId. Do NOT point them back to the parent or outside the body.\n4. Only reference step IDs of steps that will have executed before the current step (no forward references).\n5. Do not create cycles (for-each handles iteration — you do not need to loop manually).\n6. end steps must NOT have a nextStepId.\n\n## Available Tools\n\nEach tool below includes an \\`outputSchema\\` describing the shape of its return value. Use the output schema to construct correct JMESPath expressions. For example, if a tool returns \\`{ \"type\": \"object\", \"properties\": { \"orders\": { \"type\": \"array\", ... } } }\\`, reference the array as \\`step_id.orders\\`, not \\`step_id\\` alone.\n\n${serializedTools}\n\n## Common Mistakes\n\n1. NEVER use bare primitives in toolInput. ALL values must be expression objects.\n WRONG: \\`{ \"email\": \"user@example.com\" }\\`\n RIGHT: \\`{ \"email\": { \"type\": \"literal\", \"value\": \"user@example.com\" } }\\`\n\n2. Do NOT give end steps a nextStepId.\n\n3. Branch/loop body chains must terminate (last step has no nextStepId). Do NOT point them outside their scope.\n\n4. JMESPath expressions reference step outputs by step ID as the root identifier (e.g. \\`\"get_orders.orders[0].id\"\\`), and workflow inputs via the \\`input\\` alias (e.g. \\`\"input.orderId\"\\`).\n\n5. For-each itemName is a scoped variable accessible ONLY within the loop body steps.\n\n6. Step IDs must be at least 2 characters long.\n\n7. for-each target must resolve to an ARRAY. Check the tool's outputSchema to determine the correct path.\n WRONG: \\`\"target\": { \"type\": \"jmespath\", \"expression\": \"get_orders\" }\\` (when get_orders returns an object with an \\`orders\\` array property)\n RIGHT: \\`\"target\": { \"type\": \"jmespath\", \"expression\": \"get_orders.orders\" }\\`\n\n8. If the workflow needs to return structured data, declare an \\`outputSchema\\` on the workflow and give every \\`end\\` step an \\`output\\` expression that evaluates to a value matching it.\n\n9. wait-for-condition requires both \\`conditionStepId\\` (the chain to execute on each polling attempt) AND \\`condition\\` (the expression to evaluate after the chain runs). The condition expression is evaluated AFTER the chain runs, using the updated scope with all step outputs from the condition chain.\n\n10. Prefer explicit tool-call, llm-prompt, switch-case, and for-each steps over agent-loop. Only use agent-loop when the task is genuinely open-ended and cannot be decomposed into deterministic steps.${additionalInstructions ? `\\n\\n## Additional Instructions\\n\\n${additionalInstructions}` : \"\"}`;\n}\n\nexport function formatDiagnostics(diagnostics: Diagnostic[]): string {\n const errors = diagnostics.filter((d) => d.severity === \"error\");\n if (errors.length === 0) return \"No errors.\";\n return errors\n .map((d) => {\n const loc = d.location\n ? ` (at step ${d.location.stepId}${d.location.field ? `, field ${d.location.field}` : \"\"})`\n : \"\";\n return `- [${d.code}] ${d.message}${loc}`;\n })\n .join(\"\\n\");\n}\n"
43
44
  ],
44
- "mappings": "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A,EACR,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgNP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,0MA0BwM,yBAA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",
45
- "debugId": "E9F30A16D12E624164756E2164756E21",
45
+ "mappings": "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",
46
+ "debugId": "170DD60659C2B42A64756E2164756E21",
46
47
  "names": []
47
48
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remoraflow/core",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "A workflow DSL for agents — compile, execute, and visualize agent workflows",
5
5
  "publishConfig": {
6
6
  "access": "public"