acpus 0.5.1 → 0.6.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/README.md +19 -5
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/agent-progress-format.d.ts +7 -0
  4. package/dist/agent-progress-format.d.ts.map +1 -0
  5. package/dist/agent-progress-format.js +102 -0
  6. package/dist/agent-progress-format.js.map +1 -0
  7. package/dist/authoring/core.d.ts +2 -0
  8. package/dist/authoring/core.d.ts.map +1 -0
  9. package/dist/authoring/core.js +2 -0
  10. package/dist/authoring/core.js.map +1 -0
  11. package/dist/authoring/expression.d.ts +2 -0
  12. package/dist/authoring/expression.d.ts.map +1 -0
  13. package/dist/authoring/expression.js +2 -0
  14. package/dist/authoring/expression.js.map +1 -0
  15. package/dist/authoring/tasks/git.d.ts +2 -0
  16. package/dist/authoring/tasks/git.d.ts.map +1 -0
  17. package/dist/authoring/tasks/git.js +2 -0
  18. package/dist/authoring/tasks/git.js.map +1 -0
  19. package/dist/catalog.d.ts +18 -24
  20. package/dist/catalog.d.ts.map +1 -1
  21. package/dist/catalog.js +164 -174
  22. package/dist/catalog.js.map +1 -1
  23. package/dist/cli.d.ts +3 -0
  24. package/dist/cli.d.ts.map +1 -0
  25. package/dist/cli.js +14 -0
  26. package/dist/cli.js.map +1 -0
  27. package/dist/commands/daemon.d.ts +14 -0
  28. package/dist/commands/daemon.d.ts.map +1 -0
  29. package/dist/commands/daemon.js +89 -0
  30. package/dist/commands/daemon.js.map +1 -0
  31. package/dist/commands/doctor.d.ts +11 -0
  32. package/dist/commands/doctor.d.ts.map +1 -0
  33. package/dist/commands/doctor.js +26 -0
  34. package/dist/commands/doctor.js.map +1 -0
  35. package/dist/commands/hooks.d.ts +11 -0
  36. package/dist/commands/hooks.d.ts.map +1 -0
  37. package/dist/commands/hooks.js +64 -0
  38. package/dist/commands/hooks.js.map +1 -0
  39. package/dist/commands/json.d.ts +7 -0
  40. package/dist/commands/json.d.ts.map +1 -0
  41. package/dist/commands/json.js +43 -0
  42. package/dist/commands/json.js.map +1 -0
  43. package/dist/commands/runs-picker.d.ts +21 -0
  44. package/dist/commands/runs-picker.d.ts.map +1 -0
  45. package/dist/commands/runs-picker.js +76 -0
  46. package/dist/commands/runs-picker.js.map +1 -0
  47. package/dist/commands/runs.d.ts +12 -0
  48. package/dist/commands/runs.d.ts.map +1 -0
  49. package/dist/commands/runs.js +285 -0
  50. package/dist/commands/runs.js.map +1 -0
  51. package/dist/commands/skill.d.ts +11 -0
  52. package/dist/commands/skill.d.ts.map +1 -0
  53. package/dist/commands/skill.js +221 -0
  54. package/dist/commands/skill.js.map +1 -0
  55. package/dist/commands/web.d.ts +24 -0
  56. package/dist/commands/web.d.ts.map +1 -0
  57. package/dist/commands/web.js +57 -0
  58. package/dist/commands/web.js.map +1 -0
  59. package/dist/commands/workflow.d.ts +11 -0
  60. package/dist/commands/workflow.d.ts.map +1 -0
  61. package/dist/commands/workflow.js +324 -0
  62. package/dist/commands/workflow.js.map +1 -0
  63. package/dist/daemon-entry.d.ts +3 -0
  64. package/dist/daemon-entry.d.ts.map +1 -0
  65. package/dist/daemon-entry.js +26 -0
  66. package/dist/daemon-entry.js.map +1 -0
  67. package/dist/errors.d.ts +19 -0
  68. package/dist/errors.d.ts.map +1 -0
  69. package/dist/errors.js +28 -0
  70. package/dist/errors.js.map +1 -0
  71. package/dist/output.d.ts +91 -11
  72. package/dist/output.d.ts.map +1 -1
  73. package/dist/output.js +203 -44
  74. package/dist/output.js.map +1 -1
  75. package/dist/program.d.ts +9 -0
  76. package/dist/program.d.ts.map +1 -0
  77. package/dist/program.js +85 -0
  78. package/dist/program.js.map +1 -0
  79. package/dist/run-status-surface.d.ts +12 -0
  80. package/dist/run-status-surface.d.ts.map +1 -0
  81. package/dist/run-status-surface.js +324 -0
  82. package/dist/run-status-surface.js.map +1 -0
  83. package/dist/workflow-preparation.d.ts +3 -0
  84. package/dist/workflow-preparation.d.ts.map +1 -0
  85. package/dist/workflow-preparation.js +34 -0
  86. package/dist/workflow-preparation.js.map +1 -0
  87. package/package.json +35 -35
  88. package/skills/acpus/SKILL.md +120 -0
  89. package/skills/acpus/eval/evaluations.md +47 -0
  90. package/skills/acpus/examples/hooks.example.json +17 -0
  91. package/skills/acpus/examples/workflows/adversarial-review/workflow.ts +248 -0
  92. package/skills/acpus/examples/workflows/change-approval/workflow.ts +121 -0
  93. package/skills/acpus/examples/workflows/issue-triage/tasks.ts +14 -0
  94. package/skills/acpus/examples/workflows/issue-triage/workflow.ts +146 -0
  95. package/skills/acpus/examples/workflows/multi-aspect-brainstorm/workflow.ts +304 -0
  96. package/skills/acpus/examples/workflows/worktree-tournament/workflow.ts +194 -0
  97. package/skills/acpus/references/authoring.md +205 -0
  98. package/skills/acpus/references/cli-operations.md +94 -0
  99. package/skills/acpus/references/hooks-json.md +81 -0
  100. package/skills/acpus/references/runtime-recovery.md +97 -0
  101. package/dist/agent-activity.d.ts +0 -3
  102. package/dist/agent-activity.d.ts.map +0 -1
  103. package/dist/agent-activity.js +0 -50
  104. package/dist/agent-activity.js.map +0 -1
  105. package/dist/agent-overrides.d.ts +0 -3
  106. package/dist/agent-overrides.d.ts.map +0 -1
  107. package/dist/agent-overrides.js +0 -39
  108. package/dist/agent-overrides.js.map +0 -1
  109. package/dist/follow.d.ts +0 -23
  110. package/dist/follow.d.ts.map +0 -1
  111. package/dist/follow.js +0 -164
  112. package/dist/follow.js.map +0 -1
  113. package/dist/hooks.d.ts +0 -4
  114. package/dist/hooks.d.ts.map +0 -1
  115. package/dist/hooks.js +0 -159
  116. package/dist/hooks.js.map +0 -1
  117. package/dist/index.d.ts +0 -3
  118. package/dist/index.d.ts.map +0 -1
  119. package/dist/index.js +0 -592
  120. package/dist/index.js.map +0 -1
  121. package/dist/io.d.ts +0 -3
  122. package/dist/io.d.ts.map +0 -1
  123. package/dist/io.js +0 -27
  124. package/dist/io.js.map +0 -1
  125. package/dist/observations.d.ts +0 -39
  126. package/dist/observations.d.ts.map +0 -1
  127. package/dist/observations.js +0 -83
  128. package/dist/observations.js.map +0 -1
  129. package/dist/runs-show.d.ts +0 -40
  130. package/dist/runs-show.d.ts.map +0 -1
  131. package/dist/runs-show.js +0 -296
  132. package/dist/runs-show.js.map +0 -1
  133. package/dist/supervisor-client.d.ts +0 -9
  134. package/dist/supervisor-client.d.ts.map +0 -1
  135. package/dist/supervisor-client.js +0 -8
  136. package/dist/supervisor-client.js.map +0 -1
  137. package/dist/supervisor.d.ts +0 -18
  138. package/dist/supervisor.d.ts.map +0 -1
  139. package/dist/supervisor.js +0 -24
  140. package/dist/supervisor.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK5C,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAOF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CA0CpE"}
