@acpus/core 0.5.6 → 0.7.0-alpha.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 (210) hide show
  1. package/README.md +128 -4
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/graph/builder.d.ts +103 -0
  4. package/dist/graph/builder.d.ts.map +1 -0
  5. package/dist/graph/builder.js +209 -0
  6. package/dist/graph/builder.js.map +1 -0
  7. package/dist/graph/lowering.d.ts +8 -0
  8. package/dist/graph/lowering.d.ts.map +1 -0
  9. package/dist/graph/lowering.js +45 -0
  10. package/dist/graph/lowering.js.map +1 -0
  11. package/dist/graph/refs.d.ts +11 -0
  12. package/dist/graph/refs.d.ts.map +1 -0
  13. package/dist/graph/refs.js +12 -0
  14. package/dist/graph/refs.js.map +1 -0
  15. package/dist/graph/scope.d.ts +21 -0
  16. package/dist/graph/scope.d.ts.map +1 -0
  17. package/dist/graph/scope.js +22 -0
  18. package/dist/graph/scope.js.map +1 -0
  19. package/dist/index.d.ts +11 -25
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +4 -15
  22. package/dist/index.js.map +1 -1
  23. package/dist/internal/symbols.d.ts +9 -0
  24. package/dist/internal/symbols.d.ts.map +1 -0
  25. package/dist/internal/symbols.js +9 -0
  26. package/dist/internal/symbols.js.map +1 -0
  27. package/dist/internal/type-utils.d.ts +7 -0
  28. package/dist/internal/type-utils.d.ts.map +1 -0
  29. package/dist/internal/type-utils.js +8 -0
  30. package/dist/internal/type-utils.js.map +1 -0
  31. package/dist/ir/types.d.ts +218 -0
  32. package/dist/ir/types.d.ts.map +1 -0
  33. package/dist/ir/types.js.map +1 -0
  34. package/dist/ir/validator.d.ts +3 -0
  35. package/dist/ir/validator.d.ts.map +1 -0
  36. package/dist/ir/validator.js +671 -0
  37. package/dist/ir/validator.js.map +1 -0
  38. package/dist/ir.d.ts +3 -0
  39. package/dist/ir.d.ts.map +1 -0
  40. package/dist/ir.js +2 -0
  41. package/dist/ir.js.map +1 -0
  42. package/dist/nodes/composite/fanout.d.ts +24 -0
  43. package/dist/nodes/composite/fanout.d.ts.map +1 -0
  44. package/dist/nodes/composite/fanout.js +24 -0
  45. package/dist/nodes/composite/fanout.js.map +1 -0
  46. package/dist/nodes/composite/if.d.ts +12 -0
  47. package/dist/nodes/composite/if.d.ts.map +1 -0
  48. package/dist/nodes/composite/if.js +13 -0
  49. package/dist/nodes/composite/if.js.map +1 -0
  50. package/dist/nodes/composite/loop.d.ts +17 -0
  51. package/dist/nodes/composite/loop.d.ts.map +1 -0
  52. package/dist/nodes/composite/loop.js +22 -0
  53. package/dist/nodes/composite/loop.js.map +1 -0
  54. package/dist/nodes/composite/parallel.d.ts +29 -0
  55. package/dist/nodes/composite/parallel.d.ts.map +1 -0
  56. package/dist/nodes/composite/parallel.js +18 -0
  57. package/dist/nodes/composite/parallel.js.map +1 -0
  58. package/dist/nodes/composite/shared.d.ts +38 -0
  59. package/dist/nodes/composite/shared.d.ts.map +1 -0
  60. package/dist/nodes/composite/shared.js +2 -0
  61. package/dist/nodes/composite/shared.js.map +1 -0
  62. package/dist/nodes/composite/switch.d.ts +22 -0
  63. package/dist/nodes/composite/switch.d.ts.map +1 -0
  64. package/dist/nodes/composite/switch.js +12 -0
  65. package/dist/nodes/composite/switch.js.map +1 -0
  66. package/dist/nodes/control/assert.d.ts +10 -0
  67. package/dist/nodes/control/assert.d.ts.map +1 -0
  68. package/dist/nodes/control/assert.js +14 -0
  69. package/dist/nodes/control/assert.js.map +1 -0
  70. package/dist/nodes/leaf/agent.d.ts +63 -0
  71. package/dist/nodes/leaf/agent.d.ts.map +1 -0
  72. package/dist/nodes/leaf/agent.js +56 -0
  73. package/dist/nodes/leaf/agent.js.map +1 -0
  74. package/dist/nodes/leaf/shared.d.ts +11 -0
  75. package/dist/nodes/leaf/shared.d.ts.map +1 -0
  76. package/dist/nodes/leaf/shared.js +2 -0
  77. package/dist/nodes/leaf/shared.js.map +1 -0
  78. package/dist/nodes/leaf/signal.d.ts +27 -0
  79. package/dist/nodes/leaf/signal.d.ts.map +1 -0
  80. package/dist/nodes/leaf/signal.js +18 -0
  81. package/dist/nodes/leaf/signal.js.map +1 -0
  82. package/dist/nodes/leaf/task.d.ts +71 -0
  83. package/dist/nodes/leaf/task.d.ts.map +1 -0
  84. package/dist/nodes/leaf/task.js +88 -0
  85. package/dist/nodes/leaf/task.js.map +1 -0
  86. package/dist/runtime/dollar.d.ts +42 -0
  87. package/dist/runtime/dollar.d.ts.map +1 -0
  88. package/dist/runtime/dollar.js +82 -0
  89. package/dist/runtime/dollar.js.map +1 -0
  90. package/dist/runtime/secret.d.ts +10 -0
  91. package/dist/runtime/secret.d.ts.map +1 -0
  92. package/dist/runtime/secret.js +12 -0
  93. package/dist/runtime/secret.js.map +1 -0
  94. package/dist/runtime/task-context.d.ts +28 -0
  95. package/dist/runtime/task-context.d.ts.map +1 -0
  96. package/dist/runtime/task-context.js +2 -0
  97. package/dist/runtime/task-context.js.map +1 -0
  98. package/dist/runtime.d.ts +5 -0
  99. package/dist/runtime.d.ts.map +1 -0
  100. package/dist/runtime.js +3 -0
  101. package/dist/runtime.js.map +1 -0
  102. package/dist/schema/index.d.ts +6 -2
  103. package/dist/schema/index.d.ts.map +1 -1
  104. package/dist/schema/index.js +3 -2
  105. package/dist/schema/index.js.map +1 -1
  106. package/dist/schema/lower.d.ts +25 -0
  107. package/dist/schema/lower.d.ts.map +1 -0
  108. package/dist/schema/lower.js +198 -0
  109. package/dist/schema/lower.js.map +1 -0
  110. package/dist/schema/validate.d.ts +18 -0
  111. package/dist/schema/validate.d.ts.map +1 -0
  112. package/dist/schema/validate.js +22 -0
  113. package/dist/schema/validate.js.map +1 -0
  114. package/dist/schema/zod.d.ts +17 -0
  115. package/dist/schema/zod.d.ts.map +1 -0
  116. package/dist/schema/zod.js +15 -0
  117. package/dist/schema/zod.js.map +1 -0
  118. package/dist/schema.d.ts +3 -0
  119. package/dist/schema.d.ts.map +1 -0
  120. package/dist/schema.js +2 -0
  121. package/dist/schema.js.map +1 -0
  122. package/dist/template/template.d.ts +5 -0
  123. package/dist/template/template.d.ts.map +1 -0
  124. package/dist/template/template.js +10 -0
  125. package/dist/template/template.js.map +1 -0
  126. package/dist/workflow.d.ts +3 -0
  127. package/dist/workflow.d.ts.map +1 -0
  128. package/dist/workflow.js +2 -0
  129. package/dist/workflow.js.map +1 -0
  130. package/package.json +35 -20
  131. package/dist/agent-overrides.d.ts +0 -33
  132. package/dist/agent-overrides.d.ts.map +0 -1
  133. package/dist/agent-overrides.js +0 -178
  134. package/dist/agent-overrides.js.map +0 -1
  135. package/dist/cel-ast.d.ts +0 -39
  136. package/dist/cel-ast.d.ts.map +0 -1
  137. package/dist/cel-ast.js +0 -157
  138. package/dist/cel-ast.js.map +0 -1
  139. package/dist/cel-environment.d.ts +0 -6
  140. package/dist/cel-environment.d.ts.map +0 -1
  141. package/dist/cel-environment.js +0 -44
  142. package/dist/cel-environment.js.map +0 -1
  143. package/dist/compiler.d.ts +0 -4
  144. package/dist/compiler.d.ts.map +0 -1
  145. package/dist/compiler.js +0 -651
  146. package/dist/compiler.js.map +0 -1
  147. package/dist/composite-contract.d.ts +0 -46
  148. package/dist/composite-contract.d.ts.map +0 -1
  149. package/dist/composite-contract.js +0 -89
  150. package/dist/composite-contract.js.map +0 -1
  151. package/dist/diagnostics.d.ts +0 -9
  152. package/dist/diagnostics.d.ts.map +0 -1
  153. package/dist/diagnostics.js +0 -16
  154. package/dist/diagnostics.js.map +0 -1
  155. package/dist/duration.d.ts +0 -13
  156. package/dist/duration.d.ts.map +0 -1
  157. package/dist/duration.js +0 -32
  158. package/dist/duration.js.map +0 -1
  159. package/dist/expression-scope.d.ts +0 -23
  160. package/dist/expression-scope.d.ts.map +0 -1
  161. package/dist/expression-scope.js +0 -545
  162. package/dist/expression-scope.js.map +0 -1
  163. package/dist/expressions-shared.d.ts +0 -19
  164. package/dist/expressions-shared.d.ts.map +0 -1
  165. package/dist/expressions-shared.js +0 -25
  166. package/dist/expressions-shared.js.map +0 -1
  167. package/dist/expressions.d.ts +0 -9
  168. package/dist/expressions.d.ts.map +0 -1
  169. package/dist/expressions.js +0 -95
  170. package/dist/expressions.js.map +0 -1
  171. package/dist/hash.d.ts +0 -19
  172. package/dist/hash.d.ts.map +0 -1
  173. package/dist/hash.js +0 -120
  174. package/dist/hash.js.map +0 -1
  175. package/dist/hook-validation.d.ts +0 -9
  176. package/dist/hook-validation.d.ts.map +0 -1
  177. package/dist/hook-validation.js +0 -73
  178. package/dist/hook-validation.js.map +0 -1
  179. package/dist/hooks.d.ts +0 -150
  180. package/dist/hooks.d.ts.map +0 -1
  181. package/dist/hooks.js +0 -18
  182. package/dist/hooks.js.map +0 -1
  183. package/dist/schedule.d.ts +0 -3
  184. package/dist/schedule.d.ts.map +0 -1
  185. package/dist/schedule.js +0 -21
  186. package/dist/schedule.js.map +0 -1
  187. package/dist/schema/dsl.d.ts +0 -34
  188. package/dist/schema/dsl.d.ts.map +0 -1
  189. package/dist/schema/dsl.js +0 -231
  190. package/dist/schema/dsl.js.map +0 -1
  191. package/dist/schema/helpers.d.ts +0 -24
  192. package/dist/schema/helpers.d.ts.map +0 -1
  193. package/dist/schema/helpers.js +0 -61
  194. package/dist/schema/helpers.js.map +0 -1
  195. package/dist/schema-validator.d.ts +0 -29
  196. package/dist/schema-validator.d.ts.map +0 -1
  197. package/dist/schema-validator.js +0 -622
  198. package/dist/schema-validator.js.map +0 -1
  199. package/dist/source-resolver.d.ts +0 -22
  200. package/dist/source-resolver.d.ts.map +0 -1
  201. package/dist/source-resolver.js +0 -43
  202. package/dist/source-resolver.js.map +0 -1
  203. package/dist/types.d.ts +0 -125
  204. package/dist/types.d.ts.map +0 -1
  205. package/dist/types.js.map +0 -1
  206. package/dist/workflow-schema.d.ts +0 -10
  207. package/dist/workflow-schema.d.ts.map +0 -1
  208. package/dist/workflow-schema.js +0 -485
  209. package/dist/workflow-schema.js.map +0 -1
  210. /package/dist/{types.js → ir/types.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-resolver.d.ts","sourceRoot":"","sources":["../src/source-resolver.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAsB;IACrC,qBAAqB,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACnG,kBAAkB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,qBAAqB,CACnC,iBAAiB,CAAC,EAAE,MAAM,GACzB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAG7C;AAED,wBAAgB,sBAAsB,CAAC,SAAS,SAAgB,GAAG,sBAAsB,CAcxF;AAgBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMpE"}
@@ -1,43 +0,0 @@
1
- import { readFileSync, realpathSync } from "node:fs";
2
- import { homedir } from "node:os";
3
- import { dirname, resolve } from "node:path";
4
- export function globalWorkflowRoot() {
5
- return resolve(homedir(), ".acpus", "workflows");
6
- }
7
- export function createIncludeResolver(defaultSourcePath) {
8
- const defaultBaseDir = defaultSourcePath ? dirname(resolve(defaultSourcePath)) : process.cwd();
9
- return createIncludeResolverFromBase(defaultBaseDir);
10
- }
11
- export function workflowSourceResolver(workspace = process.cwd()) {
12
- return {
13
- createIncludeResolver: (defaultSourcePath) => createIncludeResolverFromBase(defaultSourcePath ? dirname(resolve(defaultSourcePath)) : resolve(workspace)),
14
- validateSourcePath: (path) => {
15
- const resolved = resolve(path);
16
- const realPath = realPathOrUndefined(resolved);
17
- if (realPath === undefined) {
18
- throw new Error("sourcePath does not exist or is not readable");
19
- }
20
- return realPath;
21
- }
22
- };
23
- }
24
- function createIncludeResolverFromBase(defaultBaseDir) {
25
- return (includePath, fromPath) => {
26
- const baseDir = fromPath ? dirname(resolve(fromPath)) : defaultBaseDir;
27
- const resolved = resolve(baseDir, includePath);
28
- const realPath = realPathOrUndefined(resolved);
29
- if (realPath === undefined) {
30
- throw new Error(`Include path '${includePath}' does not exist or is not readable`);
31
- }
32
- return readFileSync(realPath, "utf8");
33
- };
34
- }
35
- export function realPathOrUndefined(path) {
36
- try {
37
- return realpathSync.native(path);
38
- }
39
- catch {
40
- return undefined;
41
- }
42
- }
43
- //# sourceMappingURL=source-resolver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"source-resolver.js","sourceRoot":"","sources":["../src/source-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoB7C,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,iBAA0B;IAE1B,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IAC/F,OAAO,6BAA6B,CAAC,cAAc,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE;IAC9D,OAAO;QACL,qBAAqB,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,6BAA6B,CACzE,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAC7E;QACD,kBAAkB,EAAE,CAAC,IAAI,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YAC/B,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,6BAA6B,CACpC,cAAsB;IAEtB,OAAO,CAAC,WAAW,EAAE,QAAQ,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;QACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC/C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,WAAW,qCAAqC,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC"}
package/dist/types.d.ts DELETED
@@ -1,125 +0,0 @@
1
- export type DiagnosticSeverity = "error" | "warning";
2
- export type { AgentOverrideWarning, AgentOverrides } from "./agent-overrides.js";
3
- export interface Diagnostic {
4
- severity: DiagnosticSeverity;
5
- code: string;
6
- message: string;
7
- path: string;
8
- }
9
- export interface CompileOptions {
10
- sourcePath?: string;
11
- strict?: boolean;
12
- includeResolver?: (path: string, fromPath?: string) => string;
13
- }
14
- export interface CompileResult {
15
- ok: boolean;
16
- diagnostics: Diagnostic[];
17
- ir?: AcpusIr;
18
- schedule?: ScheduleSummary;
19
- }
20
- export interface LintResult {
21
- ok: boolean;
22
- diagnostics: Diagnostic[];
23
- }
24
- export interface WorkflowSpec {
25
- version: number;
26
- name: string;
27
- description?: string;
28
- input?: Record<string, unknown>;
29
- agents?: Record<string, AgentSpec>;
30
- workflow: {
31
- steps: WorkflowStep[];
32
- };
33
- outputs?: Record<string, unknown>;
34
- }
35
- /**
36
- * How an agent definition is driven at runtime:
37
- * - `builtin` (default): acpx built-in adapter named by `use` (e.g. pi/claude/codex).
38
- * - `command`: a custom ACP server launched via acpx `--agent "<use>"` escape hatch.
39
- */
40
- export type AgentType = "builtin" | "command";
41
- export interface AgentSpec {
42
- /** Routing kind; defaults to "builtin" when omitted. */
43
- type?: AgentType;
44
- /**
45
- * For `builtin`: the acpx adapter name (e.g. "pi"). For `command`: the ACP
46
- * server launch command.
47
- */
48
- use?: string;
49
- model?: string;
50
- cwd?: unknown;
51
- env?: Record<string, unknown>;
52
- /**
53
- * Agent Policy: constrains what operations the agent may perform.
54
- * - `full` (default): all operations allowed.
55
- * - `read`: only read and search operations allowed; write attempts fail.
56
- */
57
- policy?: "read" | "full";
58
- }
59
- export type WorkflowStep = Record<string, unknown> & {
60
- id?: string;
61
- };
62
- export type IrNodeKind = "pipeline" | "run.agent" | "run.program" | "run.signal" | "parallel" | "fanout" | "switch" | "loop" | "guard" | "subworkflow";
63
- export interface AcpusIr {
64
- irVersion: 1;
65
- astVersion: 1;
66
- source: {
67
- path?: string;
68
- digest: string;
69
- };
70
- name: string;
71
- description?: string;
72
- input: Record<string, unknown>;
73
- agents: Record<string, AgentSpec>;
74
- root: IrNode;
75
- outputs: Record<string, unknown>;
76
- expressions: IrExpression[];
77
- runtimeInput?: Record<string, unknown>;
78
- }
79
- export type OutputMerge = "map" | "array" | "selected" | "last";
80
- export interface IrNode {
81
- id: string;
82
- kind: IrNodeKind;
83
- nodePath: string[];
84
- keyTemplate: NodeKeyTemplate;
85
- outputMerge?: OutputMerge;
86
- children?: IrNode[];
87
- branches?: IrBranch[];
88
- metadata: Record<string, unknown>;
89
- }
90
- export interface IrBranch {
91
- id: string;
92
- when?: string;
93
- child: IrNode;
94
- }
95
- export interface NodeKeyTemplate {
96
- astVersion: 1;
97
- nodePath: string;
98
- loopRound?: true;
99
- fanoutItemId?: true;
100
- parallelBranchId?: true;
101
- laneId?: true;
102
- }
103
- export interface IrExpression {
104
- id: string;
105
- source: string;
106
- path: string;
107
- references: string[];
108
- }
109
- export interface ScheduleSummary {
110
- workflow: string;
111
- nodes: ScheduleNode[];
112
- }
113
- export interface ScheduleNode {
114
- id: string;
115
- kind: IrNodeKind;
116
- nodePath: string;
117
- outputMerge?: OutputMerge;
118
- children?: ScheduleNode[];
119
- branches?: Array<{
120
- id: string;
121
- when?: string;
122
- children: ScheduleNode[];
123
- }>;
124
- }
125
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- /**
2
- * JSON Schema definition for Acpus workflow YAML specs.
3
- *
4
- * Covers structural validation: types, enums, required fields, unknown-field
5
- * detection (additionalProperties: false), and if/then cross-field dependencies.
6
- * Semantic validation (cross-references, DSL compilation, duration format)
7
- * remains in the hand-written compiler code.
8
- */
9
- export declare const WORKFLOW_SCHEMA: Record<string, unknown>;
10
- //# sourceMappingURL=workflow-schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-schema.d.ts","sourceRoot":"","sources":["../src/workflow-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAkfnD,CAAC"}
@@ -1,485 +0,0 @@
1
- /**
2
- * JSON Schema definition for Acpus workflow YAML specs.
3
- *
4
- * Covers structural validation: types, enums, required fields, unknown-field
5
- * detection (additionalProperties: false), and if/then cross-field dependencies.
6
- * Semantic validation (cross-references, DSL compilation, duration format)
7
- * remains in the hand-written compiler code.
8
- */
9
- const SAFE_AUTHOR_ID_PATTERN = "^[A-Za-z_][A-Za-z0-9_-]*$";
10
- export const WORKFLOW_SCHEMA = {
11
- $defs: {
12
- // ── Agent definition ──
13
- agentSpec: {
14
- type: "object",
15
- additionalProperties: false,
16
- properties: {
17
- type: {
18
- type: "string",
19
- enum: ["builtin", "command"]
20
- },
21
- use: { type: "string" },
22
- model: { type: "string" },
23
- cwd: {}, // any type — runtime coercion
24
- env: { type: "object" }, // free-form env vars
25
- policy: {
26
- type: "string",
27
- enum: ["read", "full"]
28
- }
29
- },
30
- required: ["use"]
31
- },
32
- // ── Step (oneOf dispatch) ──
33
- step: {
34
- type: "object",
35
- required: ["id"],
36
- properties: {
37
- id: {
38
- type: "string",
39
- minLength: 1,
40
- pattern: SAFE_AUTHOR_ID_PATTERN
41
- }
42
- },
43
- oneOf: [
44
- { $ref: "#/$defs/pipelineStep" },
45
- { $ref: "#/$defs/agentStep" },
46
- { $ref: "#/$defs/programStep" },
47
- { $ref: "#/$defs/parallelStep" },
48
- { $ref: "#/$defs/fanoutStep" },
49
- { $ref: "#/$defs/switchStep" },
50
- { $ref: "#/$defs/loopStep" },
51
- { $ref: "#/$defs/guardStep" },
52
- { $ref: "#/$defs/signalStep" },
53
- { $ref: "#/$defs/subworkflowStep" }
54
- ]
55
- },
56
- pipelineStep: {
57
- type: "object",
58
- additionalProperties: false,
59
- required: ["pipeline"],
60
- properties: {
61
- id: {
62
- type: "string",
63
- minLength: 1,
64
- pattern: SAFE_AUTHOR_ID_PATTERN
65
- },
66
- pipeline: {
67
- type: "array",
68
- minItems: 1,
69
- items: { $ref: "#/$defs/step" }
70
- },
71
- outputs: { type: "object" }
72
- }
73
- },
74
- agentStep: {
75
- type: "object",
76
- additionalProperties: false,
77
- required: ["run", "use", "prompt"],
78
- properties: {
79
- id: {
80
- type: "string",
81
- minLength: 1,
82
- pattern: SAFE_AUTHOR_ID_PATTERN
83
- },
84
- run: { const: "agent" },
85
- use: { type: "string" },
86
- prompt: { type: "string" },
87
- cwd: { type: "string" }, // overrides agent default cwd
88
- session_key: { type: "string" },
89
- output: { type: "object" }, // free DSL — validated by compiler
90
- retry: { $ref: "#/$defs/retrySpec" },
91
- timeout: { $ref: "#/$defs/timeoutSpec" },
92
- on_error: {
93
- type: "string",
94
- enum: ["fail", "retry", "skip"]
95
- },
96
- policy: {
97
- type: "string",
98
- enum: ["read", "full"]
99
- }
100
- }
101
- },
102
- programStep: {
103
- type: "object",
104
- additionalProperties: false,
105
- required: ["run", "cmd"],
106
- properties: {
107
- id: {
108
- type: "string",
109
- minLength: 1,
110
- pattern: SAFE_AUTHOR_ID_PATTERN
111
- },
112
- run: { const: "program" },
113
- cmd: {
114
- oneOf: [
115
- { type: "string" },
116
- { type: "array", items: { type: "string" } }
117
- ]
118
- },
119
- env: { type: "object" },
120
- cwd: { type: "string" }, // overrides default cwd
121
- capture: { $ref: "#/$defs/captureSpec" },
122
- expect: { $ref: "#/$defs/expectSpec" },
123
- output: { type: "object" }, // free DSL
124
- retry: { $ref: "#/$defs/retrySpec" },
125
- timeout: { $ref: "#/$defs/timeoutSpec" },
126
- on_error: {
127
- type: "string",
128
- enum: ["fail", "retry", "skip"]
129
- }
130
- }
131
- },
132
- parallelStep: {
133
- type: "object",
134
- additionalProperties: false,
135
- required: ["parallel"],
136
- properties: {
137
- id: {
138
- type: "string",
139
- minLength: 1,
140
- pattern: SAFE_AUTHOR_ID_PATTERN
141
- },
142
- parallel: {
143
- type: "array",
144
- items: { $ref: "#/$defs/parallelBranch" }
145
- },
146
- max_concurrency: {
147
- type: "integer",
148
- minimum: 1
149
- },
150
- join: {
151
- type: "string",
152
- enum: ["all", "race"]
153
- }
154
- }
155
- },
156
- parallelBranch: {
157
- type: "object",
158
- additionalProperties: false,
159
- required: ["id", "do"],
160
- properties: {
161
- id: {
162
- type: "string",
163
- minLength: 1,
164
- pattern: SAFE_AUTHOR_ID_PATTERN
165
- },
166
- do: {
167
- type: "array",
168
- minItems: 1,
169
- items: { $ref: "#/$defs/step" }
170
- }
171
- }
172
- },
173
- fanoutStep: {
174
- type: "object",
175
- additionalProperties: false,
176
- required: ["fanout"],
177
- properties: {
178
- id: {
179
- type: "string",
180
- minLength: 1,
181
- pattern: SAFE_AUTHOR_ID_PATTERN
182
- },
183
- fanout: { $ref: "#/$defs/fanoutSpec" }
184
- }
185
- },
186
- fanoutSpec: {
187
- type: "object",
188
- additionalProperties: false,
189
- required: ["over", "do"],
190
- properties: {
191
- over: {
192
- oneOf: [
193
- { type: "string" },
194
- { type: "array" }
195
- ]
196
- },
197
- key: { type: "string" },
198
- max_concurrency: {
199
- type: "integer",
200
- minimum: 1
201
- },
202
- join: {
203
- type: "string",
204
- enum: ["all", "race", "quorum"]
205
- },
206
- quorum: {
207
- type: "integer",
208
- minimum: 1
209
- },
210
- success_criteria: { $ref: "#/$defs/successCriteriaSpec" },
211
- do: {
212
- type: "array",
213
- minItems: 1,
214
- items: { $ref: "#/$defs/step" }
215
- }
216
- },
217
- allOf: [
218
- // join: quorum → quorum required
219
- {
220
- if: {
221
- required: ["join"],
222
- properties: { join: { const: "quorum" } }
223
- },
224
- then: { required: ["quorum"] }
225
- }
226
- ]
227
- },
228
- switchStep: {
229
- type: "object",
230
- additionalProperties: false,
231
- required: ["switch"],
232
- properties: {
233
- id: {
234
- type: "string",
235
- minLength: 1,
236
- pattern: SAFE_AUTHOR_ID_PATTERN
237
- },
238
- switch: { $ref: "#/$defs/switchSpec" }
239
- }
240
- },
241
- switchSpec: {
242
- type: "object",
243
- additionalProperties: false,
244
- properties: {
245
- cases: {
246
- type: "array",
247
- items: { $ref: "#/$defs/switchCase" }
248
- },
249
- default: {
250
- type: "object",
251
- additionalProperties: false,
252
- properties: {
253
- do: {
254
- type: "array",
255
- minItems: 1,
256
- items: { $ref: "#/$defs/step" }
257
- }
258
- },
259
- required: ["do"]
260
- }
261
- }
262
- },
263
- switchCase: {
264
- type: "object",
265
- additionalProperties: false,
266
- required: ["when", "do"],
267
- properties: {
268
- when: {
269
- oneOf: [
270
- { type: "string" },
271
- { type: "boolean" }
272
- ]
273
- },
274
- do: {
275
- type: "array",
276
- minItems: 1,
277
- items: { $ref: "#/$defs/step" }
278
- }
279
- }
280
- },
281
- loopStep: {
282
- type: "object",
283
- additionalProperties: false,
284
- required: ["loop"],
285
- properties: {
286
- id: {
287
- type: "string",
288
- minLength: 1,
289
- pattern: SAFE_AUTHOR_ID_PATTERN
290
- },
291
- loop: { $ref: "#/$defs/loopSpec" }
292
- }
293
- },
294
- loopSpec: {
295
- type: "object",
296
- additionalProperties: false,
297
- required: ["max_iterations", "do"],
298
- properties: {
299
- until: {
300
- oneOf: [
301
- { type: "string" },
302
- { type: "boolean" }
303
- ]
304
- },
305
- max_iterations: { type: "number" },
306
- do: {
307
- type: "array",
308
- minItems: 1,
309
- items: { $ref: "#/$defs/step" }
310
- }
311
- }
312
- },
313
- guardStep: {
314
- type: "object",
315
- additionalProperties: false,
316
- required: ["guard"],
317
- properties: {
318
- id: {
319
- type: "string",
320
- minLength: 1,
321
- pattern: SAFE_AUTHOR_ID_PATTERN
322
- },
323
- guard: { $ref: "#/$defs/guardSpec" }
324
- }
325
- },
326
- guardSpec: {
327
- type: "object",
328
- additionalProperties: false,
329
- required: ["when", "then", "else"],
330
- properties: {
331
- when: {
332
- oneOf: [
333
- { type: "string" },
334
- { type: "boolean" }
335
- ]
336
- },
337
- then: { $ref: "#/$defs/guardAction" },
338
- else: { $ref: "#/$defs/guardAction" },
339
- message: { type: "string" }
340
- }
341
- },
342
- guardAction: {
343
- type: "string",
344
- enum: ["continue", "fail", "complete"]
345
- },
346
- signalStep: {
347
- type: "object",
348
- additionalProperties: false,
349
- required: ["run", "prompt"],
350
- // Cross-field rules (timeout⇒on_timeout, on_timeout:default⇒default) are
351
- // enforced in the compiler so their diagnostics are not lost to oneOf
352
- // branch-matching noise from the shared `run:` discriminator.
353
- properties: {
354
- id: {
355
- type: "string",
356
- minLength: 1,
357
- pattern: SAFE_AUTHOR_ID_PATTERN
358
- },
359
- run: { const: "signal" },
360
- prompt: { type: "string" },
361
- output: { type: "object" }, // free DSL — validated by compiler
362
- timeout: { type: "string" }, // duration format validated by compiler
363
- on_timeout: {
364
- type: "string",
365
- enum: ["fail", "default"]
366
- },
367
- default: { type: "object" } // literal payload — validated by compiler
368
- }
369
- },
370
- subworkflowStep: {
371
- type: "object",
372
- additionalProperties: false,
373
- required: ["subworkflow"],
374
- properties: {
375
- id: {
376
- type: "string",
377
- minLength: 1,
378
- pattern: SAFE_AUTHOR_ID_PATTERN
379
- },
380
- subworkflow: { type: "string" },
381
- input: { type: "object" } // free-form
382
- }
383
- },
384
- captureSpec: {
385
- type: "object",
386
- additionalProperties: false,
387
- required: ["from", "parse"],
388
- properties: {
389
- from: {
390
- type: "string",
391
- enum: ["stdout", "file"]
392
- },
393
- parse: {
394
- type: "string",
395
- enum: ["json", "text"]
396
- },
397
- path: { type: "string" }
398
- },
399
- allOf: [
400
- // from: file → path required
401
- {
402
- if: {
403
- required: ["from"],
404
- properties: { from: { const: "file" } }
405
- },
406
- then: { required: ["path"] }
407
- }
408
- ]
409
- },
410
- expectSpec: {
411
- type: "object",
412
- additionalProperties: false,
413
- properties: {
414
- exit_code: {
415
- type: "array",
416
- minItems: 1,
417
- items: { type: "integer", minimum: 0 }
418
- }
419
- },
420
- required: ["exit_code"]
421
- },
422
- retrySpec: {
423
- type: "object",
424
- additionalProperties: false,
425
- properties: {
426
- max: {
427
- type: "integer",
428
- minimum: 0
429
- },
430
- backoff: { type: "string" } // duration format validated by compiler
431
- }
432
- },
433
- timeoutSpec: {
434
- oneOf: [
435
- { type: "string" },
436
- { type: "number", exclusiveMinimum: 0 }
437
- ]
438
- },
439
- successCriteriaSpec: {
440
- type: "object",
441
- additionalProperties: false,
442
- properties: {
443
- min_success: {
444
- type: "integer",
445
- minimum: 1
446
- }
447
- }
448
- }
449
- },
450
- // ── Top-level schema ──
451
- type: "object",
452
- additionalProperties: false,
453
- required: ["version", "name", "workflow"],
454
- properties: {
455
- version: {
456
- type: "number",
457
- enum: [1]
458
- },
459
- name: { type: "string" },
460
- description: { type: "string" },
461
- input: { type: "object" }, // free DSL
462
- agents: {
463
- type: "object",
464
- additionalProperties: {
465
- $ref: "#/$defs/agentSpec"
466
- }
467
- },
468
- workflow: {
469
- type: "object",
470
- additionalProperties: false,
471
- required: ["steps"],
472
- properties: {
473
- steps: {
474
- type: "array",
475
- items: { $ref: "#/$defs/step" }
476
- }
477
- }
478
- },
479
- outputs: {
480
- type: "object",
481
- additionalProperties: { type: "string" }
482
- }
483
- }
484
- };
485
- //# sourceMappingURL=workflow-schema.js.map