popeye-cli 2.2.0 → 2.7.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/adapters/gemini.d.ts +14 -0
- package/dist/adapters/gemini.d.ts.map +1 -1
- package/dist/adapters/gemini.js +41 -6
- package/dist/adapters/gemini.js.map +1 -1
- package/dist/adapters/grok.d.ts +14 -0
- package/dist/adapters/grok.d.ts.map +1 -1
- package/dist/adapters/grok.js +42 -6
- package/dist/adapters/grok.js.map +1 -1
- package/dist/adapters/openai.d.ts +10 -0
- package/dist/adapters/openai.d.ts.map +1 -1
- package/dist/adapters/openai.js +44 -5
- package/dist/adapters/openai.js.map +1 -1
- package/dist/cli/commands/create.js +1 -1
- package/dist/cli/commands/create.js.map +1 -1
- package/dist/cli/interactive.d.ts.map +1 -1
- package/dist/cli/interactive.js +324 -20
- package/dist/cli/interactive.js.map +1 -1
- package/dist/generators/all.d.ts.map +1 -1
- package/dist/generators/all.js +3 -2
- package/dist/generators/all.js.map +1 -1
- package/dist/generators/doc-parser.d.ts +21 -6
- package/dist/generators/doc-parser.d.ts.map +1 -1
- package/dist/generators/doc-parser.js +55 -4
- package/dist/generators/doc-parser.js.map +1 -1
- package/dist/generators/templates/fullstack.js +1 -1
- package/dist/generators/templates/website-components.js +1 -1
- package/dist/generators/templates/website-components.js.map +1 -1
- package/dist/generators/templates/website-config.d.ts +4 -1
- package/dist/generators/templates/website-config.d.ts.map +1 -1
- package/dist/generators/templates/website-config.js +17 -11
- package/dist/generators/templates/website-config.js.map +1 -1
- package/dist/generators/templates/website-conversion.js +1 -1
- package/dist/generators/templates/website-conversion.js.map +1 -1
- package/dist/generators/templates/website-landing.js +1 -1
- package/dist/generators/templates/website-landing.js.map +1 -1
- package/dist/generators/templates/website-layout.d.ts +36 -4
- package/dist/generators/templates/website-layout.d.ts.map +1 -1
- package/dist/generators/templates/website-layout.js +466 -23
- package/dist/generators/templates/website-layout.js.map +1 -1
- package/dist/generators/templates/website-pricing.js +1 -1
- package/dist/generators/templates/website-pricing.js.map +1 -1
- package/dist/generators/templates/website-sections.js +1 -1
- package/dist/generators/templates/website-sections.js.map +1 -1
- package/dist/generators/templates/website-seo.d.ts.map +1 -1
- package/dist/generators/templates/website-seo.js +4 -1
- package/dist/generators/templates/website-seo.js.map +1 -1
- package/dist/generators/templates/website.d.ts +1 -1
- package/dist/generators/templates/website.d.ts.map +1 -1
- package/dist/generators/templates/website.js +1 -1
- package/dist/generators/templates/website.js.map +1 -1
- package/dist/generators/website-content-ai.d.ts +52 -0
- package/dist/generators/website-content-ai.d.ts.map +1 -0
- package/dist/generators/website-content-ai.js +141 -0
- package/dist/generators/website-content-ai.js.map +1 -0
- package/dist/generators/website-content-scanner.d.ts +1 -1
- package/dist/generators/website-content-scanner.d.ts.map +1 -1
- package/dist/generators/website-content-scanner.js +98 -1
- package/dist/generators/website-content-scanner.js.map +1 -1
- package/dist/generators/website-context.d.ts +34 -1
- package/dist/generators/website-context.d.ts.map +1 -1
- package/dist/generators/website-context.js +131 -9
- package/dist/generators/website-context.js.map +1 -1
- package/dist/generators/website-debug.d.ts +12 -0
- package/dist/generators/website-debug.d.ts.map +1 -1
- package/dist/generators/website-debug.js +16 -0
- package/dist/generators/website-debug.js.map +1 -1
- package/dist/generators/website.d.ts.map +1 -1
- package/dist/generators/website.js +26 -4
- package/dist/generators/website.js.map +1 -1
- package/dist/pipeline/auto-recovery.d.ts +56 -0
- package/dist/pipeline/auto-recovery.d.ts.map +1 -0
- package/dist/pipeline/auto-recovery.js +185 -0
- package/dist/pipeline/auto-recovery.js.map +1 -0
- package/dist/pipeline/change-request.d.ts +39 -0
- package/dist/pipeline/change-request.d.ts.map +1 -1
- package/dist/pipeline/change-request.js +40 -1
- package/dist/pipeline/change-request.js.map +1 -1
- package/dist/pipeline/check-runner.d.ts +30 -1
- package/dist/pipeline/check-runner.d.ts.map +1 -1
- package/dist/pipeline/check-runner.js +122 -1
- package/dist/pipeline/check-runner.js.map +1 -1
- package/dist/pipeline/command-resolver.d.ts.map +1 -1
- package/dist/pipeline/command-resolver.js +33 -2
- package/dist/pipeline/command-resolver.js.map +1 -1
- package/dist/pipeline/consensus/arbitrator-query.d.ts +22 -0
- package/dist/pipeline/consensus/arbitrator-query.d.ts.map +1 -0
- package/dist/pipeline/consensus/arbitrator-query.js +70 -0
- package/dist/pipeline/consensus/arbitrator-query.js.map +1 -0
- package/dist/pipeline/consensus/consensus-runner.d.ts +131 -7
- package/dist/pipeline/consensus/consensus-runner.d.ts.map +1 -1
- package/dist/pipeline/consensus/consensus-runner.js +809 -35
- package/dist/pipeline/consensus/consensus-runner.js.map +1 -1
- package/dist/pipeline/cr-lifecycle.d.ts +42 -0
- package/dist/pipeline/cr-lifecycle.d.ts.map +1 -0
- package/dist/pipeline/cr-lifecycle.js +89 -0
- package/dist/pipeline/cr-lifecycle.js.map +1 -0
- package/dist/pipeline/gate-engine.d.ts +1 -0
- package/dist/pipeline/gate-engine.d.ts.map +1 -1
- package/dist/pipeline/gate-engine.js +26 -7
- package/dist/pipeline/gate-engine.js.map +1 -1
- package/dist/pipeline/orchestrator.d.ts +1 -1
- package/dist/pipeline/orchestrator.d.ts.map +1 -1
- package/dist/pipeline/orchestrator.js +306 -16
- package/dist/pipeline/orchestrator.js.map +1 -1
- package/dist/pipeline/packets/consensus-packet-builder.d.ts +15 -4
- package/dist/pipeline/packets/consensus-packet-builder.d.ts.map +1 -1
- package/dist/pipeline/packets/consensus-packet-builder.js +29 -17
- package/dist/pipeline/packets/consensus-packet-builder.js.map +1 -1
- package/dist/pipeline/phases/architecture.d.ts.map +1 -1
- package/dist/pipeline/phases/architecture.js +5 -3
- package/dist/pipeline/phases/architecture.js.map +1 -1
- package/dist/pipeline/phases/audit.d.ts.map +1 -1
- package/dist/pipeline/phases/audit.js +5 -3
- package/dist/pipeline/phases/audit.js.map +1 -1
- package/dist/pipeline/phases/consensus-architecture.d.ts.map +1 -1
- package/dist/pipeline/phases/consensus-architecture.js +10 -1
- package/dist/pipeline/phases/consensus-architecture.js.map +1 -1
- package/dist/pipeline/phases/consensus-master-plan.d.ts.map +1 -1
- package/dist/pipeline/phases/consensus-master-plan.js +10 -3
- package/dist/pipeline/phases/consensus-master-plan.js.map +1 -1
- package/dist/pipeline/phases/consensus-role-plans.d.ts.map +1 -1
- package/dist/pipeline/phases/consensus-role-plans.js +10 -1
- package/dist/pipeline/phases/consensus-role-plans.js.map +1 -1
- package/dist/pipeline/phases/done.d.ts.map +1 -1
- package/dist/pipeline/phases/done.js +9 -4
- package/dist/pipeline/phases/done.js.map +1 -1
- package/dist/pipeline/phases/intake.d.ts.map +1 -1
- package/dist/pipeline/phases/intake.js +7 -3
- package/dist/pipeline/phases/intake.js.map +1 -1
- package/dist/pipeline/phases/phase-context.d.ts +2 -0
- package/dist/pipeline/phases/phase-context.d.ts.map +1 -1
- package/dist/pipeline/phases/phase-context.js +3 -1
- package/dist/pipeline/phases/phase-context.js.map +1 -1
- package/dist/pipeline/phases/production-gate.d.ts.map +1 -1
- package/dist/pipeline/phases/production-gate.js +28 -3
- package/dist/pipeline/phases/production-gate.js.map +1 -1
- package/dist/pipeline/phases/qa-validation.d.ts.map +1 -1
- package/dist/pipeline/phases/qa-validation.js +38 -5
- package/dist/pipeline/phases/qa-validation.js.map +1 -1
- package/dist/pipeline/phases/recovery-loop.d.ts +2 -0
- package/dist/pipeline/phases/recovery-loop.d.ts.map +1 -1
- package/dist/pipeline/phases/recovery-loop.js +200 -6
- package/dist/pipeline/phases/recovery-loop.js.map +1 -1
- package/dist/pipeline/phases/review.d.ts.map +1 -1
- package/dist/pipeline/phases/review.js +58 -28
- package/dist/pipeline/phases/review.js.map +1 -1
- package/dist/pipeline/phases/role-planning.d.ts.map +1 -1
- package/dist/pipeline/phases/role-planning.js +18 -2
- package/dist/pipeline/phases/role-planning.js.map +1 -1
- package/dist/pipeline/phases/stuck.d.ts.map +1 -1
- package/dist/pipeline/phases/stuck.js +10 -0
- package/dist/pipeline/phases/stuck.js.map +1 -1
- package/dist/pipeline/repo-snapshot.d.ts.map +1 -1
- package/dist/pipeline/repo-snapshot.js +3 -0
- package/dist/pipeline/repo-snapshot.js.map +1 -1
- package/dist/pipeline/role-execution-adapter.d.ts +2 -1
- package/dist/pipeline/role-execution-adapter.d.ts.map +1 -1
- package/dist/pipeline/role-execution-adapter.js +22 -7
- package/dist/pipeline/role-execution-adapter.js.map +1 -1
- package/dist/pipeline/skill-loader.d.ts +19 -0
- package/dist/pipeline/skill-loader.d.ts.map +1 -1
- package/dist/pipeline/skill-loader.js +22 -0
- package/dist/pipeline/skill-loader.js.map +1 -1
- package/dist/pipeline/skills/coverage-gate.d.ts +44 -0
- package/dist/pipeline/skills/coverage-gate.d.ts.map +1 -0
- package/dist/pipeline/skills/coverage-gate.js +143 -0
- package/dist/pipeline/skills/coverage-gate.js.map +1 -0
- package/dist/pipeline/skills/usage-registry.d.ts +48 -0
- package/dist/pipeline/skills/usage-registry.d.ts.map +1 -0
- package/dist/pipeline/skills/usage-registry.js +55 -0
- package/dist/pipeline/skills/usage-registry.js.map +1 -0
- package/dist/pipeline/strategy-context.d.ts +20 -0
- package/dist/pipeline/strategy-context.d.ts.map +1 -0
- package/dist/pipeline/strategy-context.js +55 -0
- package/dist/pipeline/strategy-context.js.map +1 -0
- package/dist/pipeline/type-defs/artifacts.d.ts +25 -5
- package/dist/pipeline/type-defs/artifacts.d.ts.map +1 -1
- package/dist/pipeline/type-defs/artifacts.js +4 -0
- package/dist/pipeline/type-defs/artifacts.js.map +1 -1
- package/dist/pipeline/type-defs/audit.d.ts +25 -13
- package/dist/pipeline/type-defs/audit.d.ts.map +1 -1
- package/dist/pipeline/type-defs/checks.d.ts +18 -8
- package/dist/pipeline/type-defs/checks.d.ts.map +1 -1
- package/dist/pipeline/type-defs/checks.js +4 -0
- package/dist/pipeline/type-defs/checks.js.map +1 -1
- package/dist/pipeline/type-defs/packets.d.ts +104 -18
- package/dist/pipeline/type-defs/packets.d.ts.map +1 -1
- package/dist/pipeline/type-defs/packets.js +17 -1
- package/dist/pipeline/type-defs/packets.js.map +1 -1
- package/dist/pipeline/type-defs/state.d.ts +160 -16
- package/dist/pipeline/type-defs/state.d.ts.map +1 -1
- package/dist/pipeline/type-defs/state.js +26 -1
- package/dist/pipeline/type-defs/state.js.map +1 -1
- package/dist/shared/text-utils.d.ts +23 -0
- package/dist/shared/text-utils.d.ts.map +1 -0
- package/dist/shared/text-utils.js +66 -0
- package/dist/shared/text-utils.js.map +1 -0
- package/dist/shared/website-strategy-format.d.ts +18 -0
- package/dist/shared/website-strategy-format.d.ts.map +1 -0
- package/dist/shared/website-strategy-format.js +47 -0
- package/dist/shared/website-strategy-format.js.map +1 -0
- package/dist/state/index.d.ts +2 -0
- package/dist/state/index.d.ts.map +1 -1
- package/dist/state/index.js +57 -8
- package/dist/state/index.js.map +1 -1
- package/dist/types/consensus.d.ts +1 -0
- package/dist/types/consensus.d.ts.map +1 -1
- package/dist/types/consensus.js.map +1 -1
- package/dist/types/website-strategy.d.ts +1 -1
- package/dist/types/workflow.d.ts +447 -0
- package/dist/types/workflow.d.ts.map +1 -1
- package/dist/types/workflow.js +3 -0
- package/dist/types/workflow.js.map +1 -1
- package/dist/upgrade/handlers.d.ts.map +1 -1
- package/dist/upgrade/handlers.js +6 -3
- package/dist/upgrade/handlers.js.map +1 -1
- package/dist/workflow/consensus.d.ts.map +1 -1
- package/dist/workflow/consensus.js +1 -0
- package/dist/workflow/consensus.js.map +1 -1
- package/dist/workflow/website-strategy.d.ts.map +1 -1
- package/dist/workflow/website-strategy.js +2 -29
- package/dist/workflow/website-strategy.js.map +1 -1
- package/dist/workflow/website-updater.d.ts.map +1 -1
- package/dist/workflow/website-updater.js +3 -2
- package/dist/workflow/website-updater.js.map +1 -1
- package/package.json +1 -1
- package/src/adapters/gemini.ts +51 -6
- package/src/adapters/grok.ts +51 -6
- package/src/adapters/openai.ts +53 -5
- package/src/cli/commands/create.ts +1 -1
- package/src/cli/interactive.ts +333 -19
- package/src/generators/all.ts +3 -2
- package/src/generators/doc-parser.ts +75 -15
- package/src/generators/templates/fullstack.ts +1 -1
- package/src/generators/templates/website-components.ts +1 -1
- package/src/generators/templates/website-config.ts +23 -11
- package/src/generators/templates/website-conversion.ts +1 -1
- package/src/generators/templates/website-landing.ts +1 -1
- package/src/generators/templates/website-layout.ts +491 -23
- package/src/generators/templates/website-pricing.ts +1 -1
- package/src/generators/templates/website-sections.ts +1 -1
- package/src/generators/templates/website-seo.ts +4 -1
- package/src/generators/templates/website.ts +3 -0
- package/src/generators/website-content-ai.ts +186 -0
- package/src/generators/website-content-scanner.ts +113 -1
- package/src/generators/website-context.ts +151 -12
- package/src/generators/website-debug.ts +26 -0
- package/src/generators/website.ts +28 -3
- package/src/pipeline/auto-recovery.ts +283 -0
- package/src/pipeline/change-request.ts +63 -1
- package/src/pipeline/check-runner.ts +141 -2
- package/src/pipeline/command-resolver.ts +34 -2
- package/src/pipeline/consensus/arbitrator-query.ts +101 -0
- package/src/pipeline/consensus/consensus-runner.ts +1099 -42
- package/src/pipeline/cr-lifecycle.ts +103 -0
- package/src/pipeline/gate-engine.ts +35 -7
- package/src/pipeline/orchestrator.ts +361 -16
- package/src/pipeline/packets/consensus-packet-builder.ts +44 -18
- package/src/pipeline/phases/architecture.ts +6 -3
- package/src/pipeline/phases/audit.ts +6 -3
- package/src/pipeline/phases/consensus-architecture.ts +10 -1
- package/src/pipeline/phases/consensus-master-plan.ts +10 -3
- package/src/pipeline/phases/consensus-role-plans.ts +10 -1
- package/src/pipeline/phases/done.ts +15 -4
- package/src/pipeline/phases/intake.ts +7 -3
- package/src/pipeline/phases/phase-context.ts +6 -1
- package/src/pipeline/phases/production-gate.ts +41 -3
- package/src/pipeline/phases/qa-validation.ts +51 -5
- package/src/pipeline/phases/recovery-loop.ts +229 -7
- package/src/pipeline/phases/review.ts +73 -30
- package/src/pipeline/phases/role-planning.ts +21 -2
- package/src/pipeline/phases/stuck.ts +10 -0
- package/src/pipeline/repo-snapshot.ts +3 -0
- package/src/pipeline/role-execution-adapter.ts +30 -4
- package/src/pipeline/skill-loader.ts +33 -0
- package/src/pipeline/skills/coverage-gate.ts +199 -0
- package/src/pipeline/skills/usage-registry.ts +87 -0
- package/src/pipeline/strategy-context.ts +60 -0
- package/src/pipeline/type-defs/artifacts.ts +4 -0
- package/src/pipeline/type-defs/checks.ts +4 -0
- package/src/pipeline/type-defs/packets.ts +18 -1
- package/src/pipeline/type-defs/state.ts +26 -1
- package/src/shared/text-utils.ts +70 -0
- package/src/shared/website-strategy-format.ts +56 -0
- package/src/state/index.ts +60 -8
- package/src/types/consensus.ts +1 -0
- package/src/types/workflow.ts +6 -0
- package/src/upgrade/handlers.ts +9 -3
- package/src/workflow/consensus.ts +1 -0
- package/src/workflow/website-strategy.ts +2 -36
- package/src/workflow/website-updater.ts +4 -2
- package/tests/adapters/gemini.test.ts +165 -0
- package/tests/adapters/grok.test.ts +137 -0
- package/tests/adapters/openai.test.ts +128 -0
- package/tests/generators/doc-parser.test.ts +88 -9
- package/tests/generators/quality-gate.test.ts +19 -3
- package/tests/generators/website-components.test.ts +34 -0
- package/tests/generators/website-content-ai.test.ts +308 -0
- package/tests/generators/website-content-scanner.test.ts +86 -0
- package/tests/generators/website-context.test.ts +3 -2
- package/tests/integration/smokestack-scaffold.test.ts +385 -0
- package/tests/pipeline/auto-recovery.test.ts +337 -0
- package/tests/pipeline/change-request.test.ts +70 -0
- package/tests/pipeline/command-resolver.test.ts +42 -0
- package/tests/pipeline/consensus/arbitrator-query.test.ts +107 -0
- package/tests/pipeline/consensus-runner.test.ts +1333 -10
- package/tests/pipeline/consensus-scoring.test.ts +602 -18
- package/tests/pipeline/gate-engine.test.ts +34 -0
- package/tests/pipeline/install-check.test.ts +261 -0
- package/tests/pipeline/orchestrator.test.ts +1506 -15
- package/tests/pipeline/packets/builders.test.ts +29 -6
- package/tests/pipeline/phases/role-planning.strategy.test.ts +204 -0
- package/tests/pipeline/pipeline-persistence.test.ts +230 -0
- package/tests/pipeline/recovery-loop-guidance.test.ts +280 -0
- package/tests/pipeline/role-execution-adapter.test.ts +88 -0
- package/tests/pipeline/skills/coverage-gate.test.ts +370 -0
- package/tests/pipeline/skills/usage-registry.test.ts +114 -0
- package/tests/pipeline/strategy-context.test.ts +148 -0
- package/tests/shared/text-utils.test.ts +155 -0
- package/tests/state/progress-analysis.test.ts +375 -0
- package/tests/upgrade/handlers.test.ts +33 -2
- package/tests/workflow/consensus.test.ts +6 -0
- package/tsconfig.json +1 -1
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Auto-recovery via arbitrator strategic guidance (v2.6.0).
|
|
3
|
+
*
|
|
4
|
+
* When the pipeline exhausts its recovery budget, this module consults
|
|
5
|
+
* the arbitrator for a strategic perspective before entering STUCK.
|
|
6
|
+
* The arbitrator sees the full failure history and identifies patterns,
|
|
7
|
+
* not individual failures.
|
|
8
|
+
*/
|
|
9
|
+
import { readFileSync, existsSync } from 'node:fs';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
import logging from 'node:console';
|
|
12
|
+
import { queryProvider } from './consensus/arbitrator-query.js';
|
|
13
|
+
import { getModelForProvider } from './consensus/consensus-runner.js';
|
|
14
|
+
const logger = logging;
|
|
15
|
+
// ─── AUTO-RECOVERY GUIDANCE marker ───────────────────────
|
|
16
|
+
const AUTO_RECOVERY_MARKER = '--- AUTO-RECOVERY GUIDANCE ---';
|
|
17
|
+
// ─── Failure Context Builder ─────────────────────────────
|
|
18
|
+
/**
|
|
19
|
+
* Extract structured failure evidence from pipeline state.
|
|
20
|
+
* All file reads are wrapped in try/catch with placeholder text.
|
|
21
|
+
*/
|
|
22
|
+
export function buildFailureContext(pipeline, projectDir) {
|
|
23
|
+
const failedPhase = pipeline.failedPhase ?? 'unknown';
|
|
24
|
+
const recoveryCount = pipeline.recoveryCount;
|
|
25
|
+
const maxIterations = pipeline.maxRecoveryIterations;
|
|
26
|
+
// Gate blockers
|
|
27
|
+
const gateResult = pipeline.failedPhase
|
|
28
|
+
? pipeline.gateResults[pipeline.failedPhase]
|
|
29
|
+
: undefined;
|
|
30
|
+
const blockers = gateResult?.blockers ?? [];
|
|
31
|
+
// Check failures (command + stderr excerpt)
|
|
32
|
+
const checkResults = pipeline.failedPhase
|
|
33
|
+
? pipeline.gateChecks[pipeline.failedPhase] ?? []
|
|
34
|
+
: [];
|
|
35
|
+
const checkFailures = checkResults
|
|
36
|
+
.filter((c) => c.status === 'fail')
|
|
37
|
+
.map((c) => `${c.check_type}: cmd="${c.command}" stderr="${(c.stderr_summary ?? '').slice(0, 200)}"`)
|
|
38
|
+
.slice(0, 5);
|
|
39
|
+
// Phase transition sequence — last 10 entries from gateResults
|
|
40
|
+
const transitionSequence = Object.entries(pipeline.gateResults)
|
|
41
|
+
.map(([phase, result]) => {
|
|
42
|
+
const topBlocker = result.blockers?.[0] ?? 'none';
|
|
43
|
+
return `${phase}: ${result.pass ? 'PASS' : 'FAIL'} (${topBlocker})`;
|
|
44
|
+
})
|
|
45
|
+
.slice(-10);
|
|
46
|
+
// Last 3 RCA report summaries (read text artifacts from disk)
|
|
47
|
+
const rcaArtifacts = pipeline.artifacts
|
|
48
|
+
.filter((a) => a.type === 'rca_report' && a.content_type === 'markdown')
|
|
49
|
+
.sort((a, b) => b.timestamp.localeCompare(a.timestamp))
|
|
50
|
+
.slice(0, 3);
|
|
51
|
+
const rcaSummaries = rcaArtifacts.map((a) => readArtifactSummary(projectDir, a.path, 500));
|
|
52
|
+
// Last 2 recovery fix plan summaries
|
|
53
|
+
const fixPlanArtifacts = pipeline.artifacts
|
|
54
|
+
.filter((a) => a.type === 'recovery_fix_plan')
|
|
55
|
+
.sort((a, b) => b.timestamp.localeCompare(a.timestamp))
|
|
56
|
+
.slice(0, 2);
|
|
57
|
+
const recoveryPlanSummaries = fixPlanArtifacts.map((a) => readArtifactSummary(projectDir, a.path, 500));
|
|
58
|
+
const sessionGuidance = pipeline.sessionGuidance ?? '';
|
|
59
|
+
return {
|
|
60
|
+
failedPhase,
|
|
61
|
+
recoveryCount,
|
|
62
|
+
maxIterations,
|
|
63
|
+
blockers,
|
|
64
|
+
checkFailures,
|
|
65
|
+
transitionSequence,
|
|
66
|
+
rcaSummaries,
|
|
67
|
+
recoveryPlanSummaries,
|
|
68
|
+
sessionGuidance,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
// ─── Prompt Builder ──────────────────────────────────────
|
|
72
|
+
/**
|
|
73
|
+
* Build the strategic recovery prompt for the arbitrator.
|
|
74
|
+
* Focuses on pattern analysis, not individual fixes.
|
|
75
|
+
*/
|
|
76
|
+
export function buildAutoRecoveryPrompt(ctx) {
|
|
77
|
+
const lines = [
|
|
78
|
+
'# Strategic Recovery Analysis',
|
|
79
|
+
'',
|
|
80
|
+
`The pipeline failed at ${ctx.failedPhase} after ${ctx.recoveryCount}/${ctx.maxIterations} recovery attempts.`,
|
|
81
|
+
'All tactical fixes have been tried. You need to identify the PATTERN, not the individual failure.',
|
|
82
|
+
'',
|
|
83
|
+
'## Failure Timeline',
|
|
84
|
+
...ctx.transitionSequence.map((s) => `- ${s}`),
|
|
85
|
+
'',
|
|
86
|
+
'## Current Blockers',
|
|
87
|
+
...ctx.blockers.map((b) => `- ${b}`),
|
|
88
|
+
...(ctx.checkFailures.length > 0
|
|
89
|
+
? ['', '## Check Failures', ...ctx.checkFailures.map((f) => `- ${f}`)]
|
|
90
|
+
: []),
|
|
91
|
+
'',
|
|
92
|
+
'## What Was Already Tried',
|
|
93
|
+
];
|
|
94
|
+
if (ctx.rcaSummaries.length > 0) {
|
|
95
|
+
lines.push('### RCA Reports');
|
|
96
|
+
ctx.rcaSummaries.forEach((s, i) => {
|
|
97
|
+
lines.push(`#### RCA ${i + 1}`, s, '');
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (ctx.recoveryPlanSummaries.length > 0) {
|
|
101
|
+
lines.push('### Recovery Fix Plans');
|
|
102
|
+
ctx.recoveryPlanSummaries.forEach((s, i) => {
|
|
103
|
+
lines.push(`#### Fix Plan ${i + 1}`, s, '');
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (ctx.sessionGuidance) {
|
|
107
|
+
lines.push('## Current Guidance', ctx.sessionGuidance.slice(0, 1500), '');
|
|
108
|
+
}
|
|
109
|
+
lines.push('## Your Task', '', `1. **Root Pattern**: What recurring pattern caused all ${ctx.recoveryCount} attempts to fail?`, ' Pick the SINGLE most likely root pattern.', '', '2. **Primary Strategy**: One concrete strategic change that breaks the pattern.', ' (e.g., "reduce scope to X", "replace Y approach with Z", "remove module W entirely")', '', '3. **Fallback Strategy**: One alternative if the primary doesn\'t work.', '', '4. **Stop Doing** (list 3 things): Based on the history, what should the pipeline', ' STOP trying? These are approaches that have been attempted and failed.', '', '5. **Concrete Next Steps**: 3-5 high-level steps (not code-level fixes).', '', 'Be decisive. Pick one direction. Do NOT produce another tactical dump.');
|
|
110
|
+
return lines.join('\n');
|
|
111
|
+
}
|
|
112
|
+
// ─── Main Entry Point ────────────────────────────────────
|
|
113
|
+
/**
|
|
114
|
+
* Attempt auto-recovery by consulting the arbitrator for strategic guidance.
|
|
115
|
+
*
|
|
116
|
+
* @returns Result with success flag, guidance text, and stored artifact
|
|
117
|
+
*/
|
|
118
|
+
export async function attemptAutoRecovery(opts) {
|
|
119
|
+
const { pipeline, projectDir, artifactManager, consensusConfig } = opts;
|
|
120
|
+
// Build failure context and strategic prompt
|
|
121
|
+
const ctx = buildFailureContext(pipeline, projectDir);
|
|
122
|
+
const prompt = buildAutoRecoveryPrompt(ctx);
|
|
123
|
+
// Resolve arbitrator provider config
|
|
124
|
+
const arbitratorName = consensusConfig?.arbitrator ?? 'gemini';
|
|
125
|
+
const model = getModelForProvider(consensusConfig, arbitratorName);
|
|
126
|
+
const providerConfig = {
|
|
127
|
+
provider: arbitratorName,
|
|
128
|
+
model,
|
|
129
|
+
temperature: 0.3,
|
|
130
|
+
};
|
|
131
|
+
logger.log(`[auto-recovery] Querying ${providerConfig.provider}/${providerConfig.model} for strategic guidance`);
|
|
132
|
+
// Query with 90s timeout
|
|
133
|
+
const raw = await queryProvider(prompt, providerConfig, 90_000);
|
|
134
|
+
if (!raw) {
|
|
135
|
+
logger.warn('[auto-recovery] Provider returned no response (timeout or error)');
|
|
136
|
+
return { success: false, guidance: null, artifact: null };
|
|
137
|
+
}
|
|
138
|
+
// Validate minimum response length
|
|
139
|
+
if (raw.trim().length < 50) {
|
|
140
|
+
logger.warn(`[auto-recovery] Response too short (${raw.trim().length} chars), discarding`);
|
|
141
|
+
return { success: false, guidance: null, artifact: null };
|
|
142
|
+
}
|
|
143
|
+
// Store as artifact
|
|
144
|
+
const artifact = artifactManager.createAndStoreText('auto_recovery_guidance', `# Auto-Recovery Strategic Guidance\n\n${raw}`, 'RECOVERY_LOOP');
|
|
145
|
+
// Inject into sessionGuidance (idempotent — replaces prior auto-recovery block)
|
|
146
|
+
injectAutoRecoveryGuidance(pipeline, raw);
|
|
147
|
+
logger.log(`[auto-recovery] Guidance received and injected (${raw.length} chars)`);
|
|
148
|
+
return { success: true, guidance: raw, artifact };
|
|
149
|
+
}
|
|
150
|
+
// ─── Guidance Injection ──────────────────────────────────
|
|
151
|
+
/**
|
|
152
|
+
* Inject auto-recovery guidance into pipeline.sessionGuidance.
|
|
153
|
+
* Replaces any prior auto-recovery block while preserving base guidance.
|
|
154
|
+
*/
|
|
155
|
+
export function injectAutoRecoveryGuidance(pipeline, guidance) {
|
|
156
|
+
const existing = pipeline.sessionGuidance ?? '';
|
|
157
|
+
// Strip prior auto-recovery block if present
|
|
158
|
+
const base = existing.includes(AUTO_RECOVERY_MARKER)
|
|
159
|
+
? existing.slice(0, existing.indexOf(AUTO_RECOVERY_MARKER)).trim()
|
|
160
|
+
: existing;
|
|
161
|
+
pipeline.sessionGuidance = [
|
|
162
|
+
base,
|
|
163
|
+
'',
|
|
164
|
+
AUTO_RECOVERY_MARKER,
|
|
165
|
+
guidance.slice(0, 3000),
|
|
166
|
+
].join('\n').trim();
|
|
167
|
+
}
|
|
168
|
+
// ─── Helpers ─────────────────────────────────────────────
|
|
169
|
+
/**
|
|
170
|
+
* Read artifact content from disk, returning first N chars or placeholder.
|
|
171
|
+
*/
|
|
172
|
+
function readArtifactSummary(projectDir, artifactPath, maxChars) {
|
|
173
|
+
try {
|
|
174
|
+
const fullPath = join(projectDir, artifactPath);
|
|
175
|
+
if (!existsSync(fullPath)) {
|
|
176
|
+
return `[Could not read: ${artifactPath} — file not found]`;
|
|
177
|
+
}
|
|
178
|
+
const content = readFileSync(fullPath, 'utf-8');
|
|
179
|
+
return content.slice(0, maxChars);
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
return `[Could not read: ${artifactPath}]`;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=auto-recovery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-recovery.js","sourceRoot":"","sources":["../../src/pipeline/auto-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,8 @@ export interface BuildChangeRequestArgs {
|
|
|
13
13
|
affectedArtifacts: ArtifactRef[];
|
|
14
14
|
affectedPhases: PipelinePhase[];
|
|
15
15
|
riskLevel: 'low' | 'medium' | 'high';
|
|
16
|
+
/** Deterministic drift fingerprint for CR deduplication (v2.4.9) */
|
|
17
|
+
driftKey?: string;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* Build a change request with generated ID and timestamp.
|
|
@@ -44,4 +46,41 @@ export declare function routeChangeRequest(cr: ChangeRequest): PipelinePhase;
|
|
|
44
46
|
* Markdown-formatted string.
|
|
45
47
|
*/
|
|
46
48
|
export declare function formatChangeRequest(cr: ChangeRequest): string;
|
|
49
|
+
/**
|
|
50
|
+
* Compute a deterministic drift key for CR deduplication.
|
|
51
|
+
* Same drift (same change type, baseline, changed configs, content hashes)
|
|
52
|
+
* always produces the same key, regardless of input order.
|
|
53
|
+
*
|
|
54
|
+
* Args:
|
|
55
|
+
* changeType: The CR change type (config, scope, etc.).
|
|
56
|
+
* baselineSnapshotId: The artifact_id of the baseline snapshot.
|
|
57
|
+
* changedConfigs: List of changed config file paths.
|
|
58
|
+
* configHashPairs: Array of "path:beforeHash->afterHash" strings.
|
|
59
|
+
*
|
|
60
|
+
* Returns:
|
|
61
|
+
* A 32-char hex string (SHA-256 prefix).
|
|
62
|
+
*/
|
|
63
|
+
export declare function computeDriftKey(changeType: string, baselineSnapshotId: string, changedConfigs: string[], configHashPairs: string[]): string;
|
|
64
|
+
/** Pending CR shape from PipelineState */
|
|
65
|
+
interface PendingCR {
|
|
66
|
+
cr_id: string;
|
|
67
|
+
change_type: string;
|
|
68
|
+
target_phase: string;
|
|
69
|
+
status: string;
|
|
70
|
+
drift_key?: string;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Check whether a pending CR with the same drift_key already exists.
|
|
74
|
+
* Returns true if any non-rejected CR has the same drift_key (proposed,
|
|
75
|
+
* approved, or resolved CRs all count as "already tracked").
|
|
76
|
+
*
|
|
77
|
+
* Args:
|
|
78
|
+
* pendingCRs: The current pending change requests array (may be undefined).
|
|
79
|
+
* driftKey: The drift key to check.
|
|
80
|
+
*
|
|
81
|
+
* Returns:
|
|
82
|
+
* true if a non-rejected duplicate exists.
|
|
83
|
+
*/
|
|
84
|
+
export declare function isDuplicateCR(pendingCRs: PendingCR[] | undefined, driftKey: string): boolean;
|
|
85
|
+
export {};
|
|
47
86
|
//# sourceMappingURL=change-request.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-request.d.ts","sourceRoot":"","sources":["../../src/pipeline/change-request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"change-request.d.ts","sourceRoot":"","sources":["../../src/pipeline/change-request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,WAAW,EACX,aAAa,EACd,MAAM,YAAY,CAAC;AAIpB,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,aAAa,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,UAAU,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IACjC,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,SAAS,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACrC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,sBAAsB,GAAG,aAAa,CAiB9E;AAaD;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,aAAa,GAAG,aAAa,CAEnE;AAID;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,aAAa,GAAG,MAAM,CA4B7D;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,kBAAkB,EAAE,MAAM,EAC1B,cAAc,EAAE,MAAM,EAAE,EACxB,eAAe,EAAE,MAAM,EAAE,GACxB,MAAM,CAKR;AAED,0CAA0C;AAC1C,UAAU,SAAS;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,EACnC,QAAQ,EAAE,MAAM,GACf,OAAO,CAKT"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* CRs are created when drift is detected (REVIEW) or architectural issues found (AUDIT).
|
|
4
4
|
* Each CR routes to the appropriate consensus phase for approval.
|
|
5
5
|
*/
|
|
6
|
-
import { randomUUID } from 'node:crypto';
|
|
6
|
+
import { randomUUID, createHash } from 'node:crypto';
|
|
7
7
|
/**
|
|
8
8
|
* Build a change request with generated ID and timestamp.
|
|
9
9
|
*
|
|
@@ -28,6 +28,7 @@ export function buildChangeRequest(args) {
|
|
|
28
28
|
risk_level: args.riskLevel,
|
|
29
29
|
},
|
|
30
30
|
status: 'proposed',
|
|
31
|
+
drift_key: args.driftKey,
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
// ─── CR Routing ──────────────────────────────────────────
|
|
@@ -88,4 +89,42 @@ export function formatChangeRequest(cr) {
|
|
|
88
89
|
}
|
|
89
90
|
return lines.join('\n');
|
|
90
91
|
}
|
|
92
|
+
// ─── Drift Key Dedup (v2.4.9) ────────────────────────────
|
|
93
|
+
/**
|
|
94
|
+
* Compute a deterministic drift key for CR deduplication.
|
|
95
|
+
* Same drift (same change type, baseline, changed configs, content hashes)
|
|
96
|
+
* always produces the same key, regardless of input order.
|
|
97
|
+
*
|
|
98
|
+
* Args:
|
|
99
|
+
* changeType: The CR change type (config, scope, etc.).
|
|
100
|
+
* baselineSnapshotId: The artifact_id of the baseline snapshot.
|
|
101
|
+
* changedConfigs: List of changed config file paths.
|
|
102
|
+
* configHashPairs: Array of "path:beforeHash->afterHash" strings.
|
|
103
|
+
*
|
|
104
|
+
* Returns:
|
|
105
|
+
* A 32-char hex string (SHA-256 prefix).
|
|
106
|
+
*/
|
|
107
|
+
export function computeDriftKey(changeType, baselineSnapshotId, changedConfigs, configHashPairs) {
|
|
108
|
+
const sortedConfigs = [...changedConfigs].sort().join(',');
|
|
109
|
+
const sortedPairs = [...configHashPairs].sort().join(',');
|
|
110
|
+
const input = `${changeType}|${baselineSnapshotId}|${sortedConfigs}|${sortedPairs}`;
|
|
111
|
+
return createHash('sha256').update(input).digest('hex').slice(0, 32);
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Check whether a pending CR with the same drift_key already exists.
|
|
115
|
+
* Returns true if any non-rejected CR has the same drift_key (proposed,
|
|
116
|
+
* approved, or resolved CRs all count as "already tracked").
|
|
117
|
+
*
|
|
118
|
+
* Args:
|
|
119
|
+
* pendingCRs: The current pending change requests array (may be undefined).
|
|
120
|
+
* driftKey: The drift key to check.
|
|
121
|
+
*
|
|
122
|
+
* Returns:
|
|
123
|
+
* true if a non-rejected duplicate exists.
|
|
124
|
+
*/
|
|
125
|
+
export function isDuplicateCR(pendingCRs, driftKey) {
|
|
126
|
+
if (!pendingCRs)
|
|
127
|
+
return false;
|
|
128
|
+
return pendingCRs.some((cr) => cr.drift_key === driftKey && cr.status !== 'rejected');
|
|
129
|
+
}
|
|
91
130
|
//# sourceMappingURL=change-request.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"change-request.js","sourceRoot":"","sources":["../../src/pipeline/change-request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"change-request.js","sourceRoot":"","sources":["../../src/pipeline/change-request.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAwBrD;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAA4B;IAC7D,OAAO;QACL,KAAK,EAAE,MAAM,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE;QACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,YAAY,EAAE,IAAI,CAAC,WAAW;QAC9B,YAAY,EAAE,IAAI,CAAC,WAAW;QAC9B,WAAW,EAAE,IAAI,CAAC,UAAU;QAC5B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,eAAe,EAAE;YACf,kBAAkB,EAAE,IAAI,CAAC,iBAAiB;YAC1C,eAAe,EAAE,IAAI,CAAC,cAAc;YACpC,UAAU,EAAE,IAAI,CAAC,SAAS;SAC3B;QACD,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,IAAI,CAAC,QAAQ;KACzB,CAAC;AACJ,CAAC;AAED,4DAA4D;AAE5D,sEAAsE;AACtE,MAAM,mBAAmB,GAAwD;IAC/E,KAAK,EAAE,uBAAuB;IAC9B,YAAY,EAAE,wBAAwB;IACtC,UAAU,EAAE,sBAAsB;IAClC,MAAM,EAAE,eAAe;IACvB,WAAW,EAAE,uBAAuB;CACrC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAiB;IAClD,OAAO,mBAAmB,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC;AAC7C,CAAC;AAED,4DAA4D;AAE5D;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,EAAiB;IACnD,MAAM,KAAK,GAAG;QACZ,oBAAoB,EAAE,CAAC,KAAK,EAAE;QAC9B,EAAE;QACF,eAAe,EAAE,CAAC,MAAM,EAAE;QAC1B,aAAa,EAAE,CAAC,WAAW,EAAE;QAC7B,qBAAqB,EAAE,CAAC,YAAY,EAAE;QACtC,qBAAqB,EAAE,CAAC,YAAY,EAAE;QACtC,mBAAmB,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE;QAClD,kBAAkB,EAAE,CAAC,SAAS,EAAE;QAChC,EAAE;QACF,gBAAgB;QAChB,EAAE,CAAC,WAAW;QACd,EAAE;QACF,kBAAkB;QAClB,EAAE,CAAC,aAAa;QAChB,EAAE;QACF,oBAAoB;QACpB,sBAAsB,EAAE,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrE,yBAAyB,EAAE,CAAC,eAAe,CAAC,kBAAkB,CAAC,MAAM,EAAE;QACvE,iBAAiB,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE;KACjD,CAAC;IAEF,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,EAAE,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,4DAA4D;AAE5D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,UAAkB,EAClB,kBAA0B,EAC1B,cAAwB,EACxB,eAAyB;IAEzB,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,CAAC,GAAG,eAAe,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,GAAG,UAAU,IAAI,kBAAkB,IAAI,aAAa,IAAI,WAAW,EAAE,CAAC;IACpF,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACvE,CAAC;AAWD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,aAAa,CAC3B,UAAmC,EACnC,QAAgB;IAEhB,IAAI,CAAC,UAAU;QAAE,OAAO,KAAK,CAAC;IAC9B,OAAO,UAAU,CAAC,IAAI,CACpB,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,UAAU,CAC9D,CAAC;AACJ,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Safety: command sanitization, cwd enforcement, stream caps,
|
|
6
6
|
* configurable timeouts (P2-G).
|
|
7
7
|
*/
|
|
8
|
-
import type { GateCheckResult, GateCheckType, ResolvedCommands, RepoSnapshot, ArtifactEntry, PipelinePhase } from './types.js';
|
|
8
|
+
import type { GateCheckResult, GateCheckType, ResolvedCommands, RepoSnapshot, ArtifactEntry, PipelinePhase, PipelineState } from './types.js';
|
|
9
9
|
import { ArtifactManager } from './artifact-manager.js';
|
|
10
10
|
/** Execute a single check command */
|
|
11
11
|
export declare function runCheck(checkType: GateCheckType, command: string, projectDir: string, timeoutOverride?: number): Promise<GateCheckResult>;
|
|
@@ -32,6 +32,19 @@ export declare function runStartCheck(startCommand: string, projectDir: string,
|
|
|
32
32
|
healthPath?: string;
|
|
33
33
|
timeoutMs?: number;
|
|
34
34
|
}): Promise<GateCheckResult>;
|
|
35
|
+
/**
|
|
36
|
+
* Run deterministic skill coverage check against pipeline state.
|
|
37
|
+
* No subprocess needed — pure in-memory assertion.
|
|
38
|
+
*
|
|
39
|
+
* Args:
|
|
40
|
+
* pipeline: Current pipeline state with activeRoles and skillUsageEvents.
|
|
41
|
+
* currentPhase: Current pipeline phase for phase-aware deferral (v2.4.5).
|
|
42
|
+
* Omit for strict mode (checks all roles).
|
|
43
|
+
*
|
|
44
|
+
* Returns:
|
|
45
|
+
* GateCheckResult with pass/fail status.
|
|
46
|
+
*/
|
|
47
|
+
export declare function runSkillCoverageCheck(pipeline: PipelineState, currentPhase?: PipelinePhase): GateCheckResult;
|
|
35
48
|
/**
|
|
36
49
|
* Validate that required environment variables exist.
|
|
37
50
|
* Reads .env.example for required var names and checks .env has them set.
|
|
@@ -44,4 +57,20 @@ export declare function runStartCheck(startCommand: string, projectDir: string,
|
|
|
44
57
|
* GateCheckResult with pass/fail status.
|
|
45
58
|
*/
|
|
46
59
|
export declare function runEnvCheck(projectDir: string, _snapshot?: RepoSnapshot): GateCheckResult;
|
|
60
|
+
/**
|
|
61
|
+
* Determine whether install can be skipped based on lockfile hash.
|
|
62
|
+
* Returns true only if the marker matches the current lockfile hash
|
|
63
|
+
* AND the install target directory exists (node_modules or .venv).
|
|
64
|
+
*/
|
|
65
|
+
export declare function shouldSkipInstall(projectDir: string, snapshot: RepoSnapshot): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* Write install marker after successful install.
|
|
68
|
+
* Stores the current lockfile hash for future skip checks.
|
|
69
|
+
*/
|
|
70
|
+
export declare function writeInstallMarker(projectDir: string, snapshot: RepoSnapshot): void;
|
|
71
|
+
/**
|
|
72
|
+
* Invalidate install marker so the next check re-runs install.
|
|
73
|
+
* Called on missing-module errors or dependency changes.
|
|
74
|
+
*/
|
|
75
|
+
export declare function invalidateInstallMarker(projectDir: string): void;
|
|
47
76
|
//# sourceMappingURL=check-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/check-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"check-runner.d.ts","sourceRoot":"","sources":["../../src/pipeline/check-runner.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AA0DxD,qCAAqC;AACrC,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,eAAe,CAAC,CAuD1B;AAED,2DAA2D;AAC3D,wBAAsB,YAAY,CAChC,gBAAgB,EAAE,gBAAgB,EAClC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC,CA4B5B;AAED,uCAAuC;AACvC,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,eAAe,EAAE,EAC1B,eAAe,EAAE,eAAe,EAChC,KAAK,EAAE,aAAa,GACnB,aAAa,EAAE,CAmBjB;AAkBD,qDAAqD;AACrD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,eAAe,CA+BjB;AA2DD;;;;;;;;;;;GAWG;AACH,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE,OAAO,CAAC,eAAe,CAAC,CAoE1B;AAID;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,EACvB,YAAY,CAAC,EAAE,aAAa,GAC3B,eAAe,CAgBjB;AAID;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,YAAY,GACvB,eAAe,CAqEjB;AA6CD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAmBrF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,CAmBnF;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAOhE"}
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
* configurable timeouts (P2-G).
|
|
7
7
|
*/
|
|
8
8
|
import { exec } from 'node:child_process';
|
|
9
|
-
import { existsSync, readFileSync, readdirSync } from 'node:fs';
|
|
9
|
+
import { existsSync, readFileSync, readdirSync, writeFileSync, mkdirSync, unlinkSync } from 'node:fs';
|
|
10
10
|
import { join, extname } from 'node:path';
|
|
11
|
+
import { assertSkillCoverage } from './skills/coverage-gate.js';
|
|
11
12
|
// ─── Constants ───────────────────────────────────────────
|
|
12
13
|
/** Default timeout per check type in milliseconds */
|
|
13
14
|
const DEFAULT_TIMEOUTS = {
|
|
15
|
+
install: 15 * 60 * 1000, // 15 minutes
|
|
14
16
|
build: 20 * 60 * 1000, // 20 minutes
|
|
15
17
|
test: 10 * 60 * 1000, // 10 minutes
|
|
16
18
|
lint: 5 * 60 * 1000, // 5 minutes
|
|
@@ -42,6 +44,7 @@ const PLACEHOLDER_PATTERNS = [
|
|
|
42
44
|
/\btemp\b(?!late)/i, // 'temp' but not 'template'
|
|
43
45
|
/lorem ipsum/i,
|
|
44
46
|
/example\.com/i,
|
|
47
|
+
/coming soon/i,
|
|
45
48
|
];
|
|
46
49
|
// ─── Command Sanitization ────────────────────────────────
|
|
47
50
|
function sanitizeCommand(command) {
|
|
@@ -156,6 +159,7 @@ function mapCheckTypeToArtifactType(checkType) {
|
|
|
156
159
|
case 'lint': return 'lint_check';
|
|
157
160
|
case 'typecheck': return 'typecheck_check';
|
|
158
161
|
case 'placeholder_scan': return 'placeholder_scan';
|
|
162
|
+
case 'install': return 'install_check';
|
|
159
163
|
default: return 'build_check';
|
|
160
164
|
}
|
|
161
165
|
}
|
|
@@ -314,6 +318,35 @@ export async function runStartCheck(startCommand, projectDir, options) {
|
|
|
314
318
|
}, timeout);
|
|
315
319
|
});
|
|
316
320
|
}
|
|
321
|
+
// ─── Skill Coverage Check (v2.2.1) ──────────────────────
|
|
322
|
+
/**
|
|
323
|
+
* Run deterministic skill coverage check against pipeline state.
|
|
324
|
+
* No subprocess needed — pure in-memory assertion.
|
|
325
|
+
*
|
|
326
|
+
* Args:
|
|
327
|
+
* pipeline: Current pipeline state with activeRoles and skillUsageEvents.
|
|
328
|
+
* currentPhase: Current pipeline phase for phase-aware deferral (v2.4.5).
|
|
329
|
+
* Omit for strict mode (checks all roles).
|
|
330
|
+
*
|
|
331
|
+
* Returns:
|
|
332
|
+
* GateCheckResult with pass/fail status.
|
|
333
|
+
*/
|
|
334
|
+
export function runSkillCoverageCheck(pipeline, currentPhase) {
|
|
335
|
+
const events = pipeline.skillUsageEvents ?? [];
|
|
336
|
+
const result = assertSkillCoverage(pipeline.activeRoles, events, pipeline, currentPhase);
|
|
337
|
+
return {
|
|
338
|
+
check_type: 'skill_coverage',
|
|
339
|
+
status: result.pass ? 'pass' : 'fail',
|
|
340
|
+
command: 'skill-coverage-check',
|
|
341
|
+
exit_code: result.pass ? 0 : 1,
|
|
342
|
+
stderr_summary: result.pass
|
|
343
|
+
? `All ${result.covered.length} active roles have skill usage` +
|
|
344
|
+
(result.deferred.length > 0 ? ` (${result.deferred.length} deferred)` : '')
|
|
345
|
+
: `Missing skill usage: ${result.missing.map((m) => `${m.role} (${m.reason})`).join(', ')}`,
|
|
346
|
+
duration_ms: 0,
|
|
347
|
+
timestamp: new Date().toISOString(),
|
|
348
|
+
};
|
|
349
|
+
}
|
|
317
350
|
// ─── Env Check (v1.1 Gap #5) ────────────────────────────
|
|
318
351
|
/**
|
|
319
352
|
* Validate that required environment variables exist.
|
|
@@ -414,4 +447,92 @@ function parseEnvVarValues(content) {
|
|
|
414
447
|
}
|
|
415
448
|
return vars;
|
|
416
449
|
}
|
|
450
|
+
/** Canonical lockfile names by ecosystem */
|
|
451
|
+
const LOCKFILE_MAP = {
|
|
452
|
+
npm: 'package-lock.json',
|
|
453
|
+
pnpm: 'pnpm-lock.yaml',
|
|
454
|
+
yarn: 'yarn.lock',
|
|
455
|
+
bun: 'bun.lockb',
|
|
456
|
+
poetry: 'poetry.lock',
|
|
457
|
+
pip: 'requirements.txt',
|
|
458
|
+
};
|
|
459
|
+
/**
|
|
460
|
+
* Determine whether install can be skipped based on lockfile hash.
|
|
461
|
+
* Returns true only if the marker matches the current lockfile hash
|
|
462
|
+
* AND the install target directory exists (node_modules or .venv).
|
|
463
|
+
*/
|
|
464
|
+
export function shouldSkipInstall(projectDir, snapshot) {
|
|
465
|
+
const markerPath = join(projectDir, '.popeye', 'install-marker.json');
|
|
466
|
+
if (!existsSync(markerPath))
|
|
467
|
+
return false;
|
|
468
|
+
try {
|
|
469
|
+
const marker = JSON.parse(readFileSync(markerPath, 'utf-8'));
|
|
470
|
+
const currentHash = getCanonicalLockfileHash(snapshot);
|
|
471
|
+
if (!currentHash || marker.lockfileHash !== currentHash)
|
|
472
|
+
return false;
|
|
473
|
+
// Verify install target directory exists
|
|
474
|
+
const pm = snapshot.package_manager ?? 'npm';
|
|
475
|
+
const isPython = pm === 'pip' || pm === 'poetry';
|
|
476
|
+
const targetDir = isPython
|
|
477
|
+
? join(projectDir, '.venv')
|
|
478
|
+
: join(projectDir, 'node_modules');
|
|
479
|
+
return existsSync(targetDir);
|
|
480
|
+
}
|
|
481
|
+
catch {
|
|
482
|
+
return false;
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
/**
|
|
486
|
+
* Write install marker after successful install.
|
|
487
|
+
* Stores the current lockfile hash for future skip checks.
|
|
488
|
+
*/
|
|
489
|
+
export function writeInstallMarker(projectDir, snapshot) {
|
|
490
|
+
const markerDir = join(projectDir, '.popeye');
|
|
491
|
+
const markerPath = join(markerDir, 'install-marker.json');
|
|
492
|
+
const lockfileHash = getCanonicalLockfileHash(snapshot);
|
|
493
|
+
if (!lockfileHash)
|
|
494
|
+
return;
|
|
495
|
+
try {
|
|
496
|
+
if (!existsSync(markerDir)) {
|
|
497
|
+
mkdirSync(markerDir, { recursive: true });
|
|
498
|
+
}
|
|
499
|
+
const marker = {
|
|
500
|
+
lockfileHash,
|
|
501
|
+
timestamp: new Date().toISOString(),
|
|
502
|
+
};
|
|
503
|
+
writeFileSync(markerPath, JSON.stringify(marker, null, 2));
|
|
504
|
+
}
|
|
505
|
+
catch {
|
|
506
|
+
// Non-fatal — worst case we re-run install next time
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
/**
|
|
510
|
+
* Invalidate install marker so the next check re-runs install.
|
|
511
|
+
* Called on missing-module errors or dependency changes.
|
|
512
|
+
*/
|
|
513
|
+
export function invalidateInstallMarker(projectDir) {
|
|
514
|
+
const markerPath = join(projectDir, '.popeye', 'install-marker.json');
|
|
515
|
+
try {
|
|
516
|
+
if (existsSync(markerPath))
|
|
517
|
+
unlinkSync(markerPath);
|
|
518
|
+
}
|
|
519
|
+
catch {
|
|
520
|
+
// Non-fatal
|
|
521
|
+
}
|
|
522
|
+
}
|
|
523
|
+
/** Get content_hash of the canonical lockfile from the snapshot */
|
|
524
|
+
function getCanonicalLockfileHash(snapshot) {
|
|
525
|
+
const pm = snapshot.package_manager ?? 'npm';
|
|
526
|
+
const lockfileName = LOCKFILE_MAP[pm];
|
|
527
|
+
if (lockfileName) {
|
|
528
|
+
const entry = snapshot.config_files.find((c) => c.type === lockfileName);
|
|
529
|
+
if (entry)
|
|
530
|
+
return entry.content_hash;
|
|
531
|
+
}
|
|
532
|
+
// Fallback: use package.json hash if no lockfile found
|
|
533
|
+
const pkgEntry = snapshot.config_files.find((c) => c.type === 'package.json');
|
|
534
|
+
if (pkgEntry)
|
|
535
|
+
return pkgEntry.content_hash;
|
|
536
|
+
return undefined;
|
|
537
|
+
}
|
|
417
538
|
//# sourceMappingURL=check-runner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../src/pipeline/check-runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"check-runner.js","sourceRoot":"","sources":["../../src/pipeline/check-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-resolver.d.ts","sourceRoot":"","sources":["../../src/pipeline/command-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAUrE;AAID,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"command-resolver.d.ts","sourceRoot":"","sources":["../../src/pipeline/command-resolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAIjE,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAElE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAUrE;AAID,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,YAAY,EACtB,SAAS,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACpC,gBAAgB,CA8ClB"}
|