acpus 0.0.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +6 -103
  2. package/dist/catalog.d.ts +27 -0
  3. package/dist/catalog.d.ts.map +1 -0
  4. package/dist/catalog.js +186 -0
  5. package/dist/catalog.js.map +1 -0
  6. package/dist/follow.d.ts +23 -0
  7. package/dist/follow.d.ts.map +1 -0
  8. package/dist/follow.js +109 -0
  9. package/dist/follow.js.map +1 -0
  10. package/dist/index.d.ts +3 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +522 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/io.d.ts +4 -0
  15. package/dist/io.d.ts.map +1 -0
  16. package/dist/io.js +28 -0
  17. package/dist/io.js.map +1 -0
  18. package/dist/observations.d.ts +26 -0
  19. package/dist/observations.d.ts.map +1 -0
  20. package/dist/observations.js +60 -0
  21. package/dist/observations.js.map +1 -0
  22. package/dist/output.d.ts +9 -0
  23. package/dist/output.d.ts.map +1 -0
  24. package/dist/output.js +51 -0
  25. package/dist/output.js.map +1 -0
  26. package/dist/runs-show.d.ts +5 -0
  27. package/dist/runs-show.d.ts.map +1 -0
  28. package/dist/runs-show.js +72 -0
  29. package/dist/runs-show.js.map +1 -0
  30. package/dist/supervisor-client.d.ts +9 -0
  31. package/dist/supervisor-client.d.ts.map +1 -0
  32. package/dist/supervisor-client.js +8 -0
  33. package/dist/supervisor-client.js.map +1 -0
  34. package/dist/supervisor.d.ts +18 -0
  35. package/dist/supervisor.d.ts.map +1 -0
  36. package/dist/supervisor.js +24 -0
  37. package/dist/supervisor.js.map +1 -0
  38. package/package.json +30 -44
  39. package/dist/cli.d.mts +0 -1
  40. package/dist/cli.mjs +0 -4017
  41. package/dist/index.d.mts +0 -2194
  42. package/dist/index.mjs +0 -243
  43. package/dist/monitor-app-CPlEcyHR.mjs +0 -369
  44. package/dist/monitor-rendering-LGr9Ebd_.mjs +0 -78
  45. package/dist/run-picker-app-utJ2f5CU.mjs +0 -104
  46. package/dist/run-workflow-DdIAC8Zu.mjs +0 -12922
  47. package/schemas/workflow-spec.schema.json +0 -2649
