@on-par/factory-cli 0.9.14-next.5 → 0.9.14-next.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/__fixtures__/open-pr.d.ts +24 -0
- package/dist/cli/__fixtures__/open-pr.d.ts.map +1 -0
- package/dist/cli/__fixtures__/open-pr.js +15 -0
- package/dist/cli/__fixtures__/open-pr.js.map +1 -0
- package/dist/cli/cost-json.d.ts +9 -2
- package/dist/cli/cost-json.d.ts.map +1 -1
- package/dist/cli/cost-json.js +29 -2
- package/dist/cli/cost-json.js.map +1 -1
- package/dist/cli/daemon-load.d.ts +14 -0
- package/dist/cli/daemon-load.d.ts.map +1 -0
- package/dist/cli/daemon-load.js +75 -0
- package/dist/cli/daemon-load.js.map +1 -0
- package/dist/cli/daemon.d.ts +5 -1
- package/dist/cli/daemon.d.ts.map +1 -1
- package/dist/cli/daemon.js +15 -4
- package/dist/cli/daemon.js.map +1 -1
- package/dist/cli/doctor-config.d.ts.map +1 -1
- package/dist/cli/doctor-config.js +15 -1
- package/dist/cli/doctor-config.js.map +1 -1
- package/dist/cli/doctor-health.d.ts +1 -0
- package/dist/cli/doctor-health.d.ts.map +1 -1
- package/dist/cli/doctor-health.js +5 -3
- package/dist/cli/doctor-health.js.map +1 -1
- package/dist/cli/doctor-verify.d.ts +32 -0
- package/dist/cli/doctor-verify.d.ts.map +1 -0
- package/dist/cli/doctor-verify.js +126 -0
- package/dist/cli/doctor-verify.js.map +1 -0
- package/dist/cli/doctor.d.ts +1 -0
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +12 -10
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/index.d.ts +12 -2
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +31 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/json-contract.d.ts +24 -0
- package/dist/cli/json-contract.d.ts.map +1 -1
- package/dist/cli/json-contract.js +24 -1
- package/dist/cli/json-contract.js.map +1 -1
- package/dist/cli/land-pr.d.ts.map +1 -1
- package/dist/cli/land-pr.js +22 -18
- package/dist/cli/land-pr.js.map +1 -1
- package/dist/cli/land.d.ts +1 -1
- package/dist/cli/land.d.ts.map +1 -1
- package/dist/cli/land.js +27 -36
- package/dist/cli/land.js.map +1 -1
- package/dist/cli/lane-heartbeat.d.ts +7 -0
- package/dist/cli/lane-heartbeat.d.ts.map +1 -0
- package/dist/cli/lane-heartbeat.js +33 -0
- package/dist/cli/lane-heartbeat.js.map +1 -0
- package/dist/cli/lane-park-comment.d.ts +19 -0
- package/dist/cli/lane-park-comment.d.ts.map +1 -0
- package/dist/cli/lane-park-comment.js +27 -0
- package/dist/cli/lane-park-comment.js.map +1 -0
- package/dist/cli/lane-pause.d.ts +19 -0
- package/dist/cli/lane-pause.d.ts.map +1 -0
- package/dist/cli/lane-pause.js +56 -0
- package/dist/cli/lane-pause.js.map +1 -0
- package/dist/cli/notify.d.ts +37 -0
- package/dist/cli/notify.d.ts.map +1 -0
- package/dist/cli/notify.js +95 -0
- package/dist/cli/notify.js.map +1 -0
- package/dist/cli/program-advanced.d.ts.map +1 -1
- package/dist/cli/program-advanced.js +13 -1
- package/dist/cli/program-advanced.js.map +1 -1
- package/dist/cli/program-run-work.d.ts.map +1 -1
- package/dist/cli/program-run-work.js +2 -0
- package/dist/cli/program-run-work.js.map +1 -1
- package/dist/cli/program-setup.d.ts.map +1 -1
- package/dist/cli/program-setup.js +2 -1
- package/dist/cli/program-setup.js.map +1 -1
- package/dist/cli/queue-merged-closing-pr.d.ts +5 -0
- package/dist/cli/queue-merged-closing-pr.d.ts.map +1 -0
- package/dist/cli/queue-merged-closing-pr.js +70 -0
- package/dist/cli/queue-merged-closing-pr.js.map +1 -0
- package/dist/cli/queue-preflight.d.ts +7 -0
- package/dist/cli/queue-preflight.d.ts.map +1 -1
- package/dist/cli/queue-preflight.js +54 -11
- package/dist/cli/queue-preflight.js.map +1 -1
- package/dist/cli/reset.d.ts.map +1 -1
- package/dist/cli/reset.js +3 -0
- package/dist/cli/reset.js.map +1 -1
- package/dist/cli/run-lane-decompose.d.ts +12 -0
- package/dist/cli/run-lane-decompose.d.ts.map +1 -0
- package/dist/cli/run-lane-decompose.js +27 -0
- package/dist/cli/run-lane-decompose.js.map +1 -0
- package/dist/cli/run-lane.d.ts +17 -3
- package/dist/cli/run-lane.d.ts.map +1 -1
- package/dist/cli/run-lane.js +46 -89
- package/dist/cli/run-lane.js.map +1 -1
- package/dist/cli/run.d.ts +1 -0
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +30 -1
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/runs.d.ts +1 -1
- package/dist/cli/runs.d.ts.map +1 -1
- package/dist/cli/runs.js +8 -10
- package/dist/cli/runs.js.map +1 -1
- package/dist/cli/ship-steps.d.ts +1 -0
- package/dist/cli/ship-steps.d.ts.map +1 -1
- package/dist/cli/ship-steps.js +5 -1
- package/dist/cli/ship-steps.js.map +1 -1
- package/dist/cli/ship.d.ts +2 -0
- package/dist/cli/ship.d.ts.map +1 -1
- package/dist/cli/ship.js +1 -0
- package/dist/cli/ship.js.map +1 -1
- package/dist/cli/status.d.ts.map +1 -1
- package/dist/cli/status.js +61 -30
- package/dist/cli/status.js.map +1 -1
- package/dist/cli/steer.d.ts +1 -0
- package/dist/cli/steer.d.ts.map +1 -1
- package/dist/cli/steer.js +55 -28
- package/dist/cli/steer.js.map +1 -1
- package/dist/cli/steerability-report.d.ts +1 -1
- package/dist/cli/steerability-report.d.ts.map +1 -1
- package/dist/cli/steerability-report.js +4 -7
- package/dist/cli/steerability-report.js.map +1 -1
- package/dist/cli/supervise.d.ts +1 -0
- package/dist/cli/supervise.d.ts.map +1 -1
- package/dist/cli/supervise.js +10 -3
- package/dist/cli/supervise.js.map +1 -1
- package/dist/cli/worktree-keep.d.ts +18 -0
- package/dist/cli/worktree-keep.d.ts.map +1 -0
- package/dist/cli/worktree-keep.js +47 -0
- package/dist/cli/worktree-keep.js.map +1 -0
- package/dist/cli/worktree-reap.d.ts +1 -1
- package/dist/cli/worktree-reap.d.ts.map +1 -1
- package/dist/cli/worktree-reap.js +10 -12
- package/dist/cli/worktree-reap.js.map +1 -1
- package/package.json +4 -4
- package/schemas/cost.schema.json +39 -1
- package/schemas/daemon-status.schema.json +44 -1
- package/schemas/logs-line.schema.json +10 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// packages/cli/src/cli/lane-park-comment.ts — upsert the issue park comment for a park raised outside runIssue (#3534)
|
|
2
|
+
import { publishParkComment } from '@on-par/factory-core/internal';
|
|
3
|
+
const failure = (issue, detail) => `could not post the issue park comment for #${issue}: ${detail}`;
|
|
4
|
+
/** Upserts the single `factory-issue-state` comment. Fail-closed: returns the warning text
|
|
5
|
+
* (an `{ ok: false }` result or a throwing getter) instead of throwing; undefined on success. */
|
|
6
|
+
export async function tryPublishParkComment(getOctokit, repo, worktree, readHead, input) {
|
|
7
|
+
try {
|
|
8
|
+
const posted = await publishParkComment({ octokit: getOctokit(), repo, worktree, readHead, input });
|
|
9
|
+
return posted.ok ? undefined : failure(input.issue, posted.error);
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
return failure(input.issue, err instanceof Error ? err.message : String(err));
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/** Binds runLane's lane context into a fail-closed park-comment poster. Absent octokit = no-op;
|
|
16
|
+
* a failed post goes to `warn` and never changes lane flow. */
|
|
17
|
+
export const laneParkCommenter = (opts, warn) => async (issue, reason, message, branch) => {
|
|
18
|
+
const { getOctokit, ghRepo, repoRoot, runId, lane, readParkSha } = opts;
|
|
19
|
+
if (!getOctokit)
|
|
20
|
+
return;
|
|
21
|
+
const readHead = () => (branch ? readParkSha(branch) : Promise.reject(new Error('no branch')));
|
|
22
|
+
const input = { issue, reason, message, runId, branch: branch || '-', lane, blockers: [] };
|
|
23
|
+
const failed = await tryPublishParkComment(getOctokit, ghRepo, repoRoot, readHead, input);
|
|
24
|
+
if (failed)
|
|
25
|
+
warn(issue, failed);
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=lane-park-comment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-park-comment.js","sourceRoot":"","sources":["../../src/cli/lane-park-comment.ts"],"names":[],"mappings":"AAAA,uHAAuH;AAGvH,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,MAAc,EAAU,EAAE,CACxD,8CAA8C,KAAK,KAAK,MAAM,EAAE,CAAC;AAEnE;kGACkG;AAClG,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,UAAyB,EACzB,IAAY,EACZ,QAAgB,EAChB,QAA+B,EAC/B,KAAwD;IAExD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QACpG,OAAO,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAChF,CAAC;AACH,CAAC;AAWD;gEACgE;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAC5B,CAAC,IAA4B,EAAE,IAA8C,EAAE,EAAE,CACjF,KAAK,EAAE,KAAa,EAAE,MAAkB,EAAE,OAAe,EAAE,MAAe,EAAiB,EAAE;IAC3F,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACxE,IAAI,CAAC,UAAU;QAAE,OAAO;IACxB,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAC/F,MAAM,KAAK,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAC3F,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC1F,IAAI,MAAM;QAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { getFactoryPaths, LanePausedPayload } from '@on-par/factory-core';
|
|
2
|
+
import type { logEvent } from '@on-par/factory-core/internal';
|
|
3
|
+
import type { LaneEnvironmentPauseError } from './lane-environment-pause-error.js';
|
|
4
|
+
type LanePauseContext = {
|
|
5
|
+
lane: string;
|
|
6
|
+
paths: ReturnType<typeof getFactoryPaths>;
|
|
7
|
+
emitEvent: typeof logEvent;
|
|
8
|
+
};
|
|
9
|
+
export declare function renderLanePausedComment(payload: LanePausedPayload): string;
|
|
10
|
+
/** Persists the base hold and emits the environment lane-paused event for a broken base (#1928). */
|
|
11
|
+
export declare function pauseLaneForBrokenBase(ctx: LanePauseContext, issue: number, err: LaneEnvironmentPauseError, ghRepo: string, now: () => Date): void;
|
|
12
|
+
/** Emits the lane-breaker lane-paused event and posts the lane-paused comment (#1918, #1919). */
|
|
13
|
+
export declare function tripLaneBreaker(ctx: LanePauseContext, streak: {
|
|
14
|
+
signature: string;
|
|
15
|
+
firstIssue: number;
|
|
16
|
+
failingChecks: string[];
|
|
17
|
+
}, issue: number, checks: string[], commentIssue: (issue: number, body: string) => Promise<void>): Promise<void>;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=lane-pause.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-pause.d.ts","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAEnF,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IAC1C,SAAS,EAAE,OAAO,QAAQ,CAAC;CAC5B,CAAC;AAEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,iBAAiB,GAAG,MAAM,CAU1E;AAED,oGAAoG;AACpG,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,gBAAgB,EACrB,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,yBAAyB,EAC9B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,IAAI,GACd,IAAI,CA8BN;AAED,iGAAiG;AACjG,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,EAAE,CAAA;CAAE,EAC1E,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EAAE,EAChB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3D,OAAO,CAAC,IAAI,CAAC,CAmBf"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// packages/cli/src/cli/lane-pause.ts — the lane-paused event, base hold, and comment, moved out of run-lane.ts
|
|
2
|
+
import { BASE_HOLD_CI_RECHECK_MS, writeBaseHold } from './base-hold.js';
|
|
3
|
+
export function renderLanePausedComment(payload) {
|
|
4
|
+
const checks = payload.failingChecks.length
|
|
5
|
+
? payload.failingChecks.map((c) => `\`${c}\``).join(', ')
|
|
6
|
+
: 'none recorded';
|
|
7
|
+
return [
|
|
8
|
+
`Lane '${payload.lane}' is paused: this issue and #${payload.firstIssue} parked with the same failure signature, so the factory stopped claiming issues on this lane.`,
|
|
9
|
+
`Shared failing checks: ${checks}`,
|
|
10
|
+
`To resume: fix the shared failure (often on the base branch), then re-run \`factory run\` to resume lane '${payload.lane}'.`,
|
|
11
|
+
`Failure signature: \`${payload.signature}\``,
|
|
12
|
+
].join('\n\n');
|
|
13
|
+
}
|
|
14
|
+
/** Persists the base hold and emits the environment lane-paused event for a broken base (#1928). */
|
|
15
|
+
export function pauseLaneForBrokenBase(ctx, issue, err, ghRepo, now) {
|
|
16
|
+
const { lane, paths, emitEvent } = ctx;
|
|
17
|
+
// Persist the hold so a restarted supervisor remembers the broken base (#2348);
|
|
18
|
+
// best-effort, never allowed to change lane flow.
|
|
19
|
+
try {
|
|
20
|
+
writeBaseHold(paths.baseHold, {
|
|
21
|
+
repo: ghRepo,
|
|
22
|
+
baseSha: err.baseSha,
|
|
23
|
+
failingChecks: err.failingChecks,
|
|
24
|
+
since: new Date().toISOString(),
|
|
25
|
+
...(err.awaitingCi ? { ciRecheckAfter: new Date(now().getTime() + BASE_HOLD_CI_RECHECK_MS).toISOString() } : {}),
|
|
26
|
+
...(err.confirmedLocally ? { confirmedLocally: true } : {}),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
catch { }
|
|
30
|
+
const payload = {
|
|
31
|
+
lane,
|
|
32
|
+
signature: err.failureSignature ?? '',
|
|
33
|
+
failingChecks: err.failingChecks,
|
|
34
|
+
firstIssue: issue,
|
|
35
|
+
secondIssue: issue,
|
|
36
|
+
cause: 'environment',
|
|
37
|
+
baseSha: err.baseSha,
|
|
38
|
+
};
|
|
39
|
+
emitEvent(paths.events, 'lane-paused', lane, `lane '${lane}' paused: #${issue} failed only on checkers that also fail on base ${err.baseSha.slice(0, 8)} (${err.failingChecks.join(', ')}); #${issue} released to queued`, { lane, lanePaused: payload });
|
|
40
|
+
}
|
|
41
|
+
/** Emits the lane-breaker lane-paused event and posts the lane-paused comment (#1918, #1919). */
|
|
42
|
+
export async function tripLaneBreaker(ctx, streak, issue, checks, commentIssue) {
|
|
43
|
+
const { lane, paths, emitEvent } = ctx;
|
|
44
|
+
const { signature: tripSignature, firstIssue, failingChecks: firstChecks } = streak;
|
|
45
|
+
const payload = {
|
|
46
|
+
lane,
|
|
47
|
+
signature: tripSignature,
|
|
48
|
+
failingChecks: checks.filter((c) => firstChecks.includes(c)),
|
|
49
|
+
firstIssue,
|
|
50
|
+
secondIssue: issue,
|
|
51
|
+
};
|
|
52
|
+
emitEvent(paths.events, 'lane-paused', lane, `lane '${lane}' paused: #${payload.firstIssue} and #${payload.secondIssue} parked with the same failure signature (${payload.failingChecks.join(', ') || 'no failing checks'})`, { lane, lanePaused: payload });
|
|
53
|
+
// Tell the developer on GitHub why the lane stopped (#1919); fail-closed, never changes lane flow.
|
|
54
|
+
await commentIssue(payload.secondIssue, renderLanePausedComment(payload)).catch(() => { });
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=lane-pause.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lane-pause.js","sourceRoot":"","sources":["../../src/cli/lane-pause.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import type { ParkPayload } from '@on-par/factory-core';
|
|
3
|
+
import type { logEvent } from '@on-par/factory-core/internal';
|
|
4
|
+
export declare const NOTIFY_ENV = "FACTORY_NOTIFY_CMD";
|
|
5
|
+
export declare const DRAIN_MESSAGE = "queue drained: all lanes finished, nothing left";
|
|
6
|
+
export type NotifySummary = {
|
|
7
|
+
kind: 'park';
|
|
8
|
+
ts: string;
|
|
9
|
+
issue: number | string;
|
|
10
|
+
lane: string;
|
|
11
|
+
message: string;
|
|
12
|
+
park: ParkPayload;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'drain';
|
|
15
|
+
ts: string;
|
|
16
|
+
message: string;
|
|
17
|
+
parked: number;
|
|
18
|
+
};
|
|
19
|
+
export interface Notifier {
|
|
20
|
+
/** Fire-and-forget: spawns the command with `summary` on stdin. Never throws. */
|
|
21
|
+
notify(summary: NotifySummary): void;
|
|
22
|
+
/** Resolves once every spawned notify process has exited or been killed. Never rejects. */
|
|
23
|
+
settle(): Promise<void>;
|
|
24
|
+
/** Park summaries sent so far (for the drain summary). */
|
|
25
|
+
readonly parked: number;
|
|
26
|
+
}
|
|
27
|
+
export interface NotifierDeps {
|
|
28
|
+
spawn?: typeof spawn;
|
|
29
|
+
onError?: (message: string) => void;
|
|
30
|
+
timeoutMs?: number;
|
|
31
|
+
now?: () => Date;
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveNotifyCommand(flag: string | undefined, env: NodeJS.ProcessEnv): string | undefined;
|
|
34
|
+
export declare function createNotifier(cmd: string | undefined, deps?: NotifierDeps): Notifier | undefined;
|
|
35
|
+
/** Wraps an event emitter so each lane `parked` event with a park payload also fires a park summary. */
|
|
36
|
+
export declare function withParkNotify(emit: typeof logEvent, notifier: Notifier): typeof logEvent;
|
|
37
|
+
//# sourceMappingURL=notify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../src/cli/notify.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAE9D,eAAO,MAAM,UAAU,uBAAuB,CAAC;AAC/C,eAAO,MAAM,aAAa,oDAAoD,CAAC;AAG/E,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACtG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,MAAM,WAAW,QAAQ;IACvB,iFAAiF;IACjF,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAAC;IACrC,2FAA2F;IAC3F,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACxB,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,GAAG,SAAS,CAKzG;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,GAAE,YAAiB,GAAG,QAAQ,GAAG,SAAS,CAuDrG;AAED,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,QAAQ,CAoBzF"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
// packages/cli/src/cli/notify.ts — opt-in --notify command fired on park and drain (#3512)
|
|
2
|
+
import { spawn } from 'node:child_process';
|
|
3
|
+
export const NOTIFY_ENV = 'FACTORY_NOTIFY_CMD';
|
|
4
|
+
export const DRAIN_MESSAGE = 'queue drained: all lanes finished, nothing left';
|
|
5
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
6
|
+
export function resolveNotifyCommand(flag, env) {
|
|
7
|
+
const fromFlag = flag?.trim();
|
|
8
|
+
if (fromFlag)
|
|
9
|
+
return fromFlag;
|
|
10
|
+
const fromEnv = env[NOTIFY_ENV]?.trim();
|
|
11
|
+
return fromEnv || undefined;
|
|
12
|
+
}
|
|
13
|
+
export function createNotifier(cmd, deps = {}) {
|
|
14
|
+
if (cmd === undefined || cmd.trim() === '')
|
|
15
|
+
return undefined;
|
|
16
|
+
const spawnFn = deps.spawn ?? spawn;
|
|
17
|
+
const timeoutMs = deps.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
18
|
+
const inFlight = new Set();
|
|
19
|
+
let parked = 0;
|
|
20
|
+
const run = (summary) => new Promise((resolve) => {
|
|
21
|
+
let reported = false;
|
|
22
|
+
const report = (cause) => {
|
|
23
|
+
if (reported)
|
|
24
|
+
return;
|
|
25
|
+
reported = true;
|
|
26
|
+
try {
|
|
27
|
+
deps.onError?.(`notify command '${cmd}' failed: ${cause}`);
|
|
28
|
+
}
|
|
29
|
+
catch {
|
|
30
|
+
// reporting must never affect the run
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
try {
|
|
34
|
+
const child = spawnFn(cmd, { shell: true, stdio: ['pipe', 'ignore', 'ignore'] });
|
|
35
|
+
const timer = setTimeout(() => {
|
|
36
|
+
report(`timed out after ${timeoutMs}ms`);
|
|
37
|
+
child.kill('SIGKILL');
|
|
38
|
+
}, timeoutMs);
|
|
39
|
+
timer.unref();
|
|
40
|
+
child.on('error', (err) => {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
report(err.message);
|
|
43
|
+
resolve();
|
|
44
|
+
});
|
|
45
|
+
child.on('close', (code, signal) => {
|
|
46
|
+
clearTimeout(timer);
|
|
47
|
+
if (code !== 0)
|
|
48
|
+
report(code === null ? `killed by ${signal}` : `exit ${code}`);
|
|
49
|
+
resolve();
|
|
50
|
+
});
|
|
51
|
+
child.stdin?.on('error', (err) => report(`stdin: ${err.message}`));
|
|
52
|
+
child.stdin?.end(`${JSON.stringify(summary)}\n`);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
report(err instanceof Error ? err.message : String(err));
|
|
56
|
+
resolve();
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
return {
|
|
60
|
+
notify(summary) {
|
|
61
|
+
if (summary.kind === 'park')
|
|
62
|
+
parked += 1;
|
|
63
|
+
const p = run(summary).finally(() => inFlight.delete(p));
|
|
64
|
+
inFlight.add(p);
|
|
65
|
+
},
|
|
66
|
+
settle: () => Promise.allSettled(inFlight).then(() => { }),
|
|
67
|
+
get parked() {
|
|
68
|
+
return parked;
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
/** Wraps an event emitter so each lane `parked` event with a park payload also fires a park summary. */
|
|
73
|
+
export function withParkNotify(emit, notifier) {
|
|
74
|
+
return (...args) => {
|
|
75
|
+
const result = emit(...args);
|
|
76
|
+
const [, type, issue, msg, extra] = args;
|
|
77
|
+
if (type === 'parked' && extra?.park) {
|
|
78
|
+
try {
|
|
79
|
+
notifier.notify({
|
|
80
|
+
kind: 'park',
|
|
81
|
+
ts: new Date().toISOString(),
|
|
82
|
+
issue,
|
|
83
|
+
lane: extra.lane ?? extra.park.lane,
|
|
84
|
+
message: msg,
|
|
85
|
+
park: extra.park,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
// notify must never break the event log
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=notify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notify.js","sourceRoot":"","sources":["../../src/cli/notify.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-advanced.d.ts","sourceRoot":"","sources":["../../src/cli/program-advanced.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"program-advanced.d.ts","sourceRoot":"","sources":["../../src/cli/program-advanced.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKzC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG3D,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CA+NzG"}
|
|
@@ -121,7 +121,9 @@ export function registerAdvancedCommands(program, handlers, deps) {
|
|
|
121
121
|
throw new handlers.CliExitError('factory self-update: pass --check or --to <version>', 2);
|
|
122
122
|
process.exitCode = await daemonCtl(() => handlers.cmdSelfUpdateCheck(opts, deps.selfUpdate));
|
|
123
123
|
});
|
|
124
|
-
const worktreeCmd = program
|
|
124
|
+
const worktreeCmd = program
|
|
125
|
+
.command('worktree')
|
|
126
|
+
.description('Clean up stale factory worktrees (gc) and keep/release one for manual work');
|
|
125
127
|
worktreeCmd
|
|
126
128
|
.command('gc')
|
|
127
129
|
.description('Remove stale factory worktrees (merged/closed branches or older than TTL) and scrub credentials')
|
|
@@ -129,6 +131,16 @@ export function registerAdvancedCommands(program, handlers, deps) {
|
|
|
129
131
|
.option('--ttl-days <n>', 'Override worktree.gcTtlDays from .factory/config.yaml (default 7)')
|
|
130
132
|
.option('--branch-prefix <prefix>', BRANCH_PREFIX_MATCH_OPTION_DESCRIPTION)
|
|
131
133
|
.action(handlers.cmdWorktreeGc);
|
|
134
|
+
worktreeCmd
|
|
135
|
+
.command('keep <issue>')
|
|
136
|
+
.description("Protect an issue's lane worktree from worktree GC while you finish it by hand (until the issue closes or you release it)")
|
|
137
|
+
.option('--reason <text>', 'Why it is kept, shown by worktree gc (default: manual)')
|
|
138
|
+
.option('--branch-prefix <prefix>', BRANCH_PREFIX_MATCH_OPTION_DESCRIPTION)
|
|
139
|
+
.action(handlers.cmdWorktreeKeep);
|
|
140
|
+
worktreeCmd
|
|
141
|
+
.command('release <issue>')
|
|
142
|
+
.description("Drop an issue's keep record so the next worktree GC treats its worktree normally")
|
|
143
|
+
.action(handlers.cmdWorktreeRelease);
|
|
132
144
|
program
|
|
133
145
|
.command('reset <issue...>')
|
|
134
146
|
.description("Remove an issue's local factory state (worktree, local branch, plan/phase files, rework history, logs, leases) so the next run starts fresh. A worktree or branch with uncommitted changes or unpushed commits is kept unless --force is passed. Do not run while that issue's lane is active. Preview with --dry-run")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-advanced.js","sourceRoot":"","sources":["../../src/cli/program-advanced.ts"],"names":[],"mappings":"AAAA,+GAA+G;AAG/G,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,sCAAsC,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE5D,MAAM,UAAU,wBAAwB,CAAC,OAAgB,EAAE,QAAyB,EAAE,IAAa;IACjG,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oEAAoE,CAAC,CAAC;IACrF,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,oFAAoF,CAAC;SACjG,MAAM,CAAC,eAAe,EAAE,qCAAqC,EAAE,yBAAyB,CAAC;SACzF,MAAM,CAAC,iBAAiB,EAAE,mCAAmC,EAAE,gBAAgB,CAAC;SAChF,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;QACxD,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IACL,MAAM;SACH,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4FAA4F,CAAC;SACzG,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,uBAAuB,CAAC;SACxE,MAAM,CAAC,kBAAkB,EAAE,wCAAwC,CAAC;SACpE,MAAM,CAAC,sBAAsB,EAAE,iCAAiC,EAAE,UAAU,CAAC;SAC7E,MAAM,CAAC,gBAAgB,EAAE,iDAAiD,EAAE,OAAO,CAAC;SACpF,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,EAAE,MAAM,CAAC;SAC5E,MAAM,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,CAAC;SACxD,MAAM,CAAC,2BAA2B,EAAE,oCAAoC,EAAE,OAAO,CAAC;SAClF,MAAM,CACL,KAAK,EAAE,IAQN,EAAE,EAAE;QACH,MAAM,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC,CACF,CAAC;IACJ,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iFAAiF,CAAC;SAC9F,MAAM,CAAC,aAAa,EAAE,wBAAwB,EAAE,uBAAuB,CAAC;SACxE,MAAM,CAAC,eAAe,EAAE,iCAAiC,EAAE,yBAAyB,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,qBAAqB,CAAC;SAC9C,MAAM,CAAC,sBAAsB,EAAE,uCAAuC,EAAE,UAAU,CAAC;SACnF,MAAM,CAAC,yBAAyB,EAAE,oBAAoB,EAAE,WAAW,CAAC;SACpE,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,EAAE,QAAQ,CAAC;SAC/E,MAAM,CAAC,sBAAsB,EAAE,oCAAoC,EAAE,MAAM,CAAC;SAC5E,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CACL,KAAK,EAAE,IASN,EAAE,EAAE;QACH,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CACF,CAAC;IAEJ,OAAO;SACJ,OAAO,CAAC,6BAA6B,CAAC;SACtC,WAAW,CAAC,6FAA6F,CAAC;SAC1G,MAAM,CAAC,eAAe,EAAE,2DAA2D,CAAC;SACpF,MAAM,CAAC,iBAAiB,EAAE,gEAAgE,CAAC;SAC3F,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/B,MAAM,QAAQ,CAAC,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CACV,4GAA4G,CAC7G;SACA,MAAM,CAAC,gBAAgB,EAAE,sEAAsE,CAAC;SAChG,MAAM,CAAC,gBAAgB,EAAE,0EAA0E,CAAC;SACpG,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,QAAQ,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,6FAA6F,CAAC;SAC1G,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,SAAS,GAAG,OAAO;SACtB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oEAAoE,CAAC,CAAC;IACrF,SAAS;SACN,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,kFAAkF,CAAC;SAC/F,MAAM,CAAC,YAAY,EAAE,sCAAsC,qBAAqB,GAAG,CAAC;SACpF,MAAM,CAAC,mBAAmB,EAAE,2DAA2D,CAAC;SACxF,MAAM,CACL,sBAAsB,EACtB,+HAA+H,CAChI;SACA,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,CAAC,IAAqF,EAAE,EAAE,CAChG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAC3B,CAAC;IACJ,MAAM,SAAS,GAAG,CAAI,EAAoB,EAAE,EAAE,CAC5C,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;QAC1B,IAAI,GAAG,YAAY,cAAc;YAAE,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1F,MAAM,GAAG,CAAC;IACZ,CAAC,CAAC,CAAC;IACL,SAAS;SACN,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,wFAAwF,CAAC;SACrG,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvE,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,SAAS;SACN,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,QAAQ,EAAE,yDAAyD,CAAC;SAC3E,MAAM,CAAC,CAAC,IAAwB,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IACrH,SAAS;SACN,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC;SACtC,MAAM,CAAC,iBAAiB,EAAE,oCAAoC,CAAC;SAC/D,MAAM,CAAC,CAAC,IAA0C,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEtH,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,4FAA4F,CAAC;SACzG,MAAM,CAAC,SAAS,EAAE,+DAA+D,CAAC;SAClF,MAAM,CACL,gBAAgB,EAChB,uGAAuG,CACxG;SACA,MAAM,CAAC,WAAW,EAAE,2EAA2E,CAAC;SAChG,MAAM,CAAC,SAAS,EAAE,6CAA6C,CAAC;SAChE,MAAM,CAAC,cAAc,EAAE,+EAA+E,CAAC;SACvG,MAAM,CAAC,QAAQ,EAAE,uCAAuC,CAAC;SACzD,MAAM,CAAC,sBAAsB,EAAE,yEAAyE,CAAC;SACzG,MAAM,CACL,KAAK,EAAE,IAQN,EAAE,EAAE;QACH,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YACjD,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,8DAA8D,EAAE,CAAC,CAAC,CAAC;QACrG,CAAC;QACD,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CACtC,kBAAkB,CAChB,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EACtF,IAAI,CAAC,UAAU,CAChB,CACF,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI;YACrB,MAAM,IAAI,QAAQ,CAAC,YAAY,CAAC,qDAAqD,EAAE,CAAC,CAAC,CAAC;QAC5F,OAAO,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/F,CAAC,CACF,CAAC;IAEJ,MAAM,WAAW,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"program-advanced.js","sourceRoot":"","sources":["../../src/cli/program-advanced.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-run-work.d.ts","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"program-run-work.d.ts","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAGlD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAoNzF"}
|
|
@@ -79,6 +79,7 @@ export function registerRunWorkCommands(program, handlers) {
|
|
|
79
79
|
.option('--no-usage-watch', 'Skip the usage gate for this run, overriding .factory/config.yaml and FACTORY_USAGE_WATCH')
|
|
80
80
|
.option('--usage-threshold <fraction>', "Override .factory/config.yaml and FACTORY_STOP_AT for this run's usage threshold")
|
|
81
81
|
.option('--usage-poll <seconds>', "Override .factory/config.yaml and FACTORY_USAGE_POLL for this run's usage poll")
|
|
82
|
+
.option('--notify <cmd>', 'Shell command spawned once per park and once when the queue drains, with a JSON summary on stdin; overrides FACTORY_NOTIFY_CMD')
|
|
82
83
|
.option('--branch-prefix <prefix>', BRANCH_PREFIX_OPTION_DESCRIPTION)
|
|
83
84
|
.action((opts) => handlers.cmdRun(opts));
|
|
84
85
|
program
|
|
@@ -92,6 +93,7 @@ export function registerRunWorkCommands(program, handlers) {
|
|
|
92
93
|
.option('--no-usage-watch', 'Skip the usage gate for this run, overriding .factory/config.yaml and FACTORY_USAGE_WATCH')
|
|
93
94
|
.option('--usage-threshold <fraction>', "Override .factory/config.yaml and FACTORY_RESUME_AT for this run's usage threshold")
|
|
94
95
|
.option('--usage-poll <seconds>', "Override .factory/config.yaml and FACTORY_USAGE_POLL for this run's usage poll")
|
|
96
|
+
.option('--notify <cmd>', 'Shell command spawned once per park and once when the queue drains, with a JSON summary on stdin; overrides FACTORY_NOTIFY_CMD')
|
|
95
97
|
.option('--branch-prefix <prefix>', BRANCH_PREFIX_OPTION_DESCRIPTION)
|
|
96
98
|
.action(async (opts) => {
|
|
97
99
|
await handlers.cmdSupervise(opts);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-run-work.js","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"program-run-work.js","sourceRoot":"","sources":["../../src/cli/program-run-work.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-setup.d.ts","sourceRoot":"","sources":["../../src/cli/program-setup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"program-setup.d.ts","sourceRoot":"","sources":["../../src/cli/program-setup.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAsEvF"}
|
|
@@ -36,9 +36,10 @@ export function registerSetupCommands(program, handlers) {
|
|
|
36
36
|
.action((id, opts) => handlers.cmdHarnessCheck(id, opts));
|
|
37
37
|
program
|
|
38
38
|
.command('doctor')
|
|
39
|
-
.description('Check your environment (git, agent install and sign-in, gh auth, GitHub token, npm, sandbox, .factory/)')
|
|
39
|
+
.description('Check your environment (git, agent install and sign-in, gh auth, GitHub token, npm, sandbox, .factory/, and the build/test/lint commands CHECK will run)')
|
|
40
40
|
.option('--reconcile', 'Reap stale port leases, dead-run worktrees, stale issue claims, orphan sf-job-*/factory.managed containers, and orphan factory-* sbx VMs')
|
|
41
41
|
.option('--probe-inference', 'Also send one real prompt with claude -p (host and sandbox) and opencode run to verify Claude and OpenCode auth (uses quota)')
|
|
42
|
+
.option('--json', 'Print the checks and the build/test/lint commands CHECK will run as JSON')
|
|
42
43
|
.action((opts) => handlers.cmdDoctor(opts));
|
|
43
44
|
}
|
|
44
45
|
//# sourceMappingURL=program-setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program-setup.js","sourceRoot":"","sources":["../../src/cli/program-setup.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAK1F,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,QAAyB;IAC/E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,2GAA2G,CAC5G;SACA,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;SACxF,MAAM,CAAC,WAAW,EAAE,qFAAqF,CAAC;SAC1G,MAAM,CAAC,CAAC,IAAwC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhF,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,iIAAiI,CAClI;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CACL,WAAW,EACX,uGAAuG,CACxG;SACA,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvF,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,6FAA6F,CAAC;SAC1G,MAAM,CACL,kBAAkB,EAClB,yHAAyH,CAC1H;SACA,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;SACpE,MAAM,CAAC,YAAY,EAAE,8DAA8D,CAAC;SACpF,MAAM,CACL,kBAAkB,EAClB,yHAAyH,CAC1H;SACA,MAAM,CAAC,SAAS,EAAE,0EAA0E,CAAC;SAC7F,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,UAAU,EAAE,iEAAiE,CAAC;SACrF,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8DAA8D,CAAC,CAAC;IAC/E,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,oHAAoH,CACrH;SACA,MAAM,CAAC,cAAc,EAAE,qFAAqF,CAAC;SAC7G,MAAM,CAAC,CAAC,EAAU,EAAE,IAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAExF,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,
|
|
1
|
+
{"version":3,"file":"program-setup.js","sourceRoot":"","sources":["../../src/cli/program-setup.ts"],"names":[],"mappings":"AAAA,0FAA0F;AAK1F,MAAM,UAAU,qBAAqB,CAAC,OAAgB,EAAE,QAAyB;IAC/E,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CACV,2GAA2G,CAC5G;SACA,MAAM,CAAC,SAAS,EAAE,qEAAqE,CAAC;SACxF,MAAM,CAAC,WAAW,EAAE,qFAAqF,CAAC;SAC1G,MAAM,CAAC,CAAC,IAAwC,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhF,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CACV,iIAAiI,CAClI;SACA,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC;SAC5D,MAAM,CACL,WAAW,EACX,uGAAuG,CACxG;SACA,MAAM,CAAC,CAAC,IAA4C,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvF,OAAO;SACJ,OAAO,CAAC,cAAc,CAAC;SACvB,WAAW,CAAC,6FAA6F,CAAC;SAC1G,MAAM,CACL,kBAAkB,EAClB,yHAAyH,CAC1H;SACA,MAAM,CAAC,QAAQ,EAAE,kDAAkD,CAAC;SACpE,MAAM,CAAC,YAAY,EAAE,8DAA8D,CAAC;SACpF,MAAM,CACL,kBAAkB,EAClB,yHAAyH,CAC1H;SACA,MAAM,CAAC,SAAS,EAAE,0EAA0E,CAAC;SAC7F,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAEpD,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,oEAAoE,CAAC;SACjF,MAAM,CAAC,UAAU,EAAE,iEAAiE,CAAC;SACrF,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IAE9B,MAAM,UAAU,GAAG,OAAO;SACvB,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,8DAA8D,CAAC,CAAC;IAC/E,UAAU;SACP,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CACV,oHAAoH,CACrH;SACA,MAAM,CAAC,cAAc,EAAE,qFAAqF,CAAC;SAC7G,MAAM,CAAC,CAAC,EAAU,EAAE,IAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC;IAExF,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CACV,0JAA0J,CAC3J;SACA,MAAM,CACL,aAAa,EACb,0IAA0I,CAC3I;SACA,MAAM,CACL,mBAAmB,EACnB,8HAA8H,CAC/H;SACA,MAAM,CAAC,QAAQ,EAAE,0EAA0E,CAAC;SAC5F,MAAM,CAAC,CAAC,IAAuE,EAAE,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AACnH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Octokit } from '@octokit/rest';
|
|
2
|
+
/** #3375: the first PR that closes `issue` by reference, merged into the default branch and not reverted by a
|
|
3
|
+
* merged PR; undefined when none. Throws on malformed GitHub evidence. */
|
|
4
|
+
export declare function findMergedClosingPr(octokit: Octokit, owner: string, repo: string, issue: number): Promise<number | undefined>;
|
|
5
|
+
//# sourceMappingURL=queue-merged-closing-pr.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-merged-closing-pr.d.ts","sourceRoot":"","sources":["../../src/cli/queue-merged-closing-pr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8B7C;2EAC2E;AAC3E,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAqD7B"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
function isRecord(value) {
|
|
2
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
3
|
+
}
|
|
4
|
+
function escapeRegExp(s) {
|
|
5
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
6
|
+
}
|
|
7
|
+
/** #3375: true when a merged PR in the repo carries GitHub's `Reverts <owner>/<repo>#<pr>` line. */
|
|
8
|
+
async function hasMergedRevert(octokit, owner, repo, pr) {
|
|
9
|
+
const response = await octokit.graphql(`query QueueRevertSearch($q: String!) {
|
|
10
|
+
search(query: $q, type: ISSUE, first: 50) {
|
|
11
|
+
nodes { ... on PullRequest { number merged body } }
|
|
12
|
+
}
|
|
13
|
+
}`, { q: `repo:${owner}/${repo} is:pr is:merged in:body "Reverts ${owner}/${repo}#${pr}"` });
|
|
14
|
+
if (!isRecord(response) || !isRecord(response.search) || !Array.isArray(response.search.nodes)) {
|
|
15
|
+
throw new Error(`revert search for PR #${pr} was malformed`);
|
|
16
|
+
}
|
|
17
|
+
// Search is fuzzy, so each hit is re-confirmed: merged, and an exact line that stops `#9001` matching `#900`.
|
|
18
|
+
const line = new RegExp(`^\\s*Reverts ${escapeRegExp(`${owner}/${repo}`)}#${pr}(?!\\d)`, 'im');
|
|
19
|
+
return response.search.nodes.some((node) => isRecord(node) && node.merged === true && typeof node.body === 'string' && line.test(node.body));
|
|
20
|
+
}
|
|
21
|
+
/** #3375: the first PR that closes `issue` by reference, merged into the default branch and not reverted by a
|
|
22
|
+
* merged PR; undefined when none. Throws on malformed GitHub evidence. */
|
|
23
|
+
export async function findMergedClosingPr(octokit, owner, repo, issue) {
|
|
24
|
+
let after = null;
|
|
25
|
+
do {
|
|
26
|
+
const response = await octokit.graphql(`query QueueMergedClosingPr($owner: String!, $repo: String!, $number: Int!, $after: String) {
|
|
27
|
+
repository(owner: $owner, name: $repo) {
|
|
28
|
+
defaultBranchRef { name }
|
|
29
|
+
issue(number: $number) {
|
|
30
|
+
closedByPullRequestsReferences(first: 100, includeClosedPrs: true, after: $after) {
|
|
31
|
+
nodes { number merged baseRefName }
|
|
32
|
+
pageInfo { hasNextPage endCursor }
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}`, { owner, repo, number: issue, after });
|
|
37
|
+
if (!isRecord(response) || !isRecord(response.repository) || !isRecord(response.repository.issue)) {
|
|
38
|
+
throw new Error(`closing PR response for #${issue} was incomplete`);
|
|
39
|
+
}
|
|
40
|
+
const ref = response.repository.defaultBranchRef;
|
|
41
|
+
if (!isRecord(ref) || typeof ref.name !== 'string' || ref.name.length === 0) {
|
|
42
|
+
throw new Error(`default branch for #${issue} closing PR lookup was unavailable`);
|
|
43
|
+
}
|
|
44
|
+
const connection = response.repository.issue.closedByPullRequestsReferences;
|
|
45
|
+
if (!isRecord(connection) ||
|
|
46
|
+
!Array.isArray(connection.nodes) ||
|
|
47
|
+
!isRecord(connection.pageInfo) ||
|
|
48
|
+
typeof connection.pageInfo.hasNextPage !== 'boolean') {
|
|
49
|
+
throw new Error(`closing PR evidence for #${issue} was malformed`);
|
|
50
|
+
}
|
|
51
|
+
for (const node of connection.nodes) {
|
|
52
|
+
if (!isRecord(node) ||
|
|
53
|
+
typeof node.number !== 'number' ||
|
|
54
|
+
typeof node.merged !== 'boolean' ||
|
|
55
|
+
typeof node.baseRefName !== 'string') {
|
|
56
|
+
throw new Error(`closing PR node for #${issue} was malformed`);
|
|
57
|
+
}
|
|
58
|
+
if (node.merged && node.baseRefName === ref.name && !(await hasMergedRevert(octokit, owner, repo, node.number))) {
|
|
59
|
+
return node.number;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
const { hasNextPage, endCursor } = connection.pageInfo;
|
|
63
|
+
if (hasNextPage && (typeof endCursor !== 'string' || endCursor.length === 0 || endCursor === after)) {
|
|
64
|
+
throw new Error(`closing PR pagination cursor for #${issue} was malformed`);
|
|
65
|
+
}
|
|
66
|
+
after = hasNextPage ? endCursor : null;
|
|
67
|
+
} while (after !== null);
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=queue-merged-closing-pr.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-merged-closing-pr.js","sourceRoot":"","sources":["../../src/cli/queue-merged-closing-pr.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Octokit } from '@octokit/rest';
|
|
2
2
|
import type { CiOutcome, QueueIssue, QueuePreflightDecision, SlicePlan, SlicePlanCommentLookup, StackPullReviews } from '@on-par/factory-core/internal';
|
|
3
3
|
import { getPullRequestLandState } from './land-pr.js';
|
|
4
|
+
/** Backoff before each merge-state re-read (#3323): GitHub reports UNKNOWN while it recomputes mergeability. */
|
|
5
|
+
export declare const MERGE_STATE_REREAD_DELAYS_MS: readonly number[];
|
|
4
6
|
export interface OpenPullRequestEvidence {
|
|
5
7
|
number: number;
|
|
6
8
|
branch: string;
|
|
@@ -31,7 +33,11 @@ export interface QueuePreflightOps {
|
|
|
31
33
|
state: 'open' | 'closed';
|
|
32
34
|
mergedClosingPr: boolean;
|
|
33
35
|
}>;
|
|
36
|
+
/** #3375: number of a PR that closes `issue` by reference, merged into the default branch and not reverted by a merged `Reverts owner/repo#N` PR; undefined when none. */
|
|
37
|
+
getMergedClosingPr(issue: number): Promise<number | undefined>;
|
|
34
38
|
onDeferred?: (issue: number, message: string) => void;
|
|
39
|
+
/** Backoff before each merge-state re-read (#3323). Defaults to setTimeout. */
|
|
40
|
+
sleep?: (ms: number) => Promise<void>;
|
|
35
41
|
/** Current head/base refs of a slice PR; the head SHA is the rebased one after GitHub retargets a layer. */
|
|
36
42
|
getPullRefs(prNumber: number): Promise<{
|
|
37
43
|
headRef: string;
|
|
@@ -46,6 +52,7 @@ export declare function makeQueuePreflightOps(octokit: Octokit, owner: string, r
|
|
|
46
52
|
autoMergeStack?: boolean;
|
|
47
53
|
stackMode?: boolean;
|
|
48
54
|
onDeferred?: (issue: number, message: string) => void;
|
|
55
|
+
sleep?: (ms: number) => Promise<void>;
|
|
49
56
|
}): QueuePreflightOps;
|
|
50
57
|
/** Resolve queued work from GitHub evidence without consuming model or worktree resources. */
|
|
51
58
|
export declare function preflightQueuedIssue(issue: QueueIssue, deps: QueuePreflightOps): Promise<QueuePreflightDecision>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-preflight.d.ts","sourceRoot":"","sources":["../../src/cli/queue-preflight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,EACT,UAAU,EACV,sBAAsB,EACtB,SAAS,EACT,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,+BAA+B,CAAC;AAUvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"queue-preflight.d.ts","sourceRoot":"","sources":["../../src/cli/queue-preflight.ts"],"names":[],"mappings":"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"}
|