@manehorizons/cadence-core 1.7.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/commands/build.d.ts.map +1 -1
- package/dist/cli/commands/build.js +10 -77
- package/dist/cli/commands/build.js.map +1 -1
- package/dist/cli/commands/draft-new.d.ts.map +1 -1
- package/dist/cli/commands/draft-new.js +11 -97
- package/dist/cli/commands/draft-new.js.map +1 -1
- package/dist/cli/commands/draft.d.ts.map +1 -1
- package/dist/cli/commands/draft.js +15 -104
- package/dist/cli/commands/draft.js.map +1 -1
- package/dist/cli/commands/mcp.d.ts +3 -0
- package/dist/cli/commands/mcp.d.ts.map +1 -0
- package/dist/cli/commands/mcp.js +35 -0
- package/dist/cli/commands/mcp.js.map +1 -0
- package/dist/cli/commands/progress.d.ts.map +1 -1
- package/dist/cli/commands/progress.js +5 -13
- package/dist/cli/commands/progress.js.map +1 -1
- package/dist/cli/commands/recommend.d.ts.map +1 -1
- package/dist/cli/commands/recommend.js +5 -15
- package/dist/cli/commands/recommend.js.map +1 -1
- package/dist/cli/commands/settle.d.ts.map +1 -1
- package/dist/cli/commands/settle.js +5 -442
- package/dist/cli/commands/settle.js.map +1 -1
- package/dist/cli/commands/spec.d.ts.map +1 -1
- package/dist/cli/commands/spec.js +19 -197
- package/dist/cli/commands/spec.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +5 -14
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/register.d.ts.map +1 -1
- package/dist/cli/register.js +2 -0
- package/dist/cli/register.js.map +1 -1
- package/dist/mcp/server.d.ts +12 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +42 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +20 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +189 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/services/build-task.d.ts +12 -0
- package/dist/services/build-task.d.ts.map +1 -0
- package/dist/services/build-task.js +78 -0
- package/dist/services/build-task.js.map +1 -0
- package/dist/services/draft-approve.d.ts +14 -0
- package/dist/services/draft-approve.d.ts.map +1 -0
- package/dist/services/draft-approve.js +74 -0
- package/dist/services/draft-approve.js.map +1 -0
- package/dist/services/draft-check.d.ts +10 -0
- package/dist/services/draft-check.d.ts.map +1 -0
- package/dist/services/draft-check.js +47 -0
- package/dist/services/draft-check.js.map +1 -0
- package/dist/services/draft-new.d.ts +14 -0
- package/dist/services/draft-new.d.ts.map +1 -0
- package/dist/services/draft-new.js +98 -0
- package/dist/services/draft-new.js.map +1 -0
- package/dist/services/io.d.ts +39 -0
- package/dist/services/io.d.ts.map +1 -0
- package/dist/services/io.js +36 -0
- package/dist/services/io.js.map +1 -0
- package/dist/services/progress.d.ts +7 -0
- package/dist/services/progress.d.ts.map +1 -0
- package/dist/services/progress.js +21 -0
- package/dist/services/progress.js.map +1 -0
- package/dist/services/recommend.d.ts +9 -0
- package/dist/services/recommend.d.ts.map +1 -0
- package/dist/services/recommend.js +23 -0
- package/dist/services/recommend.js.map +1 -0
- package/dist/services/settle.d.ts +24 -0
- package/dist/services/settle.d.ts.map +1 -0
- package/dist/services/settle.js +366 -0
- package/dist/services/settle.js.map +1 -0
- package/dist/services/spec-approve.d.ts +11 -0
- package/dist/services/spec-approve.d.ts.map +1 -0
- package/dist/services/spec-approve.js +133 -0
- package/dist/services/spec-approve.js.map +1 -0
- package/dist/services/spec-new.d.ts +9 -0
- package/dist/services/spec-new.d.ts.map +1 -0
- package/dist/services/spec-new.js +62 -0
- package/dist/services/spec-new.js.map +1 -0
- package/dist/services/status.d.ts +9 -0
- package/dist/services/status.d.ts.map +1 -0
- package/dist/services/status.js +22 -0
- package/dist/services/status.js.map +1 -0
- package/package.json +3 -2
|
@@ -1,40 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { readFile, stat } from 'node:fs/promises';
|
|
4
|
-
import { existsSync } from 'node:fs';
|
|
5
|
-
import { TaskStatusZ } from '@manehorizons/cadence-types';
|
|
6
|
-
import { parseDraftMd } from '../../parse/draft-parser.js';
|
|
7
|
-
import { renderSummaryMd } from '../../parse/summary-writer.js';
|
|
8
|
-
import { SimpleStateBackend } from '../../state/simple.js';
|
|
9
|
-
import { atomicWriteJSON, atomicWriteText } from '../../state/atomic-write.js';
|
|
10
|
-
import { LoopViolationError } from '../../errors.js';
|
|
11
|
-
import { deriveAcResults } from '../../status.js';
|
|
12
|
-
import { loadConfig } from '../../config/loader.js';
|
|
13
|
-
import { effectiveGateSet } from '../../gates/engine.js';
|
|
14
|
-
import { scanTestCoverage } from '../../verify/coverage.js';
|
|
15
|
-
import { selectVerifier } from '../../verify/factory.js';
|
|
16
|
-
import { resolveEffectiveProvider, MOCK_FALLBACK_BANNER, } from '../../verify/verifier-factory.js';
|
|
17
|
-
import { runSettleGates } from '../../gates/registry.js';
|
|
18
|
-
import { runSkillAuditCheck } from '../../checks/skill-audit.js';
|
|
19
|
-
import { ScriptedPrompter, StdinPrompter } from '../../verify/prompter.js';
|
|
20
|
-
import { selectNotifier } from '../../notify/factory.js';
|
|
21
|
-
import { collectAnomalies } from '../../notify/collect.js';
|
|
22
|
-
import { emitLoopViolation } from '../../notify/loop-violation.js';
|
|
23
|
-
import { selectCodeReviewVerifier } from '../../verify/code-review-factory.js';
|
|
24
|
-
import { emitCodeReviewHigh, emitCodeReviewUnconverged } from '../../notify/code-review.js';
|
|
25
|
-
import { emitSkillAuditMiss } from '../../notify/skill-audit.js';
|
|
26
|
-
import { selectSecurityAuditVerifier } from '../../verify/security-audit-factory.js';
|
|
27
|
-
function parseAcArg(arg) {
|
|
28
|
-
const eqIdx = arg.indexOf('=');
|
|
29
|
-
if (eqIdx === -1)
|
|
30
|
-
throw new Error(`bad --ac syntax: ${arg}`);
|
|
31
|
-
const id = arg.slice(0, eqIdx);
|
|
32
|
-
const rest = arg.slice(eqIdx + 1);
|
|
33
|
-
const colonIdx = rest.indexOf(':');
|
|
34
|
-
const verdict = colonIdx === -1 ? rest : rest.slice(0, colonIdx);
|
|
35
|
-
const note = colonIdx === -1 ? undefined : rest.slice(colonIdx + 1).trim();
|
|
36
|
-
return { id, pass: verdict === 'pass', ...(note ? { note } : {}) };
|
|
37
|
-
}
|
|
1
|
+
import { settleService } from '../../services/settle.js';
|
|
2
|
+
import { processIO } from '../../services/io.js';
|
|
38
3
|
export function registerSettleCommand(program) {
|
|
39
4
|
const cmd = program.command('settle').description('Close the loop');
|
|
40
5
|
cmd
|
|
@@ -56,411 +21,9 @@ export function registerSettleCommand(program) {
|
|
|
56
21
|
.option('--allow-security-audit-failure', 'do not refuse on CRITICAL security-audit findings; record them in SUMMARY and settle anyway (Phase 25.2)')
|
|
57
22
|
.option('--allow-skill-audit-miss', 'do not refuse when required skills were not invoked; emit a warn anomaly (bypassed:true) and settle anyway (Phase 34.1)')
|
|
58
23
|
.action(async (opts) => {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
const state = await backend.readState();
|
|
63
|
-
if (state.loopPosition !== 'BUILD' || !state.activeDraft || !state.activePhase) {
|
|
64
|
-
throw new LoopViolationError('settle run requires loopPosition=BUILD with an active draft', { expected: 'BUILD', actual: state.loopPosition });
|
|
65
|
-
}
|
|
66
|
-
const draftPath = join(cwd, '.cadence/phases', state.activePhase, `${state.activeDraft}-DRAFT.md`);
|
|
67
|
-
const draft = parseDraftMd(await readFile(draftPath, 'utf8'));
|
|
68
|
-
const progPath = join(cwd, '.cadence/phases', state.activePhase, `${state.activeDraft}-PROGRESS.json`);
|
|
69
|
-
const progress = existsSync(progPath)
|
|
70
|
-
? JSON.parse(await readFile(progPath, 'utf8'))
|
|
71
|
-
: { draftId: state.activeDraft, tasks: {} };
|
|
72
|
-
const explicit = (opts.ac ?? []).map(parseAcArg);
|
|
73
|
-
const explicitIds = new Set(explicit.map((a) => a.id));
|
|
74
|
-
// Test-coverage gate: fires when the effective gate set includes
|
|
75
|
-
// 'test-coverage'. Skipped for explicitly-overridden ACs. The flag
|
|
76
|
-
// --allow-missing-coverage is a per-invocation bypass.
|
|
77
|
-
let cadenceConfig = null;
|
|
78
|
-
try {
|
|
79
|
-
cadenceConfig = await loadConfig(cwd);
|
|
80
|
-
}
|
|
81
|
-
catch {
|
|
82
|
-
cadenceConfig = null;
|
|
83
|
-
}
|
|
84
|
-
const gateSet = effectiveGateSet(state, cadenceConfig, draft);
|
|
85
|
-
// Onboarding hardening (phase 48): --deep asks for real verification.
|
|
86
|
-
// If the effective verifier provider is `mock` (the shipped default —
|
|
87
|
-
// `cadence init` writes verifier.provider='mock'), the verdicts are
|
|
88
|
-
// deterministic fakes. Warn loudly so the operator isn't handed false
|
|
89
|
-
// confidence. A configured real provider that downgrades to mock for a
|
|
90
|
-
// missing key already prints the factory's own "falling back to mock"
|
|
91
|
-
// warning, so that path is left to the factory.
|
|
92
|
-
if (opts.deep &&
|
|
93
|
-
resolveEffectiveProvider(cadenceConfig?.verifier).provider === 'mock') {
|
|
94
|
-
process.stderr.write(MOCK_FALLBACK_BANNER + '\n');
|
|
95
|
-
}
|
|
96
|
-
// DESIGN.md §4 M2 — soft cap on auto × complex. Refuse here, before
|
|
97
|
-
// any coverage / interactive / deep work, so wasted effort is avoided.
|
|
98
|
-
// Phase 21.1 wires the locked decision into a live check.
|
|
99
|
-
if (gateSet.softCap && !opts.allowAutoComplex) {
|
|
100
|
-
process.stderr.write('settle run refused: auto × complex is soft-capped (DESIGN.md §4 M2). Pass --allow-auto-complex to override.\n');
|
|
101
|
-
process.exitCode = 1;
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
if (gateSet.softCap && opts.allowAutoComplex) {
|
|
105
|
-
process.stderr.write('settle: --allow-auto-complex set; proceeding past soft cap (auto × complex).\n');
|
|
106
|
-
}
|
|
107
|
-
const touchedFiles = Array.from(new Set(draft.tasks.flatMap((t) => t.files)));
|
|
108
|
-
let coverageMemo;
|
|
109
|
-
let draftMtimeMemo;
|
|
110
|
-
// Lazily select the deep verifier on first use. selectVerifier emits a
|
|
111
|
-
// stderr fallback warning when a non-mock provider lacks credentials;
|
|
112
|
-
// the pre-extraction code only ran it inside the deep-verify block, so
|
|
113
|
-
// selecting eagerly here would surface that warning on runs where
|
|
114
|
-
// deep-verify never fires. Defer it to keep settle bit-identical.
|
|
115
|
-
let deepVerifierMemo;
|
|
116
|
-
let codeReviewVerifierMemo;
|
|
117
|
-
let securityAuditVerifierMemo;
|
|
118
|
-
let diffMemo;
|
|
119
|
-
const codeReviewSidecarPath = join(cwd, '.cadence/phases', state.activePhase, `${state.activeDraft}-CODE-REVIEW.json`);
|
|
120
|
-
const ctx = {
|
|
121
|
-
cwd,
|
|
122
|
-
state,
|
|
123
|
-
draft,
|
|
124
|
-
progress,
|
|
125
|
-
config: cadenceConfig,
|
|
126
|
-
gateSet,
|
|
127
|
-
opts: {
|
|
128
|
-
...(opts.force !== undefined ? { force: opts.force } : {}),
|
|
129
|
-
...(opts.auto !== undefined ? { auto: opts.auto } : {}),
|
|
130
|
-
...(opts.deep !== undefined ? { deep: opts.deep } : {}),
|
|
131
|
-
...(opts.allowMissingCoverage !== undefined
|
|
132
|
-
? { allowMissingCoverage: opts.allowMissingCoverage }
|
|
133
|
-
: {}),
|
|
134
|
-
...(opts.allowVerifierFailure !== undefined
|
|
135
|
-
? { allowVerifierFailure: opts.allowVerifierFailure }
|
|
136
|
-
: {}),
|
|
137
|
-
...(opts.allowStaleDraft !== undefined
|
|
138
|
-
? { allowStaleDraft: opts.allowStaleDraft }
|
|
139
|
-
: {}),
|
|
140
|
-
...(opts.allowOpenTasks !== undefined
|
|
141
|
-
? { allowOpenTasks: opts.allowOpenTasks }
|
|
142
|
-
: {}),
|
|
143
|
-
...(opts.allowFailingBuild !== undefined
|
|
144
|
-
? { allowFailingBuild: opts.allowFailingBuild }
|
|
145
|
-
: {}),
|
|
146
|
-
...(opts.interactive !== undefined
|
|
147
|
-
? { interactive: opts.interactive }
|
|
148
|
-
: {}),
|
|
149
|
-
...(opts.allowCodeReviewFailure !== undefined
|
|
150
|
-
? { allowCodeReviewFailure: opts.allowCodeReviewFailure }
|
|
151
|
-
: {}),
|
|
152
|
-
...(opts.allowSecurityAuditFailure !== undefined
|
|
153
|
-
? { allowSecurityAuditFailure: opts.allowSecurityAuditFailure }
|
|
154
|
-
: {}),
|
|
155
|
-
...(opts.allowSkillAuditMiss !== undefined
|
|
156
|
-
? { allowSkillAuditMiss: opts.allowSkillAuditMiss }
|
|
157
|
-
: {}),
|
|
158
|
-
},
|
|
159
|
-
explicitIds,
|
|
160
|
-
touchedFiles,
|
|
161
|
-
coverage: () => {
|
|
162
|
-
if (!coverageMemo) {
|
|
163
|
-
const globs = cadenceConfig?.verification?.testGlobs;
|
|
164
|
-
coverageMemo = scanTestCoverage(cwd, globs ? { globs } : {});
|
|
165
|
-
}
|
|
166
|
-
return coverageMemo;
|
|
167
|
-
},
|
|
168
|
-
draftMtimeMs: () => {
|
|
169
|
-
if (!draftMtimeMemo) {
|
|
170
|
-
draftMtimeMemo = stat(draftPath)
|
|
171
|
-
.then((s) => s.mtime.getTime())
|
|
172
|
-
.catch(() => null);
|
|
173
|
-
}
|
|
174
|
-
return draftMtimeMemo;
|
|
175
|
-
},
|
|
176
|
-
diff: () => {
|
|
177
|
-
if (diffMemo === undefined) {
|
|
178
|
-
diffMemo = collectDiffForCodeReview(cwd, touchedFiles);
|
|
179
|
-
}
|
|
180
|
-
return diffMemo;
|
|
181
|
-
},
|
|
182
|
-
verifiers: {
|
|
183
|
-
deep: {
|
|
184
|
-
verify: (input) => {
|
|
185
|
-
if (!deepVerifierMemo) {
|
|
186
|
-
deepVerifierMemo = selectVerifier(cadenceConfig);
|
|
187
|
-
}
|
|
188
|
-
return deepVerifierMemo.verify(input);
|
|
189
|
-
},
|
|
190
|
-
},
|
|
191
|
-
codeReview: {
|
|
192
|
-
verify: (input) => {
|
|
193
|
-
if (!codeReviewVerifierMemo) {
|
|
194
|
-
codeReviewVerifierMemo = selectCodeReviewVerifier(cadenceConfig);
|
|
195
|
-
}
|
|
196
|
-
return codeReviewVerifierMemo.verify(input);
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
securityAudit: {
|
|
200
|
-
verify: (input) => {
|
|
201
|
-
if (!securityAuditVerifierMemo) {
|
|
202
|
-
securityAuditVerifierMemo = selectSecurityAuditVerifier(cadenceConfig);
|
|
203
|
-
}
|
|
204
|
-
return securityAuditVerifierMemo.verify(input);
|
|
205
|
-
},
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
emit: {
|
|
209
|
-
anomalies: async (events) => {
|
|
210
|
-
void events;
|
|
211
|
-
},
|
|
212
|
-
codeReviewHigh: (findings, info) => emitCodeReviewHigh(selectNotifier(cadenceConfig), findings, info),
|
|
213
|
-
codeReviewUnconverged: (info) => emitCodeReviewUnconverged(selectNotifier(cadenceConfig), info),
|
|
214
|
-
skillAuditMiss: (payload) => emitSkillAuditMiss(selectNotifier(cadenceConfig), payload),
|
|
215
|
-
},
|
|
216
|
-
runner: {
|
|
217
|
-
test: async () => {
|
|
218
|
-
const command = cadenceConfig?.verification?.testCommand;
|
|
219
|
-
if (!command)
|
|
220
|
-
return { ran: false, ok: true };
|
|
221
|
-
try {
|
|
222
|
-
execSync(command, { cwd, stdio: 'ignore' });
|
|
223
|
-
return { ran: true, ok: true, exitCode: 0, command };
|
|
224
|
-
}
|
|
225
|
-
catch (e) {
|
|
226
|
-
const status = e.status;
|
|
227
|
-
const exitCode = typeof status === 'number' ? status : 1;
|
|
228
|
-
return { ran: true, ok: false, exitCode, command };
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
},
|
|
232
|
-
prompter: {
|
|
233
|
-
create: () => {
|
|
234
|
-
// Test seam: CADENCE_PROMPTER_SCRIPT (newline-separated answers)
|
|
235
|
-
// drives the walker without a real TTY. Else StdinPrompter, which
|
|
236
|
-
// throws on a non-TTY (the gate turns that into a refusal).
|
|
237
|
-
const scripted = process.env.CADENCE_PROMPTER_SCRIPT;
|
|
238
|
-
if (scripted !== undefined) {
|
|
239
|
-
const answers = scripted.split('\n').filter((s) => s.length > 0 || s === '');
|
|
240
|
-
return new ScriptedPrompter(answers);
|
|
241
|
-
}
|
|
242
|
-
return new StdinPrompter();
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
codeReviewSidecar: {
|
|
246
|
-
read: async () => {
|
|
247
|
-
// Absent / corrupt / legacy-without-`attempts` → {0, []}.
|
|
248
|
-
if (!existsSync(codeReviewSidecarPath)) {
|
|
249
|
-
return { attemptsSoFar: 0, history: [] };
|
|
250
|
-
}
|
|
251
|
-
try {
|
|
252
|
-
const prior = JSON.parse(await readFile(codeReviewSidecarPath, 'utf8'));
|
|
253
|
-
return {
|
|
254
|
-
attemptsSoFar: typeof prior.attempts === 'number' ? prior.attempts : 0,
|
|
255
|
-
history: Array.isArray(prior.history) ? prior.history : [],
|
|
256
|
-
};
|
|
257
|
-
}
|
|
258
|
-
catch {
|
|
259
|
-
return { attemptsSoFar: 0, history: [] };
|
|
260
|
-
}
|
|
261
|
-
},
|
|
262
|
-
write: (text) => atomicWriteText(codeReviewSidecarPath, text),
|
|
263
|
-
},
|
|
264
|
-
io: { err: (s) => process.stderr.write(s) },
|
|
265
|
-
};
|
|
266
|
-
// Phase 44.1 — the settle gate sequence is now engine-driven: the
|
|
267
|
-
// registry's GATE_ORDER (≠ matrix order) drives dispatch, each gate
|
|
268
|
-
// membership-guarded (or self-guarded for deep-verify/interactive-verdict),
|
|
269
|
-
// first-refuse halts. Replaces the former hand-wired if-includes ladder;
|
|
270
|
-
// bit-identical. checks/ modules (skill-audit, boundary) + anomaly-notify
|
|
271
|
-
// stay explicitly dispatched below, outside the registry.
|
|
272
|
-
const { acc, refused } = await runSettleGates(ctx);
|
|
273
|
-
if (refused) {
|
|
274
|
-
process.exitCode = 1;
|
|
275
|
-
return;
|
|
276
|
-
}
|
|
277
|
-
const coverageBypassed = acc.flags.coverageBypassed === true;
|
|
278
|
-
// `interactiveRequested` is read by the AC-merge finalizer below (not by
|
|
279
|
-
// gate dispatch), so it stays a settle local — the documented seam
|
|
280
|
-
// between the interactive gate and the finalizer. Mirrors the gate's own
|
|
281
|
-
// --interactive OR membership('interactive-verdict') trigger.
|
|
282
|
-
const interactiveRequested = opts.interactive === true ||
|
|
283
|
-
(opts.interactive !== false &&
|
|
284
|
-
gateSet.gates.includes('interactive-verdict'));
|
|
285
|
-
const interactiveVerify = acc.interactiveVerify;
|
|
286
|
-
const deepVerify = acc.deepVerify;
|
|
287
|
-
const verifierFailure = acc.flags.verifierFailure;
|
|
288
|
-
const codeReviewFindings = acc.codeReview;
|
|
289
|
-
const securityAuditFindings = acc.securityAudit;
|
|
290
|
-
// ACs covered by an explicit `--ac` OR an interactive verdict are
|
|
291
|
-
// excluded from auto-derivation refusal (the user verdicted them).
|
|
292
|
-
const interactiveIds = new Set(interactiveVerify ? Object.keys(interactiveVerify) : []);
|
|
293
|
-
const userVerdictedIds = new Set([...explicitIds, ...interactiveIds]);
|
|
294
|
-
let acResults = [...explicit];
|
|
295
|
-
// Merge interactive verdicts into acResults (override structural derivation).
|
|
296
|
-
if (interactiveVerify) {
|
|
297
|
-
for (const [id, v] of Object.entries(interactiveVerify)) {
|
|
298
|
-
if (explicitIds.has(id))
|
|
299
|
-
continue; // explicit --ac wins over interactive
|
|
300
|
-
acResults.push({
|
|
301
|
-
id,
|
|
302
|
-
pass: v.verdict === 'pass',
|
|
303
|
-
...(v.note ? { note: v.note } : {}),
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
// Phase 29.8 T4 — when the interactive walker ran, ACs the user
|
|
308
|
-
// skipped or never verdicted must still fall through to structural
|
|
309
|
-
// derivation (the walker promises "Skip falls through to other
|
|
310
|
-
// gates"). Previously this only happened under `--auto`, so
|
|
311
|
-
// `settle run --interactive` alone silently settled incomplete ACs.
|
|
312
|
-
if (opts.auto || interactiveRequested) {
|
|
313
|
-
const derived = deriveAcResults(draft, progress);
|
|
314
|
-
const offenders = derived.filter((d) => d.verdict !== 'pass' && !userVerdictedIds.has(d.id));
|
|
315
|
-
if (offenders.length > 0 && !opts.force) {
|
|
316
|
-
for (const o of offenders) {
|
|
317
|
-
const tasks = o.blockers.length > 0 ? ` (tasks: ${o.blockers.join(', ')})` : '';
|
|
318
|
-
process.stderr.write(`auto: ${o.id} ${o.verdict}${tasks}\n`);
|
|
319
|
-
}
|
|
320
|
-
process.stderr.write('settle run --auto refused: complete the blocking tasks or rerun with --force.\n');
|
|
321
|
-
process.exitCode = 1;
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
const merged = [...acResults];
|
|
325
|
-
for (const d of derived) {
|
|
326
|
-
if (userVerdictedIds.has(d.id))
|
|
327
|
-
continue;
|
|
328
|
-
if (d.verdict === 'pass') {
|
|
329
|
-
merged.push({ id: d.id, pass: true });
|
|
330
|
-
}
|
|
331
|
-
else if (d.verdict === 'blocked') {
|
|
332
|
-
merged.push({
|
|
333
|
-
id: d.id,
|
|
334
|
-
pass: false,
|
|
335
|
-
note: `auto: ${d.blockers.join(', ')} blocked`,
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
else if (d.verdict === 'needs-context') {
|
|
339
|
-
merged.push({
|
|
340
|
-
id: d.id,
|
|
341
|
-
pass: false,
|
|
342
|
-
note: `auto: ${d.blockers.join(', ')} needs context`,
|
|
343
|
-
});
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
346
|
-
merged.push({
|
|
347
|
-
id: d.id,
|
|
348
|
-
pass: false,
|
|
349
|
-
note: d.blockers.length > 0
|
|
350
|
-
? `auto: ${d.blockers.join(', ')} incomplete`
|
|
351
|
-
: 'auto: no linked tasks',
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
acResults = merged;
|
|
356
|
-
}
|
|
357
|
-
// Anomaly notify (Phase 17) — fires only when 'anomaly-notify' is in
|
|
358
|
-
// the gate set. Notifier failures degrade to a stderr warning; they
|
|
359
|
-
// never block settle.
|
|
360
|
-
if (gateSet.gates.includes('anomaly-notify')) {
|
|
361
|
-
const anomalies = collectAnomalies({
|
|
362
|
-
draft,
|
|
363
|
-
progress,
|
|
364
|
-
coverageBypassed,
|
|
365
|
-
force: opts.force === true,
|
|
366
|
-
root: cwd,
|
|
367
|
-
...(deepVerify ? { deepVerify } : {}),
|
|
368
|
-
...(interactiveVerify ? { interactiveVerify } : {}),
|
|
369
|
-
...(verifierFailure ? { verifierFailure } : {}),
|
|
370
|
-
});
|
|
371
|
-
if (anomalies.length > 0) {
|
|
372
|
-
const notifier = selectNotifier(cadenceConfig);
|
|
373
|
-
try {
|
|
374
|
-
await notifier.notify(anomalies);
|
|
375
|
-
}
|
|
376
|
-
catch (err) {
|
|
377
|
-
const msg = err instanceof Error ? err.message : String(err);
|
|
378
|
-
process.stderr.write(`notify: ${notifier.name} transport failed — ${msg} (continuing)\n`);
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
// Required-skill enforcement (Phase 34.1 — ROADMAP 23.4). A checks/
|
|
383
|
-
// anomaly check, NOT a gates/engine.ts matrix cell (declaring skills IS
|
|
384
|
-
// the opt-in) — dispatched explicitly here, OUTSIDE the Phase 44.1
|
|
385
|
-
// registry. The check returns the effective required set; settle records
|
|
386
|
-
// it on state.skillAudit.required (truthful SUMMARY) on every non-refuse
|
|
387
|
-
// path — including the null-config / empty / telemetry-off skips. A
|
|
388
|
-
// refuse halts settle before SUMMARY, unchanged.
|
|
389
|
-
{
|
|
390
|
-
const res = await runSkillAuditCheck(ctx);
|
|
391
|
-
if (res.outcome === 'refuse') {
|
|
392
|
-
process.exitCode = 1;
|
|
393
|
-
return;
|
|
394
|
-
}
|
|
395
|
-
state.skillAudit.required = res.effectiveRequired;
|
|
396
|
-
}
|
|
397
|
-
const summary = {
|
|
398
|
-
schemaVersion: 1,
|
|
399
|
-
draftId: state.activeDraft,
|
|
400
|
-
completedAt: new Date().toISOString(),
|
|
401
|
-
acResults,
|
|
402
|
-
taskResults: draft.tasks.map((t) => ({
|
|
403
|
-
id: t.id,
|
|
404
|
-
status: (TaskStatusZ.safeParse(progress.tasks[t.id]?.status).success
|
|
405
|
-
? progress.tasks[t.id].status
|
|
406
|
-
: 'BLOCKED'),
|
|
407
|
-
notes: progress.tasks[t.id]?.notes ?? '',
|
|
408
|
-
})),
|
|
409
|
-
decisions: [],
|
|
410
|
-
deferred: [],
|
|
411
|
-
skillAudit: state.skillAudit,
|
|
412
|
-
...(deepVerify ? { deepVerify } : {}),
|
|
413
|
-
...(interactiveVerify ? { interactiveVerify } : {}),
|
|
414
|
-
...(codeReviewFindings ? { codeReview: codeReviewFindings } : {}),
|
|
415
|
-
...(securityAuditFindings
|
|
416
|
-
? { securityAudit: securityAuditFindings }
|
|
417
|
-
: {}),
|
|
418
|
-
};
|
|
419
|
-
const summaryBase = join(cwd, '.cadence/phases', state.activePhase, `${state.activeDraft}-SUMMARY`);
|
|
420
|
-
await atomicWriteJSON(`${summaryBase}.json`, summary);
|
|
421
|
-
await atomicWriteText(`${summaryBase}.md`, renderSummaryMd(summary));
|
|
422
|
-
const draftId = state.activeDraft;
|
|
423
|
-
state.openDrafts = state.openDrafts.filter((d) => d.id !== draftId);
|
|
424
|
-
state.activeDraft = null;
|
|
425
|
-
state.activeTask = null;
|
|
426
|
-
state.loopPosition = 'IDLE';
|
|
427
|
-
state.tier = null;
|
|
428
|
-
await backend.commit(state);
|
|
429
|
-
console.log(`Settled ${draftId}`);
|
|
430
|
-
}
|
|
431
|
-
catch (err) {
|
|
432
|
-
process.stderr.write(`settle run failed: ${err instanceof Error ? err.message : String(err)}\n`);
|
|
433
|
-
if (err instanceof LoopViolationError) {
|
|
434
|
-
await emitLoopViolation(process.cwd(), err, 'settle.run');
|
|
435
|
-
}
|
|
436
|
-
process.exitCode = 1;
|
|
437
|
-
}
|
|
24
|
+
const { exitCode } = await settleService(process.cwd(), opts, processIO());
|
|
25
|
+
if (exitCode)
|
|
26
|
+
process.exitCode = exitCode;
|
|
438
27
|
});
|
|
439
28
|
}
|
|
440
|
-
/**
|
|
441
|
-
* `git diff --no-color HEAD -- <files>` via execSync. Returns empty
|
|
442
|
-
* string on any error (non-git workdir, no diff, exec failure).
|
|
443
|
-
* Mirrors the Phase 24.2 build.ts diff collector.
|
|
444
|
-
*/
|
|
445
|
-
function collectDiffForCodeReview(cwd, files) {
|
|
446
|
-
if (files.length === 0)
|
|
447
|
-
return '';
|
|
448
|
-
try {
|
|
449
|
-
const args = ['diff', '--no-color', 'HEAD', '--', ...files];
|
|
450
|
-
return execSync(`git ${args.map(shellQuote).join(' ')}`, {
|
|
451
|
-
cwd,
|
|
452
|
-
encoding: 'utf8',
|
|
453
|
-
stdio: ['ignore', 'pipe', 'ignore'],
|
|
454
|
-
maxBuffer: 16 * 1024 * 1024,
|
|
455
|
-
});
|
|
456
|
-
}
|
|
457
|
-
catch {
|
|
458
|
-
return '';
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
function shellQuote(arg) {
|
|
462
|
-
if (/^[A-Za-z0-9._/=:@+-]+$/.test(arg))
|
|
463
|
-
return arg;
|
|
464
|
-
return `"${arg.replace(/(["\\$`])/g, '\\$1')}"`;
|
|
465
|
-
}
|
|
466
29
|
//# sourceMappingURL=settle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settle.js","sourceRoot":"","sources":["../../../src/cli/commands/settle.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settle.js","sourceRoot":"","sources":["../../../src/cli/commands/settle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAmB,MAAM,0BAA0B,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEjD,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAEpE,GAAG;SACA,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,+CAA+C,CAAC;SAC5D,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;SACxE,MAAM,CAAC,QAAQ,EAAE,kEAAkE,CAAC;SACpF,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;SAC3E,MAAM,CACL,0BAA0B,EAC1B,yEAAyE,CAC1E;SACA,MAAM,CACL,QAAQ,EACR,oFAAoF,CACrF;SACA,MAAM,CACL,0BAA0B,EAC1B,mGAAmG,CACpG;SACA,MAAM,CACL,eAAe,EACf,0EAA0E,CAC3E;SACA,MAAM,CACL,kBAAkB,EAClB,iFAAiF,CAClF;SACA,MAAM,CACL,sBAAsB,EACtB,0EAA0E,CAC3E;SACA,MAAM,CACL,qBAAqB,EACrB,8EAA8E,CAC/E;SACA,MAAM,CACL,oBAAoB,EACpB,8FAA8F,CAC/F;SACA,MAAM,CACL,uBAAuB,EACvB,uFAAuF,CACxF;SACA,MAAM,CACL,6BAA6B,EAC7B,oHAAoH,CACrH;SACA,MAAM,CACL,gCAAgC,EAChC,0GAA0G,CAC3G;SACA,MAAM,CACL,0BAA0B,EAC1B,yHAAyH,CAC1H;SACA,MAAM,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;QACjC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC3E,IAAI,QAAQ;YAAE,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"spec.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/spec.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOzC;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmE1D"}
|