@on-par/factory-cli 0.9.28-next.17 → 0.9.28-next.19

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.
@@ -2,14 +2,15 @@
2
2
  import { existsSync } from 'node:fs';
3
3
  import { join } from 'node:path';
4
4
  import { styleText } from 'node:util';
5
- import { createDefaultWorkSourceRegistry, getFactoryPaths, hasUnresolvedPark, InvalidArtifactsDirError, InvalidWorkRequestInputError, InvalidWorkspaceError, LOCAL_BRIEF_SOURCE, readEvents, resolveArtifactsDir, resolveLocalOnlyPolicy, runStack, workKeyFromIssue, } from '@on-par/factory-core';
6
- import { fileSlicePlanStore, logEvent } from '@on-par/factory-core/internal';
5
+ import { createDefaultWorkSourceRegistry, getFactoryPaths, hasUnresolvedPark, InvalidArtifactsDirError, InvalidWorkRequestInputError, InvalidWorkspaceError, loadFactoryConfigForRepo, LOCAL_BRIEF_SOURCE, readEvents, resolveArtifactsDir, resolveLocalOnlyPolicy, runStack, workKeyFromIssue, } from '@on-par/factory-core';
6
+ import { fileSlicePlanStore, logEvent, resolveAwaitingCiCapMs, } from '@on-par/factory-core/internal';
7
7
  import { CliExitError } from './errors.js';
8
8
  import { availableAgentClis, missingAgentCliMessage, notInitializedMessage } from './first-run.js';
9
9
  import { withRepoRunLock } from './repo-run-lock.js';
10
10
  import { recordDraftPrFlag } from './run-flags.js';
11
11
  import { shipIssue } from './ship.js';
12
12
  import { baseBranchConflict, baseBranchOrExit } from './ship-options.js';
13
+ import { driveToMerge, exitForMerge, parseMergeTimeout, shouldDriveAfterShipFailure, validateMergeFlags, } from './run-issue-merge.js';
13
14
  import { consoleStackLog, printStackResult, runSliceStack } from './stack-run.js';
14
15
  /** Deterministic run number for a brief, derived from its content digest.
15
16
  * Reserved 9,000,000+ range keeps brief branches/worktrees clear of real issue numbers. */
