@nahisaho/musubix-core 1.0.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 (214) hide show
  1. package/bin/musubix.js +18 -0
  2. package/dist/__tests__/index.test.d.ts +2 -0
  3. package/dist/__tests__/index.test.d.ts.map +1 -0
  4. package/dist/__tests__/index.test.js +27 -0
  5. package/dist/__tests__/index.test.js.map +1 -0
  6. package/dist/auth/auth-manager.d.ts +320 -0
  7. package/dist/auth/auth-manager.d.ts.map +1 -0
  8. package/dist/auth/auth-manager.js +580 -0
  9. package/dist/auth/auth-manager.js.map +1 -0
  10. package/dist/cli/base.d.ts +58 -0
  11. package/dist/cli/base.d.ts.map +1 -0
  12. package/dist/cli/base.js +93 -0
  13. package/dist/cli/base.js.map +1 -0
  14. package/dist/cli/commands/help.d.ts +17 -0
  15. package/dist/cli/commands/help.d.ts.map +1 -0
  16. package/dist/cli/commands/help.js +228 -0
  17. package/dist/cli/commands/help.js.map +1 -0
  18. package/dist/cli/commands/index.d.ts +14 -0
  19. package/dist/cli/commands/index.d.ts.map +1 -0
  20. package/dist/cli/commands/index.js +25 -0
  21. package/dist/cli/commands/index.js.map +1 -0
  22. package/dist/cli/commands/init.d.ts +38 -0
  23. package/dist/cli/commands/init.d.ts.map +1 -0
  24. package/dist/cli/commands/init.js +258 -0
  25. package/dist/cli/commands/init.js.map +1 -0
  26. package/dist/cli/index.d.ts +9 -0
  27. package/dist/cli/index.d.ts.map +1 -0
  28. package/dist/cli/index.js +9 -0
  29. package/dist/cli/index.js.map +1 -0
  30. package/dist/codegen/coding-standards.d.ts +250 -0
  31. package/dist/codegen/coding-standards.d.ts.map +1 -0
  32. package/dist/codegen/coding-standards.js +976 -0
  33. package/dist/codegen/coding-standards.js.map +1 -0
  34. package/dist/codegen/coverage-reporter.d.ts +264 -0
  35. package/dist/codegen/coverage-reporter.d.ts.map +1 -0
  36. package/dist/codegen/coverage-reporter.js +697 -0
  37. package/dist/codegen/coverage-reporter.js.map +1 -0
  38. package/dist/codegen/dependency-analyzer.d.ts +271 -0
  39. package/dist/codegen/dependency-analyzer.d.ts.map +1 -0
  40. package/dist/codegen/dependency-analyzer.js +661 -0
  41. package/dist/codegen/dependency-analyzer.js.map +1 -0
  42. package/dist/codegen/generator.d.ts +275 -0
  43. package/dist/codegen/generator.d.ts.map +1 -0
  44. package/dist/codegen/generator.js +781 -0
  45. package/dist/codegen/generator.js.map +1 -0
  46. package/dist/codegen/index.d.ts +18 -0
  47. package/dist/codegen/index.d.ts.map +1 -0
  48. package/dist/codegen/index.js +27 -0
  49. package/dist/codegen/index.js.map +1 -0
  50. package/dist/codegen/integration-test-generator.d.ts +312 -0
  51. package/dist/codegen/integration-test-generator.d.ts.map +1 -0
  52. package/dist/codegen/integration-test-generator.js +765 -0
  53. package/dist/codegen/integration-test-generator.js.map +1 -0
  54. package/dist/codegen/pattern-conformance.d.ts +309 -0
  55. package/dist/codegen/pattern-conformance.d.ts.map +1 -0
  56. package/dist/codegen/pattern-conformance.js +590 -0
  57. package/dist/codegen/pattern-conformance.js.map +1 -0
  58. package/dist/codegen/quality-metrics.d.ts +235 -0
  59. package/dist/codegen/quality-metrics.d.ts.map +1 -0
  60. package/dist/codegen/quality-metrics.js +439 -0
  61. package/dist/codegen/quality-metrics.js.map +1 -0
  62. package/dist/codegen/security-scanner.d.ts +179 -0
  63. package/dist/codegen/security-scanner.d.ts.map +1 -0
  64. package/dist/codegen/security-scanner.js +495 -0
  65. package/dist/codegen/security-scanner.js.map +1 -0
  66. package/dist/codegen/static-analyzer.d.ts +188 -0
  67. package/dist/codegen/static-analyzer.d.ts.map +1 -0
  68. package/dist/codegen/static-analyzer.js +490 -0
  69. package/dist/codegen/static-analyzer.js.map +1 -0
  70. package/dist/codegen/unit-test-generator.d.ts +289 -0
  71. package/dist/codegen/unit-test-generator.d.ts.map +1 -0
  72. package/dist/codegen/unit-test-generator.js +634 -0
  73. package/dist/codegen/unit-test-generator.js.map +1 -0
  74. package/dist/design/adr-generator.d.ts +227 -0
  75. package/dist/design/adr-generator.d.ts.map +1 -0
  76. package/dist/design/adr-generator.js +423 -0
  77. package/dist/design/adr-generator.js.map +1 -0
  78. package/dist/design/c4-generator.d.ts +267 -0
  79. package/dist/design/c4-generator.d.ts.map +1 -0
  80. package/dist/design/c4-generator.js +453 -0
  81. package/dist/design/c4-generator.js.map +1 -0
  82. package/dist/design/framework-optimizer.d.ts +190 -0
  83. package/dist/design/framework-optimizer.d.ts.map +1 -0
  84. package/dist/design/framework-optimizer.js +589 -0
  85. package/dist/design/framework-optimizer.js.map +1 -0
  86. package/dist/design/index.d.ts +12 -0
  87. package/dist/design/index.d.ts.map +1 -0
  88. package/dist/design/index.js +13 -0
  89. package/dist/design/index.js.map +1 -0
  90. package/dist/design/pattern-detector.d.ts +270 -0
  91. package/dist/design/pattern-detector.d.ts.map +1 -0
  92. package/dist/design/pattern-detector.js +621 -0
  93. package/dist/design/pattern-detector.js.map +1 -0
  94. package/dist/design/solid-validator.d.ts +188 -0
  95. package/dist/design/solid-validator.d.ts.map +1 -0
  96. package/dist/design/solid-validator.js +579 -0
  97. package/dist/design/solid-validator.js.map +1 -0
  98. package/dist/error/data-persistence.d.ts +311 -0
  99. package/dist/error/data-persistence.d.ts.map +1 -0
  100. package/dist/error/data-persistence.js +586 -0
  101. package/dist/error/data-persistence.js.map +1 -0
  102. package/dist/error/graceful-degradation.d.ts +309 -0
  103. package/dist/error/graceful-degradation.d.ts.map +1 -0
  104. package/dist/error/graceful-degradation.js +510 -0
  105. package/dist/error/graceful-degradation.js.map +1 -0
  106. package/dist/error/index.d.ts +11 -0
  107. package/dist/error/index.d.ts.map +1 -0
  108. package/dist/error/index.js +19 -0
  109. package/dist/error/index.js.map +1 -0
  110. package/dist/explanation/explanation-generator.d.ts +228 -0
  111. package/dist/explanation/explanation-generator.d.ts.map +1 -0
  112. package/dist/explanation/explanation-generator.js +662 -0
  113. package/dist/explanation/explanation-generator.js.map +1 -0
  114. package/dist/explanation/index.d.ts +11 -0
  115. package/dist/explanation/index.d.ts.map +1 -0
  116. package/dist/explanation/index.js +19 -0
  117. package/dist/explanation/index.js.map +1 -0
  118. package/dist/explanation/reasoning-chain.d.ts +314 -0
  119. package/dist/explanation/reasoning-chain.d.ts.map +1 -0
  120. package/dist/explanation/reasoning-chain.js +414 -0
  121. package/dist/explanation/reasoning-chain.js.map +1 -0
  122. package/dist/explanation/visual-explanation.d.ts +315 -0
  123. package/dist/explanation/visual-explanation.d.ts.map +1 -0
  124. package/dist/explanation/visual-explanation.js +667 -0
  125. package/dist/explanation/visual-explanation.js.map +1 -0
  126. package/dist/index.d.ts +33 -0
  127. package/dist/index.d.ts.map +1 -0
  128. package/dist/index.js +47 -0
  129. package/dist/index.js.map +1 -0
  130. package/dist/requirements/decomposer.d.ts +235 -0
  131. package/dist/requirements/decomposer.d.ts.map +1 -0
  132. package/dist/requirements/decomposer.js +587 -0
  133. package/dist/requirements/decomposer.js.map +1 -0
  134. package/dist/requirements/related-finder.d.ts +261 -0
  135. package/dist/requirements/related-finder.d.ts.map +1 -0
  136. package/dist/requirements/related-finder.js +629 -0
  137. package/dist/requirements/related-finder.js.map +1 -0
  138. package/dist/traceability/impact.d.ts +196 -0
  139. package/dist/traceability/impact.d.ts.map +1 -0
  140. package/dist/traceability/impact.js +438 -0
  141. package/dist/traceability/impact.js.map +1 -0
  142. package/dist/traceability/index.d.ts +9 -0
  143. package/dist/traceability/index.d.ts.map +1 -0
  144. package/dist/traceability/index.js +10 -0
  145. package/dist/traceability/index.js.map +1 -0
  146. package/dist/traceability/manager.d.ts +266 -0
  147. package/dist/traceability/manager.d.ts.map +1 -0
  148. package/dist/traceability/manager.js +412 -0
  149. package/dist/traceability/manager.js.map +1 -0
  150. package/dist/types/common.d.ts +294 -0
  151. package/dist/types/common.d.ts.map +1 -0
  152. package/dist/types/common.js +15 -0
  153. package/dist/types/common.js.map +1 -0
  154. package/dist/types/ears.d.ts +158 -0
  155. package/dist/types/ears.d.ts.map +1 -0
  156. package/dist/types/ears.js +33 -0
  157. package/dist/types/ears.js.map +1 -0
  158. package/dist/types/errors.d.ts +176 -0
  159. package/dist/types/errors.d.ts.map +1 -0
  160. package/dist/types/errors.js +55 -0
  161. package/dist/types/errors.js.map +1 -0
  162. package/dist/types/index.d.ts +10 -0
  163. package/dist/types/index.d.ts.map +1 -0
  164. package/dist/types/index.js +10 -0
  165. package/dist/types/index.js.map +1 -0
  166. package/dist/utils/data-protector.d.ts +122 -0
  167. package/dist/utils/data-protector.d.ts.map +1 -0
  168. package/dist/utils/data-protector.js +275 -0
  169. package/dist/utils/data-protector.js.map +1 -0
  170. package/dist/utils/error-handler.d.ts +101 -0
  171. package/dist/utils/error-handler.d.ts.map +1 -0
  172. package/dist/utils/error-handler.js +324 -0
  173. package/dist/utils/error-handler.js.map +1 -0
  174. package/dist/utils/i18n-manager.d.ts +259 -0
  175. package/dist/utils/i18n-manager.d.ts.map +1 -0
  176. package/dist/utils/i18n-manager.js +554 -0
  177. package/dist/utils/i18n-manager.js.map +1 -0
  178. package/dist/utils/index.d.ts +10 -0
  179. package/dist/utils/index.d.ts.map +1 -0
  180. package/dist/utils/index.js +10 -0
  181. package/dist/utils/index.js.map +1 -0
  182. package/dist/utils/logger.d.ts +120 -0
  183. package/dist/utils/logger.d.ts.map +1 -0
  184. package/dist/utils/logger.js +237 -0
  185. package/dist/utils/logger.js.map +1 -0
  186. package/dist/utils/performance-profiler.d.ts +251 -0
  187. package/dist/utils/performance-profiler.d.ts.map +1 -0
  188. package/dist/utils/performance-profiler.js +458 -0
  189. package/dist/utils/performance-profiler.js.map +1 -0
  190. package/dist/utils/scalability-optimizer.d.ts +294 -0
  191. package/dist/utils/scalability-optimizer.d.ts.map +1 -0
  192. package/dist/utils/scalability-optimizer.js +606 -0
  193. package/dist/utils/scalability-optimizer.js.map +1 -0
  194. package/dist/utils/structured-logger.d.ts +294 -0
  195. package/dist/utils/structured-logger.d.ts.map +1 -0
  196. package/dist/utils/structured-logger.js +630 -0
  197. package/dist/utils/structured-logger.js.map +1 -0
  198. package/dist/utils/version-compatibility.d.ts +217 -0
  199. package/dist/utils/version-compatibility.d.ts.map +1 -0
  200. package/dist/utils/version-compatibility.js +443 -0
  201. package/dist/utils/version-compatibility.js.map +1 -0
  202. package/dist/validators/ears-validator.d.ts +182 -0
  203. package/dist/validators/ears-validator.d.ts.map +1 -0
  204. package/dist/validators/ears-validator.js +357 -0
  205. package/dist/validators/ears-validator.js.map +1 -0
  206. package/dist/validators/index.d.ts +8 -0
  207. package/dist/validators/index.d.ts.map +1 -0
  208. package/dist/validators/index.js +9 -0
  209. package/dist/validators/index.js.map +1 -0
  210. package/dist/version.d.ts +8 -0
  211. package/dist/version.d.ts.map +1 -0
  212. package/dist/version.js +8 -0
  213. package/dist/version.js.map +1 -0
  214. package/package.json +100 -0
