@llm-dev-ops/agentics-cli 1.5.9 → 1.5.11

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 (105) hide show
  1. package/README.md +478 -148
  2. package/dist/bundled-agents/manifest.json +1 -0
  3. package/dist/commands/phase4.d.ts.map +1 -1
  4. package/dist/commands/phase4.js +4 -2
  5. package/dist/commands/phase4.js.map +1 -1
  6. package/dist/commands/phase6.d.ts.map +1 -1
  7. package/dist/commands/phase6.js +4 -2
  8. package/dist/commands/phase6.js.map +1 -1
  9. package/dist/mcp/mcp-server.js +11 -10
  10. package/dist/mcp/mcp-server.js.map +1 -1
  11. package/dist/pipeline/auto-chain.d.ts +5 -0
  12. package/dist/pipeline/auto-chain.d.ts.map +1 -1
  13. package/dist/pipeline/auto-chain.js +131 -47
  14. package/dist/pipeline/auto-chain.js.map +1 -1
  15. package/dist/pipeline/enterprise/artifact-assembler.d.ts +64 -0
  16. package/dist/pipeline/enterprise/artifact-assembler.d.ts.map +1 -0
  17. package/dist/pipeline/enterprise/artifact-assembler.js +542 -0
  18. package/dist/pipeline/enterprise/artifact-assembler.js.map +1 -0
  19. package/dist/pipeline/enterprise/artifact-renderers.d.ts +42 -0
  20. package/dist/pipeline/enterprise/artifact-renderers.d.ts.map +1 -0
  21. package/dist/pipeline/enterprise/artifact-renderers.js +513 -0
  22. package/dist/pipeline/enterprise/artifact-renderers.js.map +1 -0
  23. package/dist/pipeline/enterprise/code-resolver.d.ts +43 -0
  24. package/dist/pipeline/enterprise/code-resolver.d.ts.map +1 -0
  25. package/dist/pipeline/enterprise/code-resolver.js +219 -0
  26. package/dist/pipeline/enterprise/code-resolver.js.map +1 -0
  27. package/dist/pipeline/enterprise/decision-graph-client.d.ts +171 -0
  28. package/dist/pipeline/enterprise/decision-graph-client.d.ts.map +1 -0
  29. package/dist/pipeline/enterprise/decision-graph-client.js +222 -0
  30. package/dist/pipeline/enterprise/decision-graph-client.js.map +1 -0
  31. package/dist/pipeline/enterprise/decision-graph-memory.d.ts +104 -0
  32. package/dist/pipeline/enterprise/decision-graph-memory.d.ts.map +1 -0
  33. package/dist/pipeline/enterprise/decision-graph-memory.js +292 -0
  34. package/dist/pipeline/enterprise/decision-graph-memory.js.map +1 -0
  35. package/dist/pipeline/enterprise/decision-graph.d.ts +237 -0
  36. package/dist/pipeline/enterprise/decision-graph.d.ts.map +1 -0
  37. package/dist/pipeline/enterprise/decision-graph.js +654 -0
  38. package/dist/pipeline/enterprise/decision-graph.js.map +1 -0
  39. package/dist/pipeline/enterprise/index.d.ts +40 -0
  40. package/dist/pipeline/enterprise/index.d.ts.map +1 -0
  41. package/dist/pipeline/enterprise/index.js +43 -0
  42. package/dist/pipeline/enterprise/index.js.map +1 -0
  43. package/dist/pipeline/enterprise/pass-executor.d.ts +33 -0
  44. package/dist/pipeline/enterprise/pass-executor.d.ts.map +1 -0
  45. package/dist/pipeline/enterprise/pass-executor.js +459 -0
  46. package/dist/pipeline/enterprise/pass-executor.js.map +1 -0
  47. package/dist/pipeline/enterprise/pass-registry.d.ts +19 -0
  48. package/dist/pipeline/enterprise/pass-registry.d.ts.map +1 -0
  49. package/dist/pipeline/enterprise/pass-registry.js +243 -0
  50. package/dist/pipeline/enterprise/pass-registry.js.map +1 -0
  51. package/dist/pipeline/enterprise/pass2-simulation.d.ts +130 -0
  52. package/dist/pipeline/enterprise/pass2-simulation.d.ts.map +1 -0
  53. package/dist/pipeline/enterprise/pass2-simulation.js +691 -0
  54. package/dist/pipeline/enterprise/pass2-simulation.js.map +1 -0
  55. package/dist/pipeline/enterprise/pass4-governance.d.ts +195 -0
  56. package/dist/pipeline/enterprise/pass4-governance.d.ts.map +1 -0
  57. package/dist/pipeline/enterprise/pass4-governance.js +748 -0
  58. package/dist/pipeline/enterprise/pass4-governance.js.map +1 -0
  59. package/dist/pipeline/enterprise/pass5-decision.d.ts +90 -0
  60. package/dist/pipeline/enterprise/pass5-decision.d.ts.map +1 -0
  61. package/dist/pipeline/enterprise/pass5-decision.js +487 -0
  62. package/dist/pipeline/enterprise/pass5-decision.js.map +1 -0
  63. package/dist/pipeline/enterprise/pass7-observability.d.ts +198 -0
  64. package/dist/pipeline/enterprise/pass7-observability.d.ts.map +1 -0
  65. package/dist/pipeline/enterprise/pass7-observability.js +636 -0
  66. package/dist/pipeline/enterprise/pass7-observability.js.map +1 -0
  67. package/dist/pipeline/enterprise/pipeline-orchestrator.d.ts +29 -0
  68. package/dist/pipeline/enterprise/pipeline-orchestrator.d.ts.map +1 -0
  69. package/dist/pipeline/enterprise/pipeline-orchestrator.js +283 -0
  70. package/dist/pipeline/enterprise/pipeline-orchestrator.js.map +1 -0
  71. package/dist/pipeline/enterprise/provenance-tracker.d.ts +135 -0
  72. package/dist/pipeline/enterprise/provenance-tracker.d.ts.map +1 -0
  73. package/dist/pipeline/enterprise/provenance-tracker.js +437 -0
  74. package/dist/pipeline/enterprise/provenance-tracker.js.map +1 -0
  75. package/dist/pipeline/enterprise/trace-middleware.d.ts +37 -0
  76. package/dist/pipeline/enterprise/trace-middleware.d.ts.map +1 -0
  77. package/dist/pipeline/enterprise/trace-middleware.js +188 -0
  78. package/dist/pipeline/enterprise/trace-middleware.js.map +1 -0
  79. package/dist/pipeline/enterprise/types.d.ts +199 -0
  80. package/dist/pipeline/enterprise/types.d.ts.map +1 -0
  81. package/dist/pipeline/enterprise/types.js +30 -0
  82. package/dist/pipeline/enterprise/types.js.map +1 -0
  83. package/dist/pipeline/phase2/phases/adr-generator.d.ts.map +1 -1
  84. package/dist/pipeline/phase2/phases/adr-generator.js +56 -8
  85. package/dist/pipeline/phase2/phases/adr-generator.js.map +1 -1
  86. package/dist/pipeline/phase3/phases/test-generator.d.ts.map +1 -1
  87. package/dist/pipeline/phase3/phases/test-generator.js +53 -0
  88. package/dist/pipeline/phase3/phases/test-generator.js.map +1 -1
  89. package/dist/pipeline/phase4/phases/deployment-generator.d.ts.map +1 -1
  90. package/dist/pipeline/phase4/phases/deployment-generator.js +147 -0
  91. package/dist/pipeline/phase4/phases/deployment-generator.js.map +1 -1
  92. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.d.ts.map +1 -1
  93. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js +52 -1
  94. package/dist/pipeline/phase4-adrs/phase4-adrs-coordinator.js.map +1 -1
  95. package/dist/pipeline/phase6/phases/deployment-finalizer.d.ts.map +1 -1
  96. package/dist/pipeline/phase6/phases/deployment-finalizer.js +226 -0
  97. package/dist/pipeline/phase6/phases/deployment-finalizer.js.map +1 -1
  98. package/dist/pipeline/phase6/phases/service-registrar.d.ts +1 -1
  99. package/dist/pipeline/phase6/phases/service-registrar.d.ts.map +1 -1
  100. package/dist/pipeline/phase6/phases/service-registrar.js +47 -7
  101. package/dist/pipeline/phase6/phases/service-registrar.js.map +1 -1
  102. package/dist/pipeline/swarm-orchestrator.d.ts.map +1 -1
  103. package/dist/pipeline/swarm-orchestrator.js +47 -19
  104. package/dist/pipeline/swarm-orchestrator.js.map +1 -1
  105. package/package.json +1 -1
