@acpus/core 0.6.0 → 0.7.0-alpha.1

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 -702
  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 -97
  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 -27
  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 -666
  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 -126
  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 -523
  209. package/dist/workflow-schema.js.map +0 -1
  210. /package/dist/{types.js → ir/types.js} +0 -0
@@ -0,0 +1,198 @@
1
+ import * as zod from "zod";
2
+ import { err, ok } from "neverthrow";
3
+ export function toJSONSchema(schema) {
4
+ return zod.toJSONSchema(schema);
5
+ }
6
+ export function assertBoundarySchema(schema, path = "$schema") {
7
+ toSchemaIR(schema, path);
8
+ }
9
+ function defOf(schema) {
10
+ return schema.def ?? schema._def;
11
+ }
12
+ function typeOf(schema) {
13
+ return String(defOf(schema)?.type ?? "unknown");
14
+ }
15
+ export function toSchemaIR(schema, path = "$schema") {
16
+ return tryToSchemaIR(schema, path).match(ir => ir, error => {
17
+ throw new Error(error.message);
18
+ });
19
+ }
20
+ function withSchemaMetadata(schema, ir) {
21
+ const meta = zod.globalRegistry.get(schema);
22
+ return typeof meta?.description === "string" ? { ...ir, description: meta.description } : ir;
23
+ }
24
+ export function tryToSchemaIR(schema, path = "$schema") {
25
+ return lowerSchemaIR(schema, path).map(ir => withSchemaMetadata(schema, ir));
26
+ }
27
+ function lowerSchemaIR(schema, path = "$schema") {
28
+ const meta = zod.globalRegistry.get(schema);
29
+ const acpus = meta?.acpus;
30
+ if (acpus?.kind === "path")
31
+ return ok({ kind: "path" });
32
+ const def = defOf(schema);
33
+ const kind = typeOf(schema);
34
+ switch (kind) {
35
+ case "string": return ok({ kind: "string" });
36
+ case "number": return ok({ kind: "number" });
37
+ case "boolean": return ok({ kind: "boolean" });
38
+ case "null": return ok({ kind: "null" });
39
+ case "unknown":
40
+ case "any": return ok({ kind: "unknown" });
41
+ case "literal": {
42
+ const values = Array.isArray(def.values) ? def.values : [def.value];
43
+ if (values.length === 1) {
44
+ const only = values[0];
45
+ if (only === undefined)
46
+ return err({ type: "invalid-literal", path, valueType: "undefined", message: `${path}: literal value is missing` });
47
+ return tryNormalizeLiteral(only, path).map(value => ({ kind: "literal", value }));
48
+ }
49
+ const normalized = [];
50
+ for (const value of values) {
51
+ const literal = tryNormalizeLiteral(value, path);
52
+ if (literal.isErr())
53
+ return err(literal.error);
54
+ normalized.push(literal.value);
55
+ }
56
+ return ok({ kind: "enum", values: normalized });
57
+ }
58
+ case "enum": {
59
+ const values = [];
60
+ for (const value of Object.values(def.entries ?? {})) {
61
+ const literal = tryNormalizeLiteral(value, path);
62
+ if (literal.isErr())
63
+ return err(literal.error);
64
+ values.push(literal.value);
65
+ }
66
+ return ok({ kind: "enum", values });
67
+ }
68
+ case "array": return tryToSchemaIR(def.element, `${path}[]`).map(item => ({ kind: "array", item }));
69
+ case "object": return objectToSchemaIR(schema, path);
70
+ case "record": return tryToSchemaIR(def.valueType, `${path}.<value>`).map(value => ({ kind: "record", value }));
71
+ case "union": {
72
+ const variants = [];
73
+ for (const [index, option] of (def.options ?? []).entries()) {
74
+ const variant = tryToSchemaIR(option, `${path}.union[${index}]`);
75
+ if (variant.isErr())
76
+ return variant;
77
+ variants.push(variant.value);
78
+ }
79
+ return ok({ kind: "union", variants });
80
+ }
81
+ case "optional": return tryToSchemaIR(def.innerType, path).map(inner => ({ ...inner, optional: true }));
82
+ case "nullable": return tryToSchemaIR(def.innerType, path).map(inner => ({ ...inner, nullable: true }));
83
+ case "default": {
84
+ const inner = tryToSchemaIR(def.innerType, path);
85
+ if (inner.isErr())
86
+ return inner;
87
+ const raw = typeof def.defaultValue === "function" ? def.defaultValue() : def.defaultValue;
88
+ const next = { ...inner.value, optional: true };
89
+ if (raw === undefined)
90
+ return ok(next);
91
+ const json = normalizeJsonValue(raw);
92
+ if (json === undefined)
93
+ return err({ type: "invalid-default", path, valueType: typeof raw, message: `${path}: default value is not JSON-serializable` });
94
+ next.default = json;
95
+ return ok(next);
96
+ }
97
+ case "readonly":
98
+ case "nonoptional": return tryToSchemaIR(def.innerType, path);
99
+ case "pipe":
100
+ case "transform":
101
+ case "custom":
102
+ case "function":
103
+ case "promise":
104
+ case "map":
105
+ case "set":
106
+ case "date":
107
+ case "bigint":
108
+ case "symbol":
109
+ case "undefined":
110
+ case "void":
111
+ case "never": return unsupported(path, kind, `Zod '${kind}' is not supported as an Acpus graph-boundary schema`);
112
+ default: return unsupported(path, kind, `unsupported Zod schema type '${kind}'`);
113
+ }
114
+ }
115
+ function objectToSchemaIR(schema, path) {
116
+ const def = defOf(schema);
117
+ const shape = typeof def.shape === "function" ? def.shape() : def.shape;
118
+ const fields = {};
119
+ const required = [];
120
+ for (const [key, child] of Object.entries(shape ?? {})) {
121
+ const childIR = tryToSchemaIR(child, `${path}.${key}`);
122
+ if (childIR.isErr())
123
+ return childIR;
124
+ fields[key] = childIR.value;
125
+ if (!childIR.value.optional && childIR.value.default === undefined)
126
+ required.push(key);
127
+ }
128
+ const catchall = def.catchall;
129
+ const catchallType = catchall ? typeOf(catchall) : undefined;
130
+ return ok({ kind: "object", fields, required, additionalProperties: Boolean(catchall && catchallType !== "never") });
131
+ }
132
+ function tryNormalizeLiteral(value, path) {
133
+ if (typeof value === "string" || typeof value === "boolean" || value === null)
134
+ return ok(value);
135
+ if (typeof value === "number" && Number.isFinite(value))
136
+ return ok(value);
137
+ return invalidLiteral(path, typeof value, `${path}: literal/enum value ${String(value)} is not JSON-serializable`);
138
+ }
139
+ function invalidLiteral(path, valueType, message) {
140
+ return err({ type: "invalid-literal", path, valueType, message });
141
+ }
142
+ function unsupported(path, schemaKind, message) {
143
+ return err({ type: "unsupported-schema", path, schemaKind, message: `${path}: ${message}` });
144
+ }
145
+ function normalizeJsonValue(value) {
146
+ if (value === null || typeof value === "string" || typeof value === "boolean")
147
+ return value;
148
+ if (typeof value === "number")
149
+ return Number.isFinite(value) ? value : undefined;
150
+ if (Array.isArray(value)) {
151
+ const items = [];
152
+ for (const item of value) {
153
+ const next = normalizeJsonValue(item);
154
+ if (next === undefined)
155
+ return undefined;
156
+ items.push(next);
157
+ }
158
+ return items;
159
+ }
160
+ if (value && typeof value === "object") {
161
+ const prototype = Object.getPrototypeOf(value);
162
+ if (prototype !== Object.prototype && prototype !== null)
163
+ return undefined;
164
+ if (Object.getOwnPropertySymbols(value).length > 0)
165
+ return undefined;
166
+ const fields = {};
167
+ for (const [key, item] of Object.entries(value)) {
168
+ const next = normalizeJsonValue(item);
169
+ if (next === undefined)
170
+ return undefined;
171
+ fields[key] = next;
172
+ }
173
+ return fields;
174
+ }
175
+ return undefined;
176
+ }
177
+ export function schemaToJsonSchema(schema) {
178
+ switch (schema.kind) {
179
+ case "unknown": return {};
180
+ case "string":
181
+ case "path": return { type: "string" };
182
+ case "number": return { type: "number" };
183
+ case "boolean": return { type: "boolean" };
184
+ case "null": return { type: "null" };
185
+ case "literal": return { const: schema.value };
186
+ case "enum": return { enum: schema.values };
187
+ case "array": return { type: "array", items: schemaToJsonSchema(schema.item) };
188
+ case "record": return { type: "object", additionalProperties: schemaToJsonSchema(schema.value) };
189
+ case "union": return { anyOf: schema.variants.map(v => schemaToJsonSchema(v)) };
190
+ case "object": {
191
+ const properties = {};
192
+ for (const [key, value] of Object.entries(schema.fields))
193
+ properties[key] = schemaToJsonSchema(value);
194
+ return { type: "object", properties, required: schema.required, additionalProperties: schema.additionalProperties };
195
+ }
196
+ }
197
+ }
198
+ //# sourceMappingURL=lower.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lower.js","sourceRoot":"","sources":["../../src/schema/lower.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Schema } from "./zod.js";
2
+ export type ParseResult<T> = {
3
+ success: true;
4
+ data: T;
5
+ } | {
6
+ success: false;
7
+ issues: ValidationIssue[];
8
+ };
9
+ export type ValidationIssue = {
10
+ path: string;
11
+ message: string;
12
+ expected?: string;
13
+ received?: string;
14
+ };
15
+ export declare function parseSchema<T>(schema: Schema<T>, value: unknown): T;
16
+ export declare function safeParseSchema<T>(schema: Schema<T>, value: unknown): ParseResult<T>;
17
+ export declare function validateValue<T>(schema: Schema<T>, value: unknown): ParseResult<T>;
18
+ //# sourceMappingURL=validate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/schema/validate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,WAAW,CAAC,CAAC,IACrB;IAAE,OAAO,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAC1B;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,eAAe,EAAE,CAAA;CAAE,CAAC;AAElD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,CAAC,CAEnE;AAED,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAYpF;AAED,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,CAElF"}
@@ -0,0 +1,22 @@
1
+ import * as zod from "zod";
2
+ export function parseSchema(schema, value) {
3
+ return zod.parse(schema, value);
4
+ }
5
+ export function safeParseSchema(schema, value) {
6
+ const result = zod.safeParse(schema, value);
7
+ if (result.success)
8
+ return { success: true, data: result.data };
9
+ return {
10
+ success: false,
11
+ issues: result.error.issues.map(issue => ({
12
+ path: issue.path.length === 0 ? "$" : `$.${issue.path.join(".")}`,
13
+ message: issue.message,
14
+ expected: issue.code,
15
+ received: typeof value,
16
+ })),
17
+ };
18
+ }
19
+ export function validateValue(schema, value) {
20
+ return safeParseSchema(schema, value);
21
+ }
22
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAc3B,MAAM,UAAU,WAAW,CAAI,MAAiB,EAAE,KAAc;IAC9D,OAAO,GAAG,CAAC,KAAK,CAAC,MAAwB,EAAE,KAAK,CAAM,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,eAAe,CAAI,MAAiB,EAAE,KAAc;IAClE,MAAM,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAwB,EAAE,KAAK,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAS,EAAE,CAAC;IACrE,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACxC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YACjE,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,QAAQ,EAAE,OAAO,KAAK;SACvB,CAAC,CAAC;KACJ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAI,MAAiB,EAAE,KAAc;IAChE,OAAO,eAAe,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import * as zod from "zod";
2
+ export type Schema<T = unknown> = zod.ZodType<T>;
3
+ export type InferSchema<S> = S extends zod.ZodType ? zod.output<S> : never;
4
+ type AcpusZodExtensions = {
5
+ /**
6
+ * Declares a filesystem path string crossing an Acpus workflow boundary.
7
+ *
8
+ * Use this for workflow inputs and reusable task inputs that represent local
9
+ * paths so the schema lowers to durable path metadata.
10
+ */
11
+ path(): zod.ZodType<string>;
12
+ };
13
+ export declare const z: typeof zod & AcpusZodExtensions;
14
+ export declare const s: typeof zod & AcpusZodExtensions;
15
+ export declare function isSchema(value: unknown): value is Schema<any>;
16
+ export {};
17
+ //# sourceMappingURL=zod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAE3B,MAAM,MAAM,MAAM,CAAC,CAAC,GAAG,OAAO,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjD,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AAE3E,KAAK,kBAAkB,GAAG;IACxB;;;;;OAKG;IACH,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B,CAAC;AAMF,eAAO,MAAM,CAAC,EAKT,OAAO,GAAG,GAAG,kBAAkB,CAAC;AAErC,eAAO,MAAM,CAAC,iCAAI,CAAC;AAEnB,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAE7D"}
@@ -0,0 +1,15 @@
1
+ import * as zod from "zod";
2
+ function withAcpusMeta(schema, acpus) {
3
+ return schema.meta({ ...(zod.globalRegistry.get(schema) ?? {}), acpus });
4
+ }
5
+ export const z = {
6
+ ...zod,
7
+ path() {
8
+ return withAcpusMeta(zod.string(), { kind: "path" });
9
+ },
10
+ };
11
+ export const s = z;
12
+ export function isSchema(value) {
13
+ return Boolean(value && typeof value === "object" && typeof value.safeParse === "function" && (value.def || value._def));
14
+ }
15
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/schema/zod.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAe3B,SAAS,aAAa,CAA2B,MAAS,EAAE,KAA8B;IACxF,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAM,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,GAAG,GAAG;IACN,IAAI;QACF,OAAO,aAAa,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAwB,CAAC;IAC9E,CAAC;CACiC,CAAC;AAErC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAEnB,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAAa,CAAC,SAAS,KAAK,UAAU,IAAI,CAAE,KAAa,CAAC,GAAG,IAAK,KAAa,CAAC,IAAI,CAAC,CAAC,CAAC;AACtJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { z, s, isSchema, parseSchema, safeParseSchema, validateValue, toSchemaIR, tryToSchemaIR, toJSONSchema, schemaToJsonSchema, assertBoundarySchema, } from "./schema/index.js";
2
+ export type { InferSchema, Schema, SchemaLoweringError, ValidationIssue, ParseResult } from "./schema/index.js";
3
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,CAAC,EACD,CAAC,EACD,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAAE,WAAW,EAAE,MAAM,EAAE,mBAAmB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/schema.js ADDED
@@ -0,0 +1,2 @@
1
+ export { z, s, isSchema, parseSchema, safeParseSchema, validateValue, toSchemaIR, tryToSchemaIR, toJSONSchema, schemaToJsonSchema, assertBoundarySchema, } from "./schema/index.js";
2
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,CAAC,EACD,CAAC,EACD,QAAQ,EACR,WAAW,EACX,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type WorkflowValue } from "@acpus/expression";
2
+ import { type TemplateIR } from "@acpus/expression/ir";
3
+ export type TemplateInput = WorkflowValue<string>;
4
+ export declare function templateToIR(value: TemplateInput): TemplateIR;
5
+ //# sourceMappingURL=template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/template/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAiB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;AAElD,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAI7D"}
@@ -0,0 +1,10 @@
1
+ import { isExpr } from "@acpus/expression";
2
+ import { valueToExprIR } from "@acpus/expression/ir";
3
+ export function templateToIR(value) {
4
+ if (typeof value === "string")
5
+ return { kind: "template", parts: [{ kind: "text", value }] };
6
+ if (isExpr(value) && value.__ir.kind === "template")
7
+ return value.__ir.template;
8
+ return { kind: "template", parts: [{ kind: "expr", expr: valueToExprIR(value) }] };
9
+ }
10
+ //# sourceMappingURL=template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/template/template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAsB,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAmB,MAAM,sBAAsB,CAAC;AAItE,MAAM,UAAU,YAAY,CAAC,KAAoB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;IAC7F,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;IAChF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;AACrF,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { defineWorkflow, compileWorkflowDefinition, isWorkflowDefinition } from "./graph/builder.js";
2
+ export type { AgentMap, BuildContext, OutputValue, OutputValues, WorkflowDefinition, StepDeclaration, StepFactory, StepInput, GraphInput, RuntimeInput, ScopeContext, AgentStepSpec, TaskStepSpec, SignalStepSpec } from "./graph/builder.js";
3
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AACrG,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { defineWorkflow, compileWorkflowDefinition, isWorkflowDefinition } from "./graph/builder.js";
2
+ //# sourceMappingURL=workflow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.js","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
package/package.json CHANGED
@@ -1,26 +1,16 @@
1
1
  {
2
2
  "name": "@acpus/core",
3
- "version": "0.6.0",
4
- "description": "Workflow Spec compiler and validation core for Acpus",
3
+ "version": "0.7.0-alpha.1",
4
+ "type": "module",
5
+ "description": "Acpus TypeScript Workflow Core: Schema bridge, Acpus Expr IR, zx/core-backed Task command wrapper, authoring DSL, and validator.",
5
6
  "keywords": [
6
- "acp",
7
+ "acpus",
7
8
  "workflow",
8
9
  "compiler",
9
10
  "schema",
10
- "orchestrator"
11
+ "ir"
11
12
  ],
12
13
  "license": "MIT",
13
- "author": "kkkyran",
14
- "homepage": "https://github.com/kelvinschen/acpus#readme",
15
- "repository": {
16
- "type": "git",
17
- "url": "git+https://github.com/kelvinschen/acpus.git",
18
- "directory": "packages/core"
19
- },
20
- "bugs": {
21
- "url": "https://github.com/kelvinschen/acpus/issues"
22
- },
23
- "type": "module",
24
14
  "engines": {
25
15
  "node": ">=22"
26
16
  },
@@ -29,6 +19,26 @@
29
19
  "development": "./src/index.ts",
30
20
  "types": "./dist/index.d.ts",
31
21
  "default": "./dist/index.js"
22
+ },
23
+ "./schema": {
24
+ "development": "./src/schema.ts",
25
+ "types": "./dist/schema.d.ts",
26
+ "default": "./dist/schema.js"
27
+ },
28
+ "./workflow": {
29
+ "development": "./src/workflow.ts",
30
+ "types": "./dist/workflow.d.ts",
31
+ "default": "./dist/workflow.js"
32
+ },
33
+ "./runtime": {
34
+ "development": "./src/runtime.ts",
35
+ "types": "./dist/runtime.d.ts",
36
+ "default": "./dist/runtime.js"
37
+ },
38
+ "./ir": {
39
+ "development": "./src/ir.ts",
40
+ "types": "./dist/ir.d.ts",
41
+ "default": "./dist/ir.js"
32
42
  }
