@rasensio/aidlc 1.61.0 → 1.62.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 (36) hide show
  1. package/dist/autopilot/driver.d.ts +23 -2
  2. package/dist/autopilot/driver.d.ts.map +1 -1
  3. package/dist/autopilot/driver.js +211 -23
  4. package/dist/autopilot/driver.js.map +1 -1
  5. package/dist/autopilot/presets.d.ts +32 -1
  6. package/dist/autopilot/presets.d.ts.map +1 -1
  7. package/dist/autopilot/presets.js +21 -1
  8. package/dist/autopilot/presets.js.map +1 -1
  9. package/dist/autopilot/questions.d.ts +13 -7
  10. package/dist/autopilot/questions.d.ts.map +1 -1
  11. package/dist/autopilot/questions.js +62 -7
  12. package/dist/autopilot/questions.js.map +1 -1
  13. package/dist/autopilot/run.d.ts +11 -1
  14. package/dist/autopilot/run.d.ts.map +1 -1
  15. package/dist/autopilot/run.js +18 -2
  16. package/dist/autopilot/run.js.map +1 -1
  17. package/dist/autopilot/state.d.ts +20 -1
  18. package/dist/autopilot/state.d.ts.map +1 -1
  19. package/dist/autopilot/state.js.map +1 -1
  20. package/dist/autopilot/stops.d.ts +62 -0
  21. package/dist/autopilot/stops.d.ts.map +1 -0
  22. package/dist/autopilot/stops.js +98 -0
  23. package/dist/autopilot/stops.js.map +1 -0
  24. package/dist/autopilot/team.d.ts +4 -1
  25. package/dist/autopilot/team.d.ts.map +1 -1
  26. package/dist/autopilot/team.js +14 -1
  27. package/dist/autopilot/team.js.map +1 -1
  28. package/dist/commands/autopilot.d.ts +27 -1
  29. package/dist/commands/autopilot.d.ts.map +1 -1
  30. package/dist/commands/autopilot.js +120 -10
  31. package/dist/commands/autopilot.js.map +1 -1
  32. package/dist/commands/init.js +3 -3
  33. package/dist/commands/init.js.map +1 -1
  34. package/dist/setup/work-mode.d.ts +1 -1
  35. package/dist/setup/work-mode.d.ts.map +1 -1
  36. package/package.json +2 -2
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Where autopilot stops and waits for a person (autopilot-stop-controls/AC-1).
3
+ *
4
+ * Two settings. `stop_at` is the last step autopilot takes for an item: `pr` opens
5
+ * the pull request and waits for a person to merge it, `merge` merges without the
6
+ * release step, `release` merges and releases. `pause_after` names the phases after
7
+ * which the agent stops and the item waits for `aidlc autopilot approve`.
8
+ *
9
+ * Every place a value enters — team file, machine file, setup flags, run flags —
10
+ * goes through the parsers here, so `AIDLC_PAUSE_AFTER` can only ever carry a name
11
+ * from {@link PAUSE_PHASES}.
12
+ *
13
+ * @module
14
+ */
15
+ export const STOP_AT = ['pr', 'merge', 'release'];
16
+ /** In lifecycle order: the earliest unapproved one is the one waited on (autopilot-stop-controls/AC-13). */
17
+ export const PAUSE_PHASES = ['requirements', 'design', 'implementation', 'testing'];
18
+ /** The flag text that {@link parsePauseFlag} reads back. */
19
+ export function pauseFlag(pauses) {
20
+ return pauses.length === 0 ? 'none' : pauses.join(',');
21
+ }
22
+ /**
23
+ * What an absent key meant before stops existed, so a config saved earlier, or an
24
+ * item tracked since then, behaves as it did (autopilot-stop-controls/AC-3, AC-6).
25
+ */
26
+ export const LEGACY_STOPS = Object.freeze({ stop_at: 'release', pause_after: [] });
27
+ export function parseStopAt(value) {
28
+ return typeof value === 'string' && STOP_AT.includes(value) ? value : undefined;
29
+ }
30
+ /** A list of allowed phase names, deduplicated and in lifecycle order; anything else is undefined. */
31
+ export function parsePauseAfter(value) {
32
+ if (!Array.isArray(value))
33
+ return undefined;
34
+ if (!value.every((v) => typeof v === 'string' && PAUSE_PHASES.includes(v)))
35
+ return undefined;
36
+ return PAUSE_PHASES.filter((p) => value.includes(p));
37
+ }
38
+ /** Flag text: `none` is no pauses, otherwise comma-separated phase names. */
39
+ export function parsePauseFlag(text) {
40
+ const t = text.trim();
41
+ if (t === 'none')
42
+ return [];
43
+ const names = t.split(',').map((s) => s.trim());
44
+ if (names.some((n) => n === ''))
45
+ return undefined;
46
+ return parsePauseAfter(names);
47
+ }
48
+ /** The stops a config sets, key by key; an absent or invalid key keeps its legacy value. */
49
+ export function stopsInForce(config) {
50
+ return {
51
+ stop_at: parseStopAt(config?.stop_at) ?? LEGACY_STOPS.stop_at,
52
+ pause_after: parsePauseAfter(config?.pause_after) ?? [...LEGACY_STOPS.pause_after],
53
+ };
54
+ }
55
+ /** Whether a config sets either stop key validly. */
56
+ export function setsStops(config) {
57
+ return parseStopAt(config?.stop_at) !== undefined || parsePauseAfter(config?.pause_after) !== undefined;
58
+ }
59
+ const STOP_AT_WORDS = {
60
+ pr: 'wait at the pull request for you to merge it',
61
+ merge: 'merge when CI passes, no release',
62
+ release: 'merge and run the release step',
63
+ };
64
+ export function describePauses(pauses) {
65
+ return pauses.length === 0 ? 'no pauses' : `pause after ${pauses.join(', ')}`;
66
+ }
67
+ export function describeStopAt(stop) {
68
+ return STOP_AT_WORDS[stop];
69
+ }
70
+ /**
71
+ * The line `aidlc autopilot run` prints on every start. With neither key set it
72
+ * says what that means, so nobody finds out from the merged pull request
73
+ * (autopilot-stop-controls/AC-5).
74
+ */
75
+ export function stopsLine(config) {
76
+ if (!setsStops(config)) {
77
+ return 'stops: none set — each item is merged and released with no review; `aidlc autopilot setup` sets them';
78
+ }
79
+ const s = stopsInForce(config);
80
+ return `stops: ${describePauses(s.pause_after)}; ${describeStopAt(s.stop_at)}`;
81
+ }
82
+ /**
83
+ * An item's paused phases not yet approved, in lifecycle order. Read through the
84
+ * allowlist rather than trusting the list: it comes back from `state.json`, which
85
+ * is a file a person can edit.
86
+ */
87
+ function unapproved(stops, approved) {
88
+ return PAUSE_PHASES.filter((p) => stops.pause_after.includes(p) && !approved.includes(p));
89
+ }
90
+ /** The earliest paused phase that is complete and not yet approved, or null. */
91
+ export function pendingReview(stops, approved, complete) {
92
+ return unapproved(stops, approved).find(complete) ?? null;
93
+ }
94
+ /** `AIDLC_PAUSE_AFTER` for the agent (autopilot-stop-controls/AC-11). */
95
+ export function pauseEnv(stops, approved) {
96
+ return unapproved(stops, approved).join(',');
97
+ }
98
+ //# sourceMappingURL=stops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stops.js","sourceRoot":"","sources":["../../src/autopilot/stops.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Team defaults for autopilot: the `autopilot:` section of the committed
3
3
  * `.aidlc/config.yaml` (init-sets-work-mode/AC-21..AC-23).
