@llm-dev-ops/agentics-cli 2.7.1 → 2.7.2
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/pipeline/auto-chain.d.ts +28 -2
- package/dist/pipeline/auto-chain.d.ts.map +1 -1
- package/dist/pipeline/auto-chain.js +66 -4
- package/dist/pipeline/auto-chain.js.map +1 -1
- package/dist/pipeline/enterprise/agent-error-capture.d.ts +76 -0
- package/dist/pipeline/enterprise/agent-error-capture.d.ts.map +1 -0
- package/dist/pipeline/enterprise/agent-error-capture.js +141 -0
- package/dist/pipeline/enterprise/agent-error-capture.js.map +1 -0
- package/dist/pipeline/enterprise/pass-executor.d.ts.map +1 -1
- package/dist/pipeline/enterprise/pass-executor.js +52 -0
- package/dist/pipeline/enterprise/pass-executor.js.map +1 -1
- package/dist/pipeline/enterprise/pipeline-orchestrator.d.ts.map +1 -1
- package/dist/pipeline/enterprise/pipeline-orchestrator.js +15 -0
- package/dist/pipeline/enterprise/pipeline-orchestrator.js.map +1 -1
- package/dist/pipeline/enterprise/types.d.ts +21 -0
- package/dist/pipeline/enterprise/types.d.ts.map +1 -1
- package/dist/pipeline/gate/feature-flags.d.ts +30 -0
- package/dist/pipeline/gate/feature-flags.d.ts.map +1 -0
- package/dist/pipeline/gate/feature-flags.js +37 -0
- package/dist/pipeline/gate/feature-flags.js.map +1 -0
- package/dist/pipeline/gate/phase-dependency-gate.d.ts +86 -0
- package/dist/pipeline/gate/phase-dependency-gate.d.ts.map +1 -1
- package/dist/pipeline/gate/phase-dependency-gate.js +263 -41
- package/dist/pipeline/gate/phase-dependency-gate.js.map +1 -1
- package/dist/pipeline/local-fallback/phase1-consensus-reader.d.ts +33 -0
- package/dist/pipeline/local-fallback/phase1-consensus-reader.d.ts.map +1 -0
- package/dist/pipeline/local-fallback/phase1-consensus-reader.js +99 -0
- package/dist/pipeline/local-fallback/phase1-consensus-reader.js.map +1 -0
- package/dist/pipeline/local-fallback/phase3-local-fallback.d.ts +26 -0
- package/dist/pipeline/local-fallback/phase3-local-fallback.d.ts.map +1 -0
- package/dist/pipeline/local-fallback/phase3-local-fallback.js +127 -0
- package/dist/pipeline/local-fallback/phase3-local-fallback.js.map +1 -0
- package/dist/pipeline/local-fallback/phase4-local-fallback.d.ts +21 -0
- package/dist/pipeline/local-fallback/phase4-local-fallback.d.ts.map +1 -0
- package/dist/pipeline/local-fallback/phase4-local-fallback.js +240 -0
- package/dist/pipeline/local-fallback/phase4-local-fallback.js.map +1 -0
- package/dist/pipeline/local-fallback/phase5a-local-fallback.d.ts +28 -0
- package/dist/pipeline/local-fallback/phase5a-local-fallback.d.ts.map +1 -0
- package/dist/pipeline/local-fallback/phase5a-local-fallback.js +166 -0
- package/dist/pipeline/local-fallback/phase5a-local-fallback.js.map +1 -0
- package/dist/pipeline/phases/prompt-generator.d.ts.map +1 -1
- package/dist/pipeline/phases/prompt-generator.js +209 -1
- package/dist/pipeline/phases/prompt-generator.js.map +1 -1
- package/dist/pipeline/ruflo-phase-executor.d.ts +8 -28
- package/dist/pipeline/ruflo-phase-executor.d.ts.map +1 -1
- package/dist/pipeline/ruflo-phase-executor.js +87 -0
- package/dist/pipeline/ruflo-phase-executor.js.map +1 -1
- package/dist/pipeline/swarm-orchestrator.d.ts +47 -0
- package/dist/pipeline/swarm-orchestrator.d.ts.map +1 -1
- package/dist/pipeline/swarm-orchestrator.js +130 -3
- package/dist/pipeline/swarm-orchestrator.js.map +1 -1
- package/package.json +1 -1
|
@@ -58,6 +58,57 @@ export interface BlockedPhase {
|
|
|
58
58
|
readonly phase: PhaseId;
|
|
59
59
|
readonly missing: ReadonlyArray<string>;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* ADR-PIPELINE-094 Decision 5 — per-input check entry in `gate-decision-log.json`.
|
|
63
|
+
* Captures both the logical path declared in `PHASE_DEPENDENCIES` and the
|
|
64
|
+
* physical path the gate actually inspected (after `resolvePhasePath`). The
|
|
65
|
+
* pair is the smoking gun for path-resolution defects like the originating
|
|
66
|
+
* `4ed715bf` cascade.
|
|
67
|
+
*/
|
|
68
|
+
export interface CheckedInput {
|
|
69
|
+
/** Path as declared in PHASE_DEPENDENCIES (logical/relative). */
|
|
70
|
+
readonly logical_path: string;
|
|
71
|
+
/** Absolute path the gate inspected on disk. */
|
|
72
|
+
readonly resolved_path: string;
|
|
73
|
+
readonly exists: boolean;
|
|
74
|
+
readonly size_bytes: number;
|
|
75
|
+
readonly is_error_stub: boolean;
|
|
76
|
+
readonly satisfies: boolean;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* ADR-PIPELINE-094 Decision 5 — Ruflo-invocation entry in
|
|
80
|
+
* `gate-decision-log.json`. Mirrors the executor's tier and reason fields
|
|
81
|
+
* so downstream RCA tools can read provenance without parsing log lines.
|
|
82
|
+
*/
|
|
83
|
+
export interface RufloInvocationLog {
|
|
84
|
+
readonly phase: PhaseId;
|
|
85
|
+
readonly tier: string;
|
|
86
|
+
readonly reason: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* ADR-PIPELINE-094 Decision 5 — machine-readable per-phase gate decision.
|
|
90
|
+
* Written to `<runDir>/<phaseDirname>/gate-decision-log.json` for every
|
|
91
|
+
* gate invocation. Replaces text-only `[GATE]` log lines as the source of
|
|
92
|
+
* truth for the `agentics-status` MCP tool and post-run RCA.
|
|
93
|
+
*/
|
|
94
|
+
export interface GateDecisionLog {
|
|
95
|
+
readonly phaseId: PhaseId;
|
|
96
|
+
readonly trace_id: string;
|
|
97
|
+
readonly timestamp: string;
|
|
98
|
+
readonly checked_inputs: ReadonlyArray<CheckedInput>;
|
|
99
|
+
readonly ruflo_invoked: ReadonlyArray<RufloInvocationLog>;
|
|
100
|
+
readonly verdict: 'ok' | 'blocked';
|
|
101
|
+
readonly still_missing: ReadonlyArray<string>;
|
|
102
|
+
readonly decision_ms: number;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* ADR-PIPELINE-094 Decision 5 — maps gate `PhaseId` to the per-phase output
|
|
106
|
+
* directory under `runDir`. Used to write `gate-decision-log.json` to the
|
|
107
|
+
* canonical location the auto-chain coordinator writes its other artifacts
|
|
108
|
+
* to. Phase 5a/5b compose into the parent `phase5/` tree but get their own
|
|
109
|
+
* subdir so the log file does not collide.
|
|
110
|
+
*/
|
|
111
|
+
export declare const PHASE_DIRNAME: Readonly<Record<PhaseId, string>>;
|
|
61
112
|
/** Per-phase required/optional inputs, hard-coded from the ADR DAG table. */
|
|
62
113
|
export declare const PHASE_DEPENDENCIES: Readonly<Record<PhaseId, PhaseDependency>>;
|
|
63
114
|
/**
|
|
@@ -90,4 +141,39 @@ export declare function determineBlockedPhases(results: ReadonlyArray<{
|
|
|
90
141
|
* outcome. Never throws.
|
|
91
142
|
*/
|
|
92
143
|
export declare function gatePhaseInputs(phaseId: PhaseId, opts: GateOptions): Promise<GateResult>;
|
|
144
|
+
/**
|
|
145
|
+
* Resolves a logical phase path (as declared in `PHASE_DEPENDENCIES`) to one
|
|
146
|
+
* or more absolute candidate paths under `runDir`, in priority order.
|
|
147
|
+
*
|
|
148
|
+
* Phase 1 writes its outputs flat to `<runDir>/<file>` (see
|
|
149
|
+
* `swarm-orchestrator.ts:1831,2222,2229,2249,2252`), but the gate's
|
|
150
|
+
* dependency table refers to them with a `phase1/` prefix for dependency-DAG
|
|
151
|
+
* clarity. Pre-094 the gate joined the relative path to `runDir` literally
|
|
152
|
+
* and looked at `<runDir>/phase1/<file>`, which never exists in production —
|
|
153
|
+
* the false-negative cascade documented in the originating run.
|
|
154
|
+
*
|
|
155
|
+
* Resolution rules:
|
|
156
|
+
* - `phase1/X` → first try `<runDir>/X` (production, flat layout); if the
|
|
157
|
+
* caller's existence check fails there, fall through to
|
|
158
|
+
* `<runDir>/phase1/X` (test fixtures and any future subdir layout).
|
|
159
|
+
* - All other prefixes resolve unchanged: `<runDir>/<relPath>`.
|
|
160
|
+
*
|
|
161
|
+
* Returns at least one candidate. Callers iterate in order and accept the
|
|
162
|
+
* first candidate that satisfies their predicate.
|
|
163
|
+
*
|
|
164
|
+
* Exported for unit tests and for any future code that needs to resolve a
|
|
165
|
+
* declared dependency path to its physical location. This is the SINGLE place
|
|
166
|
+
* the logical→physical mapping lives.
|
|
167
|
+
*/
|
|
168
|
+
export declare function resolvePhasePath(runDir: string, relPath: string): string[];
|
|
169
|
+
/**
|
|
170
|
+
* Writes `<runDir>/<phaseDirname>/gate-decision-log.json` for the given
|
|
171
|
+
* decision. Best-effort: never throws; on filesystem error, logs to stderr
|
|
172
|
+
* and returns. The text `[GATE]` log lines continue alongside this for
|
|
173
|
+
* human readability — the JSON is the machine-readable surface.
|
|
174
|
+
*
|
|
175
|
+
* Exported for unit tests. Production callers go through `gatePhaseInputs`
|
|
176
|
+
* which invokes this internally after computing its verdict.
|
|
177
|
+
*/
|
|
178
|
+
export declare function writeGateDecisionLog(runDir: string, log: GateDecisionLog): void;
|
|
93
179
|
//# sourceMappingURL=phase-dependency-gate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-dependency-gate.d.ts","sourceRoot":"","sources":["../../../src/pipeline/gate/phase-dependency-gate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,EACL,wBAAwB,IAAI,4BAA4B,EACxD,mBAAmB,IAAI,uBAAuB,EAC9C,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAE3B,MAAM,4BAA4B,CAAC;AAMpC,iDAAiD;AACjD,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,cAAc,GACd,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB,+EAA+E;AAC/E,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACjC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACtC,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,+CAA+C;AAC/C,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IAChD,wEAAwE;IACxE,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC1C;AAED,8BAA8B;AAC9B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC;IACrB,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,mEAAmE;IACnE,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9C,yEAAyE;IACzE,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CAC9C;AAED,6EAA6E;AAC7E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,uFAAuF;IACvF,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,6EAA6E;IAC7E,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,4BAA4B,CAAC;IACxE,wEAAwE;IACxE,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,uBAAuB,CAAC;CAC/D;AAED,mFAAmF;AACnF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;CACzC;
|
|
1
|
+
{"version":3,"file":"phase-dependency-gate.d.ts","sourceRoot":"","sources":["../../../src/pipeline/gate/phase-dependency-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,20 @@
|
|
|
16
16
|
import * as fs from 'node:fs';
|
|
17
17
|
import * as path from 'node:path';
|
|
18
18
|
import { runPrimaryPhaseExecution as runPrimaryPhaseExecutionImpl, } from '../ruflo-phase-executor.js';
|
|
19
|
+
/**
|
|
20
|
+
* ADR-PIPELINE-094 Decision 5 — maps gate `PhaseId` to the per-phase output
|
|
21
|
+
* directory under `runDir`. Used to write `gate-decision-log.json` to the
|
|
22
|
+
* canonical location the auto-chain coordinator writes its other artifacts
|
|
23
|
+
* to. Phase 5a/5b compose into the parent `phase5/` tree but get their own
|
|
24
|
+
* subdir so the log file does not collide.
|
|
25
|
+
*/
|
|
26
|
+
export const PHASE_DIRNAME = {
|
|
27
|
+
phase2: 'phase2',
|
|
28
|
+
'phase3-sparc': 'phase3',
|
|
29
|
+
'phase4-adrs-ddd': 'phase4',
|
|
30
|
+
'phase5a-prompts': 'phase5a',
|
|
31
|
+
'phase5b-scaffold': 'phase5b',
|
|
32
|
+
};
|
|
19
33
|
// ============================================================================
|
|
20
34
|
// Static dependency table (ADR-PIPELINE-093 Decision Rule 1)
|
|
21
35
|
// ============================================================================
|
|
@@ -71,6 +85,9 @@ export const PHASE_DEPENDENCIES = {
|
|
|
71
85
|
paths: [
|
|
72
86
|
'phase3/sparc/specification.md',
|
|
73
87
|
'engineering/sparc-specification.md',
|
|
88
|
+
// ADR-PIPELINE-094 Decision 2 — Phase-1 fallback: when no SPARC chain
|
|
89
|
+
// exists, the prompt generator runs off Phase-1 simulator consensus.
|
|
90
|
+
'phase1/decision-memo.md',
|
|
74
91
|
],
|
|
75
92
|
},
|
|
76
93
|
{
|
|
@@ -79,6 +96,11 @@ export const PHASE_DEPENDENCIES = {
|
|
|
79
96
|
'phase4/adrs/*.md',
|
|
80
97
|
'phase4/ddd/bounded-contexts.json',
|
|
81
98
|
'engineering/architecture-decisions.md',
|
|
99
|
+
// ADR-PIPELINE-094 Decision 2 — Phase-1 fallback: scenario.json and
|
|
100
|
+
// decision-memo.md from Phase 1 are the always-present consensus
|
|
101
|
+
// outputs we can always degrade to.
|
|
102
|
+
'phase1/decision-memo.md',
|
|
103
|
+
'phase1/scenario.json',
|
|
82
104
|
],
|
|
83
105
|
},
|
|
84
106
|
],
|
|
@@ -86,8 +108,16 @@ export const PHASE_DEPENDENCIES = {
|
|
|
86
108
|
},
|
|
87
109
|
'phase5b-scaffold': {
|
|
88
110
|
phaseId: 'phase5b-scaffold',
|
|
89
|
-
required: [
|
|
90
|
-
|
|
111
|
+
required: [
|
|
112
|
+
{ kind: 'file', paths: ['phase1/manifest.json'] },
|
|
113
|
+
// ADR-PIPELINE-094 Decision 3 — Phase 5b hard-blocks on the Phase 5a
|
|
114
|
+
// execution plan. Without a concrete unit-of-work the build phase has
|
|
115
|
+
// nothing to do and previously fanned out ~76 cloud agents that all
|
|
116
|
+
// timed out. minBytes:50 keeps the threshold below MIN_BYTES_DEFAULT
|
|
117
|
+
// because a minimal valid execution-plan.json with one entry is small.
|
|
118
|
+
{ kind: 'file', paths: ['phase5a/execution-plan.json'], minBytes: 50 },
|
|
119
|
+
],
|
|
120
|
+
optional: ['phase4/adrs/*.md'],
|
|
91
121
|
},
|
|
92
122
|
};
|
|
93
123
|
// ============================================================================
|
|
@@ -179,17 +209,39 @@ export function determineBlockedPhases(results) {
|
|
|
179
209
|
* outcome. Never throws.
|
|
180
210
|
*/
|
|
181
211
|
export async function gatePhaseInputs(phaseId, opts) {
|
|
212
|
+
const tStart = Date.now();
|
|
182
213
|
const dep = PHASE_DEPENDENCIES[phaseId];
|
|
183
214
|
const maxRetries = opts.maxRetriesPerInput ?? 1;
|
|
184
215
|
const runPrimary = opts.runPrimaryPhaseExecution ?? runPrimaryPhaseExecutionImpl;
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
216
|
+
const traceId = opts.dossier.traceId ?? 'unknown';
|
|
217
|
+
// ADR-094 Decision 5 — accumulate the rich invocation log for
|
|
218
|
+
// gate-decision-log.json. Ruflo invocations get one entry per attempt with
|
|
219
|
+
// tier and reason, even when the attempt succeeded.
|
|
220
|
+
const rufloLog = [];
|
|
221
|
+
const finalize = (verdict, initialChecks, finalChecks, stillMissing) => {
|
|
222
|
+
// Prefer the second pass when Ruflo was invoked — it reflects the gate's
|
|
223
|
+
// final decision. Otherwise the first pass is the only check we did.
|
|
224
|
+
const checked = finalChecks.length > 0 ? finalChecks : initialChecks;
|
|
225
|
+
writeGateDecisionLog(opts.runDir, {
|
|
226
|
+
phaseId,
|
|
227
|
+
trace_id: traceId,
|
|
228
|
+
timestamp: new Date().toISOString(),
|
|
229
|
+
checked_inputs: checked,
|
|
230
|
+
ruflo_invoked: rufloLog,
|
|
231
|
+
verdict,
|
|
232
|
+
still_missing: stillMissing,
|
|
233
|
+
decision_ms: Date.now() - tStart,
|
|
234
|
+
});
|
|
235
|
+
};
|
|
236
|
+
// First pass — collect failures and per-input details.
|
|
237
|
+
const firstPass = collectMissingPathsWithDetail(opts.runDir, dep.required);
|
|
238
|
+
if (firstPass.missing.length === 0) {
|
|
239
|
+
finalize('ok', firstPass.checked, [], []);
|
|
188
240
|
return { ok: true, missing: [], ruflo_invoked: [], stillMissing: [] };
|
|
189
241
|
}
|
|
190
242
|
// Determine which upstream phases own the failed inputs.
|
|
191
243
|
const upstreamPhases = new Set();
|
|
192
|
-
for (const failedPath of
|
|
244
|
+
for (const failedPath of firstPass.missing) {
|
|
193
245
|
const owner = resolveOwner(failedPath);
|
|
194
246
|
if (owner !== null && INVOKABLE_UPSTREAM.has(owner) && owner !== phaseId) {
|
|
195
247
|
upstreamPhases.add(owner);
|
|
@@ -204,86 +256,223 @@ export async function gatePhaseInputs(phaseId, opts) {
|
|
|
204
256
|
continue;
|
|
205
257
|
invocationCounts.set(upstream, count + 1);
|
|
206
258
|
invoked.push(upstream);
|
|
207
|
-
const missingForOwner =
|
|
259
|
+
const missingForOwner = firstPass.missing.filter((p) => resolveOwner(p) === upstream);
|
|
208
260
|
for (const p of missingForOwner) {
|
|
209
261
|
process.stderr.write(`[GATE] ${phaseId}: missing ${p} — invoking Ruflo (${upstream})\n`);
|
|
210
262
|
}
|
|
211
263
|
try {
|
|
212
|
-
// `runPrimaryPhaseExecution` accepts `PrimaryPhaseId` which differs
|
|
213
|
-
// from `PhaseId` (no phase2, no phase5b). Tests inject their own
|
|
214
|
-
// executor; the production call will be a no-op for phase2 because
|
|
215
|
-
// auto-chain wires phase2 through its own path — the gate preserves
|
|
216
|
-
// the call for parity.
|
|
217
264
|
const result = await runPrimary(upstream, opts.dossier, opts.context);
|
|
265
|
+
rufloLog.push({
|
|
266
|
+
phase: upstream,
|
|
267
|
+
tier: String(result.executionTier ?? 'unknown'),
|
|
268
|
+
reason: String(result.reason ?? (result.success ? 'ok' : 'unknown')),
|
|
269
|
+
});
|
|
218
270
|
if (result.executionTier === 'unavailable') {
|
|
219
271
|
process.stderr.write(`[GATE] ${phaseId}: Ruflo unavailable (${upstream}) — reason=${result.reason ?? 'unknown'}\n`);
|
|
220
272
|
}
|
|
221
273
|
}
|
|
222
274
|
catch (err) {
|
|
223
|
-
|
|
275
|
+
const msg = err.message;
|
|
276
|
+
rufloLog.push({ phase: upstream, tier: 'error', reason: msg });
|
|
277
|
+
process.stderr.write(`[GATE] ${phaseId}: Ruflo threw for ${upstream} — ${msg}\n`);
|
|
224
278
|
}
|
|
225
279
|
}
|
|
226
280
|
// Re-check after all Ruflo invocations have (had a chance to) run.
|
|
227
|
-
const
|
|
228
|
-
if (
|
|
281
|
+
const secondPass = collectMissingPathsWithDetail(opts.runDir, dep.required);
|
|
282
|
+
if (secondPass.missing.length === 0) {
|
|
229
283
|
process.stderr.write(`[GATE] ${phaseId}: recovered via Ruflo\n`);
|
|
284
|
+
finalize('ok', firstPass.checked, secondPass.checked, []);
|
|
230
285
|
return {
|
|
231
286
|
ok: true,
|
|
232
|
-
missing:
|
|
287
|
+
missing: firstPass.missing,
|
|
233
288
|
ruflo_invoked: invoked,
|
|
234
289
|
stillMissing: [],
|
|
235
290
|
};
|
|
236
291
|
}
|
|
237
|
-
process.stderr.write(`[GATE] ${phaseId}: still blocked — ${
|
|
292
|
+
process.stderr.write(`[GATE] ${phaseId}: still blocked — ${secondPass.missing.join(', ')}\n`);
|
|
293
|
+
finalize('blocked', firstPass.checked, secondPass.checked, secondPass.missing);
|
|
238
294
|
return {
|
|
239
295
|
ok: false,
|
|
240
|
-
missing:
|
|
296
|
+
missing: firstPass.missing,
|
|
241
297
|
ruflo_invoked: invoked,
|
|
242
|
-
stillMissing,
|
|
298
|
+
stillMissing: secondPass.missing,
|
|
243
299
|
};
|
|
244
300
|
}
|
|
245
301
|
// ============================================================================
|
|
302
|
+
// Path-reality resolution (ADR-PIPELINE-094 Decision 1)
|
|
303
|
+
// ============================================================================
|
|
304
|
+
/**
|
|
305
|
+
* Resolves a logical phase path (as declared in `PHASE_DEPENDENCIES`) to one
|
|
306
|
+
* or more absolute candidate paths under `runDir`, in priority order.
|
|
307
|
+
*
|
|
308
|
+
* Phase 1 writes its outputs flat to `<runDir>/<file>` (see
|
|
309
|
+
* `swarm-orchestrator.ts:1831,2222,2229,2249,2252`), but the gate's
|
|
310
|
+
* dependency table refers to them with a `phase1/` prefix for dependency-DAG
|
|
311
|
+
* clarity. Pre-094 the gate joined the relative path to `runDir` literally
|
|
312
|
+
* and looked at `<runDir>/phase1/<file>`, which never exists in production —
|
|
313
|
+
* the false-negative cascade documented in the originating run.
|
|
314
|
+
*
|
|
315
|
+
* Resolution rules:
|
|
316
|
+
* - `phase1/X` → first try `<runDir>/X` (production, flat layout); if the
|
|
317
|
+
* caller's existence check fails there, fall through to
|
|
318
|
+
* `<runDir>/phase1/X` (test fixtures and any future subdir layout).
|
|
319
|
+
* - All other prefixes resolve unchanged: `<runDir>/<relPath>`.
|
|
320
|
+
*
|
|
321
|
+
* Returns at least one candidate. Callers iterate in order and accept the
|
|
322
|
+
* first candidate that satisfies their predicate.
|
|
323
|
+
*
|
|
324
|
+
* Exported for unit tests and for any future code that needs to resolve a
|
|
325
|
+
* declared dependency path to its physical location. This is the SINGLE place
|
|
326
|
+
* the logical→physical mapping lives.
|
|
327
|
+
*/
|
|
328
|
+
export function resolvePhasePath(runDir, relPath) {
|
|
329
|
+
const phase1Match = /^phase1\/(.+)$/.exec(relPath);
|
|
330
|
+
if (phase1Match) {
|
|
331
|
+
const tail = phase1Match[1];
|
|
332
|
+
return [
|
|
333
|
+
path.join(runDir, tail), // flat layout (production default)
|
|
334
|
+
path.join(runDir, 'phase1', tail), // subdir layout (legacy / fixtures)
|
|
335
|
+
];
|
|
336
|
+
}
|
|
337
|
+
return [path.join(runDir, relPath)];
|
|
338
|
+
}
|
|
339
|
+
// ============================================================================
|
|
246
340
|
// Internal helpers
|
|
247
341
|
// ============================================================================
|
|
248
342
|
/** First 512 bytes is enough to spot JSON error-stub shape. */
|
|
249
343
|
const STUB_SCAN_BYTES = 512;
|
|
250
|
-
/**
|
|
251
|
-
|
|
344
|
+
/**
|
|
345
|
+
* Returns both the list of missing logical paths AND a per-input check log
|
|
346
|
+
* suitable for `gate-decision-log.json` (ADR-094 Decision 5). Callers that
|
|
347
|
+
* only need the verdict use `result.missing`; callers that emit the
|
|
348
|
+
* decision log consume `result.checked`.
|
|
349
|
+
*/
|
|
350
|
+
function collectMissingPathsWithDetail(runDir, required) {
|
|
252
351
|
const missing = [];
|
|
352
|
+
const checked = [];
|
|
253
353
|
for (const req of required) {
|
|
254
354
|
const minBytes = req.minBytes ?? MIN_BYTES_DEFAULT;
|
|
255
355
|
if (req.kind === 'file') {
|
|
256
356
|
// ALL paths must satisfy the criteria.
|
|
257
357
|
for (const p of req.paths) {
|
|
258
|
-
|
|
358
|
+
const detail = inspectPath(runDir, p, minBytes);
|
|
359
|
+
checked.push(detail);
|
|
360
|
+
if (!detail.satisfies)
|
|
259
361
|
missing.push(p);
|
|
260
362
|
}
|
|
261
363
|
}
|
|
262
364
|
else {
|
|
263
365
|
// any-of: at least ONE path must satisfy.
|
|
264
|
-
const
|
|
366
|
+
const details = req.paths.map((p) => inspectPath(runDir, p, minBytes));
|
|
367
|
+
checked.push(...details);
|
|
368
|
+
const anyOk = details.some((d) => d.satisfies);
|
|
265
369
|
if (!anyOk) {
|
|
266
|
-
// Report the full any-of set
|
|
267
|
-
//
|
|
370
|
+
// Report the full any-of set so the caller can map each candidate
|
|
371
|
+
// back to its owning upstream phase via `INPUT_OWNER_MAP`.
|
|
268
372
|
for (const p of req.paths)
|
|
269
373
|
missing.push(p);
|
|
270
374
|
}
|
|
271
375
|
}
|
|
272
376
|
}
|
|
273
|
-
return missing;
|
|
377
|
+
return { missing, checked };
|
|
274
378
|
}
|
|
275
379
|
/**
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
380
|
+
* ADR-PIPELINE-094 Decision 5 — populated single-path inspection for the log.
|
|
381
|
+
* Returns the FIRST satisfying candidate's metadata; if none satisfy, returns
|
|
382
|
+
* the metadata of the first candidate (the production-default path) so the
|
|
383
|
+
* log surfaces the resolved path the user expects to see in their layout.
|
|
280
384
|
*/
|
|
281
|
-
function
|
|
385
|
+
function inspectPath(runDir, relPath, minBytes) {
|
|
282
386
|
if (relPath.endsWith('/*.md') || relPath.endsWith('/*')) {
|
|
283
|
-
|
|
387
|
+
// Glob form: detail collapses to "did the glob match anything".
|
|
388
|
+
return {
|
|
389
|
+
logical_path: relPath,
|
|
390
|
+
resolved_path: path.join(runDir, relPath),
|
|
391
|
+
exists: false, // not strictly meaningful for globs; we only report satisfies
|
|
392
|
+
size_bytes: 0,
|
|
393
|
+
is_error_stub: false,
|
|
394
|
+
satisfies: dirGlobSatisfies(runDir, relPath, minBytes),
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
const candidates = resolvePhasePath(runDir, relPath);
|
|
398
|
+
// Prefer the first candidate that satisfies; otherwise return detail for
|
|
399
|
+
// the first candidate (the production-default location).
|
|
400
|
+
let firstFound = null;
|
|
401
|
+
for (const abs of candidates) {
|
|
402
|
+
const detail = inspectFile(abs, minBytes, relPath);
|
|
403
|
+
if (detail.satisfies)
|
|
404
|
+
return detail;
|
|
405
|
+
if (firstFound === null)
|
|
406
|
+
firstFound = detail;
|
|
407
|
+
}
|
|
408
|
+
return firstFound;
|
|
409
|
+
}
|
|
410
|
+
function inspectFile(abs, minBytes, logicalPath) {
|
|
411
|
+
let stat = null;
|
|
412
|
+
try {
|
|
413
|
+
stat = fs.statSync(abs);
|
|
414
|
+
}
|
|
415
|
+
catch {
|
|
416
|
+
return {
|
|
417
|
+
logical_path: logicalPath,
|
|
418
|
+
resolved_path: abs,
|
|
419
|
+
exists: false,
|
|
420
|
+
size_bytes: 0,
|
|
421
|
+
is_error_stub: false,
|
|
422
|
+
satisfies: false,
|
|
423
|
+
};
|
|
424
|
+
}
|
|
425
|
+
if (!stat.isFile()) {
|
|
426
|
+
return {
|
|
427
|
+
logical_path: logicalPath,
|
|
428
|
+
resolved_path: abs,
|
|
429
|
+
exists: true,
|
|
430
|
+
size_bytes: stat.size,
|
|
431
|
+
is_error_stub: false,
|
|
432
|
+
satisfies: false,
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
if (stat.size < minBytes) {
|
|
436
|
+
return {
|
|
437
|
+
logical_path: logicalPath,
|
|
438
|
+
resolved_path: abs,
|
|
439
|
+
exists: true,
|
|
440
|
+
size_bytes: stat.size,
|
|
441
|
+
is_error_stub: false,
|
|
442
|
+
satisfies: false,
|
|
443
|
+
};
|
|
444
|
+
}
|
|
445
|
+
let contentSlice = '';
|
|
446
|
+
try {
|
|
447
|
+
const fd = fs.openSync(abs, 'r');
|
|
448
|
+
try {
|
|
449
|
+
const buf = Buffer.alloc(Math.min(STUB_SCAN_BYTES, stat.size));
|
|
450
|
+
fs.readSync(fd, buf, 0, buf.length, 0);
|
|
451
|
+
contentSlice = buf.toString('utf8');
|
|
452
|
+
}
|
|
453
|
+
finally {
|
|
454
|
+
fs.closeSync(fd);
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
catch {
|
|
458
|
+
return {
|
|
459
|
+
logical_path: logicalPath,
|
|
460
|
+
resolved_path: abs,
|
|
461
|
+
exists: true,
|
|
462
|
+
size_bytes: stat.size,
|
|
463
|
+
is_error_stub: false,
|
|
464
|
+
satisfies: false,
|
|
465
|
+
};
|
|
284
466
|
}
|
|
285
|
-
const
|
|
286
|
-
return
|
|
467
|
+
const stub = !isNotErrorStub(contentSlice);
|
|
468
|
+
return {
|
|
469
|
+
logical_path: logicalPath,
|
|
470
|
+
resolved_path: abs,
|
|
471
|
+
exists: true,
|
|
472
|
+
size_bytes: stat.size,
|
|
473
|
+
is_error_stub: stub,
|
|
474
|
+
satisfies: !stub,
|
|
475
|
+
};
|
|
287
476
|
}
|
|
288
477
|
function fileSatisfies(abs, minBytes) {
|
|
289
478
|
let stat;
|
|
@@ -320,16 +509,49 @@ function dirGlobSatisfies(runDir, relPath, minBytes) {
|
|
|
320
509
|
const dirRel = relPath.replace(/\/\*(\.[a-zA-Z0-9]+)?$/, '');
|
|
321
510
|
const extMatch = relPath.match(/\/\*(\.[a-zA-Z0-9]+)$/);
|
|
322
511
|
const ext = extMatch?.[1];
|
|
323
|
-
|
|
324
|
-
|
|
512
|
+
// ADR-094 Decision 1: route directory resolution through resolvePhasePath
|
|
513
|
+
// so any phase-prefix layout aliasing applies to globs too. For phase1/*
|
|
514
|
+
// patterns the candidates are `<runDir>/<tail>` and `<runDir>/phase1/<tail>`;
|
|
515
|
+
// for other prefixes there's only one candidate.
|
|
516
|
+
for (const dirAbs of resolvePhasePath(runDir, dirRel)) {
|
|
517
|
+
let entries;
|
|
518
|
+
try {
|
|
519
|
+
entries = fs.readdirSync(dirAbs);
|
|
520
|
+
}
|
|
521
|
+
catch {
|
|
522
|
+
continue;
|
|
523
|
+
}
|
|
524
|
+
const candidates = ext ? entries.filter((e) => e.endsWith(ext)) : entries;
|
|
525
|
+
if (candidates.some((e) => fileSatisfies(path.join(dirAbs, e), minBytes))) {
|
|
526
|
+
return true;
|
|
527
|
+
}
|
|
528
|
+
}
|
|
529
|
+
return false;
|
|
530
|
+
}
|
|
531
|
+
// ============================================================================
|
|
532
|
+
// Gate decision log writer (ADR-PIPELINE-094 Decision 5)
|
|
533
|
+
// ============================================================================
|
|
534
|
+
/**
|
|
535
|
+
* Writes `<runDir>/<phaseDirname>/gate-decision-log.json` for the given
|
|
536
|
+
* decision. Best-effort: never throws; on filesystem error, logs to stderr
|
|
537
|
+
* and returns. The text `[GATE]` log lines continue alongside this for
|
|
538
|
+
* human readability — the JSON is the machine-readable surface.
|
|
539
|
+
*
|
|
540
|
+
* Exported for unit tests. Production callers go through `gatePhaseInputs`
|
|
541
|
+
* which invokes this internally after computing its verdict.
|
|
542
|
+
*/
|
|
543
|
+
export function writeGateDecisionLog(runDir, log) {
|
|
325
544
|
try {
|
|
326
|
-
|
|
545
|
+
const dirname = PHASE_DIRNAME[log.phaseId];
|
|
546
|
+
const phaseDir = path.join(runDir, dirname);
|
|
547
|
+
fs.mkdirSync(phaseDir, { recursive: true });
|
|
548
|
+
const target = path.join(phaseDir, 'gate-decision-log.json');
|
|
549
|
+
// Pretty-print for human grep-ability in log dumps; the file is small.
|
|
550
|
+
fs.writeFileSync(target, JSON.stringify(log, null, 2) + '\n', 'utf8');
|
|
327
551
|
}
|
|
328
|
-
catch {
|
|
329
|
-
|
|
552
|
+
catch (err) {
|
|
553
|
+
process.stderr.write(`[GATE] ${log.phaseId}: failed to write gate-decision-log.json — ${err.message}\n`);
|
|
330
554
|
}
|
|
331
|
-
const candidates = ext ? entries.filter((e) => e.endsWith(ext)) : entries;
|
|
332
|
-
return candidates.some((e) => fileSatisfies(path.join(dirAbs, e), minBytes));
|
|
333
555
|
}
|
|
334
556
|
/** Returns the owning PhaseId for the given relative path, or null. */
|
|
335
557
|
function resolveOwner(relPath) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-dependency-gate.js","sourceRoot":"","sources":["../../../src/pipeline/gate/phase-dependency-gate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"phase-dependency-gate.js","sourceRoot":"","sources":["../../../src/pipeline/gate/phase-dependency-gate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ADR-PIPELINE-094 Decision 8 — Phase-1 consensus reader for local fallback
|
|
3
|
+
* generators. Reads Phase-1 simulator outputs (which Phase 1 writes flat to
|
|
4
|
+
* `<runDir>/`) and exposes them as a typed, normalized shape.
|
|
5
|
+
*
|
|
6
|
+
* Consumed by the phase3/4/5a local fallback generators. Resilient to
|
|
7
|
+
* partial Phase-1 output: any file may be missing; missing fields are left
|
|
8
|
+
* undefined and the caller decides what to synthesize from what's present.
|
|
9
|
+
*
|
|
10
|
+
* Honours both layouts:
|
|
11
|
+
* - flat (production): <runDir>/manifest.json
|
|
12
|
+
* - subdir (test fixture): <runDir>/phase1/manifest.json
|
|
13
|
+
*/
|
|
14
|
+
/** Normalized snapshot of Phase-1 simulator consensus. All fields are optional. */
|
|
15
|
+
export interface Phase1Consensus {
|
|
16
|
+
readonly runDir: string;
|
|
17
|
+
readonly manifest?: Record<string, unknown>;
|
|
18
|
+
readonly executiveSummary?: string;
|
|
19
|
+
readonly decisionMemo?: string;
|
|
20
|
+
readonly riskAssessment?: Record<string, unknown>;
|
|
21
|
+
readonly scenario?: Record<string, unknown>;
|
|
22
|
+
readonly architectureDecisions?: string;
|
|
23
|
+
readonly projectLanguage?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Read Phase-1 outputs from `runDir`. Tries flat layout first (production),
|
|
27
|
+
* then subdir (legacy/test). Returns `undefined` only when nothing
|
|
28
|
+
* Phase-1-shaped exists; otherwise populates whichever fields were found.
|
|
29
|
+
*/
|
|
30
|
+
export declare function readPhase1Consensus(runDir: string): Phase1Consensus | undefined;
|
|
31
|
+
/** Extract the user-facing scenario query from a Phase-1 consensus. */
|
|
32
|
+
export declare function extractScenarioQuery(c: Phase1Consensus): string;
|
|
33
|
+
//# sourceMappingURL=phase1-consensus-reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"phase1-consensus-reader.d.ts","sourceRoot":"","sources":["../../../src/pipeline/local-fallback/phase1-consensus-reader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;CACnC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAkE/E;AAED,uEAAuE;AACvE,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,eAAe,GAAG,MAAM,CAW/D"}
|