package/dist/index.js ADDED
@@ -0,0 +1,522 @@
1
+ #!/usr/bin/env node
2
+ import { compileWorkflow, lintWorkflow, workflowSourcePolicy } from "@acpus/core";
3
+ import { Command } from "commander";
4
+ import { relative } from "node:path";
5
+ import { findWorkflowCatalogEntry, listWorkflowCatalog, looksLikeWorkflowPath, resolveWorkflowPath, resolveWorkflowTarget } from "./catalog.js";
6
+ import { 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
+ import { ForkRejectedError } from "@acpus/runtime";
12
+ const EXIT_DSL_STATIC_ERROR = 10;
13
+ const EXIT_RUNTIME_ERROR = 20;
14
+ const EXIT_FORK_REJECTED = 21;
15
+ const EXIT_USER_CANCEL = 2;
16
+ const EXIT_CLI_ERROR = 1;
17
+ const program = new Command();
18
+ program
19
+ .name("acpus")
20
+ .description("Local durable ACP workflow runner")
21
+ .version("0.1.0");
22
+ const workflows = new Command("workflows")
23
+ .alias("wf")
24
+ .description("discover, inspect, lint, and run Workflow Specs");
25
+ workflows
26
+ .command("list")
27
+ .option("--json", "write JSON output")
28
+ .action((options) => {
29
+ try {
30
+ const entries = listWorkflowCatalog();
31
+ if (options.json) {
32
+ console.log(JSON.stringify(entries));
33
+ return;
34
+ }
35
+ printWorkflowList(entries);
36
+ }
37
+ catch (error) {
38
+ printError(errorMessage(error), { json: options.json, quiet: false });
39
+ process.exitCode = EXIT_RUNTIME_ERROR;
40
+ }
41
+ });
42
+ workflows
43
+ .command("show")
44
+ .argument("<refOrName>", "Workflow Catalog ref or unique workflow name")
45
+ .option("--json", "write JSON output")
46
+ .action((refOrName, options) => {
47
+ try {
48
+ const entry = findWorkflowCatalogEntry(refOrName);
49
+ if (options.json) {
50
+ console.log(JSON.stringify(entry));
51
+ return;
52
+ }
53
+ printWorkflowDetails(entry);
54
+ }
55
+ catch (error) {
56
+ printError(errorMessage(error), { json: options.json, quiet: false });
57
+ process.exitCode = EXIT_RUNTIME_ERROR;
58
+ }
59
+ });
60
+ workflows
61
+ .command("lint")
62
+ .argument("<refOrPath>", "Workflow Catalog ref/name or workflow YAML spec path")
63
+ .option("--strict", "treat warnings as errors")
64
+ .option("--json", "write JSON output")
65
+ .option("--quiet", "only write final output")
66
+ .action((refOrPath, options) => {
67
+ try {
68
+ const sourcePath = resolveLintTarget(refOrPath);
69
+ const result = lintWorkflow(readTextFile(sourcePath), {
70
+ sourcePath,
71
+ strict: options.strict,
72
+ includeResolver: createWorkspaceIncludeResolver()
73
+ });
74
+ printLint(result, options);
75
+ process.exitCode = result.ok ? 0 : EXIT_DSL_STATIC_ERROR;
76
+ }
77
+ catch (error) {
78
+ printError(errorMessage(error), options);
79
+ process.exitCode = EXIT_RUNTIME_ERROR;
80
+ }
81
+ });
82
+ workflows
83
+ .command("run")
84
+ .argument("<refOrPath>", "Workflow Catalog ref/name or workflow YAML spec path")
85
+ .option("--dry-run", "compile to IR and print schedule without execution")
86
+ .option("--input <value>", "inline JSON or path to YAML/JSON input object")
87
+ .option("--background", "submit and return immediately (no follow)")
88
+ .option("--visualize", "submit and open TUI visualizer")
89
+ .option("--json", "write JSONL observations (follow mode) or JSON (background)")
90
+ .option("--quiet", "only write final output")
91
+ .action(async (refOrPath, options) => {
92
+ if (options.background && options.visualize) {
93
+ printError("--background and --visualize are mutually exclusive", options);
94
+ process.exitCode = EXIT_CLI_ERROR;
95
+ return;
96
+ }
97
+ if (options.visualize && options.json) {
98
+ printError("--visualize and --json are mutually exclusive", options);
99
+ process.exitCode = EXIT_CLI_ERROR;
100
+ return;
101
+ }
102
+ try {
103
+ const target = resolveWorkflowTarget(refOrPath);
104
+ const parsedInput = parseInput(options.input);
105
+ if (options.dryRun) {
106
+ const result = compileWorkflow(target.source, {
107
+ sourcePath: target.sourcePath,
108
+ includeResolver: createWorkspaceIncludeResolver()
109
+ });
110
+ const output = parsedInput === undefined || !result.ir
111
+ ? result
112
+ : { ...result, ir: { ...result.ir, runtimeInput: parsedInput } };
113
+ printCompile(output, options);
114
+ process.exitCode = result.ok ? 0 : EXIT_DSL_STATIC_ERROR;
115
+ return;
116
+ }
117
+ const client = await ensureSupervisor();
118
+ const runState = await client.startRun(target.source, parsedInput, target.sourcePath, target.workflowRef);
119
+ if (options.background) {
120
+ if (options.json) {
121
+ console.log(JSON.stringify(runState));
122
+ }
123
+ else if (!options.quiet) {
124
+ console.log(`Run ${runState.runId} started: ${runState.workflowName}`);
125
+ if (runState.workflowRef)
126
+ console.log(`Workflow: ${runState.workflowRef}`);
127
+ console.log(`Status: ${runState.status}`);
128
+ }
129
+ process.exitCode = 0;
130
+ return;
131
+ }
132
+ if (options.visualize) {
133
+ const { runTui } = await import("@acpus/tui");
134
+ await runTui({ runId: runState.runId, endpoint: client.baseUrl });
135
+ process.exitCode = 0;
136
+ return;
137
+ }
138
+ const terminalStatus = await followRun(client, runState.runId, { json: options.json });
139
+ process.exitCode = exitCodeForRunStatus(terminalStatus);
140
+ }
141
+ catch (error) {
142
+ printError(errorMessage(error), options);
143
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
144
+ }
145
+ });
146
+ program.addCommand(workflows);
147
+ const runs = new Command("runs")
148
+ .description("list, inspect, clean, visualize, and control Workflow Runs");
149
+ runs
150
+ .command("list")
151
+ .option("--json", "write JSON output")
152
+ .action(async (options) => {
153
+ try {
154
+ const client = await ensureSupervisor();
155
+ const runList = await client.listRuns();
156
+ if (options.json) {
157
+ console.log(JSON.stringify(runList));
158
+ }
159
+ else if (runList.length === 0) {
160
+ console.log("No runs found.");
161
+ }
162
+ else {
163
+ for (const run of runList) {
164
+ const source = run.workflowRef ?? run.workflowSourcePath ?? "-";
165
+ const lineageNote = run.lineage ? ` forked from ${run.lineage.sourceRunId}` : "";
166
+ console.log(`${run.runId} ${run.workflowName} ${run.status} ${run.updatedAt} ${source}${lineageNote}`);
167
+ }
168
+ }
169
+ }
170
+ catch (error) {
171
+ printError(errorMessage(error), { json: options.json, quiet: false });
172
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
173
+ }
174
+ });
175
+ runs
176
+ .command("show")
177
+ .argument("<runId>", "run ID to inspect")
178
+ .option("--json", "write JSON output")
179
+ .action(async (runId, options) => {
180
+ try {
181
+ const client = await ensureSupervisor();
182
+ const run = await client.getRun(runId);
183
+ if (options.json) {
184
+ console.log(JSON.stringify(run));
185
+ return;
186
+ }
187
+ console.log(await formatRunShow(run, client));
188
+ }
189
+ catch (error) {
190
+ printError(errorMessage(error), { json: options.json, quiet: false });
191
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
192
+ }
193
+ });
194
+ runs
195
+ .command("clean")
196
+ .option("--dry-run", "report deletions without removing Run directories")
197
+ .option("--json", "write JSON output")
198
+ .action(async (options) => {
199
+ try {
200
+ const client = await ensureSupervisor();
201
+ const result = await client.cleanRuns({ dryRun: options.dryRun });
202
+ if (options.json) {
203
+ console.log(JSON.stringify(result));
204
+ }
205
+ else {
206
+ printCleanResult(result);
207
+ }
208
+ }
209
+ catch (error) {
210
+ printError(errorMessage(error), { json: options.json, quiet: false });
211
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
212
+ }
213
+ });
214
+ runs
215
+ .command("visualize")
216
+ .argument("[runId]", "run ID to observe (omit to pick from a list)")
217
+ .option("--serve [listen]", "serve a read-only browser visualizer, optionally on <port> or <host:port>")
218
+ .description("open a TUI visualizer to observe and control a running workflow")
219
+ .action(async (runId, options) => {
220
+ try {
221
+ if (options.serve !== undefined) {
222
+ const { parseListen, serveTui } = await import("@acpus/tui/serve");
223
+ try {
224
+ parseListen(options.serve);
225
+ }
226
+ catch (error) {
227
+ printError(errorMessage(error), { json: false, quiet: false });
228
+ process.exitCode = EXIT_CLI_ERROR;
229
+ return;
230
+ }
231
+ const client = await ensureSupervisor();
232
+ const endpoint = client.baseUrl;
233
+ await serveTui({ runId, endpoint, listen: options.serve });
234
+ return;
235
+ }
236
+ const client = await ensureSupervisor();
237
+ const endpoint = client.baseUrl;
238
+ const { runTui } = await import("@acpus/tui");
239
+ await runTui({ runId, endpoint });
240
+ }
241
+ catch (error) {
242
+ printError(errorMessage(error), { json: false, quiet: false });
243
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
244
+ }
245
+ });
246
+ for (const action of ["pause", "resume", "cancel"]) {
247
+ runs
248
+ .command(action)
249
+ .argument("<runId>", "run ID")
250
+ .option("--json", "output machine-readable JSON")
251
+ .action(async (runId, options) => {
252
+ try {
253
+ const client = await ensureSupervisor();
254
+ const run = action === "pause"
255
+ ? await client.pauseRun(runId)
256
+ : action === "resume"
257
+ ? await client.resumeRun(runId)
258
+ : await client.cancelRun(runId);
259
+ if (options.json)
260
+ console.log(JSON.stringify(run));
261
+ else
262
+ console.log(`Run ${runId} ${pastTense(action)} (status: ${run.status})`);
263
+ }
264
+ catch (error) {
265
+ printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
266
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
267
+ }
268
+ });
269
+ }
270
+ runs
271
+ .command("retry")
272
+ .argument("<runId>", "run ID")
273
+ .option("--node <key>", "retry a specific node instead of the whole run")
274
+ .option("--json", "output machine-readable JSON")
275
+ .action(async (runId, options) => {
276
+ try {
277
+ const client = await ensureSupervisor();
278
+ if (options.node) {
279
+ const state = await client.retryNode(runId, options.node);
280
+ if (options.json)
281
+ console.log(JSON.stringify(state));
282
+ else
283
+ console.log(`Node ${options.node} retried (state: ${state.state})`);
284
+ }
285
+ else {
286
+ const run = await client.retryRun(runId);
287
+ if (options.json)
288
+ console.log(JSON.stringify(run));
289
+ else
290
+ console.log(`Run ${runId} retried (status: ${run.status})`);
291
+ }
292
+ }
293
+ catch (error) {
294
+ printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
295
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
296
+ }
297
+ });
298
+ runs
299
+ .command("signal")
300
+ .argument("<runId>", "run ID")
301
+ .requiredOption("--node <key>", "the Approval Gate node key to decide on")
302
+ .option("--approve", "approve the gate")
303
+ .option("--reject", "reject the gate")
304
+ .option("--json", "output machine-readable JSON")
305
+ .description("submit a human decision to an Approval Gate awaiting a decision")
306
+ .action(async (runId, options) => {
307
+ if (options.approve === options.reject) {
308
+ printError("exactly one of --approve or --reject is required", { json: Boolean(options.json), quiet: false });
309
+ process.exitCode = EXIT_RUNTIME_ERROR;
310
+ return;
311
+ }
312
+ const approved = Boolean(options.approve);
313
+ try {
314
+ const client = await ensureSupervisor();
315
+ const state = await client.signalApproval(runId, options.node, approved);
316
+ if (options.json)
317
+ console.log(JSON.stringify(state));
318
+ else
319
+ console.log(`Node ${options.node} ${approved ? "approved" : "rejected"} (state: ${state.state})`);
320
+ }
321
+ catch (error) {
322
+ printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
323
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
324
+ }
325
+ });
326
+ runs
327
+ .command("replay")
328
+ .argument("<runId>", "run ID")
329
+ .option("--json", "output machine-readable JSON")
330
+ .description("deterministically replay a Run and verify its interpretation")
331
+ .action(async (runId, options) => {
332
+ try {
333
+ const client = await ensureSupervisor();
334
+ const result = await client.replay(runId);
335
+ if (options.json) {
336
+ console.log(JSON.stringify(result));
337
+ }
338
+ else if (result.ok) {
339
+ console.log(`Replay OK: ${runId} reproduced deterministically.`);
340
+ }
341
+ else {
342
+ console.log(`Replay MISMATCH: ${runId} (${result.mismatches.length} discrepancies)`);
343
+ for (const m of result.mismatches.slice(0, 10)) {
344
+ console.log(` ${m.nodeKey} [${m.kind}] expected=${m.expected ?? "-"} actual=${m.actual ?? "-"}`);
345
+ }
346
+ }
347
+ if (!result.ok)
348
+ process.exitCode = EXIT_RUNTIME_ERROR;
349
+ }
350
+ catch (error) {
351
+ printError(errorMessage(error), { json: Boolean(options.json), quiet: false });
352
+ process.exitCode = isSupervisorConnectionError(error) ? EXIT_SUPERVISOR_ERROR : EXIT_RUNTIME_ERROR;
353
+ }
354
+ });
355
+ runs
356
+ .command("fork")
357
+ .argument("<sourceRunId>", "terminal source Run to fork from")
358
+ .argument("<refOrPath>", "Workflow Catalog ref/name or workflow YAML spec path with the repaired Spec")
359
+ .option("--from <nodeKey>", "force the Fork Origin to a specific Node Key (default: first divergence)")
360
+ .option("--input <value>", "inline JSON or path to YAML/JSON input (default: inherit from source Run)")
361
+ .option("--dry-run", "compute the fork plan without creating a new Run")
362
+ .option("--background", "submit and return immediately (no follow)")
363
+ .option("--visualize", "submit and open TUI visualizer")
364
+ .option("--json", "write JSON output")
365
+ .option("--quiet", "only write final output")
366
+ .description("derive a new Run from a terminal Run, inheriting matching Run Checkpoints from the source")
367
+ .action(async (sourceRunId, refOrPath, options) => {
368
+ if (options.background && options.visualize) {
369
+ printError("--background and --visualize are mutually exclusive", options);
370
+ process.exitCode = EXIT_CLI_ERROR;
371
+ return;
372
+ }
373
+ if (options.visualize && options.json) {
374
+ printError("--visualize and --json are mutually exclusive", options);
375
+ process.exitCode = EXIT_CLI_ERROR;
376
+ return;
377
+ }
378
+ try {
379
+ const target = resolveWorkflowTarget(refOrPath);
380
+ const parsedInput = parseInput(options.input);
381
+ const client = await ensureSupervisor();
382
+ const result = await client.forkRun(sourceRunId, target.source, {
383
+ sourcePath: target.sourcePath,
384
+ workflowRef: target.workflowRef,
385
+ input: parsedInput,
386
+ overrideOriginNodeKey: options.from,
387
+ dryRun: options.dryRun
388
+ });
389
+ if (options.dryRun) {
390
+ if (options.json) {
391
+ console.log(JSON.stringify(result));
392
+ }
393
+ else if (!options.quiet) {
394
+ console.log(`Fork plan for ${sourceRunId}:`);
395
+ console.log(` Fork Origin: ${result.plan.forkOriginNodeKey} (${result.plan.boundaryReason})`);
396
+ console.log(` Inherited Nodes: ${result.plan.inheritedNodeKeys.length}`);
397
+ for (const key of result.plan.inheritedNodeKeys)
398
+ console.log(` + ${key}`);
399
+ }
400
+ process.exitCode = 0;
401
+ return;
402
+ }
403
+ if (!result.run) {
404
+ printError("Supervisor returned no Run for non-dry-run fork", options);
405
+ process.exitCode = EXIT_RUNTIME_ERROR;
406
+ return;
407
+ }
408
+ if (options.background) {
409
+ if (options.json) {
410
+ console.log(JSON.stringify(result));
411
+ }
412
+ else if (!options.quiet) {
413
+ console.log(`Run ${result.run.runId} forked from ${sourceRunId}`);
414
+ console.log(`Fork Origin: ${result.plan.forkOriginNodeKey}`);
415
+ console.log(`Inherited: ${result.plan.inheritedNodeKeys.length} node(s)`);
416
+ console.log(`Status: ${result.run.status}`);
417
+ }
418
+ process.exitCode = 0;
419
+ return;
420
+ }
421
+ if (options.visualize) {
422
+ const { runTui } = await import("@acpus/tui");
423
+ await runTui({ runId: result.run.runId, endpoint: client.baseUrl });
424
+ process.exitCode = 0;
425
+ return;
426
+ }
427
+ const terminalStatus = await followRun(client, result.run.runId, { json: options.json });
428
+ process.exitCode = exitCodeForRunStatus(terminalStatus);
429
+ }
430
+ catch (error) {
431
+ const message = errorMessage(error);
432
+ printError(message, options);
433
+ if (isSupervisorConnectionError(error)) {
434
+ process.exitCode = EXIT_SUPERVISOR_ERROR;
435
+ }
436
+ else if (error instanceof ForkRejectedError) {
437
+ process.exitCode = EXIT_FORK_REJECTED;
438
+ }
439
+ else {
440
+ process.exitCode = EXIT_RUNTIME_ERROR;
441
+ }
442
+ }
443
+ });
444
+ program.addCommand(runs);
445
+ program.parse();
446
+ function resolveLintTarget(refOrPath) {
447
+ if (looksLikeWorkflowPath(refOrPath))
448
+ return resolveWorkflowPath(refOrPath);
449
+ return findWorkflowCatalogEntry(refOrPath).path;
450
+ }
451
+ function printWorkflowList(entries) {
452
+ if (entries.length === 0) {
453
+ console.log("No workflows found.");
454
+ return;
455
+ }
456
+ console.log("SCOPE STATUS REF NAME PATH");
457
+ for (const entry of entries) {
458
+ console.log(`${pad(entry.scope, 8)} ${pad(entry.status, 9)} ${pad(entry.ref ?? "-", 20)} ${pad(entry.name ?? "-", 20)} ${displayPath(entry.path)}`);
459
+ }
460
+ }
461
+ function printWorkflowDetails(entry) {
462
+ console.log(`Workflow: ${entry.name ?? "-"}`);
463
+ console.log(`Ref: ${entry.ref ?? "-"}`);
464
+ console.log(`Scope: ${entry.scope}`);
465
+ console.log(`Status: ${entry.status}`);
466
+ console.log(`Path: ${entry.path}`);
467
+ if (entry.description)
468
+ console.log(`Description: ${entry.description}`);
469
+ if (entry.inputKeys.length > 0)
470
+ console.log(`Inputs: ${entry.inputKeys.join(", ")}`);
471
+ if (entry.diagnostics.length > 0) {
472
+ console.log();
473
+ console.log("Diagnostics:");
474
+ for (const diagnostic of entry.diagnostics) {
475
+ console.log(` ${diagnostic.severity.toUpperCase()} ${diagnostic.code} ${diagnostic.path}: ${diagnostic.message}`);
476
+ }
477
+ }
478
+ }
479
+ function printCleanResult(result) {
480
+ const verb = result.dryRun ? "Would delete" : "Deleted";
481
+ console.log(`${verb} ${result.deletedCount} terminal run(s), ${formatBytes(result.bytesReclaimed)}.`);
482
+ if (result.skippedCount > 0) {
483
+ console.log(`Skipped ${result.skippedCount} run(s).`);
484
+ }
485
+ }
486
+ function exitCodeForRunStatus(status) {
487
+ switch (status) {
488
+ case "completed": return 0;
489
+ case "failed": return EXIT_RUNTIME_ERROR;
490
+ case "cancelled":
491
+ case "paused": return EXIT_USER_CANCEL;
492
+ default: return 0;
493
+ }
494
+ }
495
+ function pad(value, width) {
496
+ return value.length >= width ? value : value + " ".repeat(width - value.length);
497
+ }
498
+ function displayPath(path) {
499
+ const rel = relative(process.cwd(), path);
500
+ return rel && !rel.startsWith("..") && !rel.startsWith("/") ? rel : path;
501
+ }
502
+ function createWorkspaceIncludeResolver() {
503
+ return workflowSourcePolicy().createIncludeResolver();
504
+ }
505
+ function formatBytes(bytes) {
506
+ if (bytes < 1024)
507
+ return `${bytes} B`;
508
+ if (bytes < 1024 * 1024)
509
+ return `${(bytes / 1024).toFixed(1)} KiB`;
510
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MiB`;
511
+ }
512
+ function pastTense(action) {
513
+ if (action === "pause")
514
+ return "paused";
515
+ if (action === "resume")
516
+ return "resumed";
517
+ return "cancelled";
518
+ }
519
+ function errorMessage(error) {
520
+ return error instanceof Error ? error.message : String(error);
521
+ }
522
+ //# 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 { createIncludeResolver } from "@acpus/core";
2
+ export declare function readTextFile(path: string): string;
3
+ export declare function parseInput(value: string | undefined): Record<string, unknown> | undefined;
4
+ //# sourceMappingURL=io.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"io.d.ts","sourceRoot":"","sources":["../src/io.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;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,28 @@
1
+ import { existsSync, readFileSync } from "node:fs";
2
+ import { resolve } from "node:path";
3
+ import { parse as parseYaml } from "yaml";
4
+ export { createIncludeResolver } from "@acpus/core";
5
+ export function readTextFile(path) {
6
+ return readFileSync(path, "utf8");
7
+ }
8
+ export function parseInput(value) {
9
+ if (value === undefined) {
10
+ return undefined;
11
+ }
12
+ const possiblePath = resolve(process.cwd(), value);
13
+ if (existsSync(possiblePath)) {
14
+ const contents = readTextFile(possiblePath);
15
+ if (possiblePath.endsWith(".yaml") || possiblePath.endsWith(".yml")) {
16
+ return ensureObject(parseYaml(contents), "--input");
17
+ }
18
+ return ensureObject(JSON.parse(contents), "--input");
19
+ }
20
+ return ensureObject(JSON.parse(value), "--input");
21
+ }
22
+ function ensureObject(value, label) {
23
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
24
+ throw new Error(`${label} must resolve to an object.`);
25
+ }
26
+ return value;
27
+ }
28
+ //# 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,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEpD,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACpC,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"}