@llm-dev-ops/agentics-cli 2.7.0 → 2.7.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 (28) hide show
  1. package/dist/cli/index.js +30 -0
  2. package/dist/cli/index.js.map +1 -1
  3. package/dist/pipeline/auto-chain.d.ts +168 -0
  4. package/dist/pipeline/auto-chain.d.ts.map +1 -1
  5. package/dist/pipeline/auto-chain.js +1854 -880
  6. package/dist/pipeline/auto-chain.js.map +1 -1
  7. package/dist/pipeline/enterprise/artifact-renderers.d.ts +30 -0
  8. package/dist/pipeline/enterprise/artifact-renderers.d.ts.map +1 -1
  9. package/dist/pipeline/enterprise/artifact-renderers.js +129 -1
  10. package/dist/pipeline/enterprise/artifact-renderers.js.map +1 -1
  11. package/dist/pipeline/gate/phase-dependency-gate.d.ts +93 -0
  12. package/dist/pipeline/gate/phase-dependency-gate.d.ts.map +1 -0
  13. package/dist/pipeline/gate/phase-dependency-gate.js +349 -0
  14. package/dist/pipeline/gate/phase-dependency-gate.js.map +1 -0
  15. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.d.ts.map +1 -1
  16. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js +280 -40
  17. package/dist/pipeline/phase3-sparc/phase3-sparc-coordinator.js.map +1 -1
  18. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.d.ts.map +1 -1
  19. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js +363 -87
  20. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js.map +1 -1
  21. package/dist/pipeline/phases/prompt-generator.d.ts.map +1 -1
  22. package/dist/pipeline/phases/prompt-generator.js +95 -6
  23. package/dist/pipeline/phases/prompt-generator.js.map +1 -1
  24. package/dist/pipeline/ruflo-phase-executor.d.ts +124 -1
  25. package/dist/pipeline/ruflo-phase-executor.d.ts.map +1 -1
  26. package/dist/pipeline/ruflo-phase-executor.js +319 -4
  27. package/dist/pipeline/ruflo-phase-executor.js.map +1 -1
  28. package/package.json +1 -1