@@ -0,0 +1,513 @@
1
+ /**
2
+ * Artifact Renderers — Per-Artifact Structured Content Generators (ADR-034)
3
+ *
4
+ * Each of the 15 deterministic enterprise artifacts has a dedicated renderer
5
+ * that produces markdown following the exact structure specified in ADR-034.
6
+ *
7
+ * Renderers read from DecisionGraph nodes and produce structured content
8
+ * matching enterprise consulting deliverables (McKinsey, Accenture, etc.).
9
+ */
10
+ // ============================================================================
11
+ // Shared Helpers
12
+ // ============================================================================
13
+ function header(title, number, agent, pass, analogy, timestamp) {
14
+ return [
15
+ `# ${title}`,
16
+ `**Artifact #${number}** | **Pass:** ${pass} | **Producing Agent:** ${agent}`,
17
+ `**Consulting Analogy:** ${analogy}`,
18
+ `**Generated:** ${timestamp}`,
19
+ '',
20
+ ].join('\n');
21
+ }
22
+ function degradedBanner(reason) {
23
+ const msg = reason ?? 'Some source data was unavailable or unreliable.';
24
+ return `> **\u26a0\ufe0f DEGRADED** \u2014 ${msg}\n`;
25
+ }
26
+ function contentSection(title, value) {
27
+ const lines = [`### ${title}`, ''];
28
+ if (typeof value === 'string') {
29
+ lines.push(value);
30
+ }
31
+ else if (Array.isArray(value)) {
32
+ for (const item of value) {
33
+ lines.push(typeof item === 'string' ? `- ${item}` : `- ${JSON.stringify(item)}`);
34
+ }
35
+ }
36
+ else if (typeof value === 'object' && value !== null) {
37
+ lines.push('```json');
38
+ lines.push(JSON.stringify(value, null, 2));
39
+ lines.push('```');
40
+ }
41
+ else if (value !== undefined && value !== null) {
42
+ lines.push(String(value));
43
+ }
44
+ else {
45
+ lines.push('*No data available.*');
46
+ }
47
+ lines.push('');
48
+ return lines.join('\n');
49
+ }
50
+ function getContentField(nodes, field) {
51
+ for (const n of nodes) {
52
+ const val = n.content[field];
53
+ if (val !== undefined && val !== null)
54
+ return val;
55
+ }
56
+ return undefined;
57
+ }
58
+ function allContentMerged(nodes) {
59
+ const merged = {};
60
+ for (const n of nodes) {
61
+ for (const [k, v] of Object.entries(n.content)) {
62
+ if (merged[k] === undefined) {
63
+ merged[k] = v;
64
+ }
65
+ }
66
+ }
67
+ return merged;
68
+ }
69
+ function summaryBlock(nodes) {
70
+ if (nodes.length === 0)
71
+ return '';
72
+ return nodes.map(n => n.summary).filter(Boolean).join('\n\n') + '\n';
73
+ }
74
+ function confidenceFooter(nodes) {
75
+ if (nodes.length === 0)
76
+ return '';
77
+ const avg = nodes.reduce((s, n) => s + n.confidence, 0) / nodes.length;
78
+ return `\n**Source Confidence:** ${(avg * 100).toFixed(0)}%\n`;
79
+ }
80
+ // ============================================================================
81
+ // Artifact 1: Executive Decision Memo
82
+ // ============================================================================
83
+ export const renderExecutiveDecisionMemo = (ctx) => {
84
+ const lines = [];
85
+ lines.push(header('Executive Decision Memo', 1, 'Decision Memo Agent', 5, 'McKinsey decision document', ctx.timestamp));
86
+ if (ctx.isDegraded)
87
+ lines.push(degradedBanner());
88
+ const c = allContentMerged(ctx.relevantNodes);
89
+ lines.push(contentSection('Decision Requested', c['decision'] ?? c['decision_requested'] ?? 'Approve / Reject / Investigate Further'));
90
+ lines.push(contentSection('Problem Statement', c['problem'] ?? c['problem_statement'] ?? getContentField(ctx.allNodes, 'problem') ?? '*Derived from Pass 1 Problem Intelligence.*'));
91
+ lines.push(contentSection('Strategic Importance & Business Justification', c['strategic_importance'] ?? c['business_justification'] ?? '*Derived from business context analysis.*'));
92
+ lines.push(contentSection('Recommended Solution', c['recommended_solution'] ?? c['architecture_summary'] ?? '*Architecture summary from Pass 3.*'));
93
+ lines.push(contentSection('Financial Impact', c['financial_impact'] ?? c['roi'] ?? '*ROI projections from CostOps (Pass 4).*'));
94
+ lines.push(contentSection('Top Risks', c['risks'] ?? c['top_risks'] ?? '*From Risk Assessment (Artifact #5).*'));
95
+ lines.push(contentSection('Recommendation', c['recommendation'] ?? '*Proceed with Phase 1 implementation.*'));
96
+ lines.push(summaryBlock(ctx.relevantNodes));
97
+ lines.push(confidenceFooter(ctx.relevantNodes));
98
+ lines.push('\n**Quality Criteria:** Must reference specific outputs from Passes 2-4. No generic boilerplate.');
99
+ return lines.join('\n');
100
+ };
101
+ // ============================================================================
102
+ // Artifact 2: Executive Summary
103
+ // ============================================================================
104
+ export const renderExecutiveSummary = (ctx) => {
105
+ const lines = [];
106
+ lines.push(header('Executive Summary', 2, 'Executive Summary Agent', 5, 'Board briefing document', ctx.timestamp));
107
+ if (ctx.isDegraded)
108
+ lines.push(degradedBanner());
109
+ const c = allContentMerged(ctx.relevantNodes);
110
+ lines.push(contentSection('Strategic Context', c['context'] ?? c['strategic_context'] ?? '*Organizational strategy context.*'));
111
+ lines.push(contentSection('Problem Description', c['problem'] ?? c['problem_description'] ?? getContentField(ctx.allNodes, 'problem') ?? '*From Pass 1 Problem Intelligence.*'));
112
+ lines.push(contentSection('Recommended Architecture', c['architecture'] ?? c['recommended_architecture'] ?? '*Summary from Pass 3 Architecture.*'));
113
+ lines.push(contentSection('Expected Outcomes', c['outcomes'] ?? c['expected_outcomes'] ?? '*Quantified outcomes from simulation.*'));
114
+ lines.push(contentSection('Key Risks', c['risks'] ?? c['key_risks'] ?? '*Top 3-5 risks from Risk Assessment.*'));
115
+ lines.push(contentSection('Timeline Summary', c['timeline'] ?? c['timeline_summary'] ?? '*From Implementation Roadmap.*'));
116
+ lines.push(confidenceFooter(ctx.relevantNodes));
117
+ lines.push('\n**Quality Criteria:** \u22642 pages. Written for non-technical executive audience.');
118
+ return lines.join('\n');
119
+ };
120
+ // ============================================================================
121
+ // Artifact 3: Architecture & Prototype Specification
122
+ // ============================================================================
123
+ export const renderArchitectureSpec = (ctx) => {
124
+ const lines = [];
125
+ lines.push(header('Architecture & Prototype Specification', 3, 'Orchestrator + Forge Agents', 3, 'Accenture technology blueprint', ctx.timestamp));
126
+ if (ctx.isDegraded)
127
+ lines.push(degradedBanner());
128
+ const c = allContentMerged(ctx.relevantNodes);
129
+ lines.push(contentSection('System Architecture', c['architecture'] ?? c['system_architecture'] ?? c['components'] ?? '*Components, boundaries, and interfaces.*'));
130
+ lines.push(contentSection('Integration Map', c['integration_map'] ?? c['integrations'] ?? '*External systems and data flows.*'));
131
+ lines.push(contentSection('Service Boundaries', c['service_boundaries'] ?? c['bounded_contexts'] ?? '*DDD bounded contexts.*'));
132
+ lines.push(contentSection('Data Model', c['data_model'] ?? c['entities'] ?? '*Entities, aggregates, value objects.*'));
133
+ lines.push(contentSection('Generated Prototype', c['prototype'] ?? c['endpoints'] ?? '*Endpoint listing and tech stack.*'));
134
+ lines.push(contentSection('ERP Integration Points', c['erp_integration'] ?? c['erp'] ?? '*ERP system integration mapping.*'));
135
+ lines.push(confidenceFooter(ctx.relevantNodes));
136
+ lines.push('\n**Quality Criteria:** Architecture must reflect detected ERP system and domain model. Prototype must have at least one functional endpoint.');
137
+ return lines.join('\n');
138
+ };
139
+ // ============================================================================
140
+ // Artifact 4: Simulation & Scenario Analysis
141
+ // ============================================================================
142
+ export const renderSimulationAnalysis = (ctx) => {
143
+ const lines = [];
144
+ lines.push(header('Simulation & Scenario Analysis', 4, 'Simulator Agents', 2, 'CGI scenario modeling report', ctx.timestamp));
145
+ if (ctx.isDegraded)
146
+ lines.push(degradedBanner());
147
+ const c = allContentMerged(ctx.relevantNodes);
148
+ lines.push(contentSection('Deployment Scenarios', c['deployment_scenarios'] ?? c['deployment'] ?? '*Best case, expected, worst case.*'));
149
+ lines.push(contentSection('Failure Scenarios', c['failure_scenarios'] ?? c['failures'] ?? '*Integration failures, scaling limits.*'));
150
+ lines.push(contentSection('Scaling Scenarios', c['scaling_scenarios'] ?? c['scaling'] ?? '*Load projections.*'));
151
+ lines.push(contentSection('Integration Edge Cases', c['edge_cases'] ?? c['integration_edge_cases'] ?? '*Unusual but plausible conditions.*'));
152
+ lines.push(contentSection('Per-Scenario Metrics', c['metrics'] ?? c['scenario_metrics'] ?? '*Reliability, failure, and deployment success probabilities.*'));
153
+ lines.push(confidenceFooter(ctx.relevantNodes));
154
+ lines.push('\n**Quality Criteria:** \u22653 distinct scenarios. Each scenario has quantified probability and impact.');
155
+ return lines.join('\n');
156
+ };
157
+ // ============================================================================
158
+ // Artifact 5: Risk Assessment
159
+ // ============================================================================
160
+ export const renderRiskAssessment = (ctx) => {
161
+ const lines = [];
162
+ lines.push(header('Risk Assessment', 5, 'Risk Scoring Agent', 5, 'Deloitte risk register', ctx.timestamp));
163
+ if (ctx.isDegraded)
164
+ lines.push(degradedBanner());
165
+ const c = allContentMerged(ctx.relevantNodes);
166
+ lines.push('### Risk Register\n');
167
+ lines.push('| Risk | Category | Probability | Impact | Mitigation Strategy |');
168
+ lines.push('|------|----------|-------------|--------|---------------------|');
169
+ const risks = c['risks'] ?? c['risk_register'] ?? c['data'];
170
+ if (Array.isArray(risks)) {
171
+ for (const r of risks) {
172
+ if (typeof r === 'object' && r !== null) {
173
+ const ro = r;
174
+ lines.push(`| ${ro['risk'] ?? ro['name'] ?? 'N/A'} | ${ro['category'] ?? 'N/A'} | ${ro['probability'] ?? 'N/A'} | ${ro['impact'] ?? 'N/A'} | ${ro['mitigation'] ?? ro['mitigation_strategy'] ?? 'N/A'} |`);
175
+ }
176
+ else {
177
+ lines.push(`| ${String(r)} | - | - | - | - |`);
178
+ }
179
+ }
180
+ }
181
+ else {
182
+ lines.push('| *No risks identified from Passes 2 & 4* | - | - | - | - |');
183
+ }
184
+ lines.push('');
185
+ lines.push(contentSection('Risk Heat Map', c['heat_map'] ?? '*Probability \u00d7 Impact matrix.*'));
186
+ lines.push(contentSection('Top 5 Risks with Mitigation Plans', c['top_risks'] ?? c['top_5'] ?? '*Detailed mitigation for highest-severity risks.*'));
187
+ lines.push(contentSection('Residual Risk', c['residual_risk'] ?? '*Risk remaining after mitigations applied.*'));
188
+ lines.push(confidenceFooter(ctx.relevantNodes));
189
+ lines.push('\n**Quality Criteria:** Risks sourced from Sentinel agents (Pass 2) and Shield/Policy agents (Pass 4). No invented risks.');
190
+ return lines.join('\n');
191
+ };
192
+ // ============================================================================
193
+ // Artifact 6: CostOps Financial Model
194
+ // ============================================================================
195
+ export const renderCostOpsFinancialModel = (ctx) => {
196
+ const lines = [];
197
+ lines.push(header('CostOps Financial Model', 6, 'CostOps Agents', 4, 'Capgemini TCO/ROI financial model', ctx.timestamp));
198
+ if (ctx.isDegraded)
199
+ lines.push(degradedBanner());
200
+ const c = allContentMerged(ctx.relevantNodes);
201
+ lines.push(contentSection('Infrastructure Cost Breakdown', c['infrastructure'] ?? c['infrastructure_costs'] ?? '*Compute, storage, network, licensing.*'));
202
+ lines.push(contentSection('Cloud Usage Projections', c['cloud_usage'] ?? c['cloud_projections'] ?? '*Monthly/annual cloud spend.*'));
203
+ lines.push(contentSection('Integration Costs', c['integration_costs'] ?? c['integrations'] ?? '*Third-party APIs, ERP connectors.*'));
204
+ lines.push(contentSection('Operational Staffing Requirements', c['staffing'] ?? c['operational_staffing'] ?? '*FTE and role requirements.*'));
205
+ lines.push('### Total Cost of Ownership\n');
206
+ lines.push('| Period | Cost |');
207
+ lines.push('|--------|------|');
208
+ lines.push(`| Year 1 | ${c['year1'] ?? c['tco_year1'] ?? '*TBD*'} |`);
209
+ lines.push(`| Year 3 | ${c['year3'] ?? c['tco_year3'] ?? '*TBD*'} |`);
210
+ lines.push(`| Year 5 | ${c['year5'] ?? c['tco_year5'] ?? '*TBD*'} |`);
211
+ lines.push('');
212
+ lines.push(contentSection('ROI Projection', c['roi'] ?? c['roi_projection'] ?? '*Expected return and payback period.*'));
213
+ lines.push(contentSection('Budget Risk Assessment', c['budget_risk'] ?? c['risk'] ?? '*Contingency and exceedance probability.*'));
214
+ lines.push(confidenceFooter(ctx.relevantNodes));
215
+ lines.push('\n**Quality Criteria:** Costs derived from architecture spec (Pass 3) and simulation data (Pass 2). ROI includes sensitivity analysis.');
216
+ return lines.join('\n');
217
+ };
218
+ // ============================================================================
219
+ // Artifact 7: Compliance & Policy Analysis
220
+ // ============================================================================
221
+ export const renderComplianceAnalysis = (ctx) => {
222
+ const lines = [];
223
+ lines.push(header('Compliance & Policy Analysis', 7, 'Shield + Policy Engine Agents', 4, 'PwC regulatory assessment', ctx.timestamp));
224
+ if (ctx.isDegraded)
225
+ lines.push(degradedBanner());
226
+ const c = allContentMerged(ctx.relevantNodes);
227
+ lines.push(contentSection('Regulatory Landscape', c['regulatory'] ?? c['frameworks'] ?? c['regulatory_landscape'] ?? '*Applicable frameworks: SOC2, GDPR, HIPAA, PIPEDA, etc.*'));
228
+ lines.push(contentSection('Data Governance Requirements', c['data_governance'] ?? c['data_requirements'] ?? '*Data residency, classification, retention.*'));
229
+ lines.push(contentSection('Security Implications', c['security'] ?? c['security_implications'] ?? '*Prompt injection, PII exposure, credential risks.*'));
230
+ lines.push(contentSection('AI Governance Compliance', c['ai_governance'] ?? c['model_governance'] ?? '*Model bias, explainability, fairness.*'));
231
+ lines.push(contentSection('Policy Gaps', c['gaps'] ?? c['policy_gaps'] ?? '*Areas where current policies are insufficient.*'));
232
+ lines.push(contentSection('Remediation Recommendations', c['remediation'] ?? c['recommendations'] ?? '*Prioritized remediation steps.*'));
233
+ lines.push(confidenceFooter(ctx.relevantNodes));
234
+ lines.push('\n**Quality Criteria:** Regulatory frameworks detected from business context and geography, not hardcoded.');
235
+ return lines.join('\n');
236
+ };
237
+ // ============================================================================
238
+ // Artifact 8: Implementation Roadmap
239
+ // ============================================================================
240
+ export const renderImplementationRoadmap = (ctx) => {
241
+ const lines = [];
242
+ lines.push(header('Implementation Roadmap', 8, 'Documentation Generator Agent', 5, 'Accenture delivery plan / Capgemini implementation roadmap', ctx.timestamp));
243
+ if (ctx.isDegraded)
244
+ lines.push(degradedBanner());
245
+ const c = allContentMerged(ctx.relevantNodes);
246
+ lines.push(contentSection('Phase 1 \u2014 Pilot', c['phase1'] ?? c['pilot'] ?? '*Scope, duration, success criteria.*'));
247
+ lines.push(contentSection('Phase 2 \u2014 Department Rollout', c['phase2'] ?? c['rollout'] ?? '*Expansion plan, prerequisites.*'));
248
+ lines.push(contentSection('Phase 3 \u2014 Enterprise Deployment', c['phase3'] ?? c['enterprise'] ?? '*Full scale, operational handoff.*'));
249
+ lines.push(contentSection('Milestones & Deliverables', c['milestones'] ?? '*Per-phase milestones.*'));
250
+ lines.push(contentSection('Dependencies & Prerequisites', c['dependencies'] ?? c['prerequisites'] ?? '*Cross-workstream dependencies.*'));
251
+ lines.push(contentSection('Resource Requirements', c['resources'] ?? c['resource_requirements'] ?? '*Per-phase resource needs.*'));
252
+ lines.push(contentSection('Go/No-Go Criteria', c['go_no_go'] ?? c['criteria'] ?? '*Measurable criteria between phases.*'));
253
+ lines.push(confidenceFooter(ctx.relevantNodes));
254
+ lines.push('\n**Quality Criteria:** Phases reference specific architecture components. Durations grounded in complexity analysis.');
255
+ return lines.join('\n');
256
+ };
257
+ // ============================================================================
258
+ // Artifact 9: Organizational Impact Analysis
259
+ // ============================================================================
260
+ export const renderOrganizationalImpact = (ctx) => {
261
+ const lines = [];
262
+ lines.push(header('Organizational Impact Analysis', 9, 'Documentation Generator Agent', 5, 'McKinsey change management assessment', ctx.timestamp));
263
+ if (ctx.isDegraded)
264
+ lines.push(degradedBanner());
265
+ const c = allContentMerged(ctx.relevantNodes);
266
+ lines.push(contentSection('Teams Affected', c['teams'] ?? c['teams_affected'] ?? '*IT, data engineering, operations, compliance, business units.*'));
267
+ lines.push(contentSection('Process Changes Required', c['process_changes'] ?? c['changes'] ?? '*Workflow modifications and new processes.*'));
268
+ lines.push(contentSection('Training Requirements', c['training'] ?? c['training_requirements'] ?? '*New tools, governance workflows, monitoring.*'));
269
+ lines.push(contentSection('Change Management Risks', c['change_risks'] ?? c['risks'] ?? '*Adoption barriers and resistance factors.*'));
270
+ lines.push(contentSection('Communication Plan Outline', c['communication'] ?? c['communication_plan'] ?? '*Stakeholder communication strategy.*'));
271
+ lines.push(contentSection('Organizational Readiness Score', c['readiness_score'] ?? c['readiness'] ?? '*0-100 based on change magnitude vs. capacity.*'));
272
+ lines.push(confidenceFooter(ctx.relevantNodes));
273
+ lines.push('\n**Quality Criteria:** Teams and processes derived from architecture and integration map, not generic templates.');
274
+ return lines.join('\n');
275
+ };
276
+ // ============================================================================
277
+ // Artifact 10: Stakeholder Map
278
+ // ============================================================================
279
+ export const renderStakeholderMap = (ctx) => {
280
+ const lines = [];
281
+ lines.push(header('Stakeholder Map', 10, 'Documentation Generator Agent', 5, 'RACI matrix / governance stakeholder map', ctx.timestamp));
282
+ if (ctx.isDegraded)
283
+ lines.push(degradedBanner());
284
+ const c = allContentMerged(ctx.relevantNodes);
285
+ lines.push('### RACI Matrix\n');
286
+ lines.push('| Activity | Responsible | Accountable | Consulted | Informed |');
287
+ lines.push('|----------|------------|-------------|-----------|----------|');
288
+ const raci = c['raci'] ?? c['raci_matrix'];
289
+ if (Array.isArray(raci)) {
290
+ for (const row of raci) {
291
+ if (typeof row === 'object' && row !== null) {
292
+ const r = row;
293
+ lines.push(`| ${r['activity'] ?? '-'} | ${r['responsible'] ?? '-'} | ${r['accountable'] ?? '-'} | ${r['consulted'] ?? '-'} | ${r['informed'] ?? '-'} |`);
294
+ }
295
+ }
296
+ }
297
+ else {
298
+ lines.push('| *To be determined from organizational analysis* | - | - | - | - |');
299
+ }
300
+ lines.push('');
301
+ lines.push(contentSection('Executive Sponsor', c['executive_sponsor'] ?? '*CIO/CTO identification.*'));
302
+ lines.push(contentSection('Technical Owners', c['technical_owners'] ?? '*Platform engineering leads.*'));
303
+ lines.push(contentSection('Governance & Compliance', c['governance'] ?? c['compliance_stakeholders'] ?? '*Security, compliance, legal.*'));
304
+ lines.push(contentSection('Business Stakeholders', c['business'] ?? c['business_stakeholders'] ?? '*Operations leadership.*'));
305
+ lines.push(contentSection('External Partners / Vendors', c['external'] ?? c['vendors'] ?? '*Third-party dependencies.*'));
306
+ lines.push(contentSection('Decision Authority Chain', c['authority'] ?? c['decision_chain'] ?? '*Approval hierarchy.*'));
307
+ lines.push(confidenceFooter(ctx.relevantNodes));
308
+ lines.push('\n**Quality Criteria:** Roles mapped to actual organizational functions identified in the problem context.');
309
+ return lines.join('\n');
310
+ };
311
+ // ============================================================================
312
+ // Artifact 11: Success Metrics & KPIs
313
+ // ============================================================================
314
+ export const renderSuccessMetrics = (ctx) => {
315
+ const lines = [];
316
+ lines.push(header('Success Metrics & KPIs', 11, 'Documentation Generator Agent', 5, 'Balanced scorecard / KPI framework', ctx.timestamp));
317
+ if (ctx.isDegraded)
318
+ lines.push(degradedBanner());
319
+ const c = allContentMerged(ctx.relevantNodes);
320
+ lines.push('### KPI Dashboard\n');
321
+ lines.push('| Category | KPI | Baseline | Target | Measurement |');
322
+ lines.push('|----------|-----|----------|--------|-------------|');
323
+ const kpis = c['kpis'] ?? c['metrics'];
324
+ if (Array.isArray(kpis)) {
325
+ for (const k of kpis) {
326
+ if (typeof k === 'object' && k !== null) {
327
+ const kpi = k;
328
+ lines.push(`| ${kpi['category'] ?? '-'} | ${kpi['name'] ?? kpi['kpi'] ?? '-'} | ${kpi['baseline'] ?? '-'} | ${kpi['target'] ?? '-'} | ${kpi['measurement'] ?? '-'} |`);
329
+ }
330
+ }
331
+ }
332
+ else {
333
+ lines.push('| *To be defined* | - | - | - | - |');
334
+ }
335
+ lines.push('');
336
+ lines.push(contentSection('Operational KPIs', c['operational'] ?? c['operational_kpis'] ?? '*Efficiency improvement %, system uptime, latency targets.*'));
337
+ lines.push(contentSection('Financial KPIs', c['financial'] ?? c['financial_kpis'] ?? '*Cost reduction, revenue impact, ROI realization.*'));
338
+ lines.push(contentSection('Quality KPIs', c['quality'] ?? c['quality_kpis'] ?? '*Error rates, customer satisfaction, SLA adherence.*'));
339
+ lines.push(contentSection('Adoption KPIs', c['adoption'] ?? c['adoption_kpis'] ?? '*User onboarding, feature utilization.*'));
340
+ lines.push(confidenceFooter(ctx.relevantNodes));
341
+ lines.push('\n**Quality Criteria:** KPIs linked to specific architecture components and CostOps projections. Baselines require current-state data or clearly stated assumptions.');
342
+ return lines.join('\n');
343
+ };
344
+ // ============================================================================
345
+ // Artifact 12: Decision Confidence Score
346
+ // ============================================================================
347
+ export const renderConfidenceScore = (ctx) => {
348
+ const lines = [];
349
+ lines.push(header('Decision Confidence Score', 12, 'Decision + Risk Agents', 5, 'Unique to Agentics', ctx.timestamp));
350
+ if (ctx.isDegraded)
351
+ lines.push(degradedBanner());
352
+ const c = allContentMerged(ctx.relevantNodes);
353
+ const overall = c['overall'] ?? c['score'] ?? '*Computed from pass outputs.*';
354
+ lines.push(`## Overall Confidence Score: ${overall}%\n`);
355
+ lines.push('### Component Scores\n');
356
+ lines.push('| Component | Score | Source |');
357
+ lines.push('|-----------|-------|--------|');
358
+ lines.push(`| Financial Outcome Stability | ${c['financial'] ?? '-'} | CostOps (Pass 4) |`);
359
+ lines.push(`| Operational Risk Level | ${c['operational'] ?? '-'} | Sentinel + Risk Assessment |`);
360
+ lines.push(`| Compliance Exposure | ${c['compliance'] ?? '-'} | Shield + Policy Engine |`);
361
+ lines.push(`| Architecture Feasibility | ${c['architecture'] ?? '-'} | Simulation + Prototype |`);
362
+ lines.push(`| Organizational Readiness | ${c['organizational'] ?? '-'} | Impact Analysis |`);
363
+ lines.push('');
364
+ lines.push(contentSection('Score Methodology', c['methodology'] ?? '*Weighted aggregation: Financial 25%, Operational 20%, Compliance 20%, Architecture 20%, Organizational 15%.*'));
365
+ if (ctx.passesDegraded.length > 0) {
366
+ lines.push(`### Degradation Notes\n\nThe following passes completed in degraded mode, reducing the confidence score:\n`);
367
+ for (const p of ctx.passesDegraded) {
368
+ lines.push(`- Pass ${p}: -10% penalty applied`);
369
+ }
370
+ lines.push('');
371
+ }
372
+ const rec = c['recommendation'] ?? c['final_recommendation'] ?? '*See DECISION_PACKAGE.md.*';
373
+ lines.push(contentSection('Final Recommendation', rec));
374
+ lines.push('\n**Quality Criteria:** Score computed from actual pass outputs, not estimated. Degraded passes explicitly reduce the score.');
375
+ return lines.join('\n');
376
+ };
377
+ // ============================================================================
378
+ // Artifact 13: OKRs & Strategic Alignment
379
+ // ============================================================================
380
+ export const renderOKRs = (ctx) => {
381
+ const lines = [];
382
+ lines.push(header('OKRs & Strategic Alignment', 13, 'Documentation Generator Agent', 5, 'McKinsey/Capgemini strategic transformation deliverable', ctx.timestamp));
383
+ if (ctx.isDegraded)
384
+ lines.push(degradedBanner());
385
+ const c = allContentMerged(ctx.relevantNodes);
386
+ lines.push(contentSection('Strategic Objectives', c['objectives'] ?? c['strategic_objectives'] ?? '*3-5 high-level objectives aligned to organizational strategy.*'));
387
+ lines.push('### Key Results\n');
388
+ const keyResults = c['key_results'] ?? c['results'];
389
+ if (Array.isArray(keyResults)) {
390
+ for (const kr of keyResults) {
391
+ if (typeof kr === 'object' && kr !== null) {
392
+ const r = kr;
393
+ lines.push(`- **${r['objective'] ?? 'Objective'}:** ${r['key_result'] ?? r['result'] ?? '-'} (Target: ${r['target'] ?? '-'}, Due: ${r['due'] ?? '-'})`);
394
+ }
395
+ else {
396
+ lines.push(`- ${String(kr)}`);
397
+ }
398
+ }
399
+ }
400
+ else {
401
+ lines.push('*Key results to be defined per strategic objective.*');
402
+ }
403
+ lines.push('');
404
+ lines.push(contentSection('Quarterly Milestones', c['milestones'] ?? c['quarterly_milestones'] ?? '*Q1-Q4 targets mapped to implementation roadmap phases.*'));
405
+ lines.push(contentSection('Strategic Initiative Mapping', c['initiative_mapping'] ?? c['strategic_mapping'] ?? '*How this project connects to broader organizational initiatives.*'));
406
+ lines.push(contentSection('Alignment Score', c['alignment_score'] ?? c['alignment'] ?? '*Percentage of strategic priorities addressed.*'));
407
+ lines.push(contentSection('Cross-Program Dependencies', c['dependencies'] ?? c['cross_program'] ?? '*Dependencies on other organizational initiatives.*'));
408
+ lines.push(confidenceFooter(ctx.relevantNodes));
409
+ lines.push('\n**Quality Criteria:** Objectives derived from business context in Pass 1. Key results quantified and traceable to KPIs and CostOps projections.');
410
+ return lines.join('\n');
411
+ };
412
+ // ============================================================================
413
+ // Artifact 14: RAID Log
414
+ // ============================================================================
415
+ export const renderRAIDLog = (ctx) => {
416
+ const lines = [];
417
+ lines.push(header('RAID Log', 14, 'Documentation Generator Agent', 5, 'CGI/Accenture PMO standard deliverable', ctx.timestamp));
418
+ if (ctx.isDegraded)
419
+ lines.push(degradedBanner());
420
+ const c = allContentMerged(ctx.relevantNodes);
421
+ // Risks
422
+ lines.push('## Risks\n');
423
+ lines.push('| ID | Risk | Category | Severity | Phase | Status | Mitigation |');
424
+ lines.push('|----|------|----------|----------|-------|--------|------------|');
425
+ const risks = c['risks'] ?? [];
426
+ if (Array.isArray(risks)) {
427
+ for (let i = 0; i < risks.length; i++) {
428
+ const r = risks[i];
429
+ if (typeof r === 'object' && r !== null) {
430
+ lines.push(`| R${i + 1} | ${r['risk'] ?? r['name'] ?? '-'} | ${r['category'] ?? '-'} | ${r['severity'] ?? '-'} | ${r['phase'] ?? '-'} | ${r['status'] ?? 'Open'} | ${r['mitigation'] ?? '-'} |`);
431
+ }
432
+ else {
433
+ lines.push(`| R${i + 1} | ${String(r)} | - | - | - | Open | - |`);
434
+ }
435
+ }
436
+ }
437
+ lines.push('');
438
+ // Assumptions
439
+ lines.push('## Assumptions\n');
440
+ lines.push('| ID | Assumption | Source Pass | Falsifiable | Status |');
441
+ lines.push('|----|-----------|------------|-------------|--------|');
442
+ const assumptions = c['assumptions'] ?? [];
443
+ if (Array.isArray(assumptions)) {
444
+ for (let i = 0; i < assumptions.length; i++) {
445
+ const a = assumptions[i];
446
+ if (typeof a === 'object' && a !== null) {
447
+ lines.push(`| A${i + 1} | ${a['assumption'] ?? a['name'] ?? '-'} | ${a['source_pass'] ?? a['pass'] ?? '-'} | ${a['falsifiable'] ?? 'Yes'} | ${a['status'] ?? 'Open'} |`);
448
+ }
449
+ else {
450
+ lines.push(`| A${i + 1} | ${String(a)} | - | Yes | Open |`);
451
+ }
452
+ }
453
+ }
454
+ lines.push('');
455
+ // Issues
456
+ lines.push('## Issues\n');
457
+ lines.push('| ID | Issue | Priority | Owner | Status |');
458
+ lines.push('|----|-------|----------|-------|--------|');
459
+ const issues = c['issues'] ?? [];
460
+ if (Array.isArray(issues)) {
461
+ for (let i = 0; i < issues.length; i++) {
462
+ const issue = issues[i];
463
+ if (typeof issue === 'object' && issue !== null) {
464
+ lines.push(`| I${i + 1} | ${issue['issue'] ?? issue['name'] ?? '-'} | ${issue['priority'] ?? '-'} | ${issue['owner'] ?? '-'} | ${issue['status'] ?? 'Open'} |`);
465
+ }
466
+ else {
467
+ lines.push(`| I${i + 1} | ${String(issue)} | - | - | Open |`);
468
+ }
469
+ }
470
+ }
471
+ lines.push('');
472
+ // Dependencies
473
+ lines.push('## Dependencies\n');
474
+ lines.push('| ID | Dependency | Type | Owner | Due Date | Status |');
475
+ lines.push('|----|-----------|------|-------|----------|--------|');
476
+ const deps = c['dependencies'] ?? [];
477
+ if (Array.isArray(deps)) {
478
+ for (let i = 0; i < deps.length; i++) {
479
+ const d = deps[i];
480
+ if (typeof d === 'object' && d !== null) {
481
+ lines.push(`| D${i + 1} | ${d['dependency'] ?? d['name'] ?? '-'} | ${d['type'] ?? '-'} | ${d['owner'] ?? '-'} | ${d['due_date'] ?? d['due'] ?? '-'} | ${d['status'] ?? 'Open'} |`);
482
+ }
483
+ else {
484
+ lines.push(`| D${i + 1} | ${String(d)} | - | - | - | Open |`);
485
+ }
486
+ }
487
+ }
488
+ lines.push('');
489
+ lines.push(confidenceFooter(ctx.relevantNodes));
490
+ lines.push('\n**Quality Criteria:** Every entry traced to a specific pipeline pass and agent output. Assumptions are falsifiable. Dependencies have identified owners.');
491
+ return lines.join('\n');
492
+ };
493
+ // ============================================================================
494
+ // Registry: Artifact Number → Renderer
495
+ // ============================================================================
496
+ export const ARTIFACT_RENDERERS = {
497
+ 1: renderExecutiveDecisionMemo,
498
+ 2: renderExecutiveSummary,
499
+ 3: renderArchitectureSpec,
500
+ 4: renderSimulationAnalysis,
501
+ 5: renderRiskAssessment,
502
+ 6: renderCostOpsFinancialModel,
503
+ 7: renderComplianceAnalysis,
504
+ 8: renderImplementationRoadmap,
505
+ 9: renderOrganizationalImpact,
506
+ 10: renderStakeholderMap,
507
+ 11: renderSuccessMetrics,
508
+ 12: renderConfidenceScore,
509
+ 13: renderOKRs,
510
+ 14: renderRAIDLog,
511
+ // 15 = Provenance Manifest — handled by ProvenanceTracker, not a renderer
512
+ };
513
+ //# sourceMappingURL=artifact-renderers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact-renderers.js","sourceRoot":"","sources":["../../../src/pipeline/enterprise/artifact-renderers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Code Resolver — Agent-to-Source-Code Mapping (ADR-039)
3
+ *
4
+ * Maps agent identifiers to their source code provenance:
5
+ * - Package registry lookup (domain → npm package)
6
+ * - Git context (commit hash from working directory)
7
+ * - Entry point mapping (agent type → source file)
8
+ * - Dependency resolution (key runtime dependencies)
9
+ *
10
+ * For agents built into the CLI, provenance points to the CLI's own
11
+ * package and specific source module.
12
+ */
13
+ import type { AgentRef, CodeProvenance } from './types.js';
14
+ /** Resolve the current git commit hash (cached, best effort). */
15
+ export declare function resolveGitCommit(): string;
16
+ /** Resolve the CLI package version (cached, best effort). */
17
+ export declare function resolveCLIVersion(): string;
18
+ /** Clear the cached values (for testing). */
19
+ export declare function clearResolverCache(): void;
20
+ /**
21
+ * Resolve the code provenance for an agent.
22
+ *
23
+ * Uses the domain→package registry to determine the npm package,
24
+ * then resolves the git commit, entry point, and dependencies.
25
+ */
26
+ export declare function resolveCodeProvenance(agent: AgentRef): CodeProvenance;
27
+ /**
28
+ * Resolve code provenance for multiple agents in batch.
29
+ * Deduplicates package lookups for efficiency.
30
+ */
31
+ export declare function resolveCodeProvenanceBatch(agents: readonly AgentRef[]): Map<string, CodeProvenance>;
32
+ /** Check for version discrepancies across agent code provenances. */
33
+ export declare function detectVersionDiscrepancies(provenances: ReadonlyMap<string, CodeProvenance>): readonly {
34
+ agentKey: string;
35
+ package: string;
36
+ version: string;
37
+ commitHash: string;
38
+ }[];
39
+ /** Get the npm package name for an agent domain. */
40
+ export declare function getPackageForDomain(domain: string): string;
41
+ /** Get all registered domain→package mappings. */
42
+ export declare function getAllDomainPackages(): Readonly<Record<string, string>>;
43
+ //# sourceMappingURL=code-resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-resolver.d.ts","sourceRoot":"","sources":["../../../src/pipeline/enterprise/code-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAoD3D,iEAAiE;AACjE,wBAAgB,gBAAgB,IAAI,MAAM,CAYzC;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C;AAED,6CAA6C;AAC7C,wBAAgB,kBAAkB,IAAI,IAAI,CAGzC;AAMD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,CAsBrE;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CASnG;AAoCD,qEAAqE;AACrE,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAAC,GAC/C,SAAS;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAAE,CAmCvF;AAMD,oDAAoD;AACpD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,kDAAkD;AAClD,wBAAgB,oBAAoB,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAEvE"}