33
43
  },
34
44
  "main": "./dist/index.js",
@@ -42,16 +52,21 @@
42
52
  "access": "public"
43
53
  },
44
54
  "dependencies": {
45
- "@marcbachmann/cel-js": "^7.6.1",
46
- "ajv": "^8.20.0",
47
- "yaml": "^2.9.0"
55
+ "neverthrow": "^8.2.0",
56
+ "zod": "^4.4.3",
57
+ "zx": "^8.8.5",
58
+ "@acpus/expression": "0.1.0-alpha.1"
48
59
  },
49
60
  "devDependencies": {
50
61
  "@types/node": "^22.15.30"
51
62
  },
63
+ "repository": {
64
+ "type": "git",
65
+ "url": "https://github.com/kelvinschen/acpus"
66
+ },
52
67
  "scripts": {
53
- "build": "tsgo -p tsconfig.json",
54
- "typecheck": "tsgo -p tsconfig.json --noEmit",
68
+ "build": "tsc -p tsconfig.json",
69
+ "typecheck": "tsc -p tsconfig.json --noEmit",
55
70
  "clean": "rm -rf dist"
56
71
  }
57
72
  }
@@ -1,33 +0,0 @@
1
- import type { WorkflowSpec } from "./types.js";
2
- export type AgentOverrides = Record<string, AgentOverride>;
3
- export interface AgentOverride {
4
- type?: "builtin" | "command";
5
- use?: string;
6
- model?: string;
7
- cwd?: string;
8
- env?: Record<string, unknown>;
9
- policy?: "read" | "full";
10
- }
11
- export interface AgentOverrideWarning {
12
- code: "AGENT_MODEL_CLEARED" | "INHERITED_AGENT_OVERRIDE_SKIPPED";
13
- agent: string;
14
- message: string;
15
- }
16
- export interface ApplyAgentOverridesOptions {
17
- inherited?: AgentOverrides;
18
- }
19
- export interface ApplyAgentOverridesResult {
20
- effectiveSpec: WorkflowSpec;
21
- agentOverrides: AgentOverrides;
22
- warnings: AgentOverrideWarning[];
23
- }
24
- export declare function parseWorkflowSpecForOverrides(source: string): WorkflowSpec;
25
- export declare function serializeWorkflowSpecForOverrides(spec: WorkflowSpec): string;
26
- export declare function emptyAgentOverrideResult(spec?: WorkflowSpec): ApplyAgentOverridesResult;
27
- export declare function optionalSubmissionMetadata(result: ApplyAgentOverridesResult): {
28
- agentOverrides?: AgentOverrides;
29
- submissionWarnings?: AgentOverrideWarning[];
30
- };
31
- export declare function validateAgentOverrides(value: unknown, label?: string): AgentOverrides;
32
- export declare function applyAgentOverrides(spec: WorkflowSpec, current: AgentOverrides | undefined, options?: ApplyAgentOverridesOptions): ApplyAgentOverridesResult;
33
- //# sourceMappingURL=agent-overrides.d.ts.map
@@ -1 +0,0 @@
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"}