4
4
  *
5
- * Only the cost cap and the release step are team decisions. The agent, its
5
+ * Only the cost cap, the release step and the stops are team decisions. The agent, its
6
6
  * permissions and how many items build at once belong to the machine that runs
7
7
  * them, so those keys are never read from a committed file — a clone must not be
8
8
  * able to hand an agent full access on somebody else's machine.
@@ -10,6 +10,7 @@
10
10
  * @module
11
11
  */
12
12
  import type { AutopilotConfig } from './state.js';
13
+ import { type PausePhase, type StopAt } from './stops.js';
13
14
  /**
14
15
  * Preset names, never a command: a name resolved against `releasePresets` can only
15
16
  * select a command the code already offers (init-sets-work-mode/AC-18).
@@ -20,6 +21,8 @@ export interface TeamDefaults {
20
21
  /** null = no cap. */
21
22
  cost_cap_usd?: number | null;
22
23
  release?: TeamReleaseId;
24
+ stop_at?: StopAt;
25
+ pause_after?: PausePhase[];
23
26
  }
24
27
  /**
25
28
  * The validated `autopilot:` section of `<projectRoot>/.aidlc/config.yaml`. Never
@@ -1 +1 @@
1
- {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wCAAyC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAuBlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,GAClB,eAAe,GAAG,IAAI,CASxB"}
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAgC,KAAK,UAAU,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AAExF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,wCAAyC,CAAC;AACvE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CA6BlE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,eAAe,GAAG,IAAI,EAC/B,IAAI,EAAE,YAAY,EAClB,WAAW,EAAE,MAAM,GAClB,eAAe,GAAG,IAAI,CAWxB"}
@@ -2,7 +2,7 @@
2
2
  * Team defaults for autopilot: the `autopilot:` section of the committed
3
3
  * `.aidlc/config.yaml` (init-sets-work-mode/AC-21..AC-23).
4
4
  *
5
- * Only the cost cap and the release step are team decisions. The agent, its
5
+ * Only the cost cap, the release step and the stops are team decisions. The agent, its
6
6
  * permissions and how many items build at once belong to the machine that runs
7
7
  * them, so those keys are never read from a committed file — a clone must not be
8
8
  * able to hand an agent full access on somebody else's machine.
@@ -13,6 +13,7 @@ import { existsSync, readFileSync } from 'node:fs';
13
13
  import { join } from 'node:path';
14
14
  import { parse as parseYaml } from 'yaml';
15
15
  import { releasePresets } from './presets.js';
16
+ import { parsePauseAfter, parseStopAt } from './stops.js';
16
17
  /**
17
18
  * Preset names, never a command: a name resolved against `releasePresets` can only
18
19
  * select a command the code already offers (init-sets-work-mode/AC-18).
@@ -50,6 +51,14 @@ export function loadTeamDefaults(projectRoot) {
50
51
  if (typeof raw.release === 'string' && releasePresets(projectRoot).some((r) => r.id === raw.release)) {
51
52
  team.release = raw.release;
52
53
  }
54
+ // A stop the team got wrong is ignored like a bad cap, never half-applied
55
+ // (autopilot-stop-controls/AC-2).
56
+ const stopAt = parseStopAt(raw.stop_at);
57
+ if (stopAt !== undefined)
58
+ team.stop_at = stopAt;
59
+ const pauses = parsePauseAfter(raw.pause_after);
60
+ if (pauses !== undefined)
61
+ team.pause_after = pauses;
53
62
  return team;
54
63
  }
55
64
  /**
@@ -70,6 +79,10 @@ export function withTeamDefaults(machine, team, projectRoot) {
70
79
  if (preset)
71
80
  base.release_command = preset.command;
72
81
  }
82
+ if (team.stop_at !== undefined)
83
+ base.stop_at = team.stop_at;
84
+ if (team.pause_after !== undefined)
85
+ base.pause_after = team.pause_after;
73
86
  return { ...base, ...machine };
74
87
  }
75
88
  //# sourceMappingURL=team.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C;;;GAGG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,aAAa,EAAE,YAAY,CAAU,CAAC;AASvE;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;IACxD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACjC,OAAO,GAAI,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAoC,EAAE,SAAS,CAAC;IACjG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC;IACzF,MAAM,GAAG,GAAG,OAAkC,CAAC;IAE/C,MAAM,IAAI,GAAiB,EAAE,CAAC;IAC9B,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC;IAC7B,IAAI,GAAG,KAAK,IAAI,IAAI,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC;QACjF,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC;IAC1B,CAAC;IACD,iFAAiF;IACjF,uEAAuE;IACvE,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;QACrG,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAwB,CAAC;IAC9C,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA+B,EAC/B,IAAkB,EAClB,WAAmB;IAEnB,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,IAAI,GAAoB,EAAE,CAAC;IACjC,IAAI,cAAc,IAAI,IAAI;QAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;IAClE,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC;QAC9E,IAAI,MAAM;YAAE,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,OAAO,CAAC;IACpD,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/autopilot/team.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,14 @@
2
2
  * `aidlc autopilot` — work the backlog in the background, on request
3
3
  * (autopilot-on-demand/AC-1..AC-13).
4
4
  *
5
- * - `setup` — pick the agent, parallelism, cost cap and release step from lists.
5
+ * - `setup` — pick the agent, parallelism, cost cap, where it stops for a person,
6
+ * and the release step from lists.
6
7
  * - `run` — start one background run for `--items n` or `--all`, and return.
7
8
  * - `stop` — create the STOP file; the run ends at its next step.
8
9
  * - `pause` — freeze the run and its agents where they stand; `resume` thaws them.
9
10
  * - `status` — the active run and every tracked item.
11
+ * - `approve` — carry on an item paused for review (autopilot-stop-controls).
12
+ * - `forget` — stop tracking an item finished or abandoned by hand.
10
13
  * - `tick` — one pass, in the foreground; kept for debugging.
11
14
  *
12
15
  * The driver acts in the primary checkout (merges and releases happen on its
@@ -17,10 +20,13 @@
17
20
  import { Command } from 'commander';
18
21
  import { type Prompter } from '../core/prompt.js';
19
22
  import { type AutopilotConfig, type AutopilotPaths, type RunRecord } from '../autopilot/state.js';
23
+ import { type StopOverrides } from '../autopilot/stops.js';
20
24
  export interface SetupOptions {
21
25
  agent?: string;
22
26
  parallel?: string;
23
27
  costCap?: string;
28
+ pauseAfter?: string;
29
+ stopAt?: string;
24
30
  release?: string;
25
31
  nonInteractive?: boolean;
26
32
  }
@@ -40,18 +46,38 @@ export type SetupOutcome = {
40
46
  * agent's permissions on the user's behalf.
41
47
  */
