@on-par/factory-cli 0.9.28-next.9 → 0.9.29-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/dist/cli/ci-pending-draft-sweep.d.ts +45 -0
  2. package/dist/cli/ci-pending-draft-sweep.d.ts.map +1 -0
  3. package/dist/cli/ci-pending-draft-sweep.js +176 -0
  4. package/dist/cli/ci-pending-draft-sweep.js.map +1 -0
  5. package/dist/cli/config-override-option.d.ts +11 -0
  6. package/dist/cli/config-override-option.d.ts.map +1 -0
  7. package/dist/cli/config-override-option.js +37 -0
  8. package/dist/cli/config-override-option.js.map +1 -0
  9. package/dist/cli/doctor-config-sources.d.ts +23 -0
  10. package/dist/cli/doctor-config-sources.d.ts.map +1 -0
  11. package/dist/cli/doctor-config-sources.js +44 -0
  12. package/dist/cli/doctor-config-sources.js.map +1 -0
  13. package/dist/cli/doctor-verify.d.ts +5 -0
  14. package/dist/cli/doctor-verify.d.ts.map +1 -1
  15. package/dist/cli/doctor-verify.js +21 -4
  16. package/dist/cli/doctor-verify.js.map +1 -1
  17. package/dist/cli/doctor.d.ts.map +1 -1
  18. package/dist/cli/doctor.js +8 -3
  19. package/dist/cli/doctor.js.map +1 -1
  20. package/dist/cli/help-groups.d.ts.map +1 -1
  21. package/dist/cli/help-groups.js +1 -0
  22. package/dist/cli/help-groups.js.map +1 -1
  23. package/dist/cli/index.d.ts +49 -45
  24. package/dist/cli/index.d.ts.map +1 -1
  25. package/dist/cli/index.js +73 -16
  26. package/dist/cli/index.js.map +1 -1
  27. package/dist/cli/land-find-pr.d.ts +5 -0
  28. package/dist/cli/land-find-pr.d.ts.map +1 -0
  29. package/dist/cli/land-find-pr.js +27 -0
  30. package/dist/cli/land-find-pr.js.map +1 -0
  31. package/dist/cli/land-merge.d.ts.map +1 -1
  32. package/dist/cli/land-merge.js +5 -0
  33. package/dist/cli/land-merge.js.map +1 -1
  34. package/dist/cli/land-pr.d.ts +5 -1
  35. package/dist/cli/land-pr.d.ts.map +1 -1
  36. package/dist/cli/land-pr.js +5 -1
  37. package/dist/cli/land-pr.js.map +1 -1
  38. package/dist/cli/land.d.ts +11 -3
  39. package/dist/cli/land.d.ts.map +1 -1
  40. package/dist/cli/land.js +27 -34
  41. package/dist/cli/land.js.map +1 -1
  42. package/dist/cli/program-observe.js +1 -1
  43. package/dist/cli/program-observe.js.map +1 -1
  44. package/dist/cli/program-run-work.d.ts.map +1 -1
  45. package/dist/cli/program-run-work.js +14 -0
  46. package/dist/cli/program-run-work.js.map +1 -1
  47. package/dist/cli/program.d.ts.map +1 -1
  48. package/dist/cli/program.js +11 -1
  49. package/dist/cli/program.js.map +1 -1
  50. package/dist/cli/queue-backend-select.d.ts +15 -0
  51. package/dist/cli/queue-backend-select.d.ts.map +1 -0
  52. package/dist/cli/queue-backend-select.js +30 -0
  53. package/dist/cli/queue-backend-select.js.map +1 -0
  54. package/dist/cli/queue-preflight-prerequisite-stack.d.ts +11 -0
  55. package/dist/cli/queue-preflight-prerequisite-stack.d.ts.map +1 -0
  56. package/dist/cli/queue-preflight-prerequisite-stack.js +75 -0
  57. package/dist/cli/queue-preflight-prerequisite-stack.js.map +1 -0
  58. package/dist/cli/queue-preflight.d.ts +4 -0
  59. package/dist/cli/queue-preflight.d.ts.map +1 -1
  60. package/dist/cli/queue-preflight.js +16 -64
  61. package/dist/cli/queue-preflight.js.map +1 -1
  62. package/dist/cli/queue-prerequisite-state.d.ts +8 -0
  63. package/dist/cli/queue-prerequisite-state.d.ts.map +1 -0
  64. package/dist/cli/queue-prerequisite-state.js +66 -0
  65. package/dist/cli/queue-prerequisite-state.js.map +1 -0
  66. package/dist/cli/queue-startup.d.ts +42 -0
  67. package/dist/cli/queue-startup.d.ts.map +1 -1
  68. package/dist/cli/queue-startup.js +2 -0
  69. package/dist/cli/queue-startup.js.map +1 -1
  70. package/dist/cli/respond-command.d.ts +42 -0
  71. package/dist/cli/respond-command.d.ts.map +1 -0
  72. package/dist/cli/respond-command.js +76 -0
  73. package/dist/cli/respond-command.js.map +1 -0
  74. package/dist/cli/run-branch.d.ts.map +1 -1
  75. package/dist/cli/run-branch.js +2 -2
  76. package/dist/cli/run-branch.js.map +1 -1
  77. package/dist/cli/run-brief.d.ts +10 -0
  78. package/dist/cli/run-brief.d.ts.map +1 -1
  79. package/dist/cli/run-brief.js +41 -5
  80. package/dist/cli/run-brief.js.map +1 -1
  81. package/dist/cli/run-issue-merge.d.ts +54 -0
  82. package/dist/cli/run-issue-merge.d.ts.map +1 -0
  83. package/dist/cli/run-issue-merge.js +155 -0
  84. package/dist/cli/run-issue-merge.js.map +1 -0
  85. package/dist/cli/run-lane-deps.d.ts +6 -1
  86. package/dist/cli/run-lane-deps.d.ts.map +1 -1
  87. package/dist/cli/run-lane-discovery.d.ts +35 -0
  88. package/dist/cli/run-lane-discovery.d.ts.map +1 -0
  89. package/dist/cli/run-lane-discovery.js +93 -0
  90. package/dist/cli/run-lane-discovery.js.map +1 -0
  91. package/dist/cli/run-lane-restack.d.ts +6 -1
  92. package/dist/cli/run-lane-restack.d.ts.map +1 -1
  93. package/dist/cli/run-lane-restack.js +16 -0
  94. package/dist/cli/run-lane-restack.js.map +1 -1
  95. package/dist/cli/run-lane.d.ts.map +1 -1
  96. package/dist/cli/run-lane.js +40 -4
  97. package/dist/cli/run-lane.js.map +1 -1
  98. package/dist/cli/run-queue.d.ts +19 -0
  99. package/dist/cli/run-queue.d.ts.map +1 -0
  100. package/dist/cli/run-queue.js +66 -0
  101. package/dist/cli/run-queue.js.map +1 -0
  102. package/dist/cli/run-rework-poll.d.ts +15 -0
  103. package/dist/cli/run-rework-poll.d.ts.map +1 -0
  104. package/dist/cli/run-rework-poll.js +79 -0
  105. package/dist/cli/run-rework-poll.js.map +1 -0
  106. package/dist/cli/run.d.ts +3 -0
  107. package/dist/cli/run.d.ts.map +1 -1
  108. package/dist/cli/run.js +58 -102
  109. package/dist/cli/run.js.map +1 -1
  110. package/dist/cli/ship-options.d.ts +25 -1
  111. package/dist/cli/ship-options.d.ts.map +1 -1
  112. package/dist/cli/ship-options.js +39 -0
  113. package/dist/cli/ship-options.js.map +1 -1
  114. package/dist/cli/ship-pr-state.d.ts +58 -0
  115. package/dist/cli/ship-pr-state.d.ts.map +1 -0
  116. package/dist/cli/ship-pr-state.js +172 -0
  117. package/dist/cli/ship-pr-state.js.map +1 -0
  118. package/dist/cli/ship-review-rework.d.ts +6 -0
  119. package/dist/cli/ship-review-rework.d.ts.map +1 -1
  120. package/dist/cli/ship-review-rework.js +11 -2
  121. package/dist/cli/ship-review-rework.js.map +1 -1
  122. package/dist/cli/ship-steps.d.ts +5 -2
  123. package/dist/cli/ship-steps.d.ts.map +1 -1
  124. package/dist/cli/ship-steps.js +15 -2
  125. package/dist/cli/ship-steps.js.map +1 -1
  126. package/dist/cli/ship.d.ts +3 -0
  127. package/dist/cli/ship.d.ts.map +1 -1
  128. package/dist/cli/ship.js +26 -20
  129. package/dist/cli/ship.js.map +1 -1
  130. package/dist/cli/shutdown.d.ts +26 -0
  131. package/dist/cli/shutdown.d.ts.map +1 -0
  132. package/dist/cli/shutdown.js +82 -0
  133. package/dist/cli/shutdown.js.map +1 -0
  134. package/dist/cli/status.d.ts.map +1 -1
  135. package/dist/cli/status.js +57 -27
  136. package/dist/cli/status.js.map +1 -1
  137. package/dist/cli/supervise.d.ts.map +1 -1
  138. package/dist/cli/supervise.js +11 -6
  139. package/dist/cli/supervise.js.map +1 -1
  140. package/package.json +4 -4