@@ -0,0 +1,196 @@
1
+ /**
2
+ * Impact Analyzer
3
+ *
4
+ * Analyzes the impact of changes across the traceability chain
5
+ *
6
+ * @packageDocumentation
7
+ * @module traceability/impact
8
+ *
9
+ * @see REQ-TRA-002 - Impact Analysis
10
+ * @see Article IV - Traceability Requirements
11
+ */
12
+ import type { TraceabilityManager, TraceableArtifact, ArtifactType } from './manager.js';
13
+ /**
14
+ * Change type
15
+ */
16
+ export type ChangeType = 'add' | 'modify' | 'delete' | 'deprecate';
17
+ /**
18
+ * Change proposal
19
+ */
20
+ export interface ChangeProposal {
21
+ /** Artifact to change */
22
+ artifactId: string;
23
+ /** Type of change */
24
+ changeType: ChangeType;
25
+ /** Description of change */
26
+ description: string;
27
+ /** New values (for modify) */
28
+ newValues?: Partial<TraceableArtifact>;
29
+ /** Rationale */
30
+ rationale?: string;
31
+ }
32
+ /**
33
+ * Impact severity
34
+ */
35
+ export type ImpactSeverity = 'critical' | 'high' | 'medium' | 'low';
36
+ /**
37
+ * Impacted artifact
38
+ */
39
+ export interface ImpactedArtifact {
40
+ /** Artifact */
41
+ artifact: TraceableArtifact;
42
+ /** Impact severity */
43
+ severity: ImpactSeverity;
44
+ /** Distance from changed artifact */
45
+ distance: number;
46
+ /** Impact type */
47
+ impactType: 'direct' | 'indirect' | 'ripple';
48
+ /** Required actions */
49
+ requiredActions: string[];
50
+ /** Estimated effort (hours) */
51
+ estimatedEffort: number;
52
+ }
53
+ /**
54
+ * Impact analysis result
55
+ */
56
+ export interface ImpactAnalysisResult {
57
+ /** Original change proposal */
58
+ proposal: ChangeProposal;
59
+ /** Changed artifact */
60
+ changedArtifact: TraceableArtifact;
61
+ /** Directly impacted artifacts */
62
+ directImpacts: ImpactedArtifact[];
63
+ /** Indirectly impacted artifacts */
64
+ indirectImpacts: ImpactedArtifact[];
65
+ /** Total impact summary */
66
+ summary: ImpactSummary;
67
+ /** Risk assessment */
68
+ risk: RiskAssessment;
69
+ /** Recommendations */
70
+ recommendations: string[];
71
+ }
72
+ /**
73
+ * Impact summary
74
+ */
75
+ export interface ImpactSummary {
76
+ /** Total affected artifacts */
77
+ totalAffected: number;
78
+ /** By type */
79
+ byType: Record<ArtifactType, number>;
80
+ /** By severity */
81
+ bySeverity: Record<ImpactSeverity, number>;
82
+ /** Total estimated effort */
83
+ totalEffort: number;
84
+ /** Scope percentage (affected / total) */
85
+ scopePercentage: number;
86
+ }
87
+ /**
88
+ * Risk assessment
89
+ */
90
+ export interface RiskAssessment {
91
+ /** Overall risk level */
92
+ level: 'critical' | 'high' | 'medium' | 'low';
93
+ /** Risk score (0-100) */
94
+ score: number;
95
+ /** Risk factors */
96
+ factors: RiskFactor[];
97
+ /** Mitigation suggestions */
98
+ mitigations: string[];
99
+ }
100
+ /**
101
+ * Risk factor
102
+ */
103
+ export interface RiskFactor {
104
+ /** Factor name */
105
+ name: string;
106
+ /** Factor description */
107
+ description: string;
108
+ /** Weight (0-1) */
109
+ weight: number;
110
+ /** Score contribution */
111
+ contribution: number;
112
+ }
113
+ /**
114
+ * Impact analyzer configuration
115
+ */
116
+ export interface ImpactAnalyzerConfig {
117
+ /** Maximum depth for ripple effect analysis */
118
+ maxDepth: number;
119
+ /** Include deprecated artifacts */
120
+ includeDeprecated: boolean;
121
+ /** Effort estimation multipliers */
122
+ effortMultipliers: Record<ArtifactType, number>;
123
+ /** Severity weights for risk calculation */
124
+ severityWeights: Record<ImpactSeverity, number>;
125
+ }
126
+ /**
127
+ * Default configuration
128
+ */
129
+ export declare const DEFAULT_IMPACT_CONFIG: ImpactAnalyzerConfig;
130
+ /**
131
+ * Impact Analyzer
132
+ *
133
+ * Analyzes change impacts across the traceability chain
134
+ */
135
+ export declare class ImpactAnalyzer {
136
+ private config;
137
+ private traceability;
138
+ constructor(traceability: TraceabilityManager, config?: Partial<ImpactAnalyzerConfig>);
139
+ /**
140
+ * Analyze impact of a proposed change
141
+ */
142
+ analyzeImpact(proposal: ChangeProposal): ImpactAnalysisResult;
143
+ /**
144
+ * Analyze multiple changes together
145
+ */
146
+ analyzeBatchImpact(proposals: ChangeProposal[]): ImpactAnalysisResult[];
147
+ /**
148
+ * Get directly impacted artifacts
149
+ */
150
+ private getDirectImpacts;
151
+ /**
152
+ * Get indirectly impacted artifacts (ripple effects)
153
+ */
154
+ private getIndirectImpacts;
155
+ /**
156
+ * Calculate impact severity
157
+ */
158
+ private calculateSeverity;
159
+ /**
160
+ * Calculate indirect severity based on distance
161
+ */
162
+ private calculateIndirectSeverity;
163
+ /**
164
+ * Determine required actions
165
+ */
166
+ private determineActions;
167
+ /**
168
+ * Estimate effort for impacted artifact
169
+ */
170
+ private estimateEffort;
171
+ /**
172
+ * Generate impact summary
173
+ */
174
+ private generateSummary;
175
+ /**
176
+ * Estimate total artifacts
177
+ */
178
+ private estimateTotalArtifacts;
179
+ /**
180
+ * Assess overall risk
181
+ */
182
+ private assessRisk;
183
+ /**
184
+ * Generate risk mitigations
185
+ */
186
+ private generateMitigations;
187
+ /**
188
+ * Generate recommendations
189
+ */
190
+ private generateRecommendations;
191
+ }
192
+ /**
193
+ * Create impact analyzer instance
194
+ */
195
+ export declare function createImpactAnalyzer(traceability: TraceabilityManager, config?: Partial<ImpactAnalyzerConfig>): ImpactAnalyzer;
196
+ //# sourceMappingURL=impact.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact.d.ts","sourceRoot":"","sources":["../../src/traceability/impact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,438 @@
1
+ /**
2
+ * Impact Analyzer
3
+ *
4
+ * Analyzes the impact of changes across the traceability chain
5
+ *
6
+ * @packageDocumentation
7
+ * @module traceability/impact
8
+ *
9
+ * @see REQ-TRA-002 - Impact Analysis
10
+ * @see Article IV - Traceability Requirements
11
+ */
12
+ /**
13
+ * Default configuration
14
+ */
15
+ export const DEFAULT_IMPACT_CONFIG = {
16
+ maxDepth: 5,
17
+ includeDeprecated: false,
18
+ effortMultipliers: {
19
+ requirement: 2,
20
+ design: 4,
21
+ code: 8,
22
+ test: 4,
23
+ task: 1,
24
+ documentation: 2,
25
+ },
26
+ severityWeights: {
27
+ critical: 10,
28
+ high: 5,
29
+ medium: 2,
30
+ low: 1,
31
+ },
32
+ };
33
+ /**
34
+ * Impact Analyzer
35
+ *
36
+ * Analyzes change impacts across the traceability chain
37
+ */
38
+ export class ImpactAnalyzer {
39
+ config;
40
+ traceability;
41
+ constructor(traceability, config) {
42
+ this.traceability = traceability;
43
+ this.config = { ...DEFAULT_IMPACT_CONFIG, ...config };
44
+ }
45
+ /**
46
+ * Analyze impact of a proposed change
47
+ */
48
+ analyzeImpact(proposal) {
49
+ const artifact = this.traceability.getArtifact(proposal.artifactId);
50
+ if (!artifact) {
51
+ throw new Error(`Artifact not found: ${proposal.artifactId}`);
52
+ }
53
+ // Get direct impacts (immediate dependencies)
54
+ const directImpacts = this.getDirectImpacts(artifact, proposal);
55
+ // Get indirect impacts (ripple effects)
56
+ const indirectImpacts = this.getIndirectImpacts(artifact, directImpacts, proposal);
57
+ // Generate summary
58
+ const allImpacts = [...directImpacts, ...indirectImpacts];
59
+ const summary = this.generateSummary(allImpacts);
60
+ // Assess risk
61
+ const risk = this.assessRisk(proposal, allImpacts, summary);
62
+ // Generate recommendations
63
+ const recommendations = this.generateRecommendations(proposal, allImpacts, risk);
64
+ return {
65
+ proposal,
66
+ changedArtifact: artifact,
67
+ directImpacts,
68
+ indirectImpacts,
69
+ summary,
70
+ risk,
71
+ recommendations,
72
+ };
73
+ }
74
+ /**
75
+ * Analyze multiple changes together
76
+ */
77
+ analyzeBatchImpact(proposals) {
78
+ return proposals.map((p) => this.analyzeImpact(p));
79
+ }
80
+ /**
81
+ * Get directly impacted artifacts
82
+ */
83
+ getDirectImpacts(artifact, proposal) {
84
+ const impacts = [];
85
+ // Get downstream artifacts (depend on this)
86
+ const downstream = this.traceability.getDownstream(artifact.id);
87
+ // Get upstream artifacts (this depends on)
88
+ const upstream = this.traceability.getUpstream(artifact.id);
89
+ // Process downstream
90
+ for (const affected of downstream) {
91
+ if (!this.config.includeDeprecated && affected.status === 'deprecated') {
92
+ continue;
93
+ }
94
+ impacts.push({
95
+ artifact: affected,
96
+ severity: this.calculateSeverity(artifact, affected, proposal, 'direct'),
97
+ distance: 1,
98
+ impactType: 'direct',
99
+ requiredActions: this.determineActions(affected, proposal),
100
+ estimatedEffort: this.estimateEffort(affected, proposal),
101
+ });
102
+ }
103
+ // For delete/modify, upstream may need updates too
104
+ if (proposal.changeType === 'delete' || proposal.changeType === 'modify') {
105
+ for (const affected of upstream) {
106
+ if (!this.config.includeDeprecated && affected.status === 'deprecated') {
107
+ continue;
108
+ }
109
+ impacts.push({
110
+ artifact: affected,
111
+ severity: this.calculateSeverity(artifact, affected, proposal, 'direct'),
112
+ distance: 1,
113
+ impactType: 'direct',
114
+ requiredActions: ['Review dependency', 'Update references'],
115
+ estimatedEffort: this.estimateEffort(affected, proposal) * 0.5,
116
+ });
117
+ }
118
+ }
119
+ return impacts;
120
+ }
121
+ /**
122
+ * Get indirectly impacted artifacts (ripple effects)
123
+ */
124
+ getIndirectImpacts(_source, directImpacts, proposal) {
125
+ const impacts = [];
126
+ const visited = new Set();
127
+ // Mark source and direct impacts as visited
128
+ visited.add(proposal.artifactId);
129
+ for (const impact of directImpacts) {
130
+ visited.add(impact.artifact.id);
131
+ }
132
+ // BFS for ripple effects
133
+ const queue = [];
134
+ for (const impact of directImpacts) {
135
+ const downstream = this.traceability.getDownstream(impact.artifact.id);
136
+ for (const d of downstream) {
137
+ if (!visited.has(d.id)) {
138
+ queue.push({ artifact: d, distance: 2 });
139
+ }
140
+ }
141
+ }
142
+ while (queue.length > 0) {
143
+ const { artifact, distance } = queue.shift();
144
+ if (visited.has(artifact.id) || distance > this.config.maxDepth) {
145
+ continue;
146
+ }
147
+ if (!this.config.includeDeprecated && artifact.status === 'deprecated') {
148
+ continue;
149
+ }
150
+ visited.add(artifact.id);
151
+ impacts.push({
152
+ artifact,
153
+ severity: this.calculateIndirectSeverity(distance),
154
+ distance,
155
+ impactType: distance === 2 ? 'indirect' : 'ripple',
156
+ requiredActions: ['Review for consistency', 'Update if affected'],
157
+ estimatedEffort: this.estimateEffort(artifact, proposal) * Math.pow(0.5, distance - 1),
158
+ });
159
+ // Continue BFS
160
+ const downstream = this.traceability.getDownstream(artifact.id);
161
+ for (const d of downstream) {
162
+ if (!visited.has(d.id)) {
163
+ queue.push({ artifact: d, distance: distance + 1 });
164
+ }
165
+ }
166
+ }
167
+ return impacts;
168
+ }
169
+ /**
170
+ * Calculate impact severity
171
+ */
172
+ calculateSeverity(source, target, proposal, _impactType) {
173
+ // Delete always has high impact on direct dependencies
174
+ if (proposal.changeType === 'delete') {
175
+ return 'critical';
176
+ }
177
+ // Requirements changes are high impact
178
+ if (source.type === 'requirement') {
179
+ if (target.type === 'code' || target.type === 'test') {
180
+ return 'high';
181
+ }
182
+ return 'medium';
183
+ }
184
+ // Design changes impact code
185
+ if (source.type === 'design' && target.type === 'code') {
186
+ return 'high';
187
+ }
188
+ // Deprecation is medium impact
189
+ if (proposal.changeType === 'deprecate') {
190
+ return 'medium';
191
+ }
192
+ return 'low';
193
+ }
194
+ /**
195
+ * Calculate indirect severity based on distance
196
+ */
197
+ calculateIndirectSeverity(distance) {
198
+ if (distance <= 2)
199
+ return 'medium';
200
+ if (distance <= 3)
201
+ return 'low';
202
+ return 'low';
203
+ }
204
+ /**
205
+ * Determine required actions
206
+ */
207
+ determineActions(artifact, proposal) {
208
+ const actions = [];
209
+ switch (proposal.changeType) {
210
+ case 'delete':
211
+ actions.push(`Remove dependency on ${proposal.artifactId}`);
212
+ actions.push('Find alternative implementation');
213
+ break;
214
+ case 'modify':
215
+ if (artifact.type === 'code') {
216
+ actions.push('Update implementation');
217
+ actions.push('Run tests');
218
+ }
219
+ else if (artifact.type === 'test') {
220
+ actions.push('Update test cases');
221
+ actions.push('Verify test coverage');
222
+ }
223
+ else if (artifact.type === 'design') {
224
+ actions.push('Review design consistency');
225
+ }
226
+ break;
227
+ case 'deprecate':
228
+ actions.push('Plan migration');
229
+ actions.push('Update to new version');
230
+ break;
231
+ case 'add':
232
+ actions.push('Review compatibility');
233
+ break;
234
+ }
235
+ return actions;
236
+ }
237
+ /**
238
+ * Estimate effort for impacted artifact
239
+ */
240
+ estimateEffort(artifact, proposal) {
241
+ const baseEffort = this.config.effortMultipliers[artifact.type] ?? 1;
242
+ let multiplier = 1;
243
+ switch (proposal.changeType) {
244
+ case 'delete':
245
+ multiplier = 2;
246
+ break;
247
+ case 'modify':
248
+ multiplier = 1;
249
+ break;
250
+ case 'deprecate':
251
+ multiplier = 0.5;
252
+ break;
253
+ case 'add':
254
+ multiplier = 0.25;
255
+ break;
256
+ }
257
+ return baseEffort * multiplier;
258
+ }
259
+ /**
260
+ * Generate impact summary
261
+ */
262
+ generateSummary(impacts) {
263
+ const byType = {
264
+ requirement: 0,
265
+ design: 0,
266
+ code: 0,
267
+ test: 0,
268
+ task: 0,
269
+ documentation: 0,
270
+ };
271
+ const bySeverity = {
272
+ critical: 0,
273
+ high: 0,
274
+ medium: 0,
275
+ low: 0,
276
+ };
277
+ let totalEffort = 0;
278
+ for (const impact of impacts) {
279
+ byType[impact.artifact.type]++;
280
+ bySeverity[impact.severity]++;
281
+ totalEffort += impact.estimatedEffort;
282
+ }
283
+ // Get total artifacts from traceability (estimate)
284
+ const totalArtifacts = this.estimateTotalArtifacts();
285
+ return {
286
+ totalAffected: impacts.length,
287
+ byType,
288
+ bySeverity,
289
+ totalEffort: Math.round(totalEffort * 10) / 10,
290
+ scopePercentage: totalArtifacts > 0
291
+ ? Math.round((impacts.length / totalArtifacts) * 100 * 10) / 10
292
+ : 0,
293
+ };
294
+ }
295
+ /**
296
+ * Estimate total artifacts
297
+ */
298
+ estimateTotalArtifacts() {
299
+ // This would need access to all artifacts
300
+ // For now, estimate from the traceability manager
301
+ let count = 0;
302
+ const types = ['requirement', 'design', 'code', 'test', 'task', 'documentation'];
303
+ for (const type of types) {
304
+ count += this.traceability.getArtifactsByType(type).length;
305
+ }
306
+ return count;
307
+ }
308
+ /**
309
+ * Assess overall risk
310
+ */
311
+ assessRisk(proposal, impacts, summary) {
312
+ const factors = [];
313
+ let totalScore = 0;
314
+ // Factor 1: Change type
315
+ const changeTypeScores = {
316
+ delete: 30,
317
+ modify: 15,
318
+ deprecate: 10,
319
+ add: 5,
320
+ };
321
+ const changeScore = changeTypeScores[proposal.changeType];
322
+ factors.push({
323
+ name: 'Change Type',
324
+ description: `${proposal.changeType} operation`,
325
+ weight: 0.3,
326
+ contribution: changeScore,
327
+ });
328
+ totalScore += changeScore;
329
+ // Factor 2: Scope
330
+ const scopeScore = Math.min(summary.scopePercentage, 30);
331
+ factors.push({
332
+ name: 'Scope',
333
+ description: `${summary.scopePercentage}% of artifacts affected`,
334
+ weight: 0.3,
335
+ contribution: scopeScore,
336
+ });
337
+ totalScore += scopeScore;
338
+ // Factor 3: Severity distribution
339
+ const severityScore = summary.bySeverity.critical * 10 +
340
+ summary.bySeverity.high * 5 +
341
+ summary.bySeverity.medium * 2 +
342
+ summary.bySeverity.low * 0.5;
343
+ const normalizedSeverity = Math.min(severityScore, 30);
344
+ factors.push({
345
+ name: 'Severity Distribution',
346
+ description: `${summary.bySeverity.critical} critical, ${summary.bySeverity.high} high impacts`,
347
+ weight: 0.4,
348
+ contribution: normalizedSeverity,
349
+ });
350
+ totalScore += normalizedSeverity;
351
+ // Determine level
352
+ let level;
353
+ if (totalScore >= 60)
354
+ level = 'critical';
355
+ else if (totalScore >= 40)
356
+ level = 'high';
357
+ else if (totalScore >= 20)
358
+ level = 'medium';
359
+ else
360
+ level = 'low';
361
+ // Generate mitigations
362
+ const mitigations = this.generateMitigations(level, impacts, summary);
363
+ return {
364
+ level,
365
+ score: Math.round(totalScore),
366
+ factors,
367
+ mitigations,
368
+ };
369
+ }
370
+ /**
371
+ * Generate risk mitigations
372
+ */
373
+ generateMitigations(level, impacts, summary) {
374
+ const mitigations = [];
375
+ if (level === 'critical' || level === 'high') {
376
+ mitigations.push('Consider phased rollout');
377
+ mitigations.push('Create comprehensive test plan');
378
+ mitigations.push('Schedule stakeholder review');
379
+ }
380
+ if (summary.bySeverity.critical > 0) {
381
+ mitigations.push('Address critical impacts first');
382
+ mitigations.push('Create rollback plan');
383
+ }
384
+ if (summary.byType.test > 0) {
385
+ mitigations.push('Update and run affected tests');
386
+ }
387
+ if (summary.byType.code > 3) {
388
+ mitigations.push('Consider code review for all changes');
389
+ }
390
+ if (impacts.some((i) => i.distance > 3)) {
391
+ mitigations.push('Verify ripple effects manually');
392
+ }
393
+ if (mitigations.length === 0) {
394
+ mitigations.push('Standard review process sufficient');
395
+ }
396
+ return mitigations;
397
+ }
398
+ /**
399
+ * Generate recommendations
400
+ */
401
+ generateRecommendations(proposal, impacts, risk) {
402
+ const recommendations = [];
403
+ // Based on risk level
404
+ if (risk.level === 'critical') {
405
+ recommendations.push('🚨 High-risk change - require approval from tech lead');
406
+ recommendations.push('Create detailed change plan before proceeding');
407
+ }
408
+ else if (risk.level === 'high') {
409
+ recommendations.push('⚠️ Significant change - schedule dedicated time for updates');
410
+ }
411
+ // Based on change type
412
+ if (proposal.changeType === 'delete') {
413
+ recommendations.push('Verify no runtime dependencies before deletion');
414
+ recommendations.push('Consider deprecation before hard delete');
415
+ }
416
+ // Based on impacts
417
+ const codeImpacts = impacts.filter((i) => i.artifact.type === 'code');
418
+ if (codeImpacts.length > 0) {
419
+ recommendations.push(`Update ${codeImpacts.length} code file(s)`);
420
+ }
421
+ const testImpacts = impacts.filter((i) => i.artifact.type === 'test');
422
+ if (testImpacts.length > 0) {
423
+ recommendations.push(`Update ${testImpacts.length} test(s) for verification`);
424
+ }
425
+ // Effort-based
426
+ if (risk.score > 40) {
427
+ recommendations.push(`Estimated effort: ~${Math.round(impacts.reduce((sum, i) => sum + i.estimatedEffort, 0))} hours`);
428
+ }
429
+ return recommendations;
430
+ }
431
+ }
432
+ /**
433
+ * Create impact analyzer instance
434
+ */
435
+ export function createImpactAnalyzer(traceability, config) {
436
+ return new ImpactAnalyzer(traceability, config);
437
+ }
438
+ //# sourceMappingURL=impact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"impact.js","sourceRoot":"","sources":["../../src/traceability/impact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Traceability Module
3
+ *
4
+ * @packageDocumentation
5
+ * @module traceability
6
+ */
7
+ export { TraceabilityManager, createTraceabilityManager, type TraceLinkType, type TraceableArtifact, type ArtifactStatus, type TraceLink, type MatrixEntry, type TraceabilityGap, type TraceabilityReport, type CoverageStats, type TraceabilityConfig, DEFAULT_TRACEABILITY_CONFIG, } from './manager.js';
8
+ export { ImpactAnalyzer, createImpactAnalyzer, type ChangeType, type ChangeProposal, type ImpactSeverity, type ImpactedArtifact, type ImpactAnalysisResult, type ImpactSummary, type RiskAssessment, type RiskFactor, type ImpactAnalyzerConfig, DEFAULT_IMPACT_CONFIG, } from './impact.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/traceability/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,mBAAmB,EACnB,yBAAyB,EACzB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACvB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Traceability Module
3
+ *
4
+ * @packageDocumentation
5
+ * @module traceability
6
+ */
7
+ export { TraceabilityManager, createTraceabilityManager, DEFAULT_TRACEABILITY_CONFIG, } from './manager.js';
8
+ // Note: ArtifactType is exported from types module
9
+ export { ImpactAnalyzer, createImpactAnalyzer, DEFAULT_IMPACT_CONFIG, } from './impact.js';
10
+ //# sourceMappingURL=index.js.map