42
48
  export declare function runSetup(repo: string, p: AutopilotPaths, opts: SetupOptions, prompt?: Prompter): Promise<SetupOutcome>;
49
+ export declare function describeConfig(p: AutopilotPaths, c: AutopilotConfig): string;
43
50
  /**
44
51
  * `aidlc autopilot setup`. `aidlc init` asks the same four questions through
45
52
  * `askAutopilotQuestions` and saves the answers per home instead
46
53
  * (init-sets-work-mode/AC-16, AC-20).
47
54
  */
48
55
  export declare function setupCommand(opts: SetupOptions, prompt?: Prompter): Promise<number>;
56
+ /** `--stop-at` and `--pause-after`, or the message naming the valid values (autopilot-stop-controls/AC-4, AC-8). */
57
+ export declare function parseStopFlags(opts: {
58
+ stopAt?: string;
59
+ pauseAfter?: string;
60
+ }): {
61
+ ok: true;
62
+ stops: StopOverrides;
63
+ } | {
64
+ ok: false;
65
+ reason: string;
66
+ };
67
+ /** The stops a run started now would apply: team, then machine, then its flags (autopilot-stop-controls/AC-5). */
68
+ export declare function runStopsLine(repo: string, p: AutopilotPaths, stops: StopOverrides): string;
49
69
  /**
50
70
  * `aidlc autopilot forget <instance>` — stop tracking an item finished or
51
71
  * abandoned by hand, so the next run does not try to merge it again
52
72
  * (autopilot-merge-lane-stalls-on-conflicts/AC-17, AC-18).
53
73
  */
