acpus 0.0.2 → 0.1.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.
- package/README.md +6 -103
- package/dist/catalog.d.ts +27 -0
- package/dist/catalog.d.ts.map +1 -0
- package/dist/catalog.js +189 -0
- package/dist/catalog.js.map +1 -0
- package/dist/follow.d.ts +23 -0
- package/dist/follow.d.ts.map +1 -0
- package/dist/follow.js +109 -0
- package/dist/follow.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +414 -0
- package/dist/index.js.map +1 -0
- package/dist/io.d.ts +4 -0
- package/dist/io.d.ts.map +1 -0
- package/dist/io.js +38 -0
- package/dist/io.js.map +1 -0
- package/dist/observations.d.ts +26 -0
- package/dist/observations.d.ts.map +1 -0
- package/dist/observations.js +60 -0
- package/dist/observations.js.map +1 -0
- package/dist/output.d.ts +9 -0
- package/dist/output.d.ts.map +1 -0
- package/dist/output.js +51 -0
- package/dist/output.js.map +1 -0
- package/dist/runs-show.d.ts +5 -0
- package/dist/runs-show.d.ts.map +1 -0
- package/dist/runs-show.js +83 -0
- package/dist/runs-show.js.map +1 -0
- package/dist/supervisor-client.d.ts +9 -0
- package/dist/supervisor-client.d.ts.map +1 -0
- package/dist/supervisor-client.js +8 -0
- package/dist/supervisor-client.js.map +1 -0
- package/dist/supervisor.d.ts +18 -0
- package/dist/supervisor.d.ts.map +1 -0
- package/dist/supervisor.js +24 -0
- package/dist/supervisor.js.map +1 -0
- package/package.json +30 -44
- package/dist/cli.d.mts +0 -1
- package/dist/cli.mjs +0 -4017
- package/dist/index.d.mts +0 -2194
- package/dist/index.mjs +0 -243
- package/dist/monitor-app-CPlEcyHR.mjs +0 -369
- package/dist/monitor-rendering-LGr9Ebd_.mjs +0 -78
- package/dist/run-picker-app-utJ2f5CU.mjs +0 -104
- package/dist/run-workflow-DdIAC8Zu.mjs +0 -12922
- package/schemas/workflow-spec.schema.json +0 -2649
package/dist/index.js
ADDED
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { compileWorkflow, lintWorkflow } from "@acpus/core";
|
|
3
|
+
import { Command } from "commander";
|
|
4
|
+
import { relative } from "node:path";
|
|
5
|
+
import { findWorkflowCatalogEntry, globalWorkflowRoot, listWorkflowCatalog, looksLikeWorkflowPath, resolveWorkflowPath, resolveWorkflowTarget } from "./catalog.js";
|
|
6
|
+
import { createIncludeResolver, parseInput, readTextFile } from "./io.js";
|
|
7
|
+
import { printCompile, printError, printLint } from "./output.js";
|
|
8
|
+
import { ensureSupervisor, EXIT_SUPERVISOR_ERROR, isSupervisorConnectionError } from "./supervisor.js";
|
|
9
|
+
import { followRun } from "./follow.js";
|
|
10
|
+
import { formatRunShow } from "./runs-show.js";
|
|
11
|
+
const EXIT_DSL_STATIC_ERROR = 10;
|
|
12
|
+
const EXIT_RUNTIME_ERROR = 20;
|
|
13
|
+
const EXIT_USER_CANCEL = 2;
|
|
14
|
+
const EXIT_CLI_ERROR = 1;
|
|
15
|
+
const program = new Command();
|
|
16
|
+
program
|
|
17
|
+
.name("acpus")
|
|
18
|
+
.description("Local durable ACP workflow runner")
|
|
19
|
+
.version("0.1.0");
|
|
20
|
+
const workflows = new Command("workflows")
|
|
21
|
+
.alias("wf")
|
|
22
|
+
.description("discover, inspect, lint, and run Workflow Specs");
|
|
23
|
+
workflows
|
|
24
|
+
.command("list")
|
|
25
|
+
.option("--json", "write JSON output")
|
|
26
|
+
.action((options) => {
|
|
27
|
+
try {
|
|
28
|
+
const entries = listWorkflowCatalog();
|
|
29
|
+
if (options.json) {
|
|
30
|
+
console.log(JSON.stringify(entries));
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
printWorkflowList(entries);
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
printError(errorMessage(error), { json: options.json, quiet: false });
|
|
37
|
+
process.exitCode = EXIT_RUNTIME_ERROR;
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
workflows
|
|
41
|
+
.command("show")
|
|
42
|
+
.argument("<refOrName>", "Workflow Catalog ref or unique workflow name")
|
|
43
|
+
.option("--json", "write JSON output")
|
|
44
|
+
.action((refOrName, options) => {
|
|
45
|
+
try {
|
|
46
|
+
const entry = findWorkflowCatalogEntry(refOrName);
|
|
47
|
+
if (options.json) {
|
|
48
|
+
console.log(JSON.stringify(entry));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
printWorkflowDetails(entry);
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
printError(errorMessage(error), { json: options.json, quiet: false });
|
|
55
|
+
process.exitCode = EXIT_RUNTIME_ERROR;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
workflows
|
|
59
|
+
.command("lint")
|
|
60
|
+
.argument("<refOrPath>", "Workflow Catalog ref/name or workflow YAML spec path")
|
|
61
|
+
.option("--strict", "treat warnings as errors")
|
|
62
|
+
.option("--json", "write JSON output")
|
|
63
|
+
.option("--quiet", "only write final output")
|
|
64
|
+
.action((refOrPath, options) => {
|
|
65
|
+
try {
|
|
66
|
+
const sourcePath = resolveLintTarget(refOrPath);
|
|
67
|
+
const result = lintWorkflow(readTextFile(sourcePath), {
|
|
68
|
+
sourcePath,
|
|
69
|
+
strict: options.strict,
|
|
70
|
+
includeResolver: createWorkspaceIncludeResolver()
|
|
71
|
+
});
|
|
72
|
+
printLint(result, options);
|
|
73
|
+
process.exitCode = result.ok ? 0 : EXIT_DSL_STATIC_ERROR;
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
printError(errorMessage(error), options);
|
|
77
|
+
process.exitCode = EXIT_RUNTIME_ERROR;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
workflows
|
|
81
|
+
.command("run")
|
|
82
|
+
.argument("<refOrPath>", "Workflow Catalog ref/name or workflow YAML spec path")
|
|
83
|
+
.option("--dry-run", "compile to IR and print schedule without execution")
|
|
84
|
+
.option("--input <value>", "inline JSON or path to YAML/JSON input object")
|
|
85
|
+
.option("--background", "submit and return immediately (no follow)")
|
|
86
|
+
.option("--visualize", "submit and open TUI visualizer")
|
|
87
|
+
.option("--json", "write JSONL observations (follow mode) or JSON (background)")
|
|
88
|
+
.option("--quiet", "only write final output")
|
|
89
|
+
.action(async (refOrPath, options) => {
|
|
90
|
+
if (options.background && options.visualize) {
|
|
91
|
+
printError("--background and --visualize are mutually exclusive", options);
|
|
92
|
+
process.exitCode = EXIT_CLI_ERROR;
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (options.visualize && options.json) {
|
|
96
|
+
printError("--visualize and --json are mutually exclusive", options);
|
|
97
|
+
process.exitCode = EXIT_CLI_ERROR;
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const target = resolveWorkflowTarget(refOrPath);
|
|
102
|
+
const parsedInput = parseInput(options.input);
|
|
103
|
+
if (options.dryRun) {
|
|
104
|
+
const result = compileWorkflow(target.source, {
|
|
105
|
+
sourcePath: target.sourcePath,
|
|
106
|
+
includeResolver: createWorkspaceIncludeResolver()
|
|
107
|
+
});
|
|
108
|
+
const output = parsedInput === undefined || !result.ir
|
|
109
|
+
? result
|
|
110
|
+
: { ...result, ir: { ...result.ir, runtimeInput: parsedInput } };
|
|
111
|
+
printCompile(output, options);
|
|
112
|
+
process.exitCode = result.ok ? 0 : EXIT_DSL_STATIC_ERROR;
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const client = await ensureSupervisor();
|
|
116
|
+
const runState = await client.startRun(target.source, parsedInput, target.sourcePath, target.workflowRef);
|
|
117
|
+
if (options.background) {
|
|
118
|
+
if (options.json) {
|
|
119
|
+
console.log(JSON.stringify(runState));
|
|
120
|
+
}
|
|
121
|
+
else if (!options.quiet) {
|
|
122
|
+
console.log(`Run ${runState.runId} started: ${runState.workflowName}`);
|
|
123
|
+
if (runState.workflowRef)
|
|
124
|
+
console.log(`Workflow: ${runState.workflowRef}`);
|
|
125
|
+
console.log(`Status: ${runState.status}`);
|
|
126
|
+
}
|
|
127
|
+
process.exitCode = 0;
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
if (options.visualize) {
|
|
131
|
+
const { runTui } = await import("@acpus/tui");
|
|
132
|
+
await runTui({ runId: runState.runId, endpoint: client.baseUrl });
|
|
133
|
+
process.exitCode = 0;
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
const terminalStatus = await followRun(client, runState.runId, { json: options.json });
|
|
137
|
+
process.exitCode = exitCodeForRunStatus(terminalStatus);
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
printError(errorMessage(error), options);
|
|
141
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
program.addCommand(workflows);
|
|
145
|
+
const runs = new Command("runs")
|
|
146
|
+
.description("list, inspect, clean, visualize, and control Workflow Runs");
|
|
147
|
+
runs
|
|
148
|
+
.command("list")
|
|
149
|
+
.option("--json", "write JSON output")
|
|
150
|
+
.action(async (options) => {
|
|
151
|
+
try {
|
|
152
|
+
const client = await ensureSupervisor();
|
|
153
|
+
const runList = await client.listRuns();
|
|
154
|
+
if (options.json) {
|
|
155
|
+
console.log(JSON.stringify(runList));
|
|
156
|
+
}
|
|
157
|
+
else if (runList.length === 0) {
|
|
158
|
+
console.log("No runs found.");
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
for (const run of runList) {
|
|
162
|
+
const source = run.workflowRef ?? run.workflowSourcePath ?? "-";
|
|
163
|
+
console.log(`${run.runId} ${run.workflowName} ${run.status} ${run.updatedAt} ${source}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
printError(errorMessage(error), { json: options.json, quiet: false });
|
|
169
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
runs
|
|
173
|
+
.command("show")
|
|
174
|
+
.argument("<runId>", "run ID to inspect")
|
|
175
|
+
.option("--json", "write JSON output")
|
|
176
|
+
.action(async (runId, options) => {
|
|
177
|
+
try {
|
|
178
|
+
const client = await ensureSupervisor();
|
|
179
|
+
const run = await client.getRun(runId);
|
|
180
|
+
if (options.json) {
|
|
181
|
+
console.log(JSON.stringify(run));
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
console.log(await formatRunShow(run, client));
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
printError(errorMessage(error), { json: options.json, quiet: false });
|
|
188
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
189
|
+
}
|
|
190
|
+
});
|
|
191
|
+
runs
|
|
192
|
+
.command("clean")
|
|
193
|
+
.option("--dry-run", "report deletions without removing Run directories")
|
|
194
|
+
.option("--json", "write JSON output")
|
|
195
|
+
.action(async (options) => {
|
|
196
|
+
try {
|
|
197
|
+
const client = await ensureSupervisor();
|
|
198
|
+
const result = await client.cleanRuns({ dryRun: options.dryRun });
|
|
199
|
+
if (options.json) {
|
|
200
|
+
console.log(JSON.stringify(result));
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
printCleanResult(result);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
catch (error) {
|
|
207
|
+
printError(errorMessage(error), { json: options.json, quiet: false });
|
|
208
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
209
|
+
}
|
|
210
|
+
});
|
|
211
|
+
runs
|
|
212
|
+
.command("visualize")
|
|
213
|
+
.argument("[runId]", "run ID to observe (omit to pick from a list)")
|
|
214
|
+
.description("open a TUI visualizer to observe and control a running workflow")
|
|
215
|
+
.action(async (runId) => {
|
|
216
|
+
try {
|
|
217
|
+
const client = await ensureSupervisor();
|
|
218
|
+
const endpoint = client.baseUrl;
|
|
219
|
+
const { runTui } = await import("@acpus/tui");
|
|
220
|
+
await runTui({ runId, endpoint });
|
|
221
|
+
}
|
|
222
|
+
catch (error) {
|
|
223
|
+
printError(errorMessage(error), { json: false, quiet: false });
|
|
224
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
for (const action of ["pause", "resume", "cancel"]) {
|
|
228
|
+
runs
|
|
229
|
+
.command(action)
|
|
230
|
+
.argument("<runId>", "run ID")
|
|
231
|
+
.option("--json", "output machine-readable JSON")
|
|
232
|
+
.action(async (runId, options) => {
|
|
233
|
+
try {
|
|
234
|
+
const client = await ensureSupervisor();
|
|
235
|
+
const run = action === "pause"
|
|
236
|
+
? await client.pauseRun(runId)
|
|
237
|
+
: action === "resume"
|
|
238
|
+
? await client.resumeRun(runId)
|
|
239
|
+
: await client.cancelRun(runId);
|
|
240
|
+
if (options.json)
|
|
241
|
+
console.log(JSON.stringify(run));
|
|
242
|
+
else
|
|
243
|
+
console.log(`Run ${runId} ${pastTense(action)} (status: ${run.status})`);
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
|
|
247
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
248
|
+
}
|
|
249
|
+
});
|
|
250
|
+
}
|
|
251
|
+
runs
|
|
252
|
+
.command("retry")
|
|
253
|
+
.argument("<runId>", "run ID")
|
|
254
|
+
.option("--node <key>", "retry a specific node instead of the whole run")
|
|
255
|
+
.option("--json", "output machine-readable JSON")
|
|
256
|
+
.action(async (runId, options) => {
|
|
257
|
+
try {
|
|
258
|
+
const client = await ensureSupervisor();
|
|
259
|
+
if (options.node) {
|
|
260
|
+
const state = await client.retryNode(runId, options.node);
|
|
261
|
+
if (options.json)
|
|
262
|
+
console.log(JSON.stringify(state));
|
|
263
|
+
else
|
|
264
|
+
console.log(`Node ${options.node} retried (state: ${state.state})`);
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
const run = await client.retryRun(runId);
|
|
268
|
+
if (options.json)
|
|
269
|
+
console.log(JSON.stringify(run));
|
|
270
|
+
else
|
|
271
|
+
console.log(`Run ${runId} retried (status: ${run.status})`);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
catch (error) {
|
|
275
|
+
printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
|
|
276
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
277
|
+
}
|
|
278
|
+
});
|
|
279
|
+
runs
|
|
280
|
+
.command("signal")
|
|
281
|
+
.argument("<runId>", "run ID")
|
|
282
|
+
.requiredOption("--node <key>", "the Approval Gate node key to decide on")
|
|
283
|
+
.option("--approve", "approve the gate")
|
|
284
|
+
.option("--reject", "reject the gate")
|
|
285
|
+
.option("--json", "output machine-readable JSON")
|
|
286
|
+
.description("submit a human decision to an Approval Gate awaiting a decision")
|
|
287
|
+
.action(async (runId, options) => {
|
|
288
|
+
if (options.approve === options.reject) {
|
|
289
|
+
printError("exactly one of --approve or --reject is required", { json: Boolean(options.json), quiet: false });
|
|
290
|
+
process.exitCode = EXIT_RUNTIME_ERROR;
|
|
291
|
+
return;
|
|
292
|
+
}
|
|
293
|
+
const approved = Boolean(options.approve);
|
|
294
|
+
try {
|
|
295
|
+
const client = await ensureSupervisor();
|
|
296
|
+
const state = await client.signalApproval(runId, options.node, approved);
|
|
297
|
+
if (options.json)
|
|
298
|
+
console.log(JSON.stringify(state));
|
|
299
|
+
else
|
|
300
|
+
console.log(`Node ${options.node} ${approved ? "approved" : "rejected"} (state: ${state.state})`);
|
|
301
|
+
}
|
|
302
|
+
catch (error) {
|
|
303
|
+
printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
|
|
304
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
305
|
+
}
|
|
306
|
+
});
|
|
307
|
+
runs
|
|
308
|
+
.command("replay")
|
|
309
|
+
.argument("<runId>", "run ID")
|
|
310
|
+
.option("--json", "output machine-readable JSON")
|
|
311
|
+
.description("deterministically replay a Run and verify its interpretation")
|
|
312
|
+
.action(async (runId, options) => {
|
|
313
|
+
try {
|
|
314
|
+
const client = await ensureSupervisor();
|
|
315
|
+
const result = await client.replay(runId);
|
|
316
|
+
if (options.json) {
|
|
317
|
+
console.log(JSON.stringify(result));
|
|
318
|
+
}
|
|
319
|
+
else if (result.ok) {
|
|
320
|
+
console.log(`Replay OK: ${runId} reproduced deterministically.`);
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
console.log(`Replay MISMATCH: ${runId} (${result.mismatches.length} discrepancies)`);
|
|
324
|
+
for (const m of result.mismatches.slice(0, 10)) {
|
|
325
|
+
console.log(` ${m.nodeKey} [${m.kind}] expected=${m.expected ?? "-"} actual=${m.actual ?? "-"}`);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
if (!result.ok)
|
|
329
|
+
process.exitCode = EXIT_RUNTIME_ERROR;
|
|
330
|
+
}
|
|
331
|
+
catch (error) {
|
|
332
|
+
printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
|
|
333
|
+
process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
program.addCommand(runs);
|
|
337
|
+
program.parse();
|
|
338
|
+
function resolveLintTarget(refOrPath) {
|
|
339
|
+
if (looksLikeWorkflowPath(refOrPath))
|
|
340
|
+
return resolveWorkflowPath(refOrPath);
|
|
341
|
+
return findWorkflowCatalogEntry(refOrPath).path;
|
|
342
|
+
}
|
|
343
|
+
function printWorkflowList(entries) {
|
|
344
|
+
if (entries.length === 0) {
|
|
345
|
+
console.log("No workflows found.");
|
|
346
|
+
return;
|
|
347
|
+
}
|
|
348
|
+
console.log("SCOPE STATUS REF NAME PATH");
|
|
349
|
+
for (const entry of entries) {
|
|
350
|
+
console.log(`${pad(entry.scope, 8)} ${pad(entry.status, 9)} ${pad(entry.ref ?? "-", 20)} ${pad(entry.name ?? "-", 20)} ${displayPath(entry.path)}`);
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
function printWorkflowDetails(entry) {
|
|
354
|
+
console.log(`Workflow: ${entry.name ?? "-"}`);
|
|
355
|
+
console.log(`Ref: ${entry.ref ?? "-"}`);
|
|
356
|
+
console.log(`Scope: ${entry.scope}`);
|
|
357
|
+
console.log(`Status: ${entry.status}`);
|
|
358
|
+
console.log(`Path: ${entry.path}`);
|
|
359
|
+
if (entry.description)
|
|
360
|
+
console.log(`Description: ${entry.description}`);
|
|
361
|
+
if (entry.inputKeys.length > 0)
|
|
362
|
+
console.log(`Inputs: ${entry.inputKeys.join(", ")}`);
|
|
363
|
+
if (entry.diagnostics.length > 0) {
|
|
364
|
+
console.log();
|
|
365
|
+
console.log("Diagnostics:");
|
|
366
|
+
for (const diagnostic of entry.diagnostics) {
|
|
367
|
+
console.log(` ${diagnostic.severity.toUpperCase()} ${diagnostic.code} ${diagnostic.path}: ${diagnostic.message}`);
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
function printCleanResult(result) {
|
|
372
|
+
const verb = result.dryRun ? "Would delete" : "Deleted";
|
|
373
|
+
console.log(`${verb} ${result.deletedCount} terminal run(s), ${formatBytes(result.bytesReclaimed)}.`);
|
|
374
|
+
if (result.skippedCount > 0) {
|
|
375
|
+
console.log(`Skipped ${result.skippedCount} run(s).`);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
function exitCodeForRunStatus(status) {
|
|
379
|
+
switch (status) {
|
|
380
|
+
case "completed": return 0;
|
|
381
|
+
case "failed": return EXIT_RUNTIME_ERROR;
|
|
382
|
+
case "cancelled":
|
|
383
|
+
case "paused": return EXIT_USER_CANCEL;
|
|
384
|
+
default: return 0;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
function pad(value, width) {
|
|
388
|
+
return value.length >= width ? value : value + " ".repeat(width - value.length);
|
|
389
|
+
}
|
|
390
|
+
function displayPath(path) {
|
|
391
|
+
const rel = relative(process.cwd(), path);
|
|
392
|
+
return rel && !rel.startsWith("..") && !rel.startsWith("/") ? rel : path;
|
|
393
|
+
}
|
|
394
|
+
function createWorkspaceIncludeResolver() {
|
|
395
|
+
return createIncludeResolver([process.cwd(), globalWorkflowRoot()]);
|
|
396
|
+
}
|
|
397
|
+
function formatBytes(bytes) {
|
|
398
|
+
if (bytes < 1024)
|
|
399
|
+
return `${bytes} B`;
|
|
400
|
+
if (bytes < 1024 * 1024)
|
|
401
|
+
return `${(bytes / 1024).toFixed(1)} KiB`;
|
|
402
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MiB`;
|
|
403
|
+
}
|
|
404
|
+
function pastTense(action) {
|
|
405
|
+
if (action === "pause")
|
|
406
|
+
return "paused";
|
|
407
|
+
if (action === "resume")
|
|
408
|
+
return "resumed";
|
|
409
|
+
return "cancelled";
|
|
410
|
+
}
|
|
411
|
+
function errorMessage(error) {
|
|
412
|
+
return error instanceof Error ? error.message : String(error);
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/io.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function readTextFile(path: string): string;
|
|
2
|
+
export declare function createIncludeResolver(allowedSourceRoots?: string[]): (path: string, fromPath?: string) => string;
|
|
3
|
+
export declare function parseInput(value: string | undefined): Record<string, unknown> | undefined;
|
|
4
|
+
//# sourceMappingURL=io.d.ts.map
|
package/dist/io.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,qBAAqB,CAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAUhH;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAezF"}
|
package/dist/io.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
|
+
import { dirname, resolve } from "node:path";
|
|
3
|
+
import { parse as parseYaml } from "yaml";
|
|
4
|
+
export function readTextFile(path) {
|
|
5
|
+
return readFileSync(path, "utf8");
|
|
6
|
+
}
|
|
7
|
+
export function createIncludeResolver(allowedSourceRoots) {
|
|
8
|
+
const allowedRoots = allowedSourceRoots?.map((root) => resolve(root)) ?? [];
|
|
9
|
+
return (includePath, fromPath) => {
|
|
10
|
+
const baseDir = fromPath ? dirname(resolve(fromPath)) : process.cwd();
|
|
11
|
+
const resolved = resolve(baseDir, includePath);
|
|
12
|
+
if (allowedRoots.length > 0 && !allowedRoots.some((root) => resolved === root || resolved.startsWith(root + "/"))) {
|
|
13
|
+
throw new Error(`Include path '${includePath}' resolves outside allowed Workflow Spec roots`);
|
|
14
|
+
}
|
|
15
|
+
return readTextFile(resolved);
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function parseInput(value) {
|
|
19
|
+
if (value === undefined) {
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
const possiblePath = resolve(process.cwd(), value);
|
|
23
|
+
if (existsSync(possiblePath)) {
|
|
24
|
+
const contents = readTextFile(possiblePath);
|
|
25
|
+
if (possiblePath.endsWith(".yaml") || possiblePath.endsWith(".yml")) {
|
|
26
|
+
return ensureObject(parseYaml(contents), "--input");
|
|
27
|
+
}
|
|
28
|
+
return ensureObject(JSON.parse(contents), "--input");
|
|
29
|
+
}
|
|
30
|
+
return ensureObject(JSON.parse(value), "--input");
|
|
31
|
+
}
|
|
32
|
+
function ensureObject(value, label) {
|
|
33
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
34
|
+
throw new Error(`${label} must resolve to an object.`);
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=io.js.map
|
package/dist/io.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"io.js","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,kBAA6B;IACjE,MAAM,YAAY,GAAG,kBAAkB,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,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,OAAO,CAAC,GAAG,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QAC/C,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;YAClH,MAAM,IAAI,KAAK,CAAC,iBAAiB,WAAW,gDAAgD,CAAC,CAAC;QAChG,CAAC;QACD,OAAO,YAAY,CAAC,QAAQ,CAAC,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAyB;IAClD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;IACnD,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpE,OAAO,YAAY,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,OAAO,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,YAAY,CAAC,KAAc,EAAE,KAAa;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,6BAA6B,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation formatting for the follow loop.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
* - Human-readable: compact glyph format with node key, state, duration
|
|
6
|
+
* - JSON: newline-delimited JSON (JSONL) observations
|
|
7
|
+
*/
|
|
8
|
+
import type { NodeState, RunStatus } from "@acpus/runtime";
|
|
9
|
+
export interface ObservationEvent {
|
|
10
|
+
type: "run" | "node" | "summary";
|
|
11
|
+
runId?: string;
|
|
12
|
+
status?: RunStatus;
|
|
13
|
+
nodeKey?: string;
|
|
14
|
+
state?: NodeState;
|
|
15
|
+
duration?: number;
|
|
16
|
+
error?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Format an observation event for output.
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatObservation(event: ObservationEvent, runName?: string, json?: boolean): string;
|
|
22
|
+
/**
|
|
23
|
+
* Format a terminal summary line.
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatTerminalSummary(runId: string, status: RunStatus, runName?: string, json?: boolean): string;
|
|
26
|
+
//# sourceMappingURL=observations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observations.d.ts","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAajG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,UAAQ,GAAG,MAAM,CAK9G"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observation formatting for the follow loop.
|
|
3
|
+
*
|
|
4
|
+
* Two modes:
|
|
5
|
+
* - Human-readable: compact glyph format with node key, state, duration
|
|
6
|
+
* - JSON: newline-delimited JSON (JSONL) observations
|
|
7
|
+
*/
|
|
8
|
+
const STATE_GLYPHS = {
|
|
9
|
+
pending: "○",
|
|
10
|
+
running: "⠋",
|
|
11
|
+
awaiting: "⏳",
|
|
12
|
+
completed: "✓",
|
|
13
|
+
failed: "◆",
|
|
14
|
+
paused: "⏸",
|
|
15
|
+
cancelled: "✗"
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Format an observation event for output.
|
|
19
|
+
*/
|
|
20
|
+
export function formatObservation(event, runName, json = false) {
|
|
21
|
+
if (json)
|
|
22
|
+
return JSON.stringify(event);
|
|
23
|
+
switch (event.type) {
|
|
24
|
+
case "run":
|
|
25
|
+
return formatRunObservation(event.runId, event.status, runName);
|
|
26
|
+
case "node":
|
|
27
|
+
return formatNodeObservation(event.nodeKey, event.state, event.duration, event.error);
|
|
28
|
+
case "summary":
|
|
29
|
+
return formatSummaryObservation(event.runId, event.status, runName);
|
|
30
|
+
default:
|
|
31
|
+
return JSON.stringify(event);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Format a terminal summary line.
|
|
36
|
+
*/
|
|
37
|
+
export function formatTerminalSummary(runId, status, runName, json = false) {
|
|
38
|
+
if (json) {
|
|
39
|
+
return JSON.stringify({ type: "summary", runId, status });
|
|
40
|
+
}
|
|
41
|
+
return formatSummaryObservation(runId, status, runName);
|
|
42
|
+
}
|
|
43
|
+
function formatRunObservation(runId, status, runName) {
|
|
44
|
+
const name = runName ? ` ${runName}` : "";
|
|
45
|
+
const glyph = status === "running" ? "▶" : "■";
|
|
46
|
+
return `${glyph} Run ${runId}${name} ${status}`;
|
|
47
|
+
}
|
|
48
|
+
function formatNodeObservation(nodeKey, state, duration, error) {
|
|
49
|
+
const glyph = STATE_GLYPHS[state] ?? "?";
|
|
50
|
+
const dur = duration !== undefined ? ` (${(duration / 1000).toFixed(1)}s)` : "";
|
|
51
|
+
const err = error ? ` ${error}` : "";
|
|
52
|
+
const suffix = state === "running" ? "..." : "";
|
|
53
|
+
return ` ${glyph} ${nodeKey} ${state}${suffix}${dur}${err}`;
|
|
54
|
+
}
|
|
55
|
+
function formatSummaryObservation(runId, status, runName) {
|
|
56
|
+
const name = runName ? ` ${runName}` : "";
|
|
57
|
+
const glyph = STATE_GLYPHS[status] ?? "■";
|
|
58
|
+
return `${glyph} Run ${runId}${name} ${status}`;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=observations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observations.js","sourceRoot":"","sources":["../src/observations.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { CompileResult, LintResult } from "@acpus/core";
|
|
2
|
+
export interface OutputOptions {
|
|
3
|
+
json?: boolean;
|
|
4
|
+
quiet?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function printLint(result: LintResult, options: OutputOptions): void;
|
|
7
|
+
export declare function printCompile(result: CompileResult, options: OutputOptions): void;
|
|
8
|
+
export declare function printError(message: string, options: OutputOptions): void;
|
|
9
|
+
//# sourceMappingURL=output.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAc,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzE,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAY1E;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAoBhF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAMxE"}
|
package/dist/output.js
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
export function printLint(result, options) {
|
|
2
|
+
if (options.quiet) {
|
|
3
|
+
return;
|
|
4
|
+
}
|
|
5
|
+
if (options.json) {
|
|
6
|
+
writeJsonLine({ ok: result.ok, diagnostics: result.diagnostics });
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
printDiagnostics(result.diagnostics);
|
|
10
|
+
if (result.ok) {
|
|
11
|
+
console.log("acpus lint: ok");
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function printCompile(result, options) {
|
|
15
|
+
if (options.quiet) {
|
|
16
|
+
if (options.json) {
|
|
17
|
+
writeJsonLine({ ok: result.ok, diagnostics: result.diagnostics, ir: result.ir, schedule: result.schedule });
|
|
18
|
+
}
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
if (options.json) {
|
|
22
|
+
writeJsonLine({
|
|
23
|
+
ok: result.ok,
|
|
24
|
+
diagnostics: result.diagnostics,
|
|
25
|
+
ir: result.ir,
|
|
26
|
+
schedule: result.schedule
|
|
27
|
+
});
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
printDiagnostics(result.diagnostics);
|
|
31
|
+
if (result.ok) {
|
|
32
|
+
console.log(JSON.stringify(result.schedule, null, 2));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export function printError(message, options) {
|
|
36
|
+
if (options.json) {
|
|
37
|
+
writeJsonLine({ ok: false, diagnostics: [{ severity: "error", code: "CLI_ERROR", message, path: "$" }] });
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
console.error(message);
|
|
41
|
+
}
|
|
42
|
+
function printDiagnostics(diagnostics) {
|
|
43
|
+
for (const diagnostic of diagnostics) {
|
|
44
|
+
const target = diagnostic.severity === "error" ? console.error : console.warn;
|
|
45
|
+
target(`${diagnostic.severity.toUpperCase()} ${diagnostic.code} ${diagnostic.path}: ${diagnostic.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function writeJsonLine(value) {
|
|
49
|
+
console.log(JSON.stringify(value));
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=output.js.map
|