taskflow-dsl 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1008 -0
  3. package/dist/build/erase/ast.d.ts +13 -0
  4. package/dist/build/erase/ast.d.ts.map +1 -0
  5. package/dist/build/erase/ast.js +76 -0
  6. package/dist/build/erase/ast.js.map +1 -0
  7. package/dist/build/erase/context.d.ts +18 -0
  8. package/dist/build/erase/context.d.ts.map +1 -0
  9. package/dist/build/erase/context.js +109 -0
  10. package/dist/build/erase/context.js.map +1 -0
  11. package/dist/build/erase/index.d.ts +4 -0
  12. package/dist/build/erase/index.d.ts.map +1 -0
  13. package/dist/build/erase/index.js +2 -0
  14. package/dist/build/erase/index.js.map +1 -0
  15. package/dist/build/erase/kinds/agent-script.d.ts +5 -0
  16. package/dist/build/erase/kinds/agent-script.d.ts.map +1 -0
  17. package/dist/build/erase/kinds/agent-script.js +100 -0
  18. package/dist/build/erase/kinds/agent-script.js.map +1 -0
  19. package/dist/build/erase/kinds/approval.d.ts +4 -0
  20. package/dist/build/erase/kinds/approval.d.ts.map +1 -0
  21. package/dist/build/erase/kinds/approval.js +39 -0
  22. package/dist/build/erase/kinds/approval.js.map +1 -0
  23. package/dist/build/erase/kinds/branch-opts.d.ts +10 -0
  24. package/dist/build/erase/kinds/branch-opts.d.ts.map +1 -0
  25. package/dist/build/erase/kinds/branch-opts.js +21 -0
  26. package/dist/build/erase/kinds/branch-opts.js.map +1 -0
  27. package/dist/build/erase/kinds/expand-flow.d.ts +9 -0
  28. package/dist/build/erase/kinds/expand-flow.d.ts.map +1 -0
  29. package/dist/build/erase/kinds/expand-flow.js +80 -0
  30. package/dist/build/erase/kinds/expand-flow.js.map +1 -0
  31. package/dist/build/erase/kinds/gate-sugar.d.ts +5 -0
  32. package/dist/build/erase/kinds/gate-sugar.d.ts.map +1 -0
  33. package/dist/build/erase/kinds/gate-sugar.js +98 -0
  34. package/dist/build/erase/kinds/gate-sugar.js.map +1 -0
  35. package/dist/build/erase/kinds/gate.d.ts +5 -0
  36. package/dist/build/erase/kinds/gate.d.ts.map +1 -0
  37. package/dist/build/erase/kinds/gate.js +60 -0
  38. package/dist/build/erase/kinds/gate.js.map +1 -0
  39. package/dist/build/erase/kinds/index.d.ts +9 -0
  40. package/dist/build/erase/kinds/index.d.ts.map +1 -0
  41. package/dist/build/erase/kinds/index.js +107 -0
  42. package/dist/build/erase/kinds/index.js.map +1 -0
  43. package/dist/build/erase/kinds/loop.d.ts +4 -0
  44. package/dist/build/erase/kinds/loop.d.ts.map +1 -0
  45. package/dist/build/erase/kinds/loop.js +55 -0
  46. package/dist/build/erase/kinds/loop.js.map +1 -0
  47. package/dist/build/erase/kinds/map.d.ts +4 -0
  48. package/dist/build/erase/kinds/map.d.ts.map +1 -0
  49. package/dist/build/erase/kinds/map.js +117 -0
  50. package/dist/build/erase/kinds/map.js.map +1 -0
  51. package/dist/build/erase/kinds/parallel.d.ts +4 -0
  52. package/dist/build/erase/kinds/parallel.d.ts.map +1 -0
  53. package/dist/build/erase/kinds/parallel.js +62 -0
  54. package/dist/build/erase/kinds/parallel.js.map +1 -0
  55. package/dist/build/erase/kinds/race.d.ts +4 -0
  56. package/dist/build/erase/kinds/race.d.ts.map +1 -0
  57. package/dist/build/erase/kinds/race.js +61 -0
  58. package/dist/build/erase/kinds/race.js.map +1 -0
  59. package/dist/build/erase/kinds/reduce.d.ts +4 -0
  60. package/dist/build/erase/kinds/reduce.d.ts.map +1 -0
  61. package/dist/build/erase/kinds/reduce.js +81 -0
  62. package/dist/build/erase/kinds/reduce.js.map +1 -0
  63. package/dist/build/erase/kinds/tournament.d.ts +4 -0
  64. package/dist/build/erase/kinds/tournament.d.ts.map +1 -0
  65. package/dist/build/erase/kinds/tournament.js +75 -0
  66. package/dist/build/erase/kinds/tournament.js.map +1 -0
  67. package/dist/build/erase/opts.d.ts +18 -0
  68. package/dist/build/erase/opts.d.ts.map +1 -0
  69. package/dist/build/erase/opts.js +241 -0
  70. package/dist/build/erase/opts.js.map +1 -0
  71. package/dist/build/erase/pipeline.d.ts +8 -0
  72. package/dist/build/erase/pipeline.d.ts.map +1 -0
  73. package/dist/build/erase/pipeline.js +420 -0
  74. package/dist/build/erase/pipeline.js.map +1 -0
  75. package/dist/build/erase/templates.d.ts +20 -0
  76. package/dist/build/erase/templates.d.ts.map +1 -0
  77. package/dist/build/erase/templates.js +185 -0
  78. package/dist/build/erase/templates.js.map +1 -0
  79. package/dist/build/erase/types.d.ts +31 -0
  80. package/dist/build/erase/types.d.ts.map +1 -0
  81. package/dist/build/erase/types.js +28 -0
  82. package/dist/build/erase/types.js.map +1 -0
  83. package/dist/build/erase.d.ts +4 -0
  84. package/dist/build/erase.d.ts.map +1 -0
  85. package/dist/build/erase.js +2 -0
  86. package/dist/build/erase.js.map +1 -0
  87. package/dist/build.d.ts +26 -0
  88. package/dist/build.d.ts.map +1 -0
  89. package/dist/build.js +200 -0
  90. package/dist/build.js.map +1 -0
  91. package/dist/check.d.ts +21 -0
  92. package/dist/check.d.ts.map +1 -0
  93. package/dist/check.js +42 -0
  94. package/dist/check.js.map +1 -0
  95. package/dist/cli.d.ts +6 -0
  96. package/dist/cli.d.ts.map +1 -0
  97. package/dist/cli.js +279 -0
  98. package/dist/cli.js.map +1 -0
  99. package/dist/decompile.d.ts +7 -0
  100. package/dist/decompile.d.ts.map +1 -0
  101. package/dist/decompile.js +353 -0
  102. package/dist/decompile.js.map +1 -0
  103. package/dist/diagnostics.d.ts +27 -0
  104. package/dist/diagnostics.d.ts.map +1 -0
  105. package/dist/diagnostics.js +17 -0
  106. package/dist/diagnostics.js.map +1 -0
  107. package/dist/index.d.ts +7 -0
  108. package/dist/index.d.ts.map +1 -0
  109. package/dist/index.js +6 -0
  110. package/dist/index.js.map +1 -0
  111. package/dist/new-skeleton.d.ts +4 -0
  112. package/dist/new-skeleton.d.ts.map +1 -0
  113. package/dist/new-skeleton.js +22 -0
  114. package/dist/new-skeleton.js.map +1 -0
  115. package/dist/paths.d.ts +28 -0
  116. package/dist/paths.d.ts.map +1 -0
  117. package/dist/paths.js +153 -0
  118. package/dist/paths.js.map +1 -0
  119. package/dist/runes.d.ts +175 -0
  120. package/dist/runes.d.ts.map +1 -0
  121. package/dist/runes.js +83 -0
  122. package/dist/runes.js.map +1 -0
  123. package/dist/typecheck.d.ts +6 -0
  124. package/dist/typecheck.d.ts.map +1 -0
  125. package/dist/typecheck.js +62 -0
  126. package/dist/typecheck.js.map +1 -0
  127. package/package.json +68 -0
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TypeScript AST primitives for erase (no domain knowledge of phases).
3
+ */
4
+ import ts from "typescript";
5
+ import type { Diagnostic } from "../../diagnostics.ts";
6
+ export declare function posOf(sf: ts.SourceFile, node: ts.Node): {
7
+ line: number;
8
+ character: number;
9
+ };
10
+ export declare function diag(file: string, sf: ts.SourceFile, node: ts.Node, code: string, message: string, severity?: Diagnostic["severity"], hint?: string): Diagnostic;
11
+ export declare function calleeName(expr: ts.Expression): string | undefined;
12
+ export declare function evalLiteral(node: ts.Expression): unknown;
13
+ //# sourceMappingURL=ast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../../src/build/erase/ast.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,wBAAgB,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAG3F;AAED,wBAAgB,IAAI,CACnB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,EAAE,CAAC,UAAU,EACjB,IAAI,EAAE,EAAE,CAAC,IAAI,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,UAAU,CAAC,UAAU,CAAW,EAC1C,IAAI,CAAC,EAAE,MAAM,GACX,UAAU,CAUZ;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAMlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,OAAO,CAuCxD"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * TypeScript AST primitives for erase (no domain knowledge of phases).
3
+ */
4
+ import ts from "typescript";
5
+ export function posOf(sf, node) {
6
+ const { line, character } = sf.getLineAndCharacterOfPosition(node.getStart(sf));
7
+ return { line: line + 1, character: character + 1 };
8
+ }
9
+ export function diag(file, sf, node, code, message, severity = "error", hint) {
10
+ const p = posOf(sf, node);
11
+ return {
12
+ code,
13
+ severity,
14
+ message,
15
+ file,
16
+ range: { line: p.line, character: p.character },
17
+ hint,
18
+ };
19
+ }
20
+ export function calleeName(expr) {
21
+ if (ts.isIdentifier(expr))
22
+ return expr.text;
23
+ if (ts.isPropertyAccessExpression(expr) && ts.isIdentifier(expr.expression)) {
24
+ return `${expr.expression.text}.${expr.name.text}`;
25
+ }
26
+ return undefined;
27
+ }
28
+ export function evalLiteral(node) {
29
+ if (ts.isStringLiteral(node) || ts.isNoSubstitutionTemplateLiteral(node))
30
+ return node.text;
31
+ if (ts.isNumericLiteral(node))
32
+ return Number(node.text);
33
+ if (ts.isPrefixUnaryExpression(node) &&
34
+ (node.operator === ts.SyntaxKind.PlusToken || node.operator === ts.SyntaxKind.MinusToken) &&
35
+ ts.isNumericLiteral(node.operand)) {
36
+ const value = Number(node.operand.text);
37
+ return node.operator === ts.SyntaxKind.MinusToken ? -value : value;
38
+ }
39
+ if (node.kind === ts.SyntaxKind.TrueKeyword)
40
+ return true;
41
+ if (node.kind === ts.SyntaxKind.FalseKeyword)
42
+ return false;
43
+ if (node.kind === ts.SyntaxKind.NullKeyword)
44
+ return null;
45
+ if (ts.isArrayLiteralExpression(node)) {
46
+ const values = [];
47
+ for (const element of node.elements) {
48
+ if (ts.isSpreadElement(element))
49
+ return undefined;
50
+ const value = evalLiteral(element);
51
+ if (value === undefined)
52
+ return undefined;
53
+ values.push(value);
54
+ }
55
+ return values;
56
+ }
57
+ if (ts.isObjectLiteralExpression(node)) {
58
+ const o = {};
59
+ for (const p of node.properties) {
60
+ if (!ts.isPropertyAssignment(p))
61
+ return undefined;
62
+ const key = ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)
63
+ ? p.name.text
64
+ : undefined;
65
+ if (!key)
66
+ return undefined;
67
+ const value = evalLiteral(p.initializer);
68
+ if (value === undefined)
69
+ return undefined;
70
+ o[key] = value;
71
+ }
72
+ return o;
73
+ }
74
+ return undefined;
75
+ }
76
+ //# sourceMappingURL=ast.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ast.js","sourceRoot":"","sources":["../../../src/build/erase/ast.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Shared emit context for kind handlers (one eraseSource() call).
3
+ */
4
+ import ts from "typescript";
5
+ import type { Diagnostic } from "../../diagnostics.ts";
6
+ import { type PhaseDraft } from "./types.ts";
7
+ export interface EmitContext {
8
+ file: string;
9
+ sf: ts.SourceFile;
10
+ diags: Diagnostic[];
11
+ phases: Map<string, PhaseDraft>;
12
+ order: string[];
13
+ }
14
+ export declare function nextSyntheticId(ctx: EmitContext, prefix: string): string;
15
+ export declare function register(ctx: EmitContext, draft: PhaseDraft): string;
16
+ /** Resolve def argument: plan.json / plan.output / string / phase id. */
17
+ export declare function bindDefArg(ctx: EmitContext, defArg: ts.Expression | undefined, draft: PhaseDraft): void;
18
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/build/erase/context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAmC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,WAAW,WAAW;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAoCpE;AAED,yEAAyE;AACzE,wBAAgB,UAAU,CACzB,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EACjC,KAAK,EAAE,UAAU,GACf,IAAI,CA6BN"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * Shared emit context for kind handlers (one eraseSource() call).
3
+ */
4
+ import ts from "typescript";
5
+ import { diag, evalLiteral } from "./ast.js";
6
+ import { phaseByBinding, setPhaseBinding } from "./types.js";
7
+ export function nextSyntheticId(ctx, prefix) {
8
+ return ctx.order.length === 0 ? "main" : `${prefix}-${ctx.order.length}`;
9
+ }
10
+ export function register(ctx, draft) {
11
+ delete draft.raw.id;
12
+ // Union auto-wired deps with any explicit dependsOn already on raw (opts).
13
+ const explicit = Array.isArray(draft.raw.dependsOn)
14
+ ? draft.raw.dependsOn.filter((d) => typeof d === "string")
15
+ : [];
16
+ for (const d of explicit)
17
+ draft.dependsOn.add(d);
18
+ if (draft.dependsOn.size)
19
+ draft.raw.dependsOn = [...draft.dependsOn];
20
+ else
21
+ delete draft.raw.dependsOn;
22
+ if (draft.final)
23
+ draft.raw.final = true;
24
+ const existing = ctx.phases.get(draft.id);
25
+ if (existing && existing !== draft) {
26
+ ctx.diags.push({
27
+ code: "TFDSL_PHASE_ID_DUPLICATE",
28
+ severity: "error",
29
+ message: `Duplicate emitted phase id '${draft.id}'.`,
30
+ file: ctx.file,
31
+ });
32
+ return draft.id;
33
+ }
34
+ ctx.phases.set(draft.id, draft);
35
+ if (draft.binding) {
36
+ const bound = phaseByBinding(ctx.phases, draft.binding);
37
+ if (bound && bound !== draft) {
38
+ ctx.diags.push({
39
+ code: "TFDSL_BINDING_COLLISION",
40
+ severity: "error",
41
+ message: `Binding '${draft.binding}' collides with phase id '${bound.id}'.`,
42
+ file: ctx.file,
43
+ });
44
+ }
45
+ else {
46
+ setPhaseBinding(ctx.phases, draft.binding, draft);
47
+ }
48
+ }
49
+ if (!ctx.order.includes(draft.id))
50
+ ctx.order.push(draft.id);
51
+ return draft.id;
52
+ }
53
+ /** Resolve def argument: plan.json / plan.output / string / phase id. */
54
+ export function bindDefArg(ctx, defArg, draft) {
55
+ if (!defArg)
56
+ return;
57
+ const { phases } = ctx;
58
+ if (tsIsPropertyAccess(defArg) && tsIsIdentifier(defArg.expression)) {
59
+ const binding = defArg.expression.text;
60
+ const pid = phaseByBinding(phases, binding)?.id;
61
+ if (pid && (defArg.name.text === "json" || defArg.name.text === "output")) {
62
+ draft.dependsOn.add(pid);
63
+ draft.raw.def =
64
+ defArg.name.text === "json" ? `{steps.${pid}.json}` : `{steps.${pid}.output}`;
65
+ }
66
+ else {
67
+ ctx.diags.push(diag(ctx.file, ctx.sf, defArg, "TFDSL_INLINE_DEF_UNSUPPORTED", `def phase reference must be a previously declared phase.json or phase.output handle.`));
68
+ }
69
+ }
70
+ else if (tsIsStringLiteral(defArg)) {
71
+ draft.raw.def = defArg.text;
72
+ }
73
+ else if (tsIsIdentifier(defArg) && phaseByBinding(phases, defArg.text)) {
74
+ const pid = phaseByBinding(phases, defArg.text).id;
75
+ draft.dependsOn.add(pid);
76
+ draft.raw.def = `{steps.${pid}.json}`;
77
+ }
78
+ else if (ts.isObjectLiteralExpression(defArg) || ts.isArrayLiteralExpression(defArg)) {
79
+ const value = evalLiteral(defArg);
80
+ if (containsUndefined(value)) {
81
+ ctx.diags.push(diag(ctx.file, ctx.sf, defArg, "TFDSL_INLINE_DEF_DYNAMIC", `Inline def must contain only static JSON values.`));
82
+ }
83
+ else {
84
+ draft.raw.def = value;
85
+ }
86
+ }
87
+ else {
88
+ ctx.diags.push(diag(ctx.file, ctx.sf, defArg, "TFDSL_INLINE_DEF_UNSUPPORTED", `def must be a phase handle, string, or static Taskflow object.`));
89
+ }
90
+ }
91
+ function containsUndefined(value) {
92
+ if (value === undefined)
93
+ return true;
94
+ if (Array.isArray(value))
95
+ return value.some(containsUndefined);
96
+ if (value && typeof value === "object")
97
+ return Object.values(value).some(containsUndefined);
98
+ return false;
99
+ }
100
+ function tsIsPropertyAccess(n) {
101
+ return ts.isPropertyAccessExpression(n);
102
+ }
103
+ function tsIsIdentifier(n) {
104
+ return ts.isIdentifier(n);
105
+ }
106
+ function tsIsStringLiteral(n) {
107
+ return ts.isStringLiteral(n);
108
+ }
109
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/build/erase/context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ /** Public erase entry — re-exports only. */
2
+ export type { EraseResult } from "./types.ts";
3
+ export { eraseSource } from "./pipeline.ts";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/build/erase/index.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { eraseSource } from "./pipeline.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/build/erase/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { type EmitContext } from "../context.ts";
3
+ export declare function emitAgent(ctx: EmitContext, bindName: string | undefined, call: ts.CallExpression, itemParam?: string): string;
4
+ export declare function emitScript(ctx: EmitContext, bindName: string | undefined, call: ts.CallExpression, itemParam?: string): string;
5
+ //# sourceMappingURL=agent-script.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-script.d.ts","sourceRoot":"","sources":["../../../../src/build/erase/kinds/agent-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,eAAe,CAAC;AAE5E,wBAAgB,SAAS,CACxB,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GAChB,MAAM,CAyBR;AAED,wBAAgB,UAAU,CACzB,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,SAAS,CAAC,EAAE,MAAM,GAChB,MAAM,CAkDR"}
@@ -0,0 +1,100 @@
1
+ import ts from "typescript";
2
+ import { mergeOpts, phaseIdFromBinding } from "../opts.js";
3
+ import { eraseStringish } from "../templates.js";
4
+ import { nextSyntheticId, register } from "../context.js";
5
+ export function emitAgent(ctx, bindName, call, itemParam) {
6
+ const idBase = bindName ?? nextSyntheticId(ctx, "phase");
7
+ const draft = {
8
+ id: idBase,
9
+ binding: idBase,
10
+ type: "agent",
11
+ raw: { type: "agent" },
12
+ dependsOn: new Set(),
13
+ };
14
+ const taskArg = call.arguments[0];
15
+ const optsArg = call.arguments[1];
16
+ if (taskArg) {
17
+ const erased = eraseStringish(ctx.sf, ctx.file, taskArg, itemParam, ctx.phases, ctx.diags);
18
+ if (erased) {
19
+ draft.raw.task = erased.text;
20
+ for (const d of erased.deps)
21
+ draft.dependsOn.add(d);
22
+ }
23
+ }
24
+ const opts = mergeOpts(ctx.sf, ctx.file, optsArg, ctx.diags, ctx.phases);
25
+ if (typeof opts.id === "string")
26
+ draft.id = opts.id;
27
+ else
28
+ draft.id = phaseIdFromBinding(idBase, opts);
29
+ Object.assign(draft.raw, opts);
30
+ if (Array.isArray(opts.dependsOn))
31
+ for (const d of opts.dependsOn)
32
+ draft.dependsOn.add(d);
33
+ if (opts.final === true)
34
+ draft.final = true;
35
+ return register(ctx, draft);
36
+ }
37
+ export function emitScript(ctx, bindName, call, itemParam) {
38
+ const idBase = bindName ?? nextSyntheticId(ctx, "phase");
39
+ const draft = {
40
+ id: idBase,
41
+ binding: idBase,
42
+ type: "script",
43
+ raw: { type: "script" },
44
+ dependsOn: new Set(),
45
+ };
46
+ const taskArg = call.arguments[0];
47
+ const optsArg = call.arguments[1];
48
+ if (taskArg) {
49
+ if (ts.isArrayLiteralExpression(taskArg)) {
50
+ const arr = taskArg.elements.map((el) => {
51
+ if (ts.isStringLiteral(el))
52
+ return el.text;
53
+ const er = eraseStringish(ctx.sf, ctx.file, el, itemParam, ctx.phases, ctx.diags);
54
+ if (er) {
55
+ for (const d of er.deps)
56
+ draft.dependsOn.add(d);
57
+ return er.text;
58
+ }
59
+ return "";
60
+ });
61
+ draft.raw.run = arr;
62
+ }
63
+ else {
64
+ const erased = eraseStringish(ctx.sf, ctx.file, taskArg, itemParam, ctx.phases, ctx.diags);
65
+ if (erased) {
66
+ draft.raw.run = erased.text;
67
+ for (const d of erased.deps)
68
+ draft.dependsOn.add(d);
69
+ }
70
+ }
71
+ }
72
+ const opts = mergeOpts(ctx.sf, ctx.file, optsArg, ctx.diags, ctx.phases, { allowKeys: new Set(["input"]) });
73
+ if (optsArg && ts.isObjectLiteralExpression(optsArg)) {
74
+ for (const property of optsArg.properties) {
75
+ if (!ts.isPropertyAssignment(property))
76
+ continue;
77
+ const key = ts.isIdentifier(property.name) || ts.isStringLiteral(property.name) ? property.name.text : undefined;
78
+ if (key !== "input")
79
+ continue;
80
+ const erased = eraseStringish(ctx.sf, ctx.file, property.initializer, itemParam, ctx.phases, ctx.diags);
81
+ if (erased) {
82
+ opts.input = erased.text;
83
+ for (const dep of erased.deps)
84
+ draft.dependsOn.add(dep);
85
+ }
86
+ }
87
+ }
88
+ if (typeof opts.id === "string")
89
+ draft.id = opts.id;
90
+ else
91
+ draft.id = phaseIdFromBinding(idBase, opts);
92
+ Object.assign(draft.raw, opts);
93
+ if (Array.isArray(opts.dependsOn))
94
+ for (const d of opts.dependsOn)
95
+ draft.dependsOn.add(d);
96
+ if (opts.final === true)
97
+ draft.final = true;
98
+ return register(ctx, draft);
99
+ }
100
+ //# sourceMappingURL=agent-script.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-script.js","sourceRoot":"","sources":["../../../../src/build/erase/kinds/agent-script.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import ts from "typescript";
2
+ import { type EmitContext } from "../context.ts";
3
+ export declare function emitApproval(ctx: EmitContext, bindName: string | undefined, call: ts.CallExpression): string;
4
+ //# sourceMappingURL=approval.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../../../src/build/erase/kinds/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,eAAe,CAAC;AAE5E,wBAAgB,YAAY,CAC3B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,GACrB,MAAM,CA4BR"}
@@ -0,0 +1,39 @@
1
+ import ts from "typescript";
2
+ import { mergeOpts } from "../opts.js";
3
+ import { eraseStringish } from "../templates.js";
4
+ import { nextSyntheticId, register } from "../context.js";
5
+ export function emitApproval(ctx, bindName, call) {
6
+ const idBase = bindName ?? nextSyntheticId(ctx, "phase");
7
+ const draft = {
8
+ id: idBase,
9
+ binding: idBase,
10
+ type: "approval",
11
+ raw: { type: "approval" },
12
+ dependsOn: new Set(),
13
+ };
14
+ const optsArg = call.arguments[0];
15
+ const opts = mergeOpts(ctx.sf, ctx.file, optsArg, ctx.diags, ctx.phases, { allowKeys: new Set(["request"]) });
16
+ if (optsArg && ts.isObjectLiteralExpression(optsArg)) {
17
+ for (const property of optsArg.properties) {
18
+ if (!ts.isPropertyAssignment(property))
19
+ continue;
20
+ const key = ts.isIdentifier(property.name) || ts.isStringLiteral(property.name) ? property.name.text : undefined;
21
+ if (key !== "request")
22
+ continue;
23
+ const erased = eraseStringish(ctx.sf, ctx.file, property.initializer, undefined, ctx.phases, ctx.diags);
24
+ if (erased) {
25
+ draft.raw.task = erased.text;
26
+ for (const dep of erased.deps)
27
+ draft.dependsOn.add(dep);
28
+ }
29
+ }
30
+ }
31
+ Object.assign(draft.raw, opts);
32
+ delete draft.raw.request;
33
+ if (typeof opts.id === "string")
34
+ draft.id = opts.id;
35
+ if (opts.final === true)
36
+ draft.final = true;
37
+ return register(ctx, draft);
38
+ }
39
+ //# sourceMappingURL=approval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approval.js","sourceRoot":"","sources":["../../../../src/build/erase/kinds/approval.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAoB,eAAe,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAE5E,MAAM,UAAU,YAAY,CAC3B,GAAgB,EAChB,QAA4B,EAC5B,IAAuB;IAEvB,MAAM,MAAM,GAAG,QAAQ,IAAI,eAAe,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACzD,MAAM,KAAK,GAAe;QACzB,EAAE,EAAE,MAAM;QACV,OAAO,EAAE,MAAM;QACf,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;QACzB,SAAS,EAAE,IAAI,GAAG,EAAE;KACpB,CAAC;IACF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAA8B,CAAC;IAC/D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9G,IAAI,OAAO,IAAI,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtD,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YAC3C,IAAI,CAAC,EAAE,CAAC,oBAAoB,CAAC,QAAQ,CAAC;gBAAE,SAAS;YACjD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACjH,IAAI,GAAG,KAAK,SAAS;gBAAE,SAAS;YAChC,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YACxG,IAAI,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC7B,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI;oBAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACzD,CAAC;QACF,CAAC;IACF,CAAC;IACD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;IACzB,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ;QAAE,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;IACpD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;QAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;IAC5C,OAAO,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,10 @@
1
+ /** Static branch options shared by parallel/race/tournament. */
2
+ import type ts from "typescript";
3
+ import type { EmitContext } from "../context.ts";
4
+ /**
5
+ * Core's branch contract supports only an agent override. Phase-wide routing
6
+ * fields such as model/thinking/tools are not applied per branch at runtime, so
7
+ * reject them here instead of emitting a definition whose intent is ignored.
8
+ */
9
+ export declare function mergeBranchAgentOpts(ctx: EmitContext, obj: ts.Expression | undefined, role: string): Record<string, unknown>;
10
+ //# sourceMappingURL=branch-opts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-opts.d.ts","sourceRoot":"","sources":["../../../../src/build/erase/kinds/branch-opts.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAEhE,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,oBAAoB,CACnC,GAAG,EAAE,WAAW,EAChB,GAAG,EAAE,EAAE,CAAC,UAAU,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBzB"}
@@ -0,0 +1,21 @@
1
+ /** Static branch options shared by parallel/race/tournament. */
2
+ import { diag } from "../ast.js";
3
+ import { mergeOpts } from "../opts.js";
4
+ /**
5
+ * Core's branch contract supports only an agent override. Phase-wide routing
6
+ * fields such as model/thinking/tools are not applied per branch at runtime, so
7
+ * reject them here instead of emitting a definition whose intent is ignored.
8
+ */
9
+ export function mergeBranchAgentOpts(ctx, obj, role) {
10
+ const parsed = mergeOpts(ctx.sf, ctx.file, obj, ctx.diags, ctx.phases);
11
+ const out = {};
12
+ for (const [key, value] of Object.entries(parsed)) {
13
+ if (key === "agent")
14
+ out.agent = value;
15
+ else {
16
+ ctx.diags.push(diag(ctx.file, ctx.sf, obj ?? ctx.sf, "TFDSL_BRANCH_OPTS_UNSUPPORTED", `${role} option '${key}' is not supported by the runtime branch contract; only 'agent' is allowed. Put model/thinking/tools and other execution options on the enclosing phase.`));
17
+ }
18
+ }
19
+ return out;
20
+ }
21
+ //# sourceMappingURL=branch-opts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"branch-opts.js","sourceRoot":"","sources":["../../../../src/build/erase/kinds/branch-opts.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAGhE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGvC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CACnC,GAAgB,EAChB,GAA8B,EAC9B,IAAY;IAEZ,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvE,MAAM,GAAG,GAA4B,EAAE,CAAC;IACxC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,GAAG,KAAK,OAAO;YAAE,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;aAClC,CAAC;YACL,GAAG,CAAC,KAAK,CAAC,IAAI,CACb,IAAI,CACH,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,EAAE,EACN,GAAG,IAAI,GAAG,CAAC,EAAE,EACb,+BAA+B,EAC/B,GAAG,IAAI,YAAY,GAAG,0JAA0J,CAChL,CACD,CAAC;QACH,CAAC;IACF,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import ts from "typescript";
2
+ import { type EmitContext } from "../context.ts";
3
+ /** expand.nested / subflow.def */
4
+ export declare function emitExpandNestedOrSubflowDef(ctx: EmitContext, cn: string, bindName: string | undefined, call: ts.CallExpression): string;
5
+ /** subflow("name", with?, opts?) */
6
+ export declare function emitSubflowUse(ctx: EmitContext, bindName: string | undefined, call: ts.CallExpression): string;
7
+ /** expand(...) / expand.graft(...) */
8
+ export declare function emitExpand(ctx: EmitContext, cn: string, bindName: string | undefined, call: ts.CallExpression): string;
9
+ //# sourceMappingURL=expand-flow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand-flow.d.ts","sourceRoot":"","sources":["../../../../src/build/erase/kinds/expand-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAI5B,OAAO,EAAc,KAAK,WAAW,EAA6B,MAAM,eAAe,CAAC;AAExF,kCAAkC;AAClC,wBAAgB,4BAA4B,CAC3C,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,GACrB,MAAM,CA0BR;AAED,oCAAoC;AACpC,wBAAgB,cAAc,CAC7B,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,GACrB,MAAM,CA4BR;AAED,sCAAsC;AACtC,wBAAgB,UAAU,CACzB,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,GACrB,MAAM,CA2BR"}
@@ -0,0 +1,80 @@
1
+ import ts from "typescript";
2
+ import { diag, evalLiteral } from "../ast.js";
3
+ import { mergeOpts } from "../opts.js";
4
+ import { bindDefArg, nextSyntheticId, register } from "../context.js";
5
+ /** expand.nested / subflow.def */
6
+ export function emitExpandNestedOrSubflowDef(ctx, cn, bindName, call) {
7
+ const id = bindName ??
8
+ (cn.startsWith("expand") ? `expand-${ctx.order.length}` : `flow-${ctx.order.length}`);
9
+ const draft = {
10
+ id,
11
+ binding: id,
12
+ type: cn === "expand.nested" ? "expand" : "flow",
13
+ raw: cn === "expand.nested"
14
+ ? { type: "expand", expandMode: "nested" }
15
+ : { type: "flow" },
16
+ dependsOn: new Set(),
17
+ };
18
+ bindDefArg(ctx, call.arguments[0], draft);
19
+ const opts = mergeOpts(ctx.sf, ctx.file, call.arguments[1], ctx.diags, ctx.phases, { allowKeys: new Set(["with"]) });
20
+ Object.assign(draft.raw, opts);
21
+ if (typeof opts.id === "string")
22
+ draft.id = opts.id;
23
+ return register(ctx, draft);
24
+ }
25
+ /** subflow("name", with?, opts?) */
26
+ export function emitSubflowUse(ctx, bindName, call) {
27
+ const id = bindName ?? `flow-${ctx.order.length}`;
28
+ const draft = { id, binding: id, type: "flow", raw: { type: "flow" }, dependsOn: new Set() };
29
+ const useArg = call.arguments[0];
30
+ if (useArg && ts.isStringLiteral(useArg))
31
+ draft.raw.use = useArg.text;
32
+ else
33
+ ctx.diags.push(diag(ctx.file, ctx.sf, call, "TFDSL_RUNE_ARG", `subflow(use) requires a string name.`));
34
+ if (call.arguments[1]) {
35
+ if (!ts.isObjectLiteralExpression(call.arguments[1])) {
36
+ ctx.diags.push(diag(ctx.file, ctx.sf, call.arguments[1], "TFDSL_SUBFLOW_WITH_DYNAMIC", `subflow with-args must be a static object literal.`));
37
+ }
38
+ else {
39
+ const withArgs = evalLiteral(call.arguments[1]);
40
+ if (withArgs && typeof withArgs === "object" && !Array.isArray(withArgs)) {
41
+ draft.raw.with = withArgs;
42
+ }
43
+ else {
44
+ ctx.diags.push(diag(ctx.file, ctx.sf, call.arguments[1], "TFDSL_SUBFLOW_WITH_DYNAMIC", `subflow with-args must contain only static JSON values.`));
45
+ }
46
+ }
47
+ }
48
+ const opts = mergeOpts(ctx.sf, ctx.file, call.arguments[2], ctx.diags, ctx.phases);
49
+ Object.assign(draft.raw, opts);
50
+ if (typeof opts.id === "string")
51
+ draft.id = opts.id;
52
+ return register(ctx, draft);
53
+ }
54
+ /** expand(...) / expand.graft(...) */
55
+ export function emitExpand(ctx, cn, bindName, call) {
56
+ const idBase = bindName ?? nextSyntheticId(ctx, "phase");
57
+ const draft = {
58
+ id: idBase,
59
+ binding: idBase,
60
+ type: "expand",
61
+ raw: {
62
+ type: "expand",
63
+ expandMode: cn === "expand.graft" ? "graft" : "nested",
64
+ },
65
+ dependsOn: new Set(),
66
+ };
67
+ bindDefArg(ctx, call.arguments[0], draft);
68
+ const opts = mergeOpts(ctx.sf, ctx.file, call.arguments[1], ctx.diags, ctx.phases, { allowKeys: new Set(["with"]) });
69
+ if (typeof opts.id === "string")
70
+ draft.id = opts.id;
71
+ if (cn === "expand.graft")
72
+ draft.raw.expandMode = "graft";
73
+ if (cn === "expand" && !draft.raw.expandMode)
74
+ draft.raw.expandMode = "nested";
75
+ Object.assign(draft.raw, opts);
76
+ if (opts.final === true)
77
+ draft.final = true;
78
+ return register(ctx, draft);
79
+ }
80
+ //# sourceMappingURL=expand-flow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expand-flow.js","sourceRoot":"","sources":["../../../../src/build/erase/kinds/expand-flow.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import ts from "typescript";
2
+ import { type EmitContext } from "../context.ts";
3
+ /** gate.automated / gate.scored */
4
+ export declare function emitGateSugar(ctx: EmitContext, cn: string, bindName: string | undefined, call: ts.CallExpression): string;
5
+ //# sourceMappingURL=gate-sugar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gate-sugar.d.ts","sourceRoot":"","sources":["../../../../src/build/erase/kinds/gate-sugar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,YAAY,CAAC;AAK5B,OAAO,EAAE,KAAK,WAAW,EAA6B,MAAM,eAAe,CAAC;AAE5E,mCAAmC;AACnC,wBAAgB,aAAa,CAC5B,GAAG,EAAE,WAAW,EAChB,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,EAAE,CAAC,cAAc,GACrB,MAAM,CAgFR"}