54
74
  export declare function forgetCommand(name: string): number;
75
+ /**
76
+ * `aidlc autopilot approve <instance>` — approve the phase an item paused after, so
77
+ * the next pass carries it on. Only autopilot's own state changes
78
+ * (autopilot-stop-controls/AC-16, AC-17).
79
+ */
80
+ export declare function approveCommand(name: string): number;
55
81
  /** The run half of `status`: whether a run is active and what it has left (autopilot-on-demand/AC-9). */
56
82
  export declare function runStatusLines(run: RunRecord | null): string[];
57
83
  export declare function registerAutopilot(program: Command): Command;
@@ -1 +1 @@
1
- {"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAwBnE,OAAO,EAQL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AA2C/B,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQjG;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,cAAc,EACjB,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE,QAA0B,GACjC,OAAO,CAAC,YAAY,CAAC,CAwDvB;AAaD;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,QAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1G;AA6HD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBlD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAI9D;AAmCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CA2E3D"}
1
+ {"version":3,"file":"autopilot.d.ts","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAI5C,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AA0BnE,OAAO,EAQL,KAAK,eAAe,EAEpB,KAAK,cAAc,EACnB,KAAK,SAAS,EACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EASL,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAC;AA+C/B,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,YAAY,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAQjG;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAC5B,IAAI,EAAE,MAAM,EACZ,CAAC,EAAE,cAAc,EACjB,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE,QAA0B,GACjC,OAAO,CAAC,YAAY,CAAC,CAsEvB;AAED,wBAAgB,cAAc,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAY5E;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,GAAE,QAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAa1G;AAgBD,oHAAoH;AACpH,wBAAgB,cAAc,CAAC,IAAI,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,aAAa,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAajJ;AAED,kHAAkH;AAClH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,MAAM,CAQ1F;AAgID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAqBlD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuBnD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI,GAAG,MAAM,EAAE,CAI9D;AAmCD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAuF3D"}
@@ -2,11 +2,14 @@
2
2
  * `aidlc autopilot` — work the backlog in the background, on request