@@ -28,6 +29,7 @@ export async function cmdRunBrief(files, opts, rt) {
28
29
  if (files.length > 1 && opts.artifacts !== undefined) {
29
30
  throw new CliExitError('factory: --artifacts takes exactly one brief (each run writes the same manifest files) — run the briefs one at a time', 2);
30
31
  }
32
+ checkMergeFlags(opts);
31
33
  const env = await prepareRunBrief(opts, rt);
32
34
  if (files.length === 1 && opts.stack) {
33
35
  await runStackedBrief(files[0], opts, env, rt);
@@ -37,6 +39,7 @@ export async function cmdRunBrief(files, opts, rt) {
37
39
  await runOneBrief(files[0], opts, env, rt);
38
40
  return;
39
41
  }
42
+ let firstFailureCode;
40
43
  console.log(styleText('cyan', `run-brief: ${files.length} briefs — running them in order`));
41
44
  if (opts.stack) {
42
45
  console.log(styleText('cyan', "run-brief: --stack — each brief bases on the previous brief's PR head"));
@@ -44,11 +47,27 @@ export async function cmdRunBrief(files, opts, rt) {
44
47
  const result = await runStack(files.map((file) => ({
45
48
  title: file,
46
49
  run: async (base) => {
47
- const o = await runOneBrief(file, opts.stack ? { ...opts, baseBranch: base, sizeGate: 'off' } : opts, env, rt);
50
+ const o = await runOneBrief(file, opts.stack ? { ...opts, baseBranch: base, sizeGate: 'off' } : opts, env, rt).catch((err) => {
51
+ if (firstFailureCode === undefined && err instanceof CliExitError)
52
+ firstFailureCode = err.code;
53
+ throw err;
54
+ });
48
55
  return (o && { prNumber: 'prNumber' in o ? o.prNumber : undefined, branch: 'branch' in o ? o.branch : undefined });
49
56
  },
50
57
  })), { base: opts.baseBranch, chain: opts.stack === true, prefix: 'run-brief', noun: 'brief', log: consoleStackLog });
51
- printStackResult(result, 'Run failed for one or more briefs (listed above)');
58
+ try {
59
+ printStackResult(result, 'Run failed for one or more briefs (listed above)');
60
+ }
61
+ catch (err) {
62
+ if (opts.merge && firstFailureCode !== undefined && err instanceof CliExitError) {
63
+ throw new CliExitError(err.message, firstFailureCode);
64
+ }
65
+ throw err;
66
+ }
67
+ }
68
+ /** The `--merge` flag conflicts that hold for every brief (#3905); each exits 2 before any run starts. */
69
+ function checkMergeFlags(opts) {
70
+ validateMergeFlags(opts, 'brief');
52
71
  }
53
72
  /** The run-brief pre-flight shared by every brief in one invocation; any failure here exits 2. */
54
73
  async function prepareRunBrief(opts, rt) {
@@ -154,8 +173,21 @@ async function runOneBrief(briefPath, opts, env, rt, extra) {
154
173
  actor: process.env.FACTORY_ACTOR ?? process.env.USER ?? 'unknown',
155
174
  });
156
175
  }
176
+ const merge = async () => {
177
+ const result = await (rt.driveToMerge ?? driveToMerge)({
178
+ issue: runNum,
179
+ outcome,
180
+ repoRoot,
181
+ ghRepo,
182
+ paths,
183
+ timeoutMs: parseMergeTimeout(opts.mergeTimeout) ?? resolveAwaitingCiCapMs(loadFactoryConfigForRepo(paths.config)),
184
+ ...(opts.admin ? { admin: true } : {}),
185
+ issueless: true,
186
+ });
187
+ exitForMerge(result, `brief ${briefPath}`);
188
+ };
157
189
  try {
158
- await shipIssue(runNum, { ...opts, branchPrefix }, {
190
+ await (rt.shipIssue ?? shipIssue)(runNum, { ...opts, branchPrefix }, {
159
191
  repoRoot,
160
192
  ghRepo,
161
193
  workRequest: work,
@@ -169,8 +201,12 @@ async function runOneBrief(briefPath, opts, env, rt, extra) {
169
201
  });
170
202
  }
171
203
  catch (err) {
204
+ if (opts.merge && shouldDriveAfterShipFailure(outcome))
205
+ await merge();
172
206
  throw new CliExitError(`Run failed for brief ${briefPath}: ${err.message}`, 1);
173
207
  }
208
+ if (opts.merge)
209
+ await merge();
174
210
  }, { scope: { kind: 'issue', key: workKeyFromIssue(runNum) } });
175
211
  return outcome;
176
212
  }
@@ -1 +1 @@
1
- {"version":3,"file":"run-brief.js","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-brief.js","sourceRoot":"","sources":["../../src/cli/run-brief.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import type { getFactoryPaths, RunOutcome } from '@on-par/factory-core';
2
+ import { waitForMerge } from './land.js';
3
+ export declare const MERGE_EXIT: {
4
+ readonly merged: 0;
5
+ readonly failedBeforePr: 1;
6
+ readonly held: 10;
7
+ readonly ciFailed: 11;
8
+ readonly timedOut: 12;
9
+ readonly landFailed: 13;
10
+ };
11
+ export type MergeResultKind = 'merged' | 'held' | 'ci-failed' | 'timed-out' | 'failed-before-pr' | 'land-failed';
12
+ export interface MergeResult {
13
+ kind: MergeResultKind;
14
+ prNumber?: number;
15
+ gate?: string;
16
+ detail: string;
17
+ }
18
+ export interface DriveToMergeInput {
19
+ issue: number;
20
+ outcome: RunOutcome | undefined;
21
+ repoRoot: string;
22
+ ghRepo: string;
23
+ paths: ReturnType<typeof getFactoryPaths>;
24
+ timeoutMs: number;
25
+ admin?: boolean;
26
+ issueless?: boolean;
27
+ }
28
+ export interface DriveToMergeDeps {
29
+ waitMerge?: typeof waitForMerge;
30
+ now?: () => number;
31
+ sleep?: (ms: number) => Promise<void>;
32
+ pollMs?: number;
33
+ }
34
+ /** `30m`, `2h`, `90s` → ms; undefined stays undefined; anything else is a usage error. */
35
+ export declare function parseMergeTimeout(raw: string | undefined): number | undefined;
36
+ /** A run that parked on CI still has a PR worth driving to its CI verdict under --merge. */
37
+ export declare function shouldDriveAfterShipFailure(outcome: RunOutcome | undefined): boolean;
38
+ export interface MergeFlagOptions {
39
+ merge?: boolean | undefined;
40
+ mergeTimeout?: string | undefined;
41
+ admin?: boolean | undefined;
42
+ /** `--no-pr` sets false. */
43
+ pr?: boolean | undefined;
44
+ /** `--stack` (or `--size-gate stack`). */
45
+ stack?: boolean | undefined;
46
+ /** `--workspace` runs stay local, so they never merge (run-brief only). */
47
+ workspace?: unknown;
48
+ }
49
+ /** The `--merge` flag conflicts shared by run-issue and run-brief; each exits 2 before any run starts. Returns the timeout in ms. */
50
+ export declare function validateMergeFlags(opts: MergeFlagOptions, unit: 'issue' | 'brief'): number | undefined;
51
+ export declare function driveToMerge(input: DriveToMergeInput, deps?: DriveToMergeDeps): Promise<MergeResult>;
52
+ /** Print the merge or throw a CliExitError carrying the distinct MERGE_EXIT code. */
53
+ export declare function exitForMerge(result: MergeResult, label: string): void;
54
+ //# sourceMappingURL=run-issue-merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-issue-merge.d.ts","sourceRoot":"","sources":["../../src/cli/run-issue-merge.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAYzC,eAAO,MAAM,UAAU;aACrB,MAAM,EAAE,CAAC;aACT,cAAc,EAAE,CAAC;aACjB,IAAI,EAAE,EAAE;aACR,QAAQ,EAAE,EAAE;aACZ,QAAQ,EAAE,EAAE;aACZ,UAAU,EAAE,EAAE;CACN,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,kBAAkB,GAAG,aAAa,CAAC;AAEjH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,OAAO,YAAY,CAAC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAM7E;AAID,4FAA4F;AAC5F,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEpF;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,4BAA4B;IAC5B,EAAE,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACzB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC5B,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qIAAqI;AACrI,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAatG;AA8CD,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,EAAE,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,WAAW,CAAC,CAyC9G;AAUD,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAWrE"}
@@ -0,0 +1,155 @@
1
+ // packages/cli/src/cli/run-issue-merge.ts — `run-issue --merge`: drive one PR through the run merge gates to a merge (#3905)
2
+ import { styleText } from 'node:util';
3
+ import { CliExitError } from './errors.js';
4
+ import { waitForMerge } from './land.js';
5
+ import { AwaitingCiError, AwaitingReviewError, CiFailedError, CiUnverifiedError, LandConflictError, MergeGatedError, } from './land-pr.js';
6
+ import { landRuntime } from './land-runtime.js';
7
+ import { BaseCiPendingError } from './merge-base-gate.js';
8
+ export const MERGE_EXIT = {
9
+ merged: 0,
10
+ failedBeforePr: 1,
11
+ held: 10,
12
+ ciFailed: 11,
13
+ timedOut: 12,
14
+ landFailed: 13,
15
+ };
16
+ const UNITS = { s: 1000, m: 60_000, h: 3_600_000 };
17
+ /** `30m`, `2h`, `90s` → ms; undefined stays undefined; anything else is a usage error. */
18
+ export function parseMergeTimeout(raw) {
19
+ if (raw === undefined)
20
+ return undefined;
21
+ const m = /^(\d+)(s|m|h)$/.exec(raw);
22
+ const ms = m ? Number(m[1]) * UNITS[m[2]] : 0;
23
+ if (ms > 0)
24
+ return ms;
25
+ throw new CliExitError('factory: --merge-timeout must be a positive duration like 30m or 2h', 2);
26
+ }
27
+ const CI_PARKS = new Set(['ci-failed', 'ci-infra']);
28
+ /** A run that parked on CI still has a PR worth driving to its CI verdict under --merge. */
29
+ export function shouldDriveAfterShipFailure(outcome) {
30
+ return outcome?.state === 'parked' && CI_PARKS.has(outcome.reason);
31
+ }
32
+ /** The `--merge` flag conflicts shared by run-issue and run-brief; each exits 2 before any run starts. Returns the timeout in ms. */
33
+ export function validateMergeFlags(opts, unit) {
34
+ if ((opts.mergeTimeout !== undefined || opts.admin) && !opts.merge) {
35
+ throw new CliExitError('factory: --merge-timeout/--admin need --merge', 2);
36
+ }
37
+ if (!opts.merge)
38
+ return undefined;
39
+ if (opts.pr === false)
40
+ throw new CliExitError('factory: --merge needs a PR — drop --no-pr', 2);
41
+ if (opts.workspace !== undefined) {
42
+ throw new CliExitError('factory: --merge needs a PR — local-only (--workspace) runs never merge', 2);
43
+ }
44
+ if (opts.stack) {
45
+ throw new CliExitError(`factory: --merge lands one PR${unit === 'brief' ? ' per brief' : ''} — drop --stack`, 2);
46
+ }
47
+ return parseMergeTimeout(opts.mergeTimeout);
48
+ }
49
+ function preMergeResult(outcome) {
50
+ const early = (result) => ({ early: result });
51
+ if (!outcome)
52
+ return early({ kind: 'failed-before-pr', detail: 'the run produced no outcome' });
53
+ if (outcome.state === 'parked') {
54
+ if (CI_PARKS.has(outcome.reason)) {
55
+ return early({
56
+ kind: 'ci-failed',
57
+ ...(outcome.prNumber ? { prNumber: outcome.prNumber } : {}),
58
+ detail: `parked: ${outcome.reason}`,
59
+ });
60
+ }
61
+ return early({
62
+ kind: 'failed-before-pr',
63
+ ...(outcome.prNumber ? { prNumber: outcome.prNumber } : {}),
64
+ detail: `parked: ${outcome.reason}`,
65
+ });
66
+ }
67
+ if (outcome.state === 'released' || outcome.state === 'escalated') {
68
+ return early({ kind: 'failed-before-pr', detail: `run ${outcome.state}: ${outcome.reason}` });
69
+ }
70
+ const prNumber = outcome.prNumber;
71
+ const pr = prNumber === undefined ? {} : { prNumber };
72
+ if (outcome.state === 'ready' && outcome.draft) {
73
+ return early({ kind: 'held', gate: 'draft', ...pr, detail: 'the PR was left as a draft' });
74
+ }
75
+ if (outcome.state === 'ready' && outcome.slice && outcome.slice.index < outcome.slice.count) {
76
+ return early({
77
+ kind: 'held',
78
+ gate: 'stack-slice',
79
+ ...pr,
80
+ detail: `slice ${outcome.slice.index} of ${outcome.slice.count}; later slices still to land`,
81
+ });
82
+ }
83
+ if (!outcome.branch)
84
+ return early({ kind: 'failed-before-pr', detail: 'the run produced no branch' });
85
+ return { mergeable: outcome };
86
+ }
87
+ function isTimeout(err, signal) {
88
+ const name = err?.name;
89
+ return signal.aborted || name === 'TimeoutError' || name === 'AbortError';
90
+ }
91
+ export async function driveToMerge(input, deps = {}) {
92
+ const pre = preMergeResult(input.outcome);
93
+ if ('early' in pre)
94
+ return pre.early;
95
+ const outcome = pre.mergeable;
96
+ const branch = outcome.branch;
97
+ const prNumber = outcome.prNumber;
98
+ const pr = prNumber === undefined ? {} : { prNumber };
99
+ const { waitMerge = waitForMerge, now = () => Date.now(), sleep, pollMs = 60_000 } = deps;
100
+ const doSleep = sleep ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
101
+ const deadline = now() + input.timeoutMs;
102
+ for (;;) {
103
+ const signal = AbortSignal.timeout(Math.max(1, deadline - now()));
104
+ try {
105
+ await waitMerge(input.issue, branch, input.repoRoot, input.ghRepo, input.paths, {
106
+ landBranch: branch,
107
+ holdWhenGated: true,
108
+ mergeOverrides: { auto: true, ...(input.admin ? { admin: true } : {}) },
109
+ ...(input.issueless ? { issueless: true } : {}),
110
+ signal,
111
+ });
112
+ return { kind: 'merged', ...pr, detail: 'merged' };
113
+ }
114
+ catch (err) {
115
+ const detail = landRuntime().errorDetail(err);
116
+ if (err instanceof MergeGatedError) {
117
+ return { kind: 'held', gate: err.label, prNumber: err.prNumber || prNumber, detail };
118
+ }
119
+ if (err instanceof AwaitingReviewError)
120
+ return { kind: 'held', gate: err.gate, prNumber: err.prNumber, detail };
121
+ if (err instanceof LandConflictError)
122
+ return { kind: 'land-failed', ...pr, detail };
123
+ if (err instanceof CiUnverifiedError || err instanceof AwaitingCiError || err instanceof BaseCiPendingError) {
124
+ if (now() < deadline) {
125
+ await doSleep(pollMs);
126
+ continue;
127
+ }
128
+ return { kind: 'timed-out', ...pr, detail };
129
+ }
130
+ if (err instanceof CiFailedError)
131
+ return { kind: 'ci-failed', ...pr, detail };
132
+ if (isTimeout(err, signal))
133
+ return { kind: 'timed-out', ...pr, detail };
134
+ return { kind: 'land-failed', ...pr, detail };
135
+ }
136
+ }
137
+ }
138
+ const EXIT_BY_KIND = {
139
+ 'failed-before-pr': MERGE_EXIT.failedBeforePr,
140
+ held: MERGE_EXIT.held,
141
+ 'ci-failed': MERGE_EXIT.ciFailed,
142
+ 'timed-out': MERGE_EXIT.timedOut,
143
+ 'land-failed': MERGE_EXIT.landFailed,
144
+ };
145
+ /** Print the merge or throw a CliExitError carrying the distinct MERGE_EXIT code. */
146
+ export function exitForMerge(result, label) {
147
+ if (result.kind === 'merged') {
148
+ console.log(styleText('green', `✅ merged PR #${result.prNumber ?? '?'} for ${label}`));
149
+ return;
150
+ }
151
+ const gate = result.gate ? ` held by ${result.gate}` : '';
152
+ const pr = result.prNumber ? ` (PR #${result.prNumber})` : '';
153
+ throw new CliExitError(`factory: ${label} not merged (${result.kind})${gate}${pr}: ${result.detail}`, EXIT_BY_KIND[result.kind]);
154
+ }
155
+ //# sourceMappingURL=run-issue-merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-issue-merge.js","sourceRoot":"","sources":["../../src/cli/run-issue-merge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@on-par/factory-cli",
3
- "version": "0.9.28-next.17",
3
+ "version": "0.9.28-next.19",
4
4
  "description": "On PAR Dev's Software Factory CLI: takes a GitHub issue through plan, build and check with AI agents, then opens a ready-for-review PR.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -48,9 +48,9 @@
48
48
  "@octokit/plugin-retry": "^8.1.1",
49
49
  "@octokit/plugin-throttling": "^11.0.5",
50
50
  "@octokit/rest": "^22.0.0",
51
- "@on-par/factory-config": "0.9.28-next.17",
52
- "@on-par/factory-core": "0.9.28-next.17",
53
- "@on-par/factory-tui": "0.9.28-next.17",
51
+ "@on-par/factory-config": "0.9.28-next.19",
52
+ "@on-par/factory-core": "0.9.28-next.19",
53
+ "@on-par/factory-tui": "0.9.28-next.19",
54
54
  "commander": "^15.0.0",
55
55
  "zod": "^4.6.5"
56
56
  },