@acpus/core 0.5.3 → 0.5.5

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.
@@ -21,7 +21,6 @@ export interface ApplyAgentOverridesResult {
21
21
  agentOverrides: AgentOverrides;
22
22
  warnings: AgentOverrideWarning[];
23
23
  }
24
- export declare function parseAgentOverridesInput(value: string | undefined, cwd?: string): AgentOverrides | undefined;
25
24
  export declare function parseWorkflowSpecForOverrides(source: string): WorkflowSpec;
26
25
  export declare function serializeWorkflowSpecForOverrides(spec: WorkflowSpec): string;
27
26
  export declare function emptyAgentOverrideResult(spec?: WorkflowSpec): ApplyAgentOverridesResult;
@@ -1 +1 @@
1
- {"version":3,"file":"agent-overrides.d.ts","sourceRoot":"","sources":["../src/agent-overrides.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,qBAAqB,GAAG,kCAAkC,CAAC;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAKD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,SAAgB,GAAG,cAAc,GAAG,SAAS,CAuBnH;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAM1E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE5E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAMvF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB,GAAG;IAC7E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC7C,CAKA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAoB,GAAG,cAAc,CAuDhG;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAmC3B"}
1
+ {"version":3,"file":"agent-overrides.d.ts","sourceRoot":"","sources":["../src/agent-overrides.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE3D,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,qBAAqB,GAAG,kCAAkC,CAAC;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,cAAc,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,YAAY,CAAC;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,QAAQ,EAAE,oBAAoB,EAAE,CAAC;CAClC;AAID,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAM1E;AAED,wBAAgB,iCAAiC,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM,CAE5E;AAED,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,yBAAyB,CAMvF;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,yBAAyB,GAAG;IAC7E,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,kBAAkB,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC7C,CAKA;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,SAAoB,GAAG,cAAc,CAuDhG;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,cAAc,GAAG,SAAS,EACnC,OAAO,GAAE,0BAA+B,GACvC,yBAAyB,CAmC3B"}
@@ -1,31 +1,6 @@
1
- import { existsSync, readFileSync, statSync } from "node:fs";
2
- import { extname, resolve } from "node:path";
3
1
  import { parse as parseYaml } from "yaml";
4
2
  import { isRecord } from "./schema/helpers.js";
5
3
  const SUPPORTED_OVERRIDE_FIELDS = new Set(["type", "use", "model", "cwd", "env", "policy"]);
6
- const SUPPORTED_FILE_EXTENSIONS = new Set([".json", ".yaml", ".yml"]);
7
- export function parseAgentOverridesInput(value, cwd = process.cwd()) {
8
- if (value === undefined)
9
- return undefined;
10
- const possiblePath = resolve(cwd, value);
11
- if (existsSync(possiblePath)) {
12
- const stat = statSync(possiblePath);
13
- if (stat.isDirectory()) {
14
- throw new Error("--agents must be a JSON/YAML file or inline JSON/YAML object, not a directory.");
15
- }
16
- const extension = extname(possiblePath).toLowerCase();
17
- if (!SUPPORTED_FILE_EXTENSIONS.has(extension)) {
18
- throw new Error("--agents file must use .json, .yaml, or .yml.");
19
- }
20
- const contents = readFileSync(possiblePath, "utf8");
21
- const parsed = extension === ".json" ? JSON.parse(contents) : parseYaml(contents);
22
- return validateAgentOverrides(parsed, "--agents");
23
- }
24
- if (looksLikePath(value)) {
25
- throw new Error(`--agents file not found: ${value}`);
26
- }
27
- return validateAgentOverrides(parseYaml(value), "--agents");
28
- }
29
4
  export function parseWorkflowSpecForOverrides(source) {
30
5
  const parsed = parseYaml(source);
31
6
  if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
@@ -200,15 +175,4 @@ function cloneAgents(agents) {
200
175
  }
201
176
  ]));
202
177
  }