@@ -0,0 +1,349 @@
1
+ /**
2
+ * ADR-PIPELINE-093 — Phase Dependency Gate.
3
+ *
4
+ * Shared helper that verifies a phase's required inputs exist, are non-stub,
5
+ * and meet a minimum size before the phase coordinator runs. On a miss the
6
+ * gate invokes the ADR-091 primary executor (`runPrimaryPhaseExecution`)
7
+ * once per missing upstream phase (capped by `maxRetriesPerInput`, default 1)
8
+ * and re-checks.
9
+ *
10
+ * The gate is side-effect-minimal: it only reads `runDir`, logs to stderr
11
+ * with the `[GATE]` prefix, and forwards Ruflo invocations to the injected
12
+ * executor. Mapping of required-input → owning upstream phase is static
13
+ * (`INPUT_OWNER_MAP`) and colocated with the dependency table
14
+ * (`PHASE_DEPENDENCIES`).
15
+ */
16
+ import * as fs from 'node:fs';
17
+ import * as path from 'node:path';
18
+ import { runPrimaryPhaseExecution as runPrimaryPhaseExecutionImpl, } from '../ruflo-phase-executor.js';
19
+ // ============================================================================
20
+ // Static dependency table (ADR-PIPELINE-093 Decision Rule 1)
21
+ // ============================================================================
22
+ const MIN_BYTES_DEFAULT = 100;
23
+ /** Per-phase required/optional inputs, hard-coded from the ADR DAG table. */
24
+ export const PHASE_DEPENDENCIES = {
25
+ phase2: {
26
+ phaseId: 'phase2',
27
+ required: [
28
+ { kind: 'file', paths: ['phase1/manifest.json'] },
29
+ { kind: 'file', paths: ['phase1/executive-summary.md'] },
30
+ ],
31
+ optional: [
32
+ 'phase1/scenario.json',
33
+ 'phase1/decision-memo.md',
34
+ 'phase1/risk-assessment.json',
35
+ ],
36
+ },
37
+ 'phase3-sparc': {
38
+ phaseId: 'phase3-sparc',
39
+ required: [
40
+ { kind: 'file', paths: ['phase1/manifest.json'] },
41
+ { kind: 'file', paths: ['phase2/research-dossier.json'] },
42
+ ],
43
+ optional: [
44
+ 'phase1/roadmap.json',
45
+ 'phase2/hypotheses.json',
46
+ 'diligence-artifacts/sparc-*',
47
+ ],
48
+ },
49
+ 'phase4-adrs-ddd': {
50
+ phaseId: 'phase4-adrs-ddd',
51
+ required: [
52
+ { kind: 'file', paths: ['phase1/manifest.json'] },
53
+ {
54
+ kind: 'any-of',
55
+ paths: [
56
+ 'phase3/sparc/specification.md',
57
+ 'engineering/sparc-specification.md',
58
+ ],
59
+ },
60
+ ],
61
+ optional: [
62
+ 'phase2/research-dossier.json',
63
+ 'diligence-artifacts/adr-generation',
64
+ ],
65
+ },
66
+ 'phase5a-prompts': {
67
+ phaseId: 'phase5a-prompts',
68
+ required: [
69
+ {
70
+ kind: 'any-of',
71
+ paths: [
72
+ 'phase3/sparc/specification.md',
73
+ 'engineering/sparc-specification.md',
74
+ ],
75
+ },
76
+ {
77
+ kind: 'any-of',
78
+ paths: [
79
+ 'phase4/adrs/*.md',
80
+ 'phase4/ddd/bounded-contexts.json',
81
+ 'engineering/architecture-decisions.md',
82
+ ],
83
+ },
84
+ ],
85
+ optional: [],
86
+ },
87
+ 'phase5b-scaffold': {
88
+ phaseId: 'phase5b-scaffold',
89
+ required: [{ kind: 'file', paths: ['phase1/manifest.json'] }],
90
+ optional: ['phase4/adrs/*.md', 'phase5a/execution-plan.json'],
91
+ },
92
+ };
93
+ // ============================================================================
94
+ // Input → owning-upstream-phase map (ADR-PIPELINE-093)
95
+ // ============================================================================
96
+ /**
97
+ * Maps a required-input path (relative to runDir) onto the upstream phase
98
+ * that produces it. Used by the gate to decide which phase's Ruflo primary
99
+ * executor to invoke when an input is missing. Keyed by path prefix; the
100
+ * longest matching prefix wins.
101
+ */
102
+ export const INPUT_OWNER_MAP = {
103
+ 'phase1/': 'phase2', // phase1 is the entry; phase2 is the earliest "producable" upstream we can invoke
104
+ 'phase2/': 'phase2',
105
+ 'phase3/sparc/': 'phase3-sparc',
106
+ 'engineering/sparc-specification.md': 'phase3-sparc',
107
+ 'phase4/adrs/': 'phase4-adrs-ddd',
108
+ 'phase4/ddd/': 'phase4-adrs-ddd',
109
+ 'phase4/': 'phase4-adrs-ddd',
110
+ 'engineering/architecture-decisions.md': 'phase4-adrs-ddd',
111
+ 'engineering/domain-model.md': 'phase4-adrs-ddd',
112
+ 'phase4/prompts/': 'phase5a-prompts',
113
+ 'phase5a/': 'phase5a-prompts',
114
+ };
115
+ /**
116
+ * Upstream phases supported by `runPrimaryPhaseExecution`. Phase 1 is the
117
+ * pipeline entry and is never re-invoked by the gate — a missing phase1 file
118
+ * is surfaced as a hard block. Phase 2 maps to the phase2 coordinator, which
119
+ * is wired separately by auto-chain; the gate passes the string through.
120
+ */
121
+ const INVOKABLE_UPSTREAM = new Set([
122
+ 'phase2',
123
+ 'phase3-sparc',
124
+ 'phase4-adrs-ddd',
125
+ 'phase5a-prompts',
126
+ ]);
127
+ // ============================================================================
128
+ // Public helpers
129
+ // ============================================================================
130
+ /**
131
+ * Returns `false` iff the content is a JSON error-stub sentinel — a JSON
132
+ * object whose only top-level keys are `error` and/or `message`. Non-JSON
133
+ * content always returns `true`. Empty strings also return `true`
134
+ * (size-gating is the caller's job; the stub check is purely about shape).
135
+ */
136
+ export function isNotErrorStub(content) {
137
+ const trimmed = content.trim();
138
+ if (trimmed.length === 0)
139
+ return true;
140
+ if (!trimmed.startsWith('{'))
141
+ return true;
142
+ let parsed;
143
+ try {
144
+ parsed = JSON.parse(trimmed);
145
+ }
146
+ catch {
147
+ return true;
148
+ }
149
+ if (parsed === null || typeof parsed !== 'object' || Array.isArray(parsed)) {
150
+ return true;
151
+ }
152
+ const keys = Object.keys(parsed);
153
+ if (keys.length === 0)
154
+ return true;
155
+ const onlyErrorOrMessage = keys.every((k) => k === 'error' || k === 'message');
156
+ return !onlyErrorOrMessage;
157
+ }
158
+ /**
159
+ * Inspects per-phase gate results and returns a BlockedPhase entry for
160
+ * every phase whose gate failed and still has missing inputs after retry.
161
+ * Used by auto-chain to populate `status.json.blocked_phases`.
162
+ */
163
+ export function determineBlockedPhases(results) {
164
+ const blocked = [];
165
+ for (const r of results) {
166
+ if (!r.gateResult.ok && r.gateResult.stillMissing.length > 0) {
167
+ blocked.push({ phase: r.phaseId, missing: r.gateResult.stillMissing });
168
+ }
169
+ }
170
+ return blocked;
171
+ }
172
+ // ============================================================================
173
+ // Core gate algorithm
174
+ // ============================================================================
175
+ /**
176
+ * Verifies `phaseId`'s declared required inputs on disk. On a miss, invokes
177
+ * the ADR-091 primary executor for each owning upstream phase (capped at
178
+ * `maxRetriesPerInput`) and re-checks. Returns a `GateResult` describing the
179
+ * outcome. Never throws.
180
+ */
181
+ export async function gatePhaseInputs(phaseId, opts) {
182
+ const dep = PHASE_DEPENDENCIES[phaseId];
183
+ const maxRetries = opts.maxRetriesPerInput ?? 1;
184
+ const runPrimary = opts.runPrimaryPhaseExecution ?? runPrimaryPhaseExecutionImpl;
185
+ // First pass — collect failures.
186
+ const initialFailures = collectMissingPaths(opts.runDir, dep.required);
187
+ if (initialFailures.length === 0) {
188
+ return { ok: true, missing: [], ruflo_invoked: [], stillMissing: [] };
189
+ }
190
+ // Determine which upstream phases own the failed inputs.
191
+ const upstreamPhases = new Set();
192
+ for (const failedPath of initialFailures) {
193
+ const owner = resolveOwner(failedPath);
194
+ if (owner !== null && INVOKABLE_UPSTREAM.has(owner) && owner !== phaseId) {
195
+ upstreamPhases.add(owner);
196
+ }
197
+ }
198
+ const invoked = [];
199
+ const invocationCounts = new Map();
200
+ // Invoke the primary executor for each upstream phase (capped).
201
+ for (const upstream of upstreamPhases) {
202
+ const count = invocationCounts.get(upstream) ?? 0;
203
+ if (count >= maxRetries)
204
+ continue;
205
+ invocationCounts.set(upstream, count + 1);
206
+ invoked.push(upstream);
207
+ const missingForOwner = initialFailures.filter((p) => resolveOwner(p) === upstream);
208
+ for (const p of missingForOwner) {
209
+ process.stderr.write(`[GATE] ${phaseId}: missing ${p} — invoking Ruflo (${upstream})\n`);
210
+ }
211
+ 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
+ const result = await runPrimary(upstream, opts.dossier, opts.context);
218
+ if (result.executionTier === 'unavailable') {
219
+ process.stderr.write(`[GATE] ${phaseId}: Ruflo unavailable (${upstream}) — reason=${result.reason ?? 'unknown'}\n`);
220
+ }
221
+ }
222
+ catch (err) {
223
+ process.stderr.write(`[GATE] ${phaseId}: Ruflo threw for ${upstream} — ${err.message}\n`);
224
+ }
225
+ }
226
+ // Re-check after all Ruflo invocations have (had a chance to) run.
227
+ const stillMissing = collectMissingPaths(opts.runDir, dep.required);
228
+ if (stillMissing.length === 0) {
229
+ process.stderr.write(`[GATE] ${phaseId}: recovered via Ruflo\n`);
230
+ return {
231
+ ok: true,
232
+ missing: initialFailures,
233
+ ruflo_invoked: invoked,
234
+ stillMissing: [],
235
+ };
236
+ }
237
+ process.stderr.write(`[GATE] ${phaseId}: still blocked — ${stillMissing.join(', ')}\n`);
238
+ return {
239
+ ok: false,
240
+ missing: initialFailures,
241
+ ruflo_invoked: invoked,
242
+ stillMissing,
243
+ };
244
+ }
245
+ // ============================================================================
246
+ // Internal helpers
247
+ // ============================================================================
248
+ /** First 512 bytes is enough to spot JSON error-stub shape. */
249
+ const STUB_SCAN_BYTES = 512;
250
+ /** Returns the list of required-input paths that FAIL the existence/size/stub check. */
251
+ function collectMissingPaths(runDir, required) {
252
+ const missing = [];
253
+ for (const req of required) {
254
+ const minBytes = req.minBytes ?? MIN_BYTES_DEFAULT;
255
+ if (req.kind === 'file') {
256
+ // ALL paths must satisfy the criteria.
257
+ for (const p of req.paths) {
258
+ if (!pathSatisfies(runDir, p, minBytes))
259
+ missing.push(p);
260
+ }
261
+ }
262
+ else {
263
+ // any-of: at least ONE path must satisfy.
264
+ const anyOk = req.paths.some((p) => pathSatisfies(runDir, p, minBytes));
265
+ if (!anyOk) {
266
+ // Report the full any-of set (first path is the "preferred" one,
267
+ // but the caller needs to see every candidate for the owner map).
268
+ for (const p of req.paths)
269
+ missing.push(p);
270
+ }
271
+ }
272
+ }
273
+ return missing;
274
+ }
275
+ /**
276
+ * Returns true when the given relative path (under runDir) exists, is non-empty
277
+ * by the size threshold, and is not a JSON error-stub. Supports trailing `/*`
278
+ * glob (e.g. `phase4/adrs/*.md`) — the directory must exist and contain at
279
+ * least one matching file that passes the criteria.
280
+ */
281
+ function pathSatisfies(runDir, relPath, minBytes) {
282
+ if (relPath.endsWith('/*.md') || relPath.endsWith('/*')) {
283
+ return dirGlobSatisfies(runDir, relPath, minBytes);
284
+ }
285
+ const abs = path.join(runDir, relPath);
286
+ return fileSatisfies(abs, minBytes);
287
+ }
288
+ function fileSatisfies(abs, minBytes) {
289
+ let stat;
290
+ try {
291
+ stat = fs.statSync(abs);
292
+ }
293
+ catch {
294
+ return false;
295
+ }
296
+ if (!stat.isFile())
297
+ return false;
298
+ if (stat.size < minBytes)
299
+ return false;
300
+ // Read up to the stub-scan window for the error-stub shape check.
301
+ let contentSlice = '';
302
+ try {
303
+ const fd = fs.openSync(abs, 'r');
304
+ try {
305
+ const buf = Buffer.alloc(Math.min(STUB_SCAN_BYTES, stat.size));
306
+ fs.readSync(fd, buf, 0, buf.length, 0);
307
+ contentSlice = buf.toString('utf8');
308
+ }
309
+ finally {
310
+ fs.closeSync(fd);
311
+ }
312
+ }
313
+ catch {
314
+ return false;
315
+ }
316
+ return isNotErrorStub(contentSlice);
317
+ }
318
+ function dirGlobSatisfies(runDir, relPath, minBytes) {
319
+ // Support `<dir>/*.ext` and `<dir>/*`. Anything more exotic is rejected.
320
+ const dirRel = relPath.replace(/\/\*(\.[a-zA-Z0-9]+)?$/, '');
321
+ const extMatch = relPath.match(/\/\*(\.[a-zA-Z0-9]+)$/);
322
+ const ext = extMatch?.[1];
323
+ const dirAbs = path.join(runDir, dirRel);
324
+ let entries;
325
+ try {
326
+ entries = fs.readdirSync(dirAbs);
327
+ }
328
+ catch {
329
+ return false;
330
+ }
331
+ const candidates = ext ? entries.filter((e) => e.endsWith(ext)) : entries;
332
+ return candidates.some((e) => fileSatisfies(path.join(dirAbs, e), minBytes));
333
+ }
334
+ /** Returns the owning PhaseId for the given relative path, or null. */
335
+ function resolveOwner(relPath) {
336
+ // Longest matching prefix wins.
337
+ let bestKey = '';
338
+ let bestOwner = null;
339
+ for (const [key, owner] of Object.entries(INPUT_OWNER_MAP)) {
340
+ if (relPath === key || relPath.startsWith(key)) {
341
+ if (key.length > bestKey.length) {
342
+ bestKey = key;
343
+ bestOwner = owner;
344
+ }
345
+ }
346
+ }
347
+ return bestOwner;
348
+ }
349
+ //# sourceMappingURL=phase-dependency-gate.js.map
@@ -0,0 +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 +1 @@
1
- {"version":3,"file":"phase3-sparc-coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/phase3-sparc/phase3-sparc-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAoB,MAAM,YAAY,CAAC;AAyNlG,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CA8QpC"}
1
+ {"version":3,"file":"phase3-sparc-coordinator.d.ts","sourceRoot":"","sources":["../../../src/pipeline/phase3-sparc/phase3-sparc-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,kBAAkB,EAAE,yBAAyB,EAAoB,MAAM,YAAY,CAAC;AAsgBlG,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,yBAAyB,CAAC,CA2RpC"}