@neurcode-ai/cli 0.10.1 → 0.12.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.
Files changed (171) hide show
  1. package/.telemetry-bundle/dist/contracts.d.ts +1 -1
  2. package/README.md +74 -25
  3. package/dist/commands/remediate-export.js +1 -1
  4. package/dist/commands/replay.d.ts.map +1 -1
  5. package/dist/commands/replay.js +36 -0
  6. package/dist/commands/replay.js.map +1 -1
  7. package/dist/commands/verify-output.d.ts.map +1 -1
  8. package/dist/commands/verify-output.js +66 -4
  9. package/dist/commands/verify-output.js.map +1 -1
  10. package/dist/commands/verify.d.ts +22 -1
  11. package/dist/commands/verify.d.ts.map +1 -1
  12. package/dist/commands/verify.js +446 -34
  13. package/dist/commands/verify.js.map +1 -1
  14. package/dist/daemon/server.d.ts.map +1 -1
  15. package/dist/daemon/server.js +4 -0
  16. package/dist/daemon/server.js.map +1 -1
  17. package/dist/governance/intent/drift-detector.d.ts +100 -0
  18. package/dist/governance/intent/drift-detector.d.ts.map +1 -0
  19. package/dist/governance/intent/drift-detector.js +275 -0
  20. package/dist/governance/intent/drift-detector.js.map +1 -0
  21. package/dist/governance/intent/glob-match.d.ts +43 -0
  22. package/dist/governance/intent/glob-match.d.ts.map +1 -0
  23. package/dist/governance/intent/glob-match.js +108 -0
  24. package/dist/governance/intent/glob-match.js.map +1 -0
  25. package/dist/governance/intent/import-graph.d.ts +56 -0
  26. package/dist/governance/intent/import-graph.d.ts.map +1 -0
  27. package/dist/governance/intent/import-graph.js +133 -0
  28. package/dist/governance/intent/import-graph.js.map +1 -0
  29. package/dist/governance/intent/index.d.ts +23 -0
  30. package/dist/governance/intent/index.d.ts.map +1 -0
  31. package/dist/governance/intent/index.js +48 -0
  32. package/dist/governance/intent/index.js.map +1 -0
  33. package/dist/governance/intent/intelligence-boundaries.d.ts +69 -0
  34. package/dist/governance/intent/intelligence-boundaries.d.ts.map +1 -0
  35. package/dist/governance/intent/intelligence-boundaries.js +163 -0
  36. package/dist/governance/intent/intelligence-boundaries.js.map +1 -0
  37. package/dist/governance/intent/intent-contract.d.ts +76 -0
  38. package/dist/governance/intent/intent-contract.d.ts.map +1 -0
  39. package/dist/governance/intent/intent-contract.js +397 -0
  40. package/dist/governance/intent/intent-contract.js.map +1 -0
  41. package/dist/governance/intent/intent-graph.d.ts +135 -0
  42. package/dist/governance/intent/intent-graph.d.ts.map +1 -0
  43. package/dist/governance/intent/intent-graph.js +67 -0
  44. package/dist/governance/intent/intent-graph.js.map +1 -0
  45. package/dist/governance/pipeline/computation-trace.d.ts +52 -0
  46. package/dist/governance/pipeline/computation-trace.d.ts.map +1 -0
  47. package/dist/governance/pipeline/computation-trace.js +79 -0
  48. package/dist/governance/pipeline/computation-trace.js.map +1 -0
  49. package/dist/governance/pipeline/envelope-assembly.d.ts +132 -0
  50. package/dist/governance/pipeline/envelope-assembly.d.ts.map +1 -0
  51. package/dist/governance/pipeline/envelope-assembly.js +140 -0
  52. package/dist/governance/pipeline/envelope-assembly.js.map +1 -0
  53. package/dist/governance/pipeline/fingerprint.d.ts +34 -0
  54. package/dist/governance/pipeline/fingerprint.d.ts.map +1 -0
  55. package/dist/governance/pipeline/fingerprint.js +78 -0
  56. package/dist/governance/pipeline/fingerprint.js.map +1 -0
  57. package/dist/governance/pipeline/helpers.d.ts +74 -0
  58. package/dist/governance/pipeline/helpers.d.ts.map +1 -0
  59. package/dist/governance/pipeline/helpers.js +112 -0
  60. package/dist/governance/pipeline/helpers.js.map +1 -0
  61. package/dist/governance/pipeline/index.d.ts +27 -0
  62. package/dist/governance/pipeline/index.d.ts.map +1 -0
  63. package/dist/governance/pipeline/index.js +63 -0
  64. package/dist/governance/pipeline/index.js.map +1 -0
  65. package/dist/governance/pipeline/lineage.d.ts +26 -0
  66. package/dist/governance/pipeline/lineage.d.ts.map +1 -0
  67. package/dist/governance/pipeline/lineage.js +51 -0
  68. package/dist/governance/pipeline/lineage.js.map +1 -0
  69. package/dist/governance/pipeline/orchestration/advisory-mode-contract.d.ts +15 -0
  70. package/dist/governance/pipeline/orchestration/advisory-mode-contract.d.ts.map +1 -0
  71. package/dist/governance/pipeline/orchestration/advisory-mode-contract.js +44 -0
  72. package/dist/governance/pipeline/orchestration/advisory-mode-contract.js.map +1 -0
  73. package/dist/governance/pipeline/orchestration/advisory-mode.d.ts +102 -0
  74. package/dist/governance/pipeline/orchestration/advisory-mode.d.ts.map +1 -0
  75. package/dist/governance/pipeline/orchestration/advisory-mode.js +170 -0
  76. package/dist/governance/pipeline/orchestration/advisory-mode.js.map +1 -0
  77. package/dist/governance/pipeline/orchestration/evidence-lifecycle.d.ts +133 -0
  78. package/dist/governance/pipeline/orchestration/evidence-lifecycle.d.ts.map +1 -0
  79. package/dist/governance/pipeline/orchestration/evidence-lifecycle.js +125 -0
  80. package/dist/governance/pipeline/orchestration/evidence-lifecycle.js.map +1 -0
  81. package/dist/governance/pipeline/orchestration/index.d.ts +16 -0
  82. package/dist/governance/pipeline/orchestration/index.d.ts.map +1 -0
  83. package/dist/governance/pipeline/orchestration/index.js +30 -0
  84. package/dist/governance/pipeline/orchestration/index.js.map +1 -0
  85. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.d.ts +65 -0
  86. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.d.ts.map +1 -0
  87. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.js +102 -0
  88. package/dist/governance/pipeline/orchestration/intent-drift-orchestration.js.map +1 -0
  89. package/dist/governance/pipeline/orchestration/plan-structural-analysis.d.ts +41 -0
  90. package/dist/governance/pipeline/orchestration/plan-structural-analysis.d.ts.map +1 -0
  91. package/dist/governance/pipeline/orchestration/plan-structural-analysis.js +74 -0
  92. package/dist/governance/pipeline/orchestration/plan-structural-analysis.js.map +1 -0
  93. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.d.ts +165 -0
  94. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.d.ts.map +1 -0
  95. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.js +160 -0
  96. package/dist/governance/pipeline/orchestration/policy-evaluation-summaries.js.map +1 -0
  97. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.d.ts +152 -0
  98. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.d.ts.map +1 -0
  99. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.js +188 -0
  100. package/dist/governance/pipeline/orchestration/scope-guard-orchestration.js.map +1 -0
  101. package/dist/governance/pipeline/runtime.d.ts +70 -0
  102. package/dist/governance/pipeline/runtime.d.ts.map +1 -0
  103. package/dist/governance/pipeline/runtime.js +223 -0
  104. package/dist/governance/pipeline/runtime.js.map +1 -0
  105. package/dist/governance/pipeline/shared-types.d.ts +7 -0
  106. package/dist/governance/pipeline/shared-types.d.ts.map +1 -0
  107. package/dist/governance/pipeline/shared-types.js +7 -0
  108. package/dist/governance/pipeline/shared-types.js.map +1 -0
  109. package/dist/governance/pipeline/stages/compiled-policy-stage.d.ts +28 -0
  110. package/dist/governance/pipeline/stages/compiled-policy-stage.d.ts.map +1 -0
  111. package/dist/governance/pipeline/stages/compiled-policy-stage.js +53 -0
  112. package/dist/governance/pipeline/stages/compiled-policy-stage.js.map +1 -0
  113. package/dist/governance/pipeline/stages/diff-normalization-stage.d.ts +63 -0
  114. package/dist/governance/pipeline/stages/diff-normalization-stage.d.ts.map +1 -0
  115. package/dist/governance/pipeline/stages/diff-normalization-stage.js +140 -0
  116. package/dist/governance/pipeline/stages/diff-normalization-stage.js.map +1 -0
  117. package/dist/governance/pipeline/stages/governance-synthesis-stage.d.ts +53 -0
  118. package/dist/governance/pipeline/stages/governance-synthesis-stage.d.ts.map +1 -0
  119. package/dist/governance/pipeline/stages/governance-synthesis-stage.js +129 -0
  120. package/dist/governance/pipeline/stages/governance-synthesis-stage.js.map +1 -0
  121. package/dist/governance/pipeline/stages/index.d.ts +29 -0
  122. package/dist/governance/pipeline/stages/index.d.ts.map +1 -0
  123. package/dist/governance/pipeline/stages/index.js +40 -0
  124. package/dist/governance/pipeline/stages/index.js.map +1 -0
  125. package/dist/governance/pipeline/stages/policy-lock-stage.d.ts +31 -0
  126. package/dist/governance/pipeline/stages/policy-lock-stage.d.ts.map +1 -0
  127. package/dist/governance/pipeline/stages/policy-lock-stage.js +71 -0
  128. package/dist/governance/pipeline/stages/policy-lock-stage.js.map +1 -0
  129. package/dist/governance/pipeline/stages/runtime-guard-stage.d.ts +29 -0
  130. package/dist/governance/pipeline/stages/runtime-guard-stage.d.ts.map +1 -0
  131. package/dist/governance/pipeline/stages/runtime-guard-stage.js +65 -0
  132. package/dist/governance/pipeline/stages/runtime-guard-stage.js.map +1 -0
  133. package/dist/governance/pipeline/stages/structural-analysis-stage.d.ts +24 -0
  134. package/dist/governance/pipeline/stages/structural-analysis-stage.d.ts.map +1 -0
  135. package/dist/governance/pipeline/stages/structural-analysis-stage.js +58 -0
  136. package/dist/governance/pipeline/stages/structural-analysis-stage.js.map +1 -0
  137. package/dist/governance/pipeline/summary.d.ts +14 -0
  138. package/dist/governance/pipeline/summary.d.ts.map +1 -0
  139. package/dist/governance/pipeline/summary.js +50 -0
  140. package/dist/governance/pipeline/summary.js.map +1 -0
  141. package/dist/governance/pipeline/types.d.ts +69 -0
  142. package/dist/governance/pipeline/types.d.ts.map +1 -0
  143. package/dist/governance/pipeline/types.js +30 -0
  144. package/dist/governance/pipeline/types.js.map +1 -0
  145. package/dist/index.js +29 -0
  146. package/dist/index.js.map +1 -1
  147. package/dist/utils/active-engineering-context.d.ts +16 -0
  148. package/dist/utils/active-engineering-context.d.ts.map +1 -1
  149. package/dist/utils/active-engineering-context.js +302 -0
  150. package/dist/utils/active-engineering-context.js.map +1 -1
  151. package/dist/utils/import-edge-classifier.d.ts +76 -0
  152. package/dist/utils/import-edge-classifier.d.ts.map +1 -0
  153. package/dist/utils/import-edge-classifier.js +308 -0
  154. package/dist/utils/import-edge-classifier.js.map +1 -0
  155. package/dist/utils/import-edge-extractor.d.ts +52 -0
  156. package/dist/utils/import-edge-extractor.d.ts.map +1 -0
  157. package/dist/utils/import-edge-extractor.js +223 -0
  158. package/dist/utils/import-edge-extractor.js.map +1 -0
  159. package/dist/utils/import-edge-governance.d.ts +37 -0
  160. package/dist/utils/import-edge-governance.d.ts.map +1 -0
  161. package/dist/utils/import-edge-governance.js +56 -0
  162. package/dist/utils/import-edge-governance.js.map +1 -0
  163. package/dist/utils/path-boundary-classifier.d.ts +42 -0
  164. package/dist/utils/path-boundary-classifier.d.ts.map +1 -0
  165. package/dist/utils/path-boundary-classifier.js +143 -0
  166. package/dist/utils/path-boundary-classifier.js.map +1 -0
  167. package/dist/utils/replay-html-report.d.ts +29 -0
  168. package/dist/utils/replay-html-report.d.ts.map +1 -0
  169. package/dist/utils/replay-html-report.js +309 -0
  170. package/dist/utils/replay-html-report.js.map +1 -0
  171. package/package.json +2 -2