@@ -0,0 +1,45 @@
1
+ import type { Octokit } from '@octokit/rest';
2
+ import { type EventKind } from '@on-par/factory-core';
3
+ import type { getFactoryPaths } from '@on-par/factory-core';
4
+ import { type CiOutcome } from '@on-par/factory-core/internal';
5
+ import { waitForMerge } from './land.js';
6
+ export type CiPendingDraftAction = 'landed' | 'merge-gated' | 'marked-ready' | 'land-failed' | 'ci-rework' | 'still-pending' | 'skipped';
7
+ export interface CiPendingDraftResult {
8
+ pr: number;
9
+ issue: number;
10
+ action: CiPendingDraftAction;
11
+ detail?: string;
12
+ }
13
+ export interface CiPendingDraftSweepDeps {
14
+ octokit: Octokit;
15
+ ghRepo: string;
16
+ branchPrefix: string;
17
+ /** Issues a lane holds right now; their drafts are never touched. */
18
+ protectedIssues?: ReadonlySet<number>;
19
+ mergeEnabled: () => boolean;
20
+ probeCi: (pr: {
21
+ headSha: string;
22
+ baseRef: string;
23
+ }) => Promise<CiOutcome>;
24
+ markReady: (pullRequestNodeId: string) => Promise<void>;
25
+ land: (issue: number, branch: string) => Promise<void>;
26
+ queueRework: (issue: number, pr: number) => Promise<{
27
+ outcome: 'queued' | 'skipped' | 'error';
28
+ detail?: string;
29
+ }>;
30
+ log: (type: EventKind, issue: number, msg: string) => void;
31
+ }
32
+ /** Never throws. Returns one result per factory draft it acted on or deliberately left. */
33
+ export declare function sweepCiPendingDrafts(deps: CiPendingDraftSweepDeps): Promise<CiPendingDraftResult[]>;
34
+ /** Options for the production wrapper; `lane` and `protectedIssues` are set between lane issues. */
35
+ export interface CiPendingDraftSweepOpts {
36
+ repoRoot?: string;
37
+ protectedIssues?: ReadonlySet<number>;
38
+ lane?: string;
39
+ autoMerge?: boolean;
40
+ /** Test seam: the land path; defaults to waitForMerge. */
41
+ waitMerge?: typeof waitForMerge;
42
+ }
43
+ /** The production wiring of the sweep. Never throws — a failure is a warn, never a reason to abort `factory run`. */
44
+ export declare function runCiPendingDraftSweep(paths: ReturnType<typeof getFactoryPaths>, ghRepo: string, getOctokit: () => Octokit | undefined, opts?: CiPendingDraftSweepOpts): Promise<void>;
45
+ //# sourceMappingURL=ci-pending-draft-sweep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-pending-draft-sweep.d.ts","sourceRoot":"","sources":["../../src/cli/ci-pending-draft-sweep.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,OAAO,EAAkE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAUL,KAAK,SAAS,EAEf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,oBAAoB,GAC9B,QAAQ,GAAG,aAAa,GAAG,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,eAAe,GAAG,SAAS,CAAC;AAExG,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC;IAC5B,OAAO,EAAE,CAAC,EAAE,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1E,SAAS,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACvD,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,OAAO,EAAE,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClH,GAAG,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5D;AAmFD,2FAA2F;AAC3F,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CA6BzG;AAED,oGAAoG;AACpG,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,OAAO,YAAY,CAAC;CACjC;AAED,qHAAqH;AACrH,wBAAsB,sBAAsB,CAC1C,KAAK,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,EACzC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,OAAO,GAAG,SAAS,EACrC,IAAI,GAAE,uBAA4B,GACjC,OAAO,CAAC,IAAI,CAAC,CAyDf"}
@@ -0,0 +1,176 @@
1
+ // packages/cli/src/cli/ci-pending-draft-sweep.ts — land or CI-rework factory drafts SHIP left for pending CI (#3932)
2
+ //
3
+ // SHIP leaves a PR as a draft when its CI watch window ends before a verdict, and records `draftReason:
4
+ // 'ci-pending'` on the trusted PR run-state comment. This sweep, run at `factory run` start and between lane
5
+ // issues, lands such a draft once CI is green, queues CI rework when CI is red and leaves it while CI still runs.
6
+ // Drafts made on purpose (--draft-pr, run.pr.draft, a human) carry no such reason and are never touched.
7
+ import { loadFactoryConfigForRepo, resolveMergePolicy, workKeyFromIssue } from '@on-par/factory-core';
8
+ import { createFileIterateStore, createOctokitQueueClient, factoryBranchIssue, loadPrRunState, logEvent, queueCiPendingRework, resolveBranchPrefix, savePrRunState, watchChecks, } from '@on-par/factory-core/internal';
9
+ import { MergeGatedError, markPullRequestReady } from './land-pr.js';
10
+ import { waitForMerge } from './land.js';
11
+ const PAGE_SIZE = 100;
12
+ const MAX_PAGES = 50;
13
+ const PROBE_DEADLINE_MS = 60_000;
14
+ const errorMessage = (err) => (err instanceof Error ? err.message : String(err));
15
+ async function listOpenPulls(octokit, ghRepo) {
16
+ const [owner = '', repo = ''] = ghRepo.split('/');
17
+ const pulls = [];
18
+ for (let page = 1; page <= MAX_PAGES; page++) {
19
+ const { data } = await octokit.rest.pulls.list({ owner, repo, state: 'open', per_page: PAGE_SIZE, page });
20
+ pulls.push(...data);
21
+ if (data.length < PAGE_SIZE)
22
+ break;
23
+ }
24
+ return pulls;
25
+ }
26
+ /** Drops the CI-pending reason so the PR is never picked up twice. A save failure is logged, never fatal. */
27
+ async function clearReason(deps, pr, issue, state) {
28
+ const { draftReason: _cleared, ...rest } = state;
29
+ try {
30
+ await savePrRunState({
31
+ octokit: deps.octokit,
32
+ repo: deps.ghRepo,
33
+ prNumber: pr,
34
+ state: { ...rest, status: 'awaiting-review', updatedAt: new Date().toISOString() },
35
+ });
36
+ }
37
+ catch (err) {
38
+ deps.log('pr_state_failed', issue, `could not clear the CI-pending reason on PR #${pr}: ${errorMessage(err)}`);
39
+ }
40
+ }
41
+ async function handleDraft(deps, pull, issue, state) {
42
+ const { log } = deps;
43
+ const pr = pull.number;
44
+ let verdict;
45
+ try {
46
+ verdict = await deps.probeCi({ headSha: pull.head.sha, baseRef: pull.base.ref });
47
+ }
48
+ catch (err) {
49
+ log('warn', issue, `CI probe for CI-pending draft PR #${pr} failed: ${errorMessage(err)}`);
50
+ return { pr, issue, action: 'still-pending', detail: errorMessage(err) };
51
+ }
52
+ if (verdict === 'timeout') {
53
+ log('ship', issue, `PR #${pr}: CI still pending; left as draft`);
54
+ return { pr, issue, action: 'still-pending' };
55
+ }
56
+ if (verdict === 'failure') {
57
+ const queued = await deps.queueRework(issue, pr);
58
+ if (queued.outcome !== 'queued') {
59
+ const detail = queued.detail ?? queued.outcome;
60
+ log('warn', issue, `CI failed on CI-pending draft PR #${pr} but #${issue} was not queued for rework: ${detail}`);
61
+ return { pr, issue, action: 'skipped', detail };
62
+ }
63
+ await clearReason(deps, pr, issue, state);
64
+ log('rework', issue, `CI failed on CI-pending draft PR #${pr}; queued #${issue} for CI rework`);
65
+ return { pr, issue, action: 'ci-rework' };
66
+ }
67
+ await clearReason(deps, pr, issue, state);
68
+ await deps.markReady(pull.node_id);
69
+ log('ready', issue, `PR #${pr} marked ready: CI passed after SHIP left it as a draft`);
70
+ if (!deps.mergeEnabled()) {
71
+ log('merge-gated', issue, `auto-merge off by merge policy; PR #${pr} left ready for a human`);
72
+ return { pr, issue, action: 'merge-gated' };
73
+ }
74
+ try {
75
+ await deps.land(issue, pull.head.ref);
76
+ return { pr, issue, action: 'landed' };
77
+ }
78
+ catch (err) {
79
+ if (err instanceof MergeGatedError)
80
+ return { pr, issue, action: 'merge-gated', detail: err.message };
81
+ log('warn', issue, `landing CI-pending draft PR #${pr} failed: ${errorMessage(err)}`);
82
+ return { pr, issue, action: 'land-failed', detail: errorMessage(err) };
83
+ }
84
+ }
85
+ /** Never throws. Returns one result per factory draft it acted on or deliberately left. */
86
+ export async function sweepCiPendingDrafts(deps) {
87
+ const { octokit, ghRepo, branchPrefix, protectedIssues } = deps;
88
+ let pulls;
89
+ try {
90
+ pulls = await listOpenPulls(octokit, ghRepo);
91
+ }
92
+ catch (err) {
93
+ deps.log('warn', 0, `CI-pending draft sweep could not list open PRs: ${errorMessage(err)}`);
94
+ return [];
95
+ }
96
+ const results = [];
97
+ for (const pull of pulls) {
98
+ if (!pull.draft || !pull.head.ref.startsWith(`${branchPrefix}/`))
99
+ continue;
100
+ const issue = factoryBranchIssue(pull.head.ref, branchPrefix);
101
+ if (issue === null || protectedIssues?.has(issue))
102
+ continue;
103
+ try {
104
+ const loaded = await loadPrRunState({
105
+ octokit,
106
+ repo: ghRepo,
107
+ prNumber: pull.number,
108
+ key: workKeyFromIssue(issue),
109
+ });
110
+ if (loaded.status !== 'found' || loaded.state.draftReason !== 'ci-pending')
111
+ continue;
112
+ if (loaded.state.prNumber !== pull.number)
113
+ continue;
114
+ results.push(await handleDraft(deps, pull, issue, loaded.state));
115
+ }
116
+ catch (err) {
117
+ deps.log('warn', issue, `CI-pending draft sweep failed on PR #${pull.number}: ${errorMessage(err)}`);
118
+ }
119
+ }
120
+ return results;
121
+ }
122
+ /** The production wiring of the sweep. Never throws — a failure is a warn, never a reason to abort `factory run`. */
123
+ export async function runCiPendingDraftSweep(paths, ghRepo, getOctokit, opts = {}) {
124
+ const log = (type, issue, msg) => logEvent(paths.events, type, issue === 0 ? 'all' : issue, msg, opts.lane ? { lane: opts.lane } : undefined);
125
+ try {
126
+ const octokit = getOctokit();
127
+ if (!octokit)
128
+ return;
129
+ const [owner = '', repo = ''] = ghRepo.split('/');
130
+ const config = loadFactoryConfigForRepo(paths.config);
131
+ const { autoMerge, waitMerge = waitForMerge } = opts;
132
+ const results = await sweepCiPendingDrafts({
133
+ octokit,
134
+ ghRepo,
135
+ branchPrefix: resolveBranchPrefix(config),
136
+ ...(opts.protectedIssues ? { protectedIssues: opts.protectedIssues } : {}),
137
+ mergeEnabled: () => resolveMergePolicy(config, process.env, autoMerge === undefined ? undefined : { auto: autoMerge }).auto,
138
+ probeCi: ({ headSha, baseRef }) => watchChecks({
139
+ octokit,
140
+ owner,
141
+ repo,
142
+ ref: headSha,
143
+ deadlineMs: PROBE_DEADLINE_MS,
144
+ settleMs: 0,
145
+ requiredChecks: { branch: baseRef },
146
+ probeNoCi: true,
147
+ }),
148
+ markReady: (nodeId) => markPullRequestReady(octokit, nodeId),
149
+ // Land the draft's own branch, synced with main so a conflict takes the land conflict path (#1887 is out of
150
+ // scope), and held rather than polled when a human gate label is set.
151
+ land: (issue, branch) => waitMerge(issue, branch, opts.repoRoot ?? process.cwd(), ghRepo, paths, {
152
+ landBranch: branch,
153
+ holdWhenGated: true,
154
+ syncMain: true,
155
+ ...(autoMerge === undefined ? {} : { mergeOverrides: { auto: autoMerge } }),
156
+ }),
157
+ queueRework: (issue, pr) => queueCiPendingRework({
158
+ store: createFileIterateStore(paths.iterate),
159
+ queue: createOctokitQueueClient(octokit),
160
+ owner,
161
+ repo,
162
+ issue,
163
+ pr,
164
+ }),
165
+ log,
166
+ });
167
+ const acted = results.filter((r) => r.action !== 'still-pending' && r.action !== 'skipped');
168
+ if (acted.length > 0) {
169
+ console.log(`factory: CI-pending draft sweep handled ${acted.map((r) => `PR #${r.pr} (${r.action})`).join(', ')}`);
170
+ }
171
+ }
172
+ catch (err) {
173
+ log('warn', 0, `CI-pending draft sweep failed: ${errorMessage(err)}`);
174
+ }
175
+ }
176
+ //# sourceMappingURL=ci-pending-draft-sweep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci-pending-draft-sweep.js","sourceRoot":"","sources":["../../src/cli/ci-pending-draft-sweep.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /** Resolve each set flag to an absolute path and hand it to every command, lane and CHECK
2
+ * subprocess through env. A missing file throws. */
3
+ export declare function applyConfigOverrideOptions(flags: {
4
+ config?: string;
5
+ constitution?: string;
6
+ }, cwd: string, env?: NodeJS.ProcessEnv): void;
7
+ /** Label of the constitution source a run uses: an override, the committed instance, or repo files / bundled. */
8
+ export declare function constitutionSourceLabel(repoRoot: string): string;
9
+ /** Print and record the sources the run's config and constitution came from; keys only, never values. */
10
+ export declare function reportConfigSource(repoRoot: string, eventsFile: string, issueNum: number): void;
11
+ //# sourceMappingURL=config-override-option.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-override-option.d.ts","sourceRoot":"","sources":["../../src/cli/config-override-option.ts"],"names":[],"mappings":"AAYA;qDACqD;AACrD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAE,EACjD,GAAG,EAAE,MAAM,EACX,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,IAAI,CAUN;AAED,iHAAiH;AACjH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAO/F"}
@@ -0,0 +1,37 @@
1
+ // src/cli/config-override-option.ts — global --config / --constitution flags and the run's config-source report (#3906).
2
+ import { existsSync } from 'node:fs';
3
+ import { join, resolve } from 'node:path';
4
+ import { describeConfigSources, lastRunConfigLadder, logEvent, resolveConstitutionOverride, } from '@on-par/factory-core/internal';
5
+ /** Resolve each set flag to an absolute path and hand it to every command, lane and CHECK
6
+ * subprocess through env. A missing file throws. */
7
+ export function applyConfigOverrideOptions(flags, cwd, env = process.env) {
8
+ const apply = (flag, value, pathVar) => {
9
+ if (value === undefined)
10
+ return;
11
+ const abs = resolve(cwd, value);
12
+ if (!existsSync(abs))
13
+ throw new Error(`${flag}: no such file: ${abs}`);
14
+ env[pathVar] = abs;
15
+ env[`${pathVar}_SOURCE`] = flag;
16
+ };
17
+ apply('--config', flags.config, 'FACTORY_CONFIG_PATH');
18
+ apply('--constitution', flags.constitution, 'FACTORY_CONSTITUTION_PATH');
19
+ }
20
+ /** Label of the constitution source a run uses: an override, the committed instance, or repo files / bundled. */
21
+ export function constitutionSourceLabel(repoRoot) {
22
+ return (resolveConstitutionOverride()?.source ??
23
+ (existsSync(join(repoRoot, '.factory', 'constitution.md'))
24
+ ? '.factory/constitution.md'
25
+ : 'repo instruction files / bundled'));
26
+ }
27
+ /** Print and record the sources the run's config and constitution came from; keys only, never values. */
28
+ export function reportConfigSource(repoRoot, eventsFile, issueNum) {
29
+ const ladder = lastRunConfigLadder();
30
+ if (!ladder)
31
+ return;
32
+ const constitution = constitutionSourceLabel(repoRoot);
33
+ const text = describeConfigSources(ladder, constitution);
34
+ console.log(`factory: ${text}`);
35
+ logEvent(eventsFile, 'config_source', issueNum, text, { level: 'info' });
36
+ }
37
+ //# sourceMappingURL=config-override-option.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-override-option.js","sourceRoot":"","sources":["../../src/cli/config-override-option.ts"],"names":[],"mappings":"AAAA,yHAAyH;AAEzH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,QAAQ,EACR,2BAA2B,GAC5B,MAAM,+BAA+B,CAAC;AAEvC;qDACqD;AACrD,MAAM,UAAU,0BAA0B,CACxC,KAAiD,EACjD,GAAW,EACX,GAAG,GAAsB,OAAO,CAAC,GAAG;IAEpC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAE,KAAyB,EAAE,OAAe,EAAQ,EAAE;QAC/E,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO;QAChC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,mBAAmB,GAAG,EAAE,CAAC,CAAC;QACvE,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC;QACnB,GAAG,CAAC,GAAG,OAAO,SAAS,CAAC,GAAG,IAAI,CAAC;IAClC,CAAC,CAAC;IACF,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACvD,KAAK,CAAC,gBAAgB,EAAE,KAAK,CAAC,YAAY,EAAE,2BAA2B,CAAC,CAAC;AAC3E,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,uBAAuB,CAAC,QAAgB;IACtD,OAAO,CACL,2BAA2B,EAAE,EAAE,MAAM;QACrC,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC;YACxD,CAAC,CAAC,0BAA0B;YAC5B,CAAC,CAAC,kCAAkC,CAAC,CACxC,CAAC;AACJ,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,UAAkB,EAAE,QAAgB;IACvF,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;IACrC,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,IAAI,GAAG,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAChC,QAAQ,CAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { RunConfigLadder } from '@on-par/factory-core/internal';
2
+ import { type DoctorCheck } from './doctor.js';
3
+ export interface DoctorConfigSources {
4
+ config: {
5
+ source: string;
6
+ path?: string;
7
+ overrideKeys: string[];
8
+ };
9
+ constitution: {
10
+ source: string;
11
+ };
12
+ }
13
+ /** The `config sources` row: which config and constitution the run would start from; keys only, never values. */
14
+ export declare function configSourcesCheck(ladder: RunConfigLadder, constitution: string): DoctorCheck;
15
+ export interface HeldDoctorConfig {
16
+ release: () => void;
17
+ check: DoctorCheck;
18
+ sources: DoctorConfigSources | null;
19
+ }
20
+ /** Snapshot the ladder so the config loaders doctor calls see the overrides. A ladder error becomes a
21
+ * failing row and never aborts doctor. */
22
+ export declare function holdDoctorConfigSources(repoRoot: string, configPath: string): HeldDoctorConfig;
23
+ //# sourceMappingURL=doctor-config-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-config-sources.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-config-sources.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAGrE,OAAO,EAAgB,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAClE,YAAY,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAClC;AAED,iHAAiH;AACjH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,GAAG,WAAW,CAO7F;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;IACnB,OAAO,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACrC;AAED;2CAC2C;AAC3C,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,gBAAgB,CAyB9F"}
@@ -0,0 +1,44 @@
1
+ // src/cli/doctor-config-sources.ts — the `config sources` doctor row and `--json` sources field (#3906).
2
+ import { describeConfigSources, holdRunConfigSnapshot, lastRunConfigLadder } from '@on-par/factory-core/internal';
3
+ import { constitutionSourceLabel } from './config-override-option.js';
4
+ import { REPO_SECTION } from './doctor.js';
5
+ /** The `config sources` row: which config and constitution the run would start from; keys only, never values. */
6
+ export function configSourcesCheck(ladder, constitution) {
7
+ return {
8
+ name: 'config sources',
9
+ section: REPO_SECTION,
10
+ ok: true,
11
+ detail: describeConfigSources(ladder, constitution),
12
+ };
13
+ }
14
+ /** Snapshot the ladder so the config loaders doctor calls see the overrides. A ladder error becomes a
15
+ * failing row and never aborts doctor. */
16
+ export function holdDoctorConfigSources(repoRoot, configPath) {
17
+ try {
18
+ const release = holdRunConfigSnapshot(configPath);
19
+ const ladder = lastRunConfigLadder();
20
+ const constitution = constitutionSourceLabel(repoRoot);
21
+ if (!ladder)
22
+ return { release, check: { name: 'config sources', ok: true, detail: 'packaged defaults' }, sources: null };
23
+ const config = { source: ladder.source, overrideKeys: ladder.overrideKeys };
24
+ if (ladder.path !== undefined)
25
+ config.path = ladder.path;
26
+ return {
27
+ release,
28
+ check: configSourcesCheck(ladder, constitution),
29
+ sources: { config, constitution: { source: constitution } },
30
+ };
31
+ }
32
+ catch (err) {
33
+ const detail = err instanceof Error ? err.message : String(err);
34
+ const check = {
35
+ name: 'config sources',
36
+ section: REPO_SECTION,
37
+ ok: false,
38
+ detail,
39
+ fix: 'fix the --config / FACTORY_CONFIG_* / FACTORY_CONSTITUTION* override named above',
40
+ };
41
+ return { release: () => { }, check, sources: null };
42
+ }
43
+ }
44
+ //# sourceMappingURL=doctor-config-sources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"doctor-config-sources.js","sourceRoot":"","sources":["../../src/cli/doctor-config-sources.ts"],"names":[],"mappings":"AAAA,yGAAyG;AAEzG,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAGlH,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAoB,MAAM,aAAa,CAAC;AAO7D,iHAAiH;AACjH,MAAM,UAAU,kBAAkB,CAAC,MAAuB,EAAE,YAAoB;IAC9E,OAAO;QACL,IAAI,EAAE,gBAAgB;QACtB,OAAO,EAAE,YAAY;QACrB,EAAE,EAAE,IAAI;QACR,MAAM,EAAE,qBAAqB,CAAC,MAAM,EAAE,YAAY,CAAC;KACpD,CAAC;AACJ,CAAC;AAQD;2CAC2C;AAC3C,MAAM,UAAU,uBAAuB,CAAC,QAAgB,EAAE,UAAkB;IAC1E,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,mBAAmB,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QACvD,IAAI,CAAC,MAAM;YACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC9G,MAAM,MAAM,GAAkC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3G,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzD,OAAO;YACL,OAAO;YACP,KAAK,EAAE,kBAAkB,CAAC,MAAM,EAAE,YAAY,CAAC;YAC/C,OAAO,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE;SAC5D,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,MAAM,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAChE,MAAM,KAAK,GAAgB;YACzB,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,YAAY;YACrB,EAAE,EAAE,KAAK;YACT,MAAM;YACN,GAAG,EAAE,kFAAkF;SACxF,CAAC;QACF,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACrD,CAAC;AACH,CAAC"}
@@ -19,6 +19,11 @@ export interface ResolvedVerifyCommands {
19
19
  checksProbe?: string;
20
20
  /** The repo config file name shown in fix hints, e.g. `.factory/config.yaml` (#3604). */
21
21
  configFile?: string;
22
+ /** Workspaces whose own test script runs vitest or jest, found through a root fan-out script. */
23
+ testRunners?: {
24
+ dir: string;
25
+ runner: string;
26
+ }[];
22
27
  }
23
28
  /** Asks the CHECK resolvers what CHECK will run, so doctor cannot drift from CHECK. A resolver
24
29
  * failure (for example a malformed package.json) comes back as `error`, never a throw. */
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-verify.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-verify.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6KAA6K;IAC7K,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAiBD;2FAC2F;AAC3F,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAwB7F;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EAAE,EACxB,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACzC,gBAAgB,EAAE,CAEpB;AAoDD;8EAC8E;AAC9E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EAAE;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAC1E,WAAW,EAAE,CA6Bf;AAED,wGAAwG;AACxG,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,WAAW,CAYjF"}
1
+ {"version":3,"file":"doctor-verify.d.ts","sourceRoot":"","sources":["../../src/cli/doctor-verify.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,eAAO,MAAM,cAAc,WAAW,CAAC;AAEvC,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,6KAA6K;IAC7K,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,gBAAgB,EAAE,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sFAAsF;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iGAAiG;IACjG,WAAW,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjD;AAiBD;2FAC2F;AAC3F,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAgC7F;AAED,mFAAmF;AACnF,wBAAgB,eAAe,CAC7B,IAAI,EAAE,gBAAgB,EAAE,EACxB,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,GACzC,gBAAgB,EAAE,CAEpB;AAoDD;8EAC8E;AAC9E,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,sBAAsB,EAChC,IAAI,EAAE;IAAE,YAAY,EAAE,OAAO,CAAC;IAAC,gBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,GAC1E,WAAW,EAAE,CAmCf;AAED,wGAAwG;AACxG,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,WAAW,CAYjF"}
@@ -1,7 +1,8 @@
1
1
  // packages/cli/src/cli/doctor-verify.ts — `factory doctor` Verify section: the build/test/lint commands CHECK will run (#3473)
2
- import { basename } from 'node:path';
2
+ import { readFile } from 'node:fs/promises';
3
+ import { basename, join } from 'node:path';
3
4
  import { getFactoryPaths } from '@on-par/factory-core';
4
- import { describeChecksProbe, resolveCompileCommand, resolveLintCommands, resolveTestsCommand, } from '@on-par/factory-core/internal';
5
+ import { describeChecksProbe, resolveCompileCommand, resolveLintCommands, resolveTestsCommand, resolveWorkspaceTestRunners, } from '@on-par/factory-core/internal';
5
6
  import { MIN_NODE_MAJOR } from '../node-version.js';
6
7
  export const VERIFY_SECTION = 'Verify';
7
8
  const TEST_SOURCES = {
@@ -25,6 +26,14 @@ export async function resolveVerifyCommands(repoRoot) {
25
26
  const build = await resolveCompileCommand(src);
26
27
  const tests = await resolveTestsCommand(src);
27
28
  const lint = await resolveLintCommands(src);
29
+ let testRunners = [];
30
+ try {
31
+ const pkg = JSON.parse(await readFile(join(repoRoot, 'package.json'), 'utf8'));
32
+ testRunners = (await resolveWorkspaceTestRunners(repoRoot, pkg)).map(({ dir, runner }) => ({ dir, runner }));
33
+ }
34
+ catch {
35
+ testRunners = [];
36
+ }
28
37
  return {
29
38
  rows: [
30
39
  build ? rowFor('build', build.argv, build.source) : emptyRow('build'),
@@ -37,6 +46,7 @@ export async function resolveVerifyCommands(repoRoot) {
37
46
  ],
38
47
  checksProbe,
39
48
  configFile,
49
+ ...(testRunners.length > 0 ? { testRunners } : {}),
40
50
  };
41
51
  }
42
52
  catch (err) {
@@ -77,7 +87,7 @@ function missingRow(row, requireTests, probe = DEFAULT_CHECKS_PROBE, configFile
77
87
  section,
78
88
  ok: false,
79
89
  optional: true,
80
- detail: `no build system detected (checks.build in ${probe}, package.json build script, Makefile, Cargo.toml); CHECK skips compile`,
90
+ detail: `no build system detected (checks.build in ${probe}, package.json build or typecheck script, Makefile, Cargo.toml); CHECK skips compile`,
81
91
  fix: 'run `factory init --detect-checks` to declare a build command',
82
92
  };
83
93
  }
@@ -104,7 +114,7 @@ export function verifyCommandChecks(resolved, opts) {
104
114
  },
105
115
  ];
106
116
  }
107
- return resolved.rows.map((row) => {
117
+ const checks = resolved.rows.map((row) => {
108
118
  const { command, source, executable } = row;
109
119
  if (command === null || executable === null)
110
120
  return missingRow(row, opts.requireTests, resolved.checksProbe, resolved.configFile);
@@ -120,6 +130,13 @@ export function verifyCommandChecks(resolved, opts) {
120
130
  fix: `install ${executable} and put it on PATH${executable === 'pwsh' ? ': https://aka.ms/powershell' : ''}`,
121
131
  };
122
132
  });
133
+ if (!resolved.testRunners?.length)
134
+ return checks;
135
+ const detail = [...resolved.testRunners]
136
+ .sort((a, b) => (a.dir < b.dir ? -1 : a.dir > b.dir ? 1 : 0))
137
+ .map((w) => `${w.dir}: ${w.runner}`)
138
+ .join('; ');
139
+ return [...checks, { name: 'verify test runner', section, ok: true, detail }];
123
140
  }
124
141
  /** The npm row: required unless doctor runs in a repo with no package.json (`hasPackageJson` false). */
125
142
  export function npmCheck(available, hasPackageJson) {
@@ -1 +1 @@
1
- {"version":3,"file":"doctor-verify.js","sourceRoot":"","sources":["../../src/cli/doctor-verify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor-verify.js","sourceRoot":"","sources":["../../src/cli/doctor-verify.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../src/cli/doctor.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ import { claudeStoredSessionState, codexChatgptSessionState, hasClaudeLoginEvide
8
8
  import { npmCheck, resolveVerifyCommands, verifyCommandChecks, withPathResults } from './doctor-verify.js';
9
9
  import { configLintChecks, declaredHarnessChecks, linearTrackerChecks, modelsRegistryChecks } from './doctor-config.js';
10
10
  import { failoverProviderChecks } from './doctor-failover-providers.js';
11
+ import { holdDoctorConfigSources } from './doctor-config-sources.js';
11
12
  import { codexSandboxNote } from './doctor-codex-sandbox.js';
12
13
  import { agentMemoryChecks } from './doctor-agent-memory.js';
13
14
  import { factoryIgnoredChecks } from './doctor-factory-ignored.js';
@@ -696,6 +697,7 @@ export async function cmdDoctor(opts, rt) {
696
697
  catch {
697
698
  repoRoot = null;
698
699
  }
700
+ const held = repoRoot === null ? null : holdDoctorConfigSources(repoRoot, getFactoryPaths(repoRoot).config);
699
701
  const harnessView = repoRoot === null ? null : resolveDoctorHarnesses(rt.configLoaders, repoRoot);
700
702
  const repoSandbox = () => repoRoot === null ? undefined : rt.configLoaders.loadFactoryConfigForRepo(getFactoryPaths(repoRoot).config).sandbox;
701
703
  const checks = runDoctorChecks({
@@ -732,6 +734,8 @@ export async function cmdDoctor(opts, rt) {
732
734
  codexSandbox: () => repoSandbox()?.codexSandbox,
733
735
  });
734
736
  checks.push(...failoverProviderChecks(rt, repoRoot));
737
+ if (held)
738
+ checks.push(held.check);
735
739
  // Only with --probe-inference: these send a real prompt (claude, opencode; uses quota). Plain doctor makes no inference call.
736
740
  if (opts.probeInference) {
737
741
  const CLAUDE_AUTH_PROBE = 'claude -p "reply with exactly: ok"';
@@ -890,10 +894,11 @@ export async function cmdDoctor(opts, rt) {
890
894
  const skewRow = clockSkewCheck(skew, maxClockSkewMs);
891
895
  if (skewRow)
892
896
  checks.push(skewRow);
897
+ held?.release();
893
898
  const text = formatDoctorChecks(checks, { inRepo: repoRoot !== null });
894
- console.log(opts.json
895
- ? JSON.stringify({ ok: !doctorFailed(checks), checks, verify: verifyRows, clockSkewMs: skew.measured ? skew.skewMs : null }, null, 2)
896
- : text);
899
+ const clockSkewMs = skew.measured ? skew.skewMs : null;
900
+ const report = { ok: !doctorFailed(checks), checks, verify: verifyRows, clockSkewMs, sources: held?.sources ?? null };
901
+ console.log(opts.json ? JSON.stringify(report, null, 2) : text);
897
902
  if (doctorFailed(checks))
898
903
  process.exit(1);
899
904
  }