@on-par/factory-cli 0.9.14-next.1 → 0.9.14-next.11
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/index.d.ts.map +1 -1
- package/dist/cli/index.js +23 -19
- package/dist/cli/index.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/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.d.ts.map +1 -1
- package/dist/cli/run.js +5 -3
- 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.map +1 -1
- package/dist/cli/ship-steps.js +18 -2
- package/dist/cli/ship-steps.js.map +1 -1
- package/dist/cli/steer.d.ts.map +1 -1
- package/dist/cli/steer.js +5 -16
- 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/worktree-reap.d.ts +1 -1
- package/dist/cli/worktree-reap.d.ts.map +1 -1
- package/dist/cli/worktree-reap.js +5 -9
- package/dist/cli/worktree-reap.js.map +1 -1
- package/package.json +4 -4
package/dist/cli/steer.js
CHANGED
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// packages/cli/src/cli/steer.ts — `factory steer <ref>`: append a human or bot steer to a run (#3401).
|
|
2
|
-
import {
|
|
3
|
-
import { join } from 'node:path';
|
|
4
|
-
import { appendSteerEvent, readIssueRunState, runStateFile, STEER_PHASES, STEER_SOURCES, SteerEventError, writeIssueRunState, } from '@on-par/factory-core/internal';
|
|
2
|
+
import { appendSteerEvent, listIssueRuns, readIssueRunState, runStateFile, STEER_PHASES, STEER_SOURCES, SteerEventError, writeIssueRunState, } from '@on-par/factory-core/internal';
|
|
5
3
|
import { getFactoryPaths } from '@on-par/factory-core';
|
|
6
4
|
export class SteerCliError extends Error {
|
|
7
5
|
code;
|
|
@@ -36,19 +34,10 @@ export async function resolveSteerRun(runsDir, ref) {
|
|
|
36
34
|
return { file, state };
|
|
37
35
|
}
|
|
38
36
|
if (ref.kind !== 'issue') {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
catch {
|
|
44
|
-
names = [];
|
|
45
|
-
}
|
|
46
|
-
for (const name of names.filter((n) => /^issue-(\d+)\.json$/.test(n)).sort()) {
|
|
47
|
-
const file = join(runsDir, name);
|
|
48
|
-
const state = await readIssueRunState(file);
|
|
49
|
-
if (state?.prNumber === ref.number)
|
|
50
|
-
return { file, state };
|
|
51
|
-
}
|
|
37
|
+
const { runs } = await listIssueRuns(runsDir);
|
|
38
|
+
const state = runs.find((r) => r.prNumber === ref.number);
|
|
39
|
+
if (state)
|
|
40
|
+
return { file: runStateFile(runsDir, state.issue), state };
|
|
52
41
|
}
|
|
53
42
|
throw new SteerCliError(`no run found for ${ref.raw}`, 'no-run');
|
|
54
43
|
}
|
package/dist/cli/steer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steer.js","sourceRoot":"","sources":["../../src/cli/steer.ts"],"names":[],"mappings":"AAAA,uGAAuG;AACvG,OAAO,
|
|
1
|
+
{"version":3,"file":"steer.js","sourceRoot":"","sources":["../../src/cli/steer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type IssueRunState, type SteerabilityReport } from '@on-par/factory-core/internal';
|
|
2
|
-
/** Every parseable `issue-<n>.json` run state in `runsDir`; phase snapshots and
|
|
2
|
+
/** Every parseable `issue-<n>.json` run state in `runsDir`; phase snapshots and invalid records are skipped (core's listIssueRuns). */
|
|
3
3
|
export declare function readRunStates(runsDir: string): Promise<IssueRunState[]>;
|
|
4
4
|
/** Steers per merged PR from local run states and classifier-outcomes.jsonl (#3403). */
|
|
5
5
|
export declare function buildSteerabilityReport(paths: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steerability-report.d.ts","sourceRoot":"","sources":["../../src/cli/steerability-report.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"steerability-report.d.ts","sourceRoot":"","sources":["../../src/cli/steerability-report.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,+BAA+B,CAAC;AAWvC,uIAAuI;AACvI,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAE7E;AAED,wFAAwF;AACxF,wBAAsB,uBAAuB,CAAC,KAAK,EAAE;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAK9B"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { join } from 'node:path';
|
|
1
|
+
import { readFile } from 'node:fs/promises';
|
|
3
2
|
import { parseClassifierOutcomes } from '@on-par/factory-core';
|
|
4
|
-
import { collectMergedPrSteers,
|
|
3
|
+
import { collectMergedPrSteers, listIssueRuns, summarizeSteerability, } from '@on-par/factory-core/internal';
|
|
5
4
|
async function readOrEmpty(read, empty) {
|
|
6
5
|
try {
|
|
7
6
|
return await read();
|
|
@@ -12,11 +11,9 @@ async function readOrEmpty(read, empty) {
|
|
|
12
11
|
throw err;
|
|
13
12
|
}
|
|
14
13
|
}
|
|
15
|
-
/** Every parseable `issue-<n>.json` run state in `runsDir`; phase snapshots and
|
|
14
|
+
/** Every parseable `issue-<n>.json` run state in `runsDir`; phase snapshots and invalid records are skipped (core's listIssueRuns). */
|
|
16
15
|
export async function readRunStates(runsDir) {
|
|
17
|
-
|
|
18
|
-
const states = await Promise.all(names.filter((name) => /^issue-(\d+)\.json$/.test(name)).map((name) => readIssueRunState(join(runsDir, name))));
|
|
19
|
-
return states.filter((s) => s !== null && typeof s.issue === 'number');
|
|
16
|
+
return (await listIssueRuns(runsDir)).runs;
|
|
20
17
|
}
|
|
21
18
|
/** Steers per merged PR from local run states and classifier-outcomes.jsonl (#3403). */
|
|
22
19
|
export async function buildSteerabilityReport(paths) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"steerability-report.js","sourceRoot":"","sources":["../../src/cli/steerability-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"steerability-report.js","sourceRoot":"","sources":["../../src/cli/steerability-report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,qBAAqB,GAGtB,MAAM,+BAA+B,CAAC;AAEvC,KAAK,UAAU,WAAW,CAAI,IAAsB,EAAE,KAAQ;IAC5D,IAAI,CAAC;QACH,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAK,GAA6B,CAAC,IAAI,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QACnE,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,uIAAuI;AACvI,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,OAAO,CAAC,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7C,CAAC;AAED,wFAAwF;AACxF,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,KAG7C;IACC,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC;IACvF,OAAO,qBAAqB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAChD,CAAC"}
|
|
@@ -17,7 +17,7 @@ declare function reapUnderLock<R>(rt: ReapRuntime, [issue, repoRoot, ghRepo, pat
|
|
|
17
17
|
result: R | undefined;
|
|
18
18
|
}>;
|
|
19
19
|
/** Eagerly reaps a parked lane's own worktree inside `factory run` (#1007). All the safety
|
|
20
|
-
* gates live in reapLaneWorktree. A reap failure is logged as a warn and never surfaces —
|
|
20
|
+
* gates, the keep record included, live in reapLaneWorktree. A reap failure is logged as a warn and never surfaces —
|
|
21
21
|
* parking must always succeed. */
|
|
22
22
|
export declare function reapParkedLane(rt: ReapRuntime, reap: typeof reapLaneWorktree, args: Parameters<typeof reapUnderLock>[1]): Promise<void>;
|
|
23
23
|
/** The one run-output line for a PR-less ship's reap: where the worktree is and why it was kept
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-reap.d.ts","sourceRoot":"","sources":["../../src/cli/worktree-reap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EACL,KAAK,sBAAsB,
|
|
1
|
+
{"version":3,"file":"worktree-reap.d.ts","sourceRoot":"","sources":["../../src/cli/worktree-reap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAa,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEtF,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAGpB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EAItB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,KAAK,KAAK,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAEhD,mGAAmG;AACnG,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,0BAA0B,GAAG,gBAAgB,CAAC,CAAC,CAAC;IACtF,eAAe,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CAC/F;AAED;2FAC2F;AAC3F,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,aAAa,CAAC,SAAS,CAAC,GAAG,SAAS,EAChD,QAAQ,EAAE,MAAM,GACf,eAAe,GAAG,SAAS,CAI7B;AAED;uGACuG;AACvG,iBAAe,aAAa,CAAC,CAAC,EAC5B,EAAE,EAAE,WAAW,EACf,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC,EACrG,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACvF,OAAO,CAAC;IAAE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,CAAC,GAAG,SAAS,CAAA;CAAE,CAAC,CAoBtE;AAED;;mCAEmC;AACnC,wBAAsB,cAAc,CAClC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,OAAO,gBAAgB,EAC7B,IAAI,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;qFACqF;AACrF,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,sBAAsB,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAoBlH;AAED;;qEAEqE;AACrE,wBAAsB,cAAc,CAClC,EAAE,EAAE,WAAW,EACf,IAAI,EAAE,OAAO,qBAAqB,EAClC,IAAI,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,IAAI,CAAC,CAUf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// packages/cli/src/cli/worktree-reap.ts — eager lane-worktree reaps (#1007, #3008), moved out of index.ts
|
|
2
2
|
import { resolveSandboxPolicy } from '@on-par/factory-core';
|
|
3
|
-
import {
|
|
3
|
+
import { logEvent, resolveEffectiveConfig, withFileLock, withGitLock, worktreeSandboxFor, } from '@on-par/factory-core/internal';
|
|
4
4
|
/** The repo's current docker-sandbox descriptor for worktree-gc sweeps, or undefined for
|
|
5
5
|
* every other runtime/config state (including a fixture config with no `sandbox` key). */
|
|
6
6
|
export function gcWorktreeSandbox(sandboxCfg, repoRoot) {
|
|
@@ -20,7 +20,7 @@ async function reapUnderLock(rt, [issue, repoRoot, ghRepo, paths, prefixOverride
|
|
|
20
20
|
worktreePath = resolved;
|
|
21
21
|
const log = (type, msg) => logEvent(paths.events, type, issue, msg);
|
|
22
22
|
const sandbox = gcWorktreeSandbox(factoryConfig.sandbox, repoRoot);
|
|
23
|
-
const result = await withGitLock(repoRoot, () => withFileLock(paths.gitLock, () => reap(resolved, { issue, branchPrefix, log, sandbox })));
|
|
23
|
+
const result = await withGitLock(repoRoot, () => withFileLock(paths.gitLock, () => reap(resolved, { issue, branchPrefix, log, sandbox, keepsFile: paths.worktreeKeeps })));
|
|
24
24
|
return { worktreePath, result };
|
|
25
25
|
}
|
|
26
26
|
catch (err) {
|
|
@@ -29,15 +29,9 @@ async function reapUnderLock(rt, [issue, repoRoot, ghRepo, paths, prefixOverride
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
/** Eagerly reaps a parked lane's own worktree inside `factory run` (#1007). All the safety
|
|
32
|
-
* gates live in reapLaneWorktree. A reap failure is logged as a warn and never surfaces —
|
|
32
|
+
* gates, the keep record included, live in reapLaneWorktree. A reap failure is logged as a warn and never surfaces —
|
|
33
33
|
* parking must always succeed. */
|
|
34
34
|
export async function reapParkedLane(rt, reap, args) {
|
|
35
|
-
const [issue, , , paths] = args;
|
|
36
|
-
const keep = findWorktreeKeep(paths.worktreeKeeps, issue, (type, msg) => logEvent(paths.events, type, issue, msg));
|
|
37
|
-
if (keep) {
|
|
38
|
-
logEvent(paths.events, 'worktree-gc', issue, `kept ${keep.path} — kept (${keep.reason}); not reaping the parked lane's worktree or branch`);
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
35
|
await reapUnderLock(rt, args, 'parked-lane worktree reap failed', (worktreePath, opts) => reap(args[1], worktreePath, opts));
|
|
42
36
|
}
|
|
43
37
|
/** The one run-output line for a PR-less ship's reap: where the worktree is and why it was kept
|
|
@@ -52,6 +46,8 @@ export function formatShipReapLine(worktreePath, result) {
|
|
|
52
46
|
return `🧹 Removed worktree ${worktreePath}${result.branchDeleted ? ` and branch ${result.branch}` : ''} — no PR was opened and nothing was committed`;
|
|
53
47
|
case 'kept-dirty':
|
|
54
48
|
return `📌 Kept worktree ${worktreePath}${withBranch} — it has uncommitted changes`;
|
|
49
|
+
case 'kept-record':
|
|
50
|
+
return `📌 Kept worktree ${worktreePath}${withBranch} — it has a keep record`;
|
|
55
51
|
case 'kept-committed':
|
|
56
52
|
return `📌 Kept worktree ${worktreePath}${withBranch} — it has commits beyond the base`;
|
|
57
53
|
case 'kept-branch-mismatch':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree-reap.js","sourceRoot":"","sources":["../../src/cli/worktree-reap.ts"],"names":[],"mappings":"AAAA,0GAA0G;AAG1G,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"worktree-reap.js","sourceRoot":"","sources":["../../src/cli/worktree-reap.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.14-next.
|
|
3
|
+
"version": "0.9.14-next.11",
|
|
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.14-next.
|
|
52
|
-
"@on-par/factory-core": "0.9.14-next.
|
|
53
|
-
"@on-par/factory-tui": "0.9.14-next.
|
|
51
|
+
"@on-par/factory-config": "0.9.14-next.11",
|
|
52
|
+
"@on-par/factory-core": "0.9.14-next.11",
|
|
53
|
+
"@on-par/factory-tui": "0.9.14-next.11",
|
|
54
54
|
"commander": "^15.0.0",
|
|
55
55
|
"zod": "^4.6.5"
|
|
56
56
|
},
|