@@ -0,0 +1,309 @@
1
+ "use strict";
2
+ /**
3
+ * Self-contained HTML replay report generator.
4
+ *
5
+ * Renders deterministic replay state into a single audit-grade HTML file.
6
+ * No JavaScript, no external assets, no remote requests — every byte of the
7
+ * output is derived from canonical replay artifacts.
8
+ *
9
+ * The output is intended to be opened directly in a browser, attached to
10
+ * audit reports, or stored alongside `.neurcode/evidence/` artifacts.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.renderReplayHtmlReport = renderReplayHtmlReport;
14
+ const STYLES = `
15
+ :root {
16
+ --bg: #0f172a;
17
+ --bg-soft: #111827;
18
+ --panel: #1e293b;
19
+ --border: #334155;
20
+ --text: #e2e8f0;
21
+ --muted: #94a3b8;
22
+ --accent: #38bdf8;
23
+ --good: #4ade80;
24
+ --warn: #facc15;
25
+ --bad: #f87171;
26
+ }
27
+ * { box-sizing: border-box; }
28
+ body {
29
+ margin: 0; padding: 32px;
30
+ background: var(--bg); color: var(--text);
31
+ font: 14px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", "SF Mono", monospace;
32
+ }
33
+ main { max-width: 1100px; margin: 0 auto; }
34
+ h1 { font-size: 22px; margin: 0 0 4px; letter-spacing: 0.2px; }
35
+ h2 { font-size: 16px; margin: 24px 0 8px; color: var(--accent); text-transform: uppercase; letter-spacing: 0.9px; }
36
+ .subtitle { color: var(--muted); margin: 0 0 24px; font-size: 13px; }
37
+ .panel { background: var(--panel); border: 1px solid var(--border); border-radius: 8px; padding: 16px 20px; margin-bottom: 16px; }
38
+ .kv { display: grid; grid-template-columns: 220px 1fr; row-gap: 6px; column-gap: 16px; }
39
+ .kv dt { color: var(--muted); }
40
+ .kv dd { margin: 0; word-break: break-all; }
41
+ .badge { display: inline-block; padding: 1px 8px; border-radius: 4px; font-size: 11px; margin-right: 4px; font-weight: 600; letter-spacing: 0.4px; }
42
+ .badge.good { background: rgba(74, 222, 128, 0.18); color: var(--good); }
43
+ .badge.warn { background: rgba(250, 204, 21, 0.18); color: var(--warn); }
44
+ .badge.bad { background: rgba(248, 113, 113, 0.18); color: var(--bad); }
45
+ .badge.muted { background: rgba(148, 163, 184, 0.18); color: var(--muted); }
46
+ .checksum { font-family: "SF Mono", "Menlo", monospace; font-size: 12px; word-break: break-all; }
47
+ table { width: 100%; border-collapse: collapse; }
48
+ th, td { text-align: left; padding: 6px 8px; border-bottom: 1px solid var(--border); vertical-align: top; font-size: 13px; }
49
+ th { color: var(--muted); font-weight: 500; text-transform: uppercase; letter-spacing: 0.6px; font-size: 11px; }
50
+ tr:last-child td { border-bottom: 0; }
51
+ .muted { color: var(--muted); }
52
+ .code { font-family: "SF Mono", "Menlo", monospace; }
53
+ .row { display: flex; gap: 12px; flex-wrap: wrap; }
54
+ .row .panel { flex: 1; min-width: 280px; }
55
+ footer { color: var(--muted); font-size: 12px; margin-top: 32px; border-top: 1px solid var(--border); padding-top: 12px; }
56
+ `;
57
+ function escapeHtml(text) {
58
+ if (text === null || text === undefined)
59
+ return '—';
60
+ const s = typeof text === 'string' ? text : String(text);
61
+ return s
62
+ .replace(/&/g, '&')
63
+ .replace(/</g, '&lt;')
64
+ .replace(/>/g, '&gt;')
65
+ .replace(/"/g, '&quot;')
66
+ .replace(/'/g, '&#39;');
67
+ }
68
+ function badge(value, kind) {
69
+ return `<span class="badge ${kind}">${escapeHtml(value)}</span>`;
70
+ }
71
+ function statusBadge(value, positive, warning = []) {
72
+ if (!value)
73
+ return badge('unknown', 'muted');
74
+ if (positive.includes(value))
75
+ return badge(value, 'good');
76
+ if (warning.includes(value))
77
+ return badge(value, 'warn');
78
+ return badge(value, 'bad');
79
+ }
80
+ function row(label, value) {
81
+ return `<dt>${escapeHtml(label)}</dt><dd>${value}</dd>`;
82
+ }
83
+ function renderRuntimeCapabilities(verify) {
84
+ const rc = (verify?.runtimeCapabilities ?? null);
85
+ if (!rc) {
86
+ return `<section class="panel">
87
+ <h2>Runtime Capabilities</h2>
88
+ <p class="muted">No <code>runtimeCapabilities</code> envelope was attached to the input. This typically means the run pre-dates the 0.11.0 intent-runtime activation, or no <code>verify</code> output was supplied with <code>--verify</code>.</p>
89
+ </section>`;
90
+ }
91
+ const tag = (v) => statusBadge(typeof v === 'string' ? v : null, ['active', 'enforced', 'pattern-deterministic', 'active-authored', 'active-synthesized', 'offline', 'full-bundle', 'intent-pack-only'], ['inactive', 'unenforced']);
92
+ return `<section class="panel">
93
+ <h2>Runtime Capabilities</h2>
94
+ <p class="muted">What actually executed in this run. Schema: <code>${escapeHtml(rc.schemaVersion ?? 'neurcode.runtime-capabilities.v1')}</code></p>
95
+ <dl class="kv">
96
+ ${row('intent-runtime', tag(rc.intentRuntime))}
97
+ ${row('intent-contract-source', tag(rc.intentContractSource))}
98
+ ${row('intent-runtime-required', rc.intentRuntimeRequired === true ? badge('required', 'good') : badge('not required', 'muted'))}
99
+ ${row('requirement-satisfied', rc.intentRuntimeRequirementSatisfied === false ? badge('NOT SATISFIED', 'bad') : badge('satisfied', 'good'))}
100
+ ${row('scope-guard', tag(rc.scopeGuard))}
101
+ ${row('forbidden-boundary-enforcement', tag(rc.forbiddenBoundaryEnforcement))}
102
+ ${row('import-edge-governance', tag(rc.importEdgeGovernance))}
103
+ ${row('generated-code-governance', tag(rc.generatedCodeGovernance))}
104
+ ${row('drift-intelligence', tag(rc.driftIntelligence))}
105
+ ${row('structural-rules', tag(rc.structuralRules))}
106
+ ${row('replay-determinism', tag(rc.replayDeterminism))}
107
+ ${row('api-contract-status', tag(rc.apiContractStatus))}
108
+ ${row('execution-path', escapeHtml(rc.executionPath ?? '—'))}
109
+ </dl>
110
+ ${rc.importEdgesAnalyzed !== undefined ? `
111
+ <h3 style="font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin-top:14px;">Import-edge observability</h3>
112
+ <dl class="kv">
113
+ ${row('edges-analyzed', escapeHtml(rc.importEdgesAnalyzed))}
114
+ ${row('blocking-findings', escapeHtml(rc.importEdgeBlockingFindings ?? 0))}
115
+ ${row('advisory-findings', escapeHtml(rc.importEdgeAdvisoryFindings ?? 0))}
116
+ ${row('observed-boundary-types', escapeHtml(Array.isArray(rc.observedImportEdgeBoundaryTypes) ? rc.observedImportEdgeBoundaryTypes.join(', ') : '—'))}
117
+ </dl>` : ''}
118
+ </section>`;
119
+ }
120
+ function renderPosture(verify) {
121
+ const ig = (verify?.intentGovernance ?? null);
122
+ if (!ig || (!ig.governanceGate && !ig.rolloutTrust)) {
123
+ return '';
124
+ }
125
+ return `<section class="panel">
126
+ <h2>Governance Posture</h2>
127
+ <p class="muted">Categorical rollup synthesised by the drift-intelligence engine from the canonical finding set.</p>
128
+ <dl class="kv">
129
+ ${row('governance-gate', escapeHtml(ig.governanceGate ?? '—'))}
130
+ ${row('rollout-trust', escapeHtml(ig.rolloutTrust ?? '—'))}
131
+ ${row('rollout-risk', escapeHtml(ig.rolloutRisk ?? '—'))}
132
+ ${row('canonical-finding-count', escapeHtml(ig.canonicalFindingCount ?? 0))}
133
+ ${row('blocking-finding-count', escapeHtml(ig.blockingFindingCount ?? 0))}
134
+ ${row('advisory-finding-count', escapeHtml(ig.advisoryFindingCount ?? 0))}
135
+ ${ig.unexpectedFiles && Array.isArray(ig.unexpectedFiles) && ig.unexpectedFiles.length > 0
136
+ ? row('unexpected-files', `<code>${ig.unexpectedFiles.map(escapeHtml).join('</code><br><code>')}</code>`)
137
+ : ''}
138
+ </dl>
139
+ </section>`;
140
+ }
141
+ function renderScopeIssues(verify) {
142
+ const issues = (verify?.scopeIssues ?? []);
143
+ if (!Array.isArray(issues) || issues.length === 0) {
144
+ return `<section class="panel">
145
+ <h2>Scope Issues</h2>
146
+ <p class="muted">No scope issues recorded for this replay state.</p>
147
+ </section>`;
148
+ }
149
+ const pathTouch = issues.filter((i) => !i.importEdge);
150
+ const importEdges = issues.filter((i) => !!i.importEdge);
151
+ const rows = (subset, type) => subset.map((issue) => {
152
+ const edge = (issue.importEdge ?? null);
153
+ const policyBadge = issue.policy === 'forbidden' ? badge('forbidden', 'bad')
154
+ : issue.policy === 'review-required' ? badge('review-required', 'warn')
155
+ : issue.policy === 'generated-code' ? badge('generated-code', 'warn')
156
+ : badge(issue.policy ?? 'out-of-scope', 'muted');
157
+ const boundaryBadge = issue.boundaryType ? badge(issue.boundaryType, 'muted') : '';
158
+ if (type === 'edge' && edge) {
159
+ return `<tr>
160
+ <td class="code">${escapeHtml(edge.sourceFile)}:${escapeHtml(edge.sourceLine)}</td>
161
+ <td>${policyBadge}${boundaryBadge}<span class="badge muted">${escapeHtml(edge.edgeKind)}</span></td>
162
+ <td><span class="code">${escapeHtml(edge.importTarget)}</span><br><span class="muted">→ ${escapeHtml(edge.resolvedTargetPath)}</span><br><span class="muted">boundary: ${escapeHtml(edge.resolvedBoundary)}</span></td>
163
+ </tr>`;
164
+ }
165
+ return `<tr>
166
+ <td class="code">${escapeHtml(issue.file)}</td>
167
+ <td>${policyBadge}${boundaryBadge}</td>
168
+ <td>${escapeHtml(issue.message)}</td>
169
+ </tr>`;
170
+ }).join('');
171
+ const sections = [];
172
+ if (importEdges.length > 0) {
173
+ sections.push(`<section class="panel">
174
+ <h2>Import-Edge Drift (${importEdges.length})</h2>
175
+ <p class="muted">Cross-boundary <code>import</code> statements inside otherwise in-scope files. Deterministic, replay-stable.</p>
176
+ <table>
177
+ <thead><tr><th>Source · line</th><th>Classification</th><th>Edge</th></tr></thead>
178
+ <tbody>${rows(importEdges, 'edge')}</tbody>
179
+ </table>
180
+ </section>`);
181
+ }
182
+ if (pathTouch.length > 0) {
183
+ sections.push(`<section class="panel">
184
+ <h2>Path-touch Scope Drift (${pathTouch.length})</h2>
185
+ <p class="muted">Files modified outside the declared scope or inside an explicit forbidden boundary.</p>
186
+ <table>
187
+ <thead><tr><th>File</th><th>Classification</th><th>Message</th></tr></thead>
188
+ <tbody>${rows(pathTouch, 'path')}</tbody>
189
+ </table>
190
+ </section>`);
191
+ }
192
+ return sections.join('\n');
193
+ }
194
+ function renderReplayState(state, verify) {
195
+ const reconstruction = state.reconstruction;
196
+ const statusBadgeForRecon = reconstruction.reconstructionStatus === 'exact'
197
+ ? badge('exact', 'good')
198
+ : badge(reconstruction.reconstructionStatus, 'warn');
199
+ const verifyChecksum = (verify?.replayChecksum ?? null);
200
+ const verdict = (verify?.verdict ?? null);
201
+ return `<section class="panel">
202
+ <h2>Replay State</h2>
203
+ <dl class="kv">
204
+ ${row('as-of', escapeHtml(state.asOf))}
205
+ ${row('artifact-hash', `<span class="checksum">${escapeHtml(state.determinism.artifactHash)}</span>`)}
206
+ ${verifyChecksum ? row('canonical-replay-checksum', `<span class="checksum">${escapeHtml(verifyChecksum)}</span>`) : ''}
207
+ ${verdict ? row('latest-verdict', verdict === 'PASS' ? badge('PASS', 'good') : badge(verdict, 'bad')) : ''}
208
+ ${row('reconstruction-status', statusBadgeForRecon)}
209
+ ${row('reconstruction-confidence', `${reconstruction.confidence.overall}/100`)}
210
+ ${row('snapshot · control-plane', state.controlPlane.snapshotId ? escapeHtml(state.controlPlane.snapshotId) : badge('none', 'muted'))}
211
+ ${row('snapshot · workspace', state.workspace.snapshotId ? escapeHtml(state.workspace.snapshotId) : badge('none', 'muted'))}
212
+ </dl>
213
+ <div class="row" style="margin-top:14px;">
214
+ <div class="panel" style="margin-bottom:0;">
215
+ <h3 style="font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin:0 0 8px;">Posture</h3>
216
+ <dl class="kv">
217
+ ${row('runs', escapeHtml(state.posture.runCount))}
218
+ ${row('pass-rate', `${escapeHtml(state.posture.passRate)}%`)}
219
+ ${row('block-rate', `${escapeHtml(state.posture.blockRate)}%`)}
220
+ ${row('regression-rate', `${escapeHtml(state.posture.regressionRate)}%`)}
221
+ </dl>
222
+ </div>
223
+ <div class="panel" style="margin-bottom:0;">
224
+ <h3 style="font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:0.6px;margin:0 0 8px;">Reconstruction confidence (deterministic subscores)</h3>
225
+ <dl class="kv">
226
+ ${row('provenance', `${reconstruction.confidence.provenance.score}/100`)}
227
+ ${row('graph', `${reconstruction.confidence.graph.score}/100`)}
228
+ ${row('semantic', `${reconstruction.confidence.semantic.score}/100`)}
229
+ ${row('federation', `${reconstruction.confidence.federation.score}/100`)}
230
+ ${row('artifacts', `${reconstruction.confidence.artifacts.score}/100`)}
231
+ </dl>
232
+ </div>
233
+ </div>
234
+ </section>`;
235
+ }
236
+ function renderBlockedExecutions(state) {
237
+ if (state.blockedExecutions.length === 0)
238
+ return '';
239
+ const rows = state.blockedExecutions.slice(0, 30).map((exec) => `<tr>
240
+ <td class="code">${escapeHtml(exec.executionId.slice(0, 12))}</td>
241
+ <td>${escapeHtml(exec.type)}</td>
242
+ <td>${escapeHtml(exec.source)}</td>
243
+ <td>${escapeHtml(exec.createdAt)}</td>
244
+ <td>${escapeHtml(exec.blocking)}</td>
245
+ <td>${escapeHtml(exec.advisory)}</td>
246
+ </tr>`).join('');
247
+ return `<section class="panel">
248
+ <h2>Blocked Executions (${state.blockedExecutions.length})</h2>
249
+ <table>
250
+ <thead><tr><th>Execution</th><th>Type</th><th>Source</th><th>Created</th><th>Blocking</th><th>Advisory</th></tr></thead>
251
+ <tbody>${rows}</tbody>
252
+ </table>
253
+ </section>`;
254
+ }
255
+ function renderRecoveryGuidance(state) {
256
+ const guidance = state.reconstruction.recoveryGuidance ?? [];
257
+ if (guidance.length === 0)
258
+ return '';
259
+ const items = guidance.slice(0, 20).map((g) => `<li>${escapeHtml(g)}</li>`).join('');
260
+ return `<section class="panel">
261
+ <h2>Operational Recovery Guidance</h2>
262
+ <p class="muted">Bounded, deterministic remediation hints derived from observed snapshot completeness.</p>
263
+ <ul>${items}</ul>
264
+ </section>`;
265
+ }
266
+ /**
267
+ * Render a self-contained HTML report. The returned string is ready to be
268
+ * written to disk and opened in any browser. No external assets fetched.
269
+ */
270
+ function renderReplayHtmlReport(input) {
271
+ const generatedAt = input.generatedAt ?? new Date().toISOString();
272
+ const projectRoot = input.state.determinism.projectRoot ?? 'unknown';
273
+ const verify = input.verify ?? null;
274
+ return `<!doctype html>
275
+ <html lang="en">
276
+ <head>
277
+ <meta charset="utf-8" />
278
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
279
+ <meta name="generator" content="neurcode replay --html" />
280
+ <title>Neurcode · Replay Report</title>
281
+ <style>${STYLES}</style>
282
+ </head>
283
+ <body>
284
+ <main>
285
+ <h1>Neurcode · Replay Report</h1>
286
+ <p class="subtitle">Deterministic operational governance · audit-grade · same inputs → same report bytes.</p>
287
+ <section class="panel">
288
+ <dl class="kv">
289
+ ${row('generated-at', escapeHtml(generatedAt))}
290
+ ${row('project-root', `<code>${escapeHtml(projectRoot)}</code>`)}
291
+ ${row('replay schema', escapeHtml(input.state.schemaVersion))}
292
+ </dl>
293
+ </section>
294
+ ${renderReplayState(input.state, verify)}
295
+ ${renderRuntimeCapabilities(verify)}
296
+ ${renderPosture(verify)}
297
+ ${renderScopeIssues(verify)}
298
+ ${renderBlockedExecutions(input.state)}
299
+ ${renderRecoveryGuidance(input.state)}
300
+ <footer>
301
+ <p>Replay output is deterministic. Same diff + same intent contract + same rule set → byte-identical <code>replayChecksum</code>.</p>
302
+ <p>Schema: <code>${escapeHtml(input.state.schemaVersion)}</code> · Generator: <code>neurcode replay --html</code> · No JavaScript, no external assets.</p>
303
+ </footer>
304
+ </main>
305
+ </body>
306
+ </html>
307
+ `;
308
+ }
309
+ //# sourceMappingURL=replay-html-report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"replay-html-report.js","sourceRoot":"","sources":["../../src/utils/replay-html-report.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@neurcode-ai/cli",
3
- "version": "0.10.1",
4
- "description": "Neurcode CLI - intent-aware deterministic governance for AI-assisted engineering",
3
+ "version": "0.12.0",
4
+ "description": "Neurcode CLI deterministic operational governance runtime for AI-assisted engineering (intent contracts, import-edge governance, replay continuity)",
5
5
  "bin": {
6
6
  "neurcode": "dist/index.js"
7
7
  },