203
- function looksLikePath(value) {
204
- const trimmed = value.trim();
205
- if (trimmed.startsWith("{") || trimmed.includes("\n") || /^[A-Za-z0-9_.-]+\s*:/.test(trimmed)) {
206
- return false;
207
- }
208
- return trimmed.startsWith(".")
209
- || trimmed.startsWith("/")
210
- || trimmed.startsWith("~")
211
- || trimmed.includes("/")
212
- || SUPPORTED_FILE_EXTENSIONS.has(extname(trimmed).toLowerCase());
213
- }
214
178
  //# sourceMappingURL=agent-overrides.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-overrides.js","sourceRoot":"","sources":["../src/agent-overrides.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-overrides.js","sourceRoot":"","sources":["../src/agent-overrides.ts"],"names":[],"mappings":"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"}
package/dist/cel-ast.d.ts CHANGED
@@ -17,14 +17,13 @@ export interface ExpressionReference {
17
17
  }
18
18
  export interface ExtractResult {
19
19
  references: ExpressionReference[];
20
- /** Names of standalone function calls (e.g. `len`, `json`); excludes methods. */
20
+ /** Names of standalone function calls. Used only for Acpus shape checks. */
21
21
  functions: string[];
22
22
  parseError?: string;
23
23
  }
24
24
  /**
25
- * Parse a CEL source string and extract every identifier-rooted access chain,
26
- * standalone function-call names, and any reference nested inside index
27
- * expressions, function arguments, operators, lists, and maps.
25
+ * Parse a CEL source string and extract every identifier-rooted access chain and
26
+ * standalone function-call name needed by Acpus workflow validation.
28
27
  *
29
28
  * Fail-quiet by contract: on parse failure we return the error text (so the
30
29
  * caller can emit EXPR_PARSE) and empty results rather than throwing.
@@ -1 +1 @@
1
- {"version":3,"file":"cel-ast.d.ts","sourceRoot":"","sources":["../src/cel-ast.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnF,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,iFAAiF;IACjF,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAY/D;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAMlE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEnE"}
1
+ {"version":3,"file":"cel-ast.d.ts","sourceRoot":"","sources":["../src/cel-ast.ts"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnF,mFAAmF;AACnF,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,4EAA4E;IAC5E,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAYD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAY/D;AAED,yFAAyF;AACzF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,MAAM,CAMlE;AAED,kEAAkE;AAClE,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAEnE"}
package/dist/cel-ast.js CHANGED
@@ -4,9 +4,8 @@ function isAstNode(value) {
4
4
  return typeof value === "object" && value !== null && typeof value.op === "string" && "args" in value;
5
5
  }
6
6
  /**
7
- * Parse a CEL source string and extract every identifier-rooted access chain,
8
- * standalone function-call names, and any reference nested inside index
9
- * expressions, function arguments, operators, lists, and maps.
7
+ * Parse a CEL source string and extract every identifier-rooted access chain and
8
+ * standalone function-call name needed by Acpus workflow validation.
10
9
  *
11
10
  * Fail-quiet by contract: on parse failure we return the error text (so the
12
11
  * caller can emit EXPR_PARSE) and empty results rather than throwing.
@@ -21,7 +20,7 @@ export function extractReferences(source) {
21
20
  }
22
21
  const references = [];
23
22
  const functions = [];
24
- collect(ast, references, functions);
23
+ collect(ast, references, functions, new Set());
25
24
  return { references, functions };
26
25
  }
27
26
  /** Build the canonical source spelling of a reference (index segments shown as `[]`). */
@@ -37,18 +36,20 @@ export function isStaticReference(ref) {
37
36
  return ref.segments.every((seg) => seg.kind === "field");
38
37
  }
39
38
  /** Resolve a node into a chain if it is rooted at an identifier; else null. */