3
3
  * (autopilot-on-demand/AC-1..AC-13).
4
4
  *
5
- * - `setup` — pick the agent, parallelism, cost cap and release step from lists.
5
+ * - `setup` — pick the agent, parallelism, cost cap, where it stops for a person,
6
+ * and the release step from lists.
6
7
  * - `run` — start one background run for `--items n` or `--all`, and return.
7
8
  * - `stop` — create the STOP file; the run ends at its next step.
8
9
  * - `pause` — freeze the run and its agents where they stand; `resume` thaws them.
9
10
  * - `status` — the active run and every tracked item.
11
+ * - `approve` — carry on an item paused for review (autopilot-stop-controls).
12
+ * - `forget` — stop tracking an item finished or abandoned by hand.
10
13
  * - `tick` — one pass, in the foreground; kept for debugging.
11
14
  *
12
15
  * The driver acts in the primary checkout (merges and releases happen on its
@@ -19,12 +22,14 @@ import { mkdirSync, writeFileSync } from 'node:fs';
19
22
  import { primaryWorkingTree } from '../concurrency/common-dir.js';
20
23
  import { defaultPrompter } from '../core/prompt.js';
21
24
  import { resolveProjectRoot } from '../core/project-root.js';
22
- import { forgetItem, statusLines, tick } from '../autopilot/driver.js';
23
- import { AGENT_PRESETS, COST_CAP_CHOICES, PARALLEL_CHOICES, agentPreset, releasePresets, } from '../autopilot/presets.js';
25
+ import { approveItem, forgetItem, statusLines, tick } from '../autopilot/driver.js';
26
+ import { AGENT_PRESETS, COST_CAP_CHOICES, PARALLEL_CHOICES, PAUSE_CHOICES, STOP_AT_CHOICES, agentPreset, releasePresets, } from '../autopilot/presets.js';
24
27
  import { currentSystem, identify, livePause, pauseRun, pauseStatusLines, processTable, realPauseDeps, resumeRun, } from '../autopilot/pause.js';
25
28
  import { askAutopilotQuestions, recommended } from '../autopilot/questions.js';
26
29
  import { activeRun, realCtx, runLoop, spawnLoopDetached, startRun } from '../autopilot/run.js';
27
30
  import { autopilotDir, autopilotPaths, loadConfig, loadState, saveConfig, saveState, withLock, } from '../autopilot/state.js';
31
+ import { PAUSE_PHASES, STOP_AT, describePauses, describeStopAt, parsePauseFlag, parseStopAt, stopsInForce, stopsLine, } from '../autopilot/stops.js';
32
+ import { loadTeamDefaults, withTeamDefaults } from '../autopilot/team.js';
28
33
  /** The primary checkout and the autopilot directory, or null outside a git repo. */
29
34
  function locate(cwd = resolveProjectRoot()) {
30
35
  const dir = autopilotDir(cwd);
@@ -52,6 +57,8 @@ function pausedNow(p) {
52
57
  }
53
58
  }
54
59
  const PAUSED = 'the run is paused — `aidlc autopilot resume` continues it';
60
+ const STOP_AT_HELP = STOP_AT.join(', ');
61
+ const PAUSE_HELP = `comma-separated phases from ${PAUSE_PHASES.join(', ')}, or "none"`;
55
62
  const stamp = (line) => {
56
63
  process.stdout.write(`${new Date().toISOString()} ${line}\n`);
57
64
  };
@@ -71,7 +78,7 @@ function parseCostCap(value) {
71
78
  */
72
79
  export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
73
80
  const releases = releasePresets(repo);
74
- const flagged = [opts.agent, opts.parallel, opts.costCap, opts.release].some((v) => v !== undefined);
81
+ const flagged = [opts.agent, opts.parallel, opts.costCap, opts.pauseAfter, opts.stopAt, opts.release].some((v) => v !== undefined);
75
82
  const ask = !flagged && !opts.nonInteractive;
76
83
  if (ask && !prompt.interactive()) {
77
84
  return {
@@ -82,6 +89,10 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
82
89
  let agentId = opts.agent ?? recommended(AGENT_PRESETS).id;
83
90
  let parallel = opts.parallel ?? recommended(PARALLEL_CHOICES).value;
84
91
  let costCap = opts.costCap ?? recommended(COST_CAP_CHOICES).value;
92
+ // The recommended stops are the defaults: a fresh setup waits for a person
93
+ // (autopilot-stop-controls/AC-8).
94
+ let pauses = opts.pauseAfter ?? recommended(PAUSE_CHOICES).value;
95
+ let stopAtText = opts.stopAt ?? recommended(STOP_AT_CHOICES).value;
85
96
  let releaseId = opts.release ?? recommended(releases).id;
86
97
  let customCommand = null;
87
98
  if (ask) {
@@ -89,12 +100,12 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
89
100
  // Shared with `aidlc init` (init-sets-work-mode/AC-8). No "(current)" extras here:
90
101
  // setup has always offered the plain lists and still does (AC-20).
91
102
  const picks = await askAutopilotQuestions(prompt, releases, {
92
- initial: { agent: agentId, parallel, costCap, release: releaseId },
103
+ initial: { agent: agentId, parallel, costCap, pauses, stopAt: stopAtText, release: releaseId },
93
104
  extras: {},
94
105
  });
95
106
  if (picks === null)
96
107
  return { ok: false, reason: 'setup cancelled — nothing written' };
97
- ({ agent: agentId, parallel, costCap, release: releaseId, customCommand } = picks);
108
+ ({ agent: agentId, parallel, costCap, pauses, stopAt: stopAtText, release: releaseId, customCommand } = picks);
98
109
  }
99
110
  const preset = agentPreset(agentId);
100
111
  if (customCommand === null && preset === undefined) {
@@ -107,6 +118,14 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
107
118
  if (capUsd === undefined) {
108
119
  return { ok: false, reason: `--cost-cap must be a positive number of dollars or "none", not "${costCap}"` };
109
120
  }
121
+ const pauseAfter = parsePauseFlag(pauses);
122
+ if (pauseAfter === undefined) {
123
+ return { ok: false, reason: `--pause-after takes ${PAUSE_HELP}, not "${pauses}"` };
124
+ }
125
+ const stopAt = parseStopAt(stopAtText);
126
+ if (stopAt === undefined) {
127
+ return { ok: false, reason: `--stop-at must be one of ${STOP_AT_HELP}, not "${stopAtText}"` };
128
+ }
110
129
  const release = releases.find((r) => r.id === releaseId);
111
130
  if (release === undefined) {
112
131
  return { ok: false, reason: `unknown release step "${releaseId}" — choose one of: ${releases.map((r) => r.id).join(', ')}` };
@@ -117,6 +136,8 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
117
136
  agent_platform: customCommand ? 'claude-code' : preset.platform,
118
137
  max_parallel: Number(parallel),
119
138
  cost_cap_usd: capUsd,
139
+ pause_after: pauseAfter,
140
+ stop_at: stopAt,
120
141
  release_command: release.command,
121
142
  };
122
143
  saveConfig(p, config);
@@ -124,12 +145,15 @@ export async function runSetup(repo, p, opts, prompt = defaultPrompter) {
124
145
  prompt.outro(`saved ${p.config}`);
125
146
  return { ok: true, config };
126
147
  }
127
- function describeConfig(p, c) {
148
+ export function describeConfig(p, c) {
149
+ const stops = stopsInForce(c);
128
150
  return [
129
151
  `autopilot config written to ${p.config}`,
130
152
  ` agent: ${(c.agent_command ?? []).join(' ')}`,
131
153
  ` parallel: ${c.max_parallel}`,
132
154
  ` cost cap: ${c.cost_cap_usd === null ? 'none' : `$${c.cost_cap_usd} per item`}`,
155
+ ` pauses: ${describePauses(stops.pause_after)}`,
156
+ ` stop at: ${describeStopAt(stops.stop_at)}`,
133
157
  ` release: ${c.release_command ? c.release_command.join(' ') : 'merge only'}`,
134
158
  'start a run with `aidlc autopilot run --items <n>` or `--all`',
135
159
  ].join('\n');
@@ -153,6 +177,34 @@ export async function setupCommand(opts, prompt = defaultPrompter) {
153
177
  process.stdout.write(`${describeConfig(where.paths, r.config)}\n`);
154
178
  return 0;
155
179
  }
180
+ /** `--stop-at` and `--pause-after`, or the message naming the valid values (autopilot-stop-controls/AC-4, AC-8). */
181
+ export function parseStopFlags(opts) {
182
+ const stops = {};
183
+ if (opts.stopAt !== undefined) {
184
+ const stopAt = parseStopAt(opts.stopAt);
185
+ if (stopAt === undefined)
186
+ return { ok: false, reason: `--stop-at must be one of ${STOP_AT_HELP}, not "${opts.stopAt}"` };
187
+ stops.stop_at = stopAt;
188
+ }
189
+ if (opts.pauseAfter !== undefined) {
190
+ const pauses = parsePauseFlag(opts.pauseAfter);
191
+ if (pauses === undefined)
192
+ return { ok: false, reason: `--pause-after takes ${PAUSE_HELP}, not "${opts.pauseAfter}"` };
193
+ stops.pause_after = pauses;
194
+ }
195
+ return { ok: true, stops };
196
+ }
197
+ /** The stops a run started now would apply: team, then machine, then its flags (autopilot-stop-controls/AC-5). */
198
+ export function runStopsLine(repo, p, stops) {
199
+ let machine = null;
200
+ try {
201
+ machine = loadConfig(p);
202
+ }
203
+ catch {
204
+ // startRun reports an unreadable config; the line falls back to the team's
205
+ }
206
+ return stopsLine({ ...withTeamDefaults(machine ?? {}, loadTeamDefaults(repo), repo), ...stops });
207
+ }
156
208
  async function runCommand(opts) {
157
209
  if ((opts.items === undefined) === !opts.all) {
158
210
  process.stderr.write('say how much to do: --items <n> or --all\n');
@@ -168,12 +220,26 @@ async function runCommand(opts) {
168
220
  process.stderr.write(`--interval must be at least 1 second, not "${opts.interval}"\n`);
169
221
  return 2;
170
222
  }
223
+ const flags = parseStopFlags(opts);
224
+ if (!flags.ok) {
225
+ process.stderr.write(`${flags.reason}\n`);
226
+ return 2;
227
+ }
228
+ const stops = flags.stops;
171
229
  const where = needRepo();
172
230
  if (where === null)
173
231
  return 1;
174
232
  const { repo, paths: p } = where;
175
233
  if (opts.foreground) {
176
- const result = await runLoop(p, { limit, intervalSec, log: opts.log ?? '', pid: process.pid, startedAt: new Date().toISOString(), identity: identify(process.pid) }, { ctx: () => realCtx(repo, p, false, stamp), sleep: (ms) => new Promise((r) => setTimeout(r, ms)) });
234
+ const result = await runLoop(p, {
235
+ limit,
236
+ intervalSec,
237
+ log: opts.log ?? '',
238
+ pid: process.pid,
239
+ startedAt: new Date().toISOString(),
240
+ identity: identify(process.pid),
241
+ stops,
242
+ }, { ctx: () => realCtx(repo, p, false, stamp), sleep: (ms) => new Promise((r) => setTimeout(r, ms)) });
177
243
  if (result === 'already-running') {
178
244
  stamp('another run is active — this one exits without doing anything');
179
245
  return 1;
@@ -184,13 +250,14 @@ async function runCommand(opts) {
184
250
  process.stderr.write(`${PAUSED}\n`);
185
251
  return 1;
186
252
  }
187
- const r = startRun(p, limit, intervalSec, { spawnLoop: (args, log) => spawnLoopDetached(args, log, repo), now: () => Date.now() });
253
+ const r = startRun(p, limit, intervalSec, { spawnLoop: (args, log) => spawnLoopDetached(args, log, repo), now: () => Date.now() }, stops);
188
254
  if (!r.ok) {
189
255
  process.stderr.write(`${r.reason}\n`);
190
256
  return 1;
191
257
  }
192
258
  process.stdout.write([
193
259
  `autopilot running in the background (pid ${r.pid}) — ${limit === null ? 'every ready item' : `the next ${limit} item(s)`}`,
260
+ runStopsLine(repo, p, stops),
194
261
  ...(r.resumed.length > 0 ? [`resumed: ${r.resumed.join(', ')}`] : []),
195
262
  `log: ${r.log}`,
196
263
  'watch: aidlc autopilot status',
@@ -282,6 +349,38 @@ export function forgetCommand(name) {
282
349
  process.stdout.write(`forgot ${item.name} (was ${item.step}${item.pr ? `, PR #${item.pr}` : ''}); nothing else was changed\n`);
283
350
  return 0;
284
351
  }
352
+ /**
353
+ * `aidlc autopilot approve <instance>` — approve the phase an item paused after, so
354
+ * the next pass carries it on. Only autopilot's own state changes
355
+ * (autopilot-stop-controls/AC-16, AC-17).
356
+ */
357
+ export function approveCommand(name) {
358
+ const where = needRepo();
359
+ if (where === null)
360
+ return 1;
361
+ const p = where.paths;
362
+ const pass = withLock(p, () => Date.now(), () => {
363
+ const state = loadState(p);
364
+ const r = approveItem(state, name);
365
+ if (r.ok)
366
+ saveState(p, state);
367
+ return r;
368
+ });
369
+ if (pass.locked) {
370
+ process.stderr.write('another autopilot pass holds the lock — try again in a minute\n');
371
+ return 1;
372
+ }
373
+ const r = pass.value;
374
+ if (!r.ok) {
375
+ process.stderr.write(`${r.reason}\n`);
376
+ return 1;
377
+ }
378
+ const lines = [`approved ${r.item.name} after ${r.phase}; the next pass carries it on`];
379
+ if (activeRun(p) === null)
380
+ lines.push('no run is active — the next `aidlc autopilot run` carries it on');
381
+ process.stdout.write(`${lines.join('\n')}\n`);
382
+ return 0;
383
+ }
285
384
  /** The run half of `status`: whether a run is active and what it has left (autopilot-on-demand/AC-9). */
286
385
  export function runStatusLines(run) {
287
386
  if (run === null)
@@ -329,10 +428,12 @@ export function registerAutopilot(program) {
329
428
  .description('Work the backlog in the background: set up, run, watch, pause, stop');
330
429
  group
331
430
  .command('setup')
332
- .description('Choose the agent, how many items build at once, a cost cap and the release step')
431
+ .description('Choose the agent, how many items build at once, a cost cap, where autopilot stops for you, and the release step')
333
432
  .option('--agent <preset>', `Agent preset (${AGENT_PRESETS.map((a) => a.id).join(', ')})`)
334
433
  .option('--parallel <n>', 'Items building at once: 1 or 2')
335
434
  .option('--cost-cap <usd>', 'Stop an item past this many dollars, or "none"')
435
+ .option('--pause-after <phases>', `Pause for review after: ${PAUSE_HELP}`)
436
+ .option('--stop-at <step>', `The last step autopilot takes: ${STOP_AT_HELP}`)
336
437
  .option('--release <preset>', 'After a merge: repo-script or merge-only')
337
438
  .option('--non-interactive', 'No prompts; recommended choices for anything not flagged')
338
439
  .action(async (opts) => {
@@ -344,6 +445,8 @@ export function registerAutopilot(program) {
344
445
  .option('--items <n>', 'Stop after this many items are released or held')
345
446
  .option('--all', 'Keep going until nothing is ready and nothing is in flight')
346
447
  .option('--interval <seconds>', 'Seconds between passes', '60')
448
+ .option('--stop-at <step>', `For the items this run starts, the last step autopilot takes: ${STOP_AT_HELP}`)
449
+ .option('--pause-after <phases>', `For the items this run starts, pause for review after: ${PAUSE_HELP}`)
347
450
  // The detached loop runs as `run --foreground`; nobody types these.
348
451
  .addOption(new Option('--foreground').hideHelp())
349
452
  .addOption(new Option('--log <file>').hideHelp())
@@ -374,6 +477,13 @@ export function registerAutopilot(program) {
374
477
  .action(() => {
375
478
  process.exitCode = statusCommand();
376
479
  });
480
+ group
481
+ .command('approve')
482
+ .description('Approve the phase an item paused after for review, so the run carries it on')
483
+ .argument('<instance>', 'Instance name, as `aidlc autopilot status` shows it')
484
+ .action((instance) => {
485
+ process.exitCode = approveCommand(instance);
486
+ });
377
487
  group
378
488
  .command('forget')
379
489
  .description('Stop tracking an item you finished or abandoned by hand')
@@ -1 +1 @@
1
- {"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autopilot.js","sourceRoot":"","sources":["../../src/commands/autopilot.ts"],"names":[],"mappings":"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"}