@@ -0,0 +1,64 @@
1
+ import { Command } from "commander";
2
+ import { formatHookLoadError, globalHooksPath, loadHooksConfigScope, loadHooksConfigScopes, projectHooksPath } from "@acpus/runtime";
3
+ import { validationError, usageError } from "../errors.js";
4
+ import { writeResult } from "../output.js";
5
+ export function createHooksCommand(ctx) {
6
+ const command = new Command("hooks")
7
+ .exitOverride()
8
+ .configureOutput({
9
+ writeOut: text => ctx.stdout.write(text),
10
+ writeErr: text => {
11
+ if (!ctx.wantsJson)
12
+ ctx.stderr.write(text);
13
+ },
14
+ outputError: (text, write) => write(text),
15
+ })
16
+ .description("Inspect runtime hook configuration.");
17
+ command.addCommand(new Command("validate")
18
+ .exitOverride()
19
+ .option("--project", "validate project hooks")
20
+ .option("--global", "validate global hooks")
21
+ .action(async (options) => {
22
+ const scopes = await loadSelectedScopes(ctx, options);
23
+ const count = scopes.reduce((sum, scope) => sum + scope.hooks.length, 0);
24
+ ctx.setExitCode(writeResult({
25
+ ok: true,
26
+ phase: "validate",
27
+ message: `OK (${count} hooks)`,
28
+ hookValidation: { count },
29
+ }, outputFormat(ctx), ctx, 0));
30
+ }));
31
+ command.addCommand(new Command("list")
32
+ .exitOverride()
33
+ .option("--project", "list project hooks")
34
+ .option("--global", "list global hooks")
35
+ .action(async (options) => {
36
+ const scopes = await loadSelectedScopes(ctx, options);
37
+ ctx.setExitCode(writeResult({
38
+ ok: true,
39
+ phase: "inspect",
40
+ message: "Hooks listed.",
41
+ hooks: groupedHooks(scopes),
42
+ }, outputFormat(ctx), ctx, 0));
43
+ }));
44
+ return command;
45
+ }
46
+ async function loadSelectedScopes(ctx, options) {
47
+ if (options.project && options.global)
48
+ throw usageError("--project and --global are mutually exclusive.");
49
+ const result = options.project
50
+ ? await loadHooksConfigScope("project", projectHooksPath(ctx.cwd))
51
+ : options.global
52
+ ? await loadHooksConfigScope("global", globalHooksPath())
53
+ : await loadHooksConfigScopes(ctx.cwd);
54
+ if (result.isErr())
55
+ throw validationError(formatHookLoadError(result.error));
56
+ return Array.isArray(result.value) ? result.value : [result.value];
57
+ }
58
+ function groupedHooks(scopes) {
59
+ return Object.fromEntries(scopes.map(scope => [scope.source, { path: scope.path, hooks: scope.hooks }]));
60
+ }
61
+ function outputFormat(ctx) {
62
+ return ctx.wantsJson ? "json" : "text";
63
+ }
64
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/commands/hooks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AgentOverrideMap } from "@acpus/runtime";
2
+ import type { JsonValue } from "@acpus/expression/ir";
3
+ export declare function parseAgents(raw: string | undefined): AgentOverrideMap | undefined;
4
+ export declare function parseInput(raw: string | undefined): JsonValue;
5
+ export declare function parseRequiredPayload(raw: string | undefined): JsonValue;
6
+ export declare function parseJsonOption(raw: string, name: string): JsonValue;
7
+ //# sourceMappingURL=json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/commands/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAGtD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS,CAKjF;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAG7D;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAGvE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CASpE"}
@@ -0,0 +1,43 @@
1
+ import { usageError } from "../errors.js";
2
+ export function parseAgents(raw) {
3
+ if (raw === undefined)
4
+ return undefined;
5
+ const value = parseJsonOption(raw, "--agents");
6
+ if (!value || typeof value !== "object" || Array.isArray(value))
7
+ throw usageError("--agents must be a JSON object.");
8
+ return value;
9
+ }
10
+ export function parseInput(raw) {
11
+ if (raw === undefined)
12
+ return {};
13
+ return parseJsonOption(raw, "--input");
14
+ }
15
+ export function parseRequiredPayload(raw) {
16
+ if (raw === undefined)
17
+ throw usageError("--payload is required.");
18
+ return parseJsonOption(raw, "--payload");
19
+ }
20
+ export function parseJsonOption(raw, name) {
21
+ let value;
22
+ try {
23
+ value = JSON.parse(raw);
24
+ }
25
+ catch (error) {
26
+ throw usageError(`${name} must be valid JSON: ${error instanceof Error ? error.message : String(error)}`);
27
+ }
28
+ if (!isJsonValue(value))
29
+ throw usageError(`${name} must be JSON-serializable.`);
30
+ return value;
31
+ }
32
+ function isJsonValue(value) {
33
+ if (value === null)
34
+ return true;
35
+ if (typeof value === "number")
36
+ return Number.isFinite(value);
37
+ if (typeof value === "string" || typeof value === "boolean")
38
+ return true;
39
+ if (Array.isArray(value))
40
+ return value.every(isJsonValue);
41
+ return Boolean(value && typeof value === "object" && Object.values(value).every(isJsonValue));
42
+ }
43
+ //# sourceMappingURL=json.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/commands/json.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,GAAuB;IACjD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC/C,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,UAAU,CAAC,iCAAiC,CAAC,CAAC;IACrH,OAAO,KAAyB,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAuB;IAChD,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACjC,OAAO,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,GAAuB;IAC1D,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAClE,OAAO,eAAe,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,GAAW,EAAE,IAAY;IACvD,IAAI,KAAc,CAAC;IACnB,IAAI,CAAC;QACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,UAAU,CAAC,GAAG,IAAI,wBAAwB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5G,CAAC;IACD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;QAAE,MAAM,UAAU,CAAC,GAAG,IAAI,6BAA6B,CAAC,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;AAChG,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { Readable, Writable } from "node:stream";
2
+ import type { RunRecord } from "@acpus/runtime";
3
+ export type RunPickerIo = {
4
+ stdin: Readable;
5
+ stdout: Writable;
6
+ stderr: Writable;
7
+ };
8
+ export type DeleteRunChoice = {
9
+ run: RunRecord;
10
+ disabled?: boolean;
11
+ hint?: string;
12
+ };
13
+ export type DeleteRunSelection = {
14
+ runIds: string[];
15
+ selectedAll: boolean;
16
+ };
17
+ export declare function canPickRun(io: RunPickerIo): boolean;
18
+ export declare function pickRunId(runs: RunRecord[], io: RunPickerIo): Promise<string | undefined>;
19
+ export declare function pickRunsToDelete(choices: DeleteRunChoice[], io: RunPickerIo): Promise<DeleteRunSelection | undefined>;
20
+ export declare function confirmDelete(count: number, io: RunPickerIo): Promise<boolean | undefined>;
21
+ //# sourceMappingURL=runs-picker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs-picker.d.ts","sourceRoot":"","sources":["../../src/commands/runs-picker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAWhD,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,GAAG,EAAE,SAAS,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAIF,wBAAgB,UAAU,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAMnD;AAED,wBAAsB,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAc/F;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAyB3H;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAQhG"}
@@ -0,0 +1,76 @@
1
+ import { confirm, isCancel, multiselect, select } from "@clack/prompts";
2
+ const allDeletableRunsValue = "__acpus_all_deletable_runs__";
3
+ export function canPickRun(io) {
4
+ const stdin = io.stdin;
5
+ return stdin.isTTY === true
6
+ && typeof stdin.setRawMode === "function"
7
+ && io.stdout.isTTY === true
8
+ && io.stderr.isTTY === true;
9
+ }
10
+ export async function pickRunId(runs, io) {
11
+ const picked = await select({
12
+ message: "Select a run to inspect:",
13
+ options: runs.map(run => ({
14
+ value: run.id,
15
+ label: formatRunLabel(run),
16
+ hint: formatRunHint(run),
17
+ })),
18
+ input: io.stdin,
19
+ output: io.stderr,
20
+ });
21
+ if (isCancel(picked))
22
+ return undefined;
23
+ clearSubmittedSelect(io.stderr);
24
+ return picked;
25
+ }
26
+ export async function pickRunsToDelete(choices, io) {
27
+ const deletable = choices.filter(choice => choice.disabled !== true).map(choice => choice.run.id);
28
+ const picked = await multiselect({
29
+ message: "Select runs to delete:",
30
+ required: true,
31
+ options: [
32
+ {
33
+ value: allDeletableRunsValue,
34
+ label: "All deletable runs",
35
+ hint: `${deletable.length} runs`,
36
+ disabled: deletable.length === 0,
37
+ },
38
+ ...choices.map(choice => ({
39
+ value: choice.run.id,
40
+ label: formatRunLabel(choice.run),
41
+ hint: choice.hint ? `${choice.hint} · ${formatRunHint(choice.run)}` : formatRunHint(choice.run),
42
+ ...(choice.disabled === true ? { disabled: true } : {}),
43
+ })),
44
+ ],
45
+ input: io.stdin,
46
+ output: io.stderr,
47
+ });
48
+ if (isCancel(picked))
49
+ return undefined;
50
+ const selectedAll = picked.includes(allDeletableRunsValue);
51
+ return { runIds: selectedAll ? deletable : picked, selectedAll };
52
+ }
53
+ export async function confirmDelete(count, io) {
54
+ const confirmed = await confirm({
55
+ message: `Delete ${count} ${count === 1 ? "run" : "runs"}?`,
56
+ initialValue: false,
57
+ input: io.stdin,
58
+ output: io.stderr,
59
+ });
60
+ return isCancel(confirmed) ? undefined : confirmed;
61
+ }
62
+ function formatRunLabel(run) {
63
+ return run.id;
64
+ }
65
+ function formatRunHint(run) {
66
+ return `${run.status} · ${run.name} · ${formatUpdatedAt(run.updatedAt)}`;
67
+ }
68
+ function formatUpdatedAt(updatedAt) {
69
+ const match = /^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})/.exec(updatedAt);
70
+ return match ? `${match[1]} ${match[2]}` : updatedAt;
71
+ }
72
+ function clearSubmittedSelect(output) {
73
+ if (output.isTTY === true)
74
+ output.write("\x1b[3A\x1b[J");
75
+ }
76
+ //# sourceMappingURL=runs-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs-picker.js","sourceRoot":"","sources":["../../src/commands/runs-picker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { Readable, Writable } from "node:stream";
2
+ import { Command } from "commander";
3
+ export type RunsCommandContext = {
4
+ cwd: string;
5
+ stdin: Readable;
6
+ stdout: Writable;
7
+ stderr: Writable;
8
+ wantsJson: boolean;
9
+ setExitCode(code: number): void;
10
+ };
11
+ export declare function createRunsCommand(ctx: RunsCommandContext): Command;
12
+ //# sourceMappingURL=runs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.d.ts","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAWpC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAaF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CA4DlE"}
@@ -0,0 +1,285 @@
1
+ import { Command } from "commander";
2
+ import { deleteRun as deleteRuntimeRun, getRun, getRunInspection, listRuns, normalizeForkInput, RuntimeUseCaseException } from "@acpus/runtime";
3
+ import { controlError, deleteError, notFoundError, usageError, validationError } from "../errors.js";
4
+ import { writeResult } from "../output.js";
5
+ import { formatRunStatusSurface } from "../run-status-surface.js";
6
+ import { prepareWorkflowForCli } from "../workflow-preparation.js";
7
+ import { parseAgents, parseJsonOption, parseRequiredPayload } from "./json.js";
8
+ import { canPickRun, confirmDelete, pickRunId, pickRunsToDelete } from "./runs-picker.js";
9
+ import { DaemonControlFailure, daemonControlRequestId, sendDaemonControl } from "./daemon.js";
10
+ export function createRunsCommand(ctx) {
11
+ const command = new Command("runs")
12
+ .exitOverride()
13
+ .configureOutput({
14
+ writeOut: text => ctx.stdout.write(text),
15
+ writeErr: text => {
16
+ if (!ctx.wantsJson)
17
+ ctx.stderr.write(text);
18
+ },
19
+ outputError: (text, write) => write(text),
20
+ })
21
+ .description("Inspect and control durable runs.");
22
+ command.addCommand(new Command("inspect")
23
+ .exitOverride()
24
+ .argument("[run-id]", "run id")
25
+ .action(async (runId) => {
26
+ await inspectRunCommand(ctx, runId);
27
+ }));
28
+ command.addCommand(new Command("delete")
29
+ .exitOverride()
30
+ .argument("[run-id]", "run id")
31
+ .action(async (runId) => {
32
+ await deleteRunCommand(ctx, runId);
33
+ }));
34
+ for (const name of ["pause", "resume", "retry", "cancel"]) {
35
+ const control = new Command(name)
36
+ .exitOverride()
37
+ .argument("<run-id>", "run id")
38
+ .action(async (runId, options) => {
39
+ await mutateRun(ctx, runId, options, name);
40
+ });
41
+ if (name === "retry")
42
+ control.option("--target <run-target>", "retry only a failed run target");
43
+ if (name === "cancel")
44
+ control.option("--target <run-target>", "cancel only a non-terminal run target");
45
+ command.addCommand(control);
46
+ }
47
+ command.addCommand(new Command("fork")
48
+ .exitOverride()
49
+ .argument("<run-id>", "run id")
50
+ .option("--workflow <workflow-module>", "use a replacement workflow module for the fork")
51
+ .option("--input <json>", "override workflow input for the fork")
52
+ .option("--agents <json>", "override inherited agents for the fork")
53
+ .option("--target <run-target>", "target a replacement workflow recovery point")
54
+ .option("--unsafe-reuse", "dangerously reuse completed fork prerequisites despite workflow, input, or signature changes")
55
+ .action(async (runId, options) => {
56
+ await mutateRun(ctx, runId, options, "fork");
57
+ }));
58
+ command.addCommand(new Command("signal")
59
+ .exitOverride()
60
+ .argument("<run-id>", "run id")
61
+ .requiredOption("--target <run-target>", "signal wait target")
62
+ .requiredOption("--payload <json>", "signal payload JSON")
63
+ .action(async (runId, options) => {
64
+ await signalRun(ctx, runId, options);
65
+ }));
66
+ return command;
67
+ }
68
+ async function inspectRun(ctx, runId) {
69
+ if (!ctx.wantsJson) {
70
+ const inspection = await getRunInspection(ctx.cwd, runId);
71
+ if (!inspection)
72
+ throw notFoundError(`Run '${runId}' was not found.`);
73
+ ctx.stdout.write(formatRunStatusSurface(inspection.run, inspection.staticNodes));
74
+ ctx.setExitCode(0);
75
+ return;
76
+ }
77
+ const run = await getRun(ctx.cwd, runId);
78
+ if (!run)
79
+ throw notFoundError(`Run '${runId}' was not found.`);
80
+ ctx.setExitCode(writeResult({
81
+ ok: true,
82
+ phase: "inspect",
83
+ message: "Run inspected.",
84
+ run,
85
+ }, outputFormat(ctx), ctx, 0));
86
+ }
87
+ async function inspectRunCommand(ctx, runId) {
88
+ if (runId !== undefined) {
89
+ await inspectRun(ctx, runId);
90
+ return;
91
+ }
92
+ if (ctx.wantsJson)
93
+ throw usageError("Run id is required when --json is used.");
94
+ if (!canPickRun(ctx))
95
+ throw usageError("Run id is required when not running in an interactive terminal.");
96
+ const runs = await listRuns(ctx.cwd);
97
+ if (runs.length === 0)
98
+ throw notFoundError("No runs found.");
99
+ const selectedRunId = await pickRunId(runs, ctx);
100
+ if (selectedRunId === undefined)
101
+ throw usageError("Run selection cancelled.");
102
+ await inspectRun(ctx, selectedRunId);
103
+ }
104
+ async function deleteRunCommand(ctx, runId) {
105
+ if (runId !== undefined) {
106
+ const deleted = await deleteOneRun(ctx, runId);
107
+ ctx.setExitCode(writeResult({
108
+ ok: true,
109
+ phase: "delete",
110
+ message: "Run deleted.",
111
+ run: deleted,
112
+ deletedRuns: [deleted],
113
+ skippedRuns: [],
114
+ }, outputFormat(ctx), ctx, 0));
115
+ return;
116
+ }
117
+ if (ctx.wantsJson)
118
+ throw usageError("Run id is required when --json is used.");
119
+ if (!canPickRun(ctx))
120
+ throw usageError("Run id is required when not running in an interactive terminal.");
121
+ const choices = await deleteChoices(ctx);
122
+ if (choices.length === 0)
123
+ throw deleteError("No runs found.");
124
+ if (!choices.some(choice => choice.disabled !== true))
125
+ throw deleteError("No deletable runs found.");
126
+ const selection = await pickRunsToDelete(choices, ctx);
127
+ if (selection === undefined)
128
+ throw usageError("Run selection cancelled.");
129
+ if (selection.runIds.length === 0)
130
+ throw usageError("No runs selected.");
131
+ const confirmed = await confirmDelete(selection.runIds.length, ctx);
132
+ if (confirmed !== true)
133
+ throw usageError("Run deletion cancelled.");
134
+ const initialSkipped = selection.selectedAll ? choices.filter(choice => choice.disabled === true).map(choice => choice.run) : [];
135
+ const { deletedRuns, skippedRuns } = await deleteManyRuns(ctx, selection.runIds, initialSkipped);
136
+ ctx.setExitCode(writeResult({
137
+ ok: true,
138
+ phase: "delete",
139
+ message: deletedRuns.length === 1 ? "Run deleted." : "Runs deleted.",
140
+ deletedRuns,
141
+ skippedRuns,
142
+ }, outputFormat(ctx), ctx, 0));
143
+ }
144
+ async function deleteChoices(ctx) {
145
+ const runs = await listRuns(ctx.cwd);
146
+ return await Promise.all(runs.map(async (run) => {
147
+ const details = await getRun(ctx.cwd, run.id);
148
+ const active = details?.execution.state === "active";
149
+ return {
150
+ run,
151
+ ...(active ? { disabled: true, hint: "active" } : {}),
152
+ };
153
+ }));
154
+ }
155
+ async function deleteManyRuns(ctx, runIds, initialSkipped = []) {
156
+ const deletedRuns = [];
157
+ const skippedRuns = [...initialSkipped];
158
+ const skippedIds = new Set(skippedRuns.map(run => run.id));
159
+ for (const id of runIds) {
160
+ try {
161
+ const deleted = await deleteRuntimeRun(ctx.cwd, id);
162
+ if (!deleted)
163
+ continue;
164
+ deletedRuns.push(deleted);
165
+ }
166
+ catch (error) {
167
+ if (error instanceof RuntimeUseCaseException && error.failure.type === "run-delete-active") {
168
+ const run = await getRun(ctx.cwd, id);
169
+ if (run && !skippedIds.has(run.id)) {
170
+ skippedRuns.push(runSummary(run));
171
+ skippedIds.add(run.id);
172
+ }
173
+ continue;
174
+ }
175
+ throw error;
176
+ }
177
+ }
178
+ return { deletedRuns, skippedRuns };
179
+ }
180
+ async function deleteOneRun(ctx, runId) {
181
+ try {
182
+ const deleted = await deleteRuntimeRun(ctx.cwd, runId);
183
+ if (!deleted)
184
+ throw deleteError(`Run '${runId}' was not found.`);
185
+ return deleted;
186
+ }
187
+ catch (error) {
188
+ if (error instanceof RuntimeUseCaseException && error.failure.type === "run-delete-active") {
189
+ const run = await getRun(ctx.cwd, runId);
190
+ throw deleteError(error.message, {
191
+ errorCode: "RUN_ACTIVE",
192
+ ...(run ? { run: runSummary(run) } : {}),
193
+ });
194
+ }
195
+ throw error;
196
+ }
197
+ }
198
+ async function signalRun(ctx, runId, options) {
199
+ const payload = parseRequiredPayload(options.payload);
200
+ let result;
201
+ try {
202
+ result = await sendDaemonControl(ctx.cwd, { requestId: daemonControlRequestId(), type: "signal", runId, nodeId: options.target, payload });
203
+ }
204
+ catch (error) {
205
+ throw runControlError(error);
206
+ }
207
+ ctx.setExitCode(writeResult({
208
+ ok: true,
209
+ phase: "control",
210
+ message: "Signal accepted.",
211
+ run: runSummary(result.run),
212
+ }, outputFormat(ctx), ctx, 0));
213
+ }
214
+ async function mutateRun(ctx, runId, options, action) {
215
+ if (action === "fork" && options.target === "")
216
+ throw usageError("--target must be a non-empty string.");
217
+ const prepared = action === "fork" && options.workflow ? await prepareWorkflowForCli(options.workflow, ctx.cwd) : undefined;
218
+ const agentOverrides = action === "fork" ? parseAgents(options.agents) : undefined;
219
+ const forkInput = await maybeNormalizeForkInput(ctx, runId, action, options, prepared);
220
+ let result;
221
+ try {
222
+ result = await sendDaemonControl(ctx.cwd, {
223
+ requestId: daemonControlRequestId(),
224
+ type: action,
225
+ runId,
226
+ input: {
227
+ ...(options.target ? { target: options.target } : {}),
228
+ ...(prepared ? { prepared } : {}),
229
+ ...(forkInput !== undefined ? { input: forkInput } : {}),
230
+ ...(agentOverrides !== undefined ? { agentOverrides } : {}),
231
+ ...(action === "fork" && options.unsafeReuse === true ? { unsafeReuse: true } : {}),
232
+ },
233
+ });
234
+ }
235
+ catch (error) {
236
+ throw runControlError(error);
237
+ }
238
+ ctx.setExitCode(writeResult({
239
+ ok: true,
240
+ phase: "control",
241
+ message: action === "fork" ? "Run forked." : action === "cancel" ? "Run canceled." : `Run ${action}d.`,
242
+ run: runSummary(result.run),
243
+ ...(result.forkRunId ? { forkRunId: result.forkRunId } : {}),
244
+ }, outputFormat(ctx), ctx, 0));
245
+ }
246
+ async function maybeNormalizeForkInput(ctx, runId, action, options, prepared) {
247
+ if (action !== "fork")
248
+ return undefined;
249
+ if (options.input === undefined && !prepared)
250
+ return undefined;
251
+ const rawInput = options.input === undefined ? undefined : parseJsonOption(options.input, "--input");
252
+ try {
253
+ return await normalizeForkInput(ctx.cwd, runId, rawInput, prepared);
254
+ }
255
+ catch (error) {
256
+ throw validationError(error instanceof Error ? error.message : String(error));
257
+ }
258
+ }
259
+ function outputFormat(ctx) {
260
+ return ctx.wantsJson ? "json" : "text";
261
+ }
262
+ function runControlError(error) {
263
+ if (error instanceof DaemonControlFailure) {
264
+ return controlError(error.message, {
265
+ errorCode: error.code,
266
+ control: { type: error.controlType, runId: error.runId },
267
+ ...(error.run ? { run: runSummary(error.run) } : {}),
268
+ });
269
+ }
270
+ return controlError(error instanceof Error ? error.message : String(error));
271
+ }
272
+ function runSummary(run) {
273
+ return {
274
+ id: run.id,
275
+ name: run.name,
276
+ status: run.status,
277
+ workflowEntry: run.workflowEntry,
278
+ irDigest: run.irDigest,
279
+ sourceGraphDigest: run.sourceGraphDigest,
280
+ createdAt: run.createdAt,
281
+ updatedAt: run.updatedAt,
282
+ progressVersion: run.progressVersion,
283
+ };
284
+ }
285
+ //# sourceMappingURL=runs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runs.js","sourceRoot":"","sources":["../../src/commands/runs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Writable } from "node:stream";
2
+ import { Command } from "commander";
3
+ export type SkillCommandContext = {
4
+ cwd: string;
5
+ stdout: Writable;
6
+ stderr: Writable;
7
+ wantsJson: boolean;
8
+ setExitCode(code: number): void;
9
+ };
10
+ export declare function createSkillCommand(ctx: SkillCommandContext): Command;
11
+ //# sourceMappingURL=skill.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.d.ts","sourceRoot":"","sources":["../../src/commands/skill.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAM5C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,QAAQ,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC,CAAC;AAqBF,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,mBAAmB,GAAG,OAAO,CAkDpE"}