40
- function asChain(node) {
39
+ function asChain(node, scope) {
41
40
  if (node.op === "id") {
42
41
  const name = node.args;
43
42
  if (typeof name !== "string")
44
43
  return null;
44
+ if (scope.has(name))
45
+ return null;
45
46
  return { root: normalizeRoot(name), segments: [], inner: [] };
46
47
  }
47
48
  if (node.op === ".") {
48
49
  const [base, field] = node.args;
49
50
  if (!isAstNode(base) || typeof field !== "string")
50
51
  return null;
51
- const baseChain = asChain(base);
52
+ const baseChain = asChain(base, scope);
52
53
  if (!baseChain)
53
54
  return null;
54
55
  return {
@@ -61,7 +62,7 @@ function asChain(node) {
61
62
  const [base, indexNode] = node.args;
62
63
  if (!isAstNode(base))
63
64
  return null;
64
- const baseChain = asChain(base);
65
+ const baseChain = asChain(base, scope);
65
66
  if (!baseChain)
66
67
  return null;
67
68
  return {
@@ -72,7 +73,7 @@ function asChain(node) {
72
73
  }
73
74
  return null;
74
75
  }
75
- function collect(node, refs, functions) {
76
+ function collect(node, refs, functions, scope) {
76
77
  // Standalone function call: args = [name, [argNodes]]. Method (receiver)
77
78
  // calls (`rcall`) are not name-validated, matching prior regex behavior, but
78
79
  // their operands are still walked below.
@@ -83,28 +84,53 @@ function collect(node, refs, functions) {
83
84
  if (Array.isArray(callArgs)) {
84
85
  for (const arg of callArgs)
85
86
  if (isAstNode(arg))
86
- collect(arg, refs, functions);
87
+ collect(arg, refs, functions, scope);
87
88
  }
88
89
  return;
89
90
  }
90
- const chain = asChain(node);
91
+ // Receiver calls may be CEL macros. Their local binding semantics are owned by
92
+ // cel-js type checking; reference extraction keeps only workflow dependencies.
93
+ if (node.op === "rcall") {
94
+ const [name, receiver, params] = node.args;
95
+ if (isAstNode(receiver))
96
+ collect(receiver, refs, functions, scope);
97
+ if (Array.isArray(params)) {
98
+ const scoped = macroScope(name, params, scope);
99
+ if (scoped)
100
+ walkChildren(params.slice(1), refs, functions, scoped);
101
+ else
102
+ walkChildren(params, refs, functions, scope);
103
+ }
104
+ return;
105
+ }
106
+ const chain = asChain(node, scope);
91
107
  if (chain) {
92
108
  refs.push({ root: chain.root, segments: chain.segments });
93
109
  for (const innerNode of chain.inner)
94
- collect(innerNode, refs, functions);
110
+ collect(innerNode, refs, functions, scope);
95
111
  return;
96
112
  }
97
- walkChildren(node.args, refs, functions);
113
+ walkChildren(node.args, refs, functions, scope);
114
+ }
115
+ const BINDING_MACROS = new Set(["all", "exists", "exists_one", "filter", "map", "bind"]);
116
+ function macroScope(name, params, scope) {
117
+ if (typeof name !== "string" || !BINDING_MACROS.has(name))
118
+ return null;
119
+ const first = params[0];
120
+ if (!isAstNode(first) || first.op !== "id")
121
+ return null;
122
+ const localName = first.args;
123
+ return typeof localName === "string" ? new Set([...scope, localName]) : null;
98
124
  }
99
125
  /** Recurse into any nested AST nodes held in an args payload. */
100
- function walkChildren(args, refs, functions) {
126
+ function walkChildren(args, refs, functions, scope) {
101
127
  if (isAstNode(args)) {
102
- collect(args, refs, functions);
128
+ collect(args, refs, functions, scope);
103
129
  return;
104
130
  }
105
131
  if (Array.isArray(args)) {
106
132
  for (const child of args)
107
- walkChildren(child, refs, functions);
133
+ walkChildren(child, refs, functions, scope);
108
134
  }
109
135
  }
110
136
  /** The parser rewrites `loop.` → `loop_ctx.`; surface the logical root again. */
@@ -1 +1 @@
1
- {"version":3,"file":"cel-ast.js","sourceRoot":"","sources":["../src/cel-ast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cel-ast.js","sourceRoot":"","sources":["../src/cel-ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { Environment } from "@marcbachmann/cel-js";
2
+ export declare function createAcpusCelEnvironment(options?: {
3
+ unlistedVariablesAreDyn?: boolean;
4
+ nowTimestamp?: string;
5
+ }): Environment;
6
+ //# sourceMappingURL=cel-environment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-environment.d.ts","sourceRoot":"","sources":["../src/cel-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE;IAAE,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,WAAW,CAwB7H"}
@@ -0,0 +1,44 @@
1
+ import { Environment } from "@marcbachmann/cel-js";
2
+ export function createAcpusCelEnvironment(options) {
3
+ const env = new Environment({ unlistedVariablesAreDyn: options?.unlistedVariablesAreDyn ?? false });
4
+ for (const root of ["input", "steps", "workflow", "loop_ctx", "item", "item_id", "item_index", "run_id"]) {
5
+ env.registerVariable(root, "dyn");
6
+ }
7
+ env.registerFunction("now(): string", () => options?.nowTimestamp ?? new Date().toISOString());
8
+ env.registerFunction("len(string): int", (str) => BigInt(str.length));
9
+ env.registerFunction("len(list): int", (arr) => BigInt(arr.length));
10
+ env.registerFunction("startsWith(string, string): bool", (str, prefix) => str.startsWith(prefix));
11
+ env.registerFunction("matches(string, string): bool", (str, pattern) => {
12
+ try {
13
+ return new RegExp(pattern).test(str);
14
+ }
15
+ catch {
16
+ return false;
17
+ }
18
+ });
19
+ env.registerFunction("coalesce(dyn, dyn): dyn", (a, b) => (a !== null && a !== undefined) ? a : b);
20
+ env.registerFunction("coalesce(dyn, dyn, dyn): dyn", (a, b, c) => {
21
+ if (a !== null && a !== undefined)
22
+ return a;
23
+ if (b !== null && b !== undefined)
24
+ return b;
25
+ return c;
26
+ });
27
+ env.registerFunction("json(dyn): string", (value) => JSON.stringify(normalizeForJson(value)));
28
+ return env;
29
+ }
30
+ function normalizeForJson(value) {
31
+ if (typeof value === "bigint")
32
+ return Number(value);
33
+ if (Array.isArray(value))
34
+ return value.map(normalizeForJson);
35
+ if (value instanceof Map)
36
+ return normalizeForJson(Object.fromEntries(value));
37
+ if (value !== null && typeof value === "object") {
38
+ return Object.fromEntries(Object.keys(value)
39
+ .sort()
40
+ .map((key) => [key, normalizeForJson(value[key])]));
41
+ }
42
+ return value;
43
+ }
44
+ //# sourceMappingURL=cel-environment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cel-environment.js","sourceRoot":"","sources":["../src/cel-environment.ts"],"names":[],"mappings":"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"}
package/dist/compiler.js CHANGED
@@ -25,7 +25,7 @@ export function compileWorkflow(source, options = {}) {
25
25
  const compileOptions = { ...options, sourcePath };
26
26
  const expanded = expandIncludes(parsed, compileOptions, diagnostics, new Set());
27
27
  validateWithSchema(expanded, diagnostics);
28
- const { ids: stepIds, kinds: stepKinds } = collectStepIds(expanded.workflow.steps, diagnostics);
28
+ const stepIds = collectStepIds(expanded.workflow.steps, diagnostics);
29
29
  const context = {
30
30
  diagnostics,
31
31
  stepIds,
@@ -44,7 +44,7 @@ export function compileWorkflow(source, options = {}) {
44
44
  implicit: true
45
45
  }
46
46
  };
47
- const expressionCollector = createExpressionCollector(diagnostics, stepIds, stepKinds);
47
+ const expressionCollector = createExpressionCollector(diagnostics, stepIds);
48
48
  expressionCollector.visit(expanded.input ?? {}, "$.input");
49
49
  expressionCollector.visit(expanded.agents ?? {}, "$.agents");
50
50
  expressionCollector.visit(expanded.workflow.steps, "$.workflow.steps");
@@ -393,38 +393,12 @@ function validateAgentStep(step, path, context) {
393
393
  if (step.retry !== undefined) {
394
394
  validateRetry(step.retry, path, context);
395
395
  }
396
- if (isRecord(step.output)) {
397
- // output.schema deprecation check (semantic, not structural)
398
- if ("schema" in step.output) {
399
- context.diagnostics.error("OUTPUT_SHAPE", "The 'schema' key in agent output is no longer supported as a JSON Schema escape hatch. Use the Acpus Schema DSL directly (e.g. output: { field: string }).", `${path}.output.schema`);
400
- }
401
- const { schema, errors } = compileSchemaDsl(step.output);
402
- for (const err of errors) {
403
- context.diagnostics.error("OUTPUT_SHAPE", err.message, `${path}.output.${err.field}`);
404
- }
405
- if (errors.length === 0) {
406
- validateJsonSchema(schema, `${path}.output`, context);
407
- }
408
- step.output = schema;
409
- }
396
+ compileOutputSchema(step, path, context);
410
397
  }
411
398
  function validateProgramStep(step, path, context) {
412
- if (isRecord(step.output)) {
413
- // output.schema deprecation check (semantic, not structural)
414
- if ("schema" in step.output) {
415
- context.diagnostics.error("OUTPUT_SHAPE", "The 'schema' key in program output is no longer supported as a JSON Schema escape hatch. Use the Acpus Schema DSL directly (e.g. output: { field: string }).", `${path}.output.schema`);
416
- }
417
- const { schema, errors } = compileSchemaDsl(step.output);
418
- for (const err of errors) {
419
- context.diagnostics.error("OUTPUT_SHAPE", err.message, `${path}.output.${err.field}`);
420
- }
421
- if (errors.length === 0) {
422
- validateJsonSchema(schema, `${path}.output`, context);
423
- }
424
- step.output = schema;
425
- }
399
+ const outputSchema = compileOutputSchema(step, path, context);
426
400
  // Enforce: output schema requires capture.parse: json
427
- if (isRecord(step.output)) {
401
+ if (outputSchema) {
428
402
  const capture = step.capture;
429
403
  if (!capture || capture.parse !== "json") {
430
404
  context.diagnostics.error("OUTPUT_REQUIRES_JSON", "run: program output schema requires capture.parse: json.", `${path}.output`);
@@ -464,35 +438,7 @@ function validateSignalStep(step, path, context) {
464
438
  context.diagnostics.error("SIGNAL_TIMEOUT", "signal.timeout must be a valid duration string (e.g. 5m, 2h, 30s).", `${path}.timeout`);
465
439
  }
466
440
  }
467
- // Compile the optional output schema DSL into JSON Schema, mirroring Agent and
468
- // Program steps. When omitted (or an empty map), the injected payload is
469
- // accepted unvalidated.
470
- let outputSchema;
471
- if (isRecord(step.output) && Object.keys(step.output).length > 0) {
472
- if ("schema" in step.output) {
473
- context.diagnostics.error("OUTPUT_SHAPE", "The 'schema' key in signal output is no longer supported as a JSON Schema escape hatch. Use the Acpus Schema DSL directly (e.g. output: { field: string }).", `${path}.output.schema`);
474
- }
475
- const { schema, errors } = compileSchemaDsl(step.output);
476
- for (const err of errors) {
477
- context.diagnostics.error("OUTPUT_SHAPE", err.message, `${path}.output.${err.field}`);
478
- }
479
- if (errors.length === 0) {
480
- validateJsonSchema(schema, `${path}.output`, context);
481
- outputSchema = schema;
482
- step.output = schema;
483
- }
484
- else {
485
- // Guarantee the IR invariant: metadata.output is either undefined or a
486
- // valid compiled JSON Schema — never a partial schema or raw DSL.
487
- step.output = undefined;
488
- }
489
- }
490
- else {
491
- // `output: {}` (empty map) means "accept any object", identical to omitting
492
- // output. Clear it so metadata.output stays undefined rather than compiling
493
- // to a schema that rejects every non-empty payload.
494
- delete step.output;
495
- }
441
+ const outputSchema = compileOutputSchema(step, path, context);
496
442
  // When `on_timeout: default`, validate the literal `default` payload at compile
497
443
  // time so an invalid default is a lint error, not a runtime surprise.
498
444
  if (step.on_timeout === "default" && isRecord(step.default) && outputSchema) {
@@ -508,6 +454,26 @@ function validateSignalStep(step, path, context) {
508
454
  }
509
455
  }
510
456
  }
457
+ function compileOutputSchema(step, path, context) {
458
+ if (!isRecord(step.output) || Object.keys(step.output).length === 0) {
459
+ delete step.output;
460
+ return undefined;
461
+ }
462
+ if ("schema" in step.output) {
463
+ context.diagnostics.error("OUTPUT_SHAPE", "The 'schema' key in output is no longer supported as a JSON Schema escape hatch. Use the Acpus Schema DSL directly (e.g. output: { field: string }).", `${path}.output.schema`);
464
+ }
465
+ const { schema, errors } = compileSchemaDsl(step.output);
466
+ for (const err of errors) {
467
+ context.diagnostics.error("OUTPUT_SHAPE", err.message, `${path}.output.${err.field}`);
468
+ }
469
+ if (errors.length > 0) {
470
+ delete step.output;
471
+ return undefined;
472
+ }
473
+ validateJsonSchema(schema, `${path}.output`, context);
474
+ step.output = schema;
475
+ return schema;
476
+ }
511
477
  function validateRetry(retry, path, context) {
512
478
  // Duration format validation for backoff (not expressible in JSON Schema)
513
479
  if (isRecord(retry) && retry.backoff !== undefined) {
@@ -544,32 +510,8 @@ function validateJsonSchema(schema, path, context) {
544
510
  context.diagnostics.error("JSON_SCHEMA_INVALID", `Invalid JSON Schema: ${message}`, path);
545
511
  }
546
512
  }
547
- function inferStepKind(step) {
548
- if (Array.isArray(step.pipeline))
549
- return "pipeline";
550
- if (step.run === "agent")
551
- return "run.agent";
552
- if (step.run === "program")
553
- return "run.program";
554
- if (Array.isArray(step.parallel))
555
- return "parallel";
556
- if (isRecord(step.fanout))
557
- return "fanout";
558
- if (isRecord(step.switch))
559
- return "switch";
560
- if (isRecord(step.loop))
561
- return "loop";
562
- if (isRecord(step.guard))
563
- return "guard";
564
- if (step.run === "signal")
565
- return "run.signal";
566
- if (typeof step.subworkflow === "string")
567
- return "subworkflow";
568
- return undefined;
569
- }
570
513
  function collectStepIds(steps, diagnostics) {
571
514
  const ids = new Set();
572
- const kinds = new Map();
573
515
  const visit = (items, path) => {
574
516
  items.forEach((step, index) => {
575
517
  const stepPath = `${path}[${index}]`;
@@ -578,10 +520,6 @@ function collectStepIds(steps, diagnostics) {
578
520
  diagnostics.error("STEP_ID_DUPLICATE", `Duplicate step id '${step.id}'.`, `${stepPath}.id`);
579
521
  }
580
522
  ids.add(step.id);
581
- const kind = inferStepKind(step);
582
- if (kind) {
583
- kinds.set(step.id, kind);
584
- }
585
523
  }
586
524
  if (Array.isArray(step.pipeline)) {
587
525
  visit(asPlainSteps(step.pipeline), `${stepPath}.pipeline`);
@@ -614,7 +552,7 @@ function collectStepIds(steps, diagnostics) {
614
552
  });
615
553
  };
616
554
  visit(steps, "$.workflow.steps");
617
- return { ids, kinds };
555
+ return ids;
618
556
  }
619
557
  function keyTemplate(nodePath) {
620
558
  return {