specweave 0.32.9 → 0.33.2

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 (179) hide show
  1. package/CLAUDE.md +106 -1
  2. package/dist/src/cli/add-child-pid.d.ts +11 -0
  3. package/dist/src/cli/add-child-pid.d.ts.map +1 -0
  4. package/dist/src/cli/add-child-pid.js +42 -0
  5. package/dist/src/cli/add-child-pid.js.map +1 -0
  6. package/dist/src/cli/add-child-process.d.ts +15 -0
  7. package/dist/src/cli/add-child-process.d.ts.map +1 -0
  8. package/dist/src/cli/add-child-process.js +40 -0
  9. package/dist/src/cli/add-child-process.js.map +1 -0
  10. package/dist/src/cli/check-watchdog.d.ts +15 -0
  11. package/dist/src/cli/check-watchdog.d.ts.map +1 -0
  12. package/dist/src/cli/check-watchdog.js +47 -0
  13. package/dist/src/cli/check-watchdog.js.map +1 -0
  14. package/dist/src/cli/cleanup-zombies.d.ts +14 -0
  15. package/dist/src/cli/cleanup-zombies.d.ts.map +1 -0
  16. package/dist/src/cli/cleanup-zombies.js +268 -0
  17. package/dist/src/cli/cleanup-zombies.js.map +1 -0
  18. package/dist/src/cli/commands/jobs.js +9 -2
  19. package/dist/src/cli/commands/jobs.js.map +1 -1
  20. package/dist/src/cli/find-session-by-pid.d.ts +14 -0
  21. package/dist/src/cli/find-session-by-pid.d.ts.map +1 -0
  22. package/dist/src/cli/find-session-by-pid.js +45 -0
  23. package/dist/src/cli/find-session-by-pid.js.map +1 -0
  24. package/dist/src/cli/get-stale-sessions.d.ts +17 -0
  25. package/dist/src/cli/get-stale-sessions.d.ts.map +1 -0
  26. package/dist/src/cli/get-stale-sessions.js +36 -0
  27. package/dist/src/cli/get-stale-sessions.js.map +1 -0
  28. package/dist/src/cli/register-session.d.ts +16 -0
  29. package/dist/src/cli/register-session.d.ts.map +1 -0
  30. package/dist/src/cli/register-session.js +48 -0
  31. package/dist/src/cli/register-session.js.map +1 -0
  32. package/dist/src/cli/remove-session.d.ts +11 -0
  33. package/dist/src/cli/remove-session.d.ts.map +1 -0
  34. package/dist/src/cli/remove-session.js +36 -0
  35. package/dist/src/cli/remove-session.js.map +1 -0
  36. package/dist/src/cli/update-heartbeat.d.ts +11 -0
  37. package/dist/src/cli/update-heartbeat.d.ts.map +1 -0
  38. package/dist/src/cli/update-heartbeat.js +36 -0
  39. package/dist/src/cli/update-heartbeat.js.map +1 -0
  40. package/dist/src/cli/workers/living-docs-worker.js +6 -0
  41. package/dist/src/cli/workers/living-docs-worker.js.map +1 -1
  42. package/dist/src/config/types.d.ts +1208 -203
  43. package/dist/src/config/types.d.ts.map +1 -1
  44. package/dist/src/core/background/job-launcher.d.ts.map +1 -1
  45. package/dist/src/core/background/job-launcher.js +7 -4
  46. package/dist/src/core/background/job-launcher.js.map +1 -1
  47. package/dist/src/core/background/job-manager.d.ts +25 -0
  48. package/dist/src/core/background/job-manager.d.ts.map +1 -1
  49. package/dist/src/core/background/job-manager.js +136 -15
  50. package/dist/src/core/background/job-manager.js.map +1 -1
  51. package/dist/src/core/increment/increment-utils.d.ts +26 -1
  52. package/dist/src/core/increment/increment-utils.d.ts.map +1 -1
  53. package/dist/src/core/increment/increment-utils.js +66 -4
  54. package/dist/src/core/increment/increment-utils.js.map +1 -1
  55. package/dist/src/core/increment/status-change-sync-trigger.d.ts +3 -1
  56. package/dist/src/core/increment/status-change-sync-trigger.d.ts.map +1 -1
  57. package/dist/src/core/increment/status-change-sync-trigger.js +5 -2
  58. package/dist/src/core/increment/status-change-sync-trigger.js.map +1 -1
  59. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.d.ts.map +1 -1
  60. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js +48 -12
  61. package/dist/src/core/living-docs/intelligent-analyzer/architecture-generator.js.map +1 -1
  62. package/dist/src/core/living-docs/intelligent-analyzer/cache-manager.d.ts +70 -0
  63. package/dist/src/core/living-docs/intelligent-analyzer/cache-manager.d.ts.map +1 -0
  64. package/dist/src/core/living-docs/intelligent-analyzer/cache-manager.js +188 -0
  65. package/dist/src/core/living-docs/intelligent-analyzer/cache-manager.js.map +1 -0
  66. package/dist/src/core/living-docs/intelligent-analyzer/dashboard-generator.d.ts +33 -0
  67. package/dist/src/core/living-docs/intelligent-analyzer/dashboard-generator.d.ts.map +1 -0
  68. package/dist/src/core/living-docs/intelligent-analyzer/dashboard-generator.js +290 -0
  69. package/dist/src/core/living-docs/intelligent-analyzer/dashboard-generator.js.map +1 -0
  70. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.d.ts.map +1 -1
  71. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js +114 -11
  72. package/dist/src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.js.map +1 -1
  73. package/dist/src/core/living-docs/intelligent-analyzer/graph-visualizer.d.ts +23 -0
  74. package/dist/src/core/living-docs/intelligent-analyzer/graph-visualizer.d.ts.map +1 -0
  75. package/dist/src/core/living-docs/intelligent-analyzer/graph-visualizer.js +283 -0
  76. package/dist/src/core/living-docs/intelligent-analyzer/graph-visualizer.js.map +1 -0
  77. package/dist/src/core/living-docs/intelligent-analyzer/mermaid-generator.d.ts +44 -0
  78. package/dist/src/core/living-docs/intelligent-analyzer/mermaid-generator.d.ts.map +1 -0
  79. package/dist/src/core/living-docs/intelligent-analyzer/mermaid-generator.js +61 -0
  80. package/dist/src/core/living-docs/intelligent-analyzer/mermaid-generator.js.map +1 -0
  81. package/dist/src/core/living-docs/intelligent-analyzer/orchestrator.d.ts +126 -0
  82. package/dist/src/core/living-docs/intelligent-analyzer/orchestrator.d.ts.map +1 -0
  83. package/dist/src/core/living-docs/intelligent-analyzer/orchestrator.js +378 -0
  84. package/dist/src/core/living-docs/intelligent-analyzer/orchestrator.js.map +1 -0
  85. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.d.ts.map +1 -1
  86. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js +57 -0
  87. package/dist/src/core/living-docs/intelligent-analyzer/organization-synthesizer.js.map +1 -1
  88. package/dist/src/core/living-docs/intelligent-analyzer/pattern-analyzer.d.ts +82 -0
  89. package/dist/src/core/living-docs/intelligent-analyzer/pattern-analyzer.d.ts.map +1 -0
  90. package/dist/src/core/living-docs/intelligent-analyzer/pattern-analyzer.js +430 -0
  91. package/dist/src/core/living-docs/intelligent-analyzer/pattern-analyzer.js.map +1 -0
  92. package/dist/src/core/living-docs/intelligent-analyzer/repo-scanner.d.ts +84 -0
  93. package/dist/src/core/living-docs/intelligent-analyzer/repo-scanner.d.ts.map +1 -0
  94. package/dist/src/core/living-docs/intelligent-analyzer/repo-scanner.js +387 -0
  95. package/dist/src/core/living-docs/intelligent-analyzer/repo-scanner.js.map +1 -0
  96. package/dist/src/core/living-docs/intelligent-analyzer/report-writer.d.ts +61 -0
  97. package/dist/src/core/living-docs/intelligent-analyzer/report-writer.d.ts.map +1 -0
  98. package/dist/src/core/living-docs/intelligent-analyzer/report-writer.js +174 -0
  99. package/dist/src/core/living-docs/intelligent-analyzer/report-writer.js.map +1 -0
  100. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts +1 -1
  101. package/dist/src/core/living-docs/intelligent-analyzer/types.d.ts.map +1 -1
  102. package/dist/src/core/living-docs/module-analyzer.d.ts +3 -0
  103. package/dist/src/core/living-docs/module-analyzer.d.ts.map +1 -1
  104. package/dist/src/core/living-docs/module-analyzer.js +40 -1
  105. package/dist/src/core/living-docs/module-analyzer.js.map +1 -1
  106. package/dist/src/core/qa/qa-runner.js +1 -1
  107. package/dist/src/core/qa/qa-runner.js.map +1 -1
  108. package/dist/src/core/scheduler/session-sync-executor.js +1 -1
  109. package/dist/src/core/scheduler/session-sync-executor.js.map +1 -1
  110. package/dist/src/core/status-line/status-line-updater.d.ts +1 -1
  111. package/dist/src/core/status-line/status-line-updater.d.ts.map +1 -1
  112. package/dist/src/core/status-line/status-line-updater.js +4 -3
  113. package/dist/src/core/status-line/status-line-updater.js.map +1 -1
  114. package/dist/src/importers/jira-importer.d.ts.map +1 -1
  115. package/dist/src/importers/jira-importer.js +26 -10
  116. package/dist/src/importers/jira-importer.js.map +1 -1
  117. package/dist/src/init/architecture/types.d.ts +140 -33
  118. package/dist/src/init/architecture/types.d.ts.map +1 -1
  119. package/dist/src/init/compliance/types.d.ts +27 -30
  120. package/dist/src/init/compliance/types.d.ts.map +1 -1
  121. package/dist/src/init/repo/types.d.ts +34 -11
  122. package/dist/src/init/repo/types.d.ts.map +1 -1
  123. package/dist/src/init/research/src/config/types.d.ts +82 -15
  124. package/dist/src/init/research/src/config/types.d.ts.map +1 -1
  125. package/dist/src/init/research/types.d.ts +93 -38
  126. package/dist/src/init/research/types.d.ts.map +1 -1
  127. package/dist/src/init/team/types.d.ts +42 -4
  128. package/dist/src/init/team/types.d.ts.map +1 -1
  129. package/dist/src/sync/ado-reconciler.js +1 -1
  130. package/dist/src/sync/ado-reconciler.js.map +1 -1
  131. package/dist/src/sync/github-reconciler.js +1 -1
  132. package/dist/src/sync/github-reconciler.js.map +1 -1
  133. package/dist/src/sync/jira-reconciler.js +1 -1
  134. package/dist/src/sync/jira-reconciler.js.map +1 -1
  135. package/dist/src/types/session.d.ts +65 -0
  136. package/dist/src/types/session.d.ts.map +1 -0
  137. package/dist/src/types/session.js +8 -0
  138. package/dist/src/types/session.js.map +1 -0
  139. package/dist/src/utils/lock-manager.d.ts +48 -0
  140. package/dist/src/utils/lock-manager.d.ts.map +1 -0
  141. package/dist/src/utils/lock-manager.js +195 -0
  142. package/dist/src/utils/lock-manager.js.map +1 -0
  143. package/dist/src/utils/notification-manager.d.ts +45 -0
  144. package/dist/src/utils/notification-manager.d.ts.map +1 -0
  145. package/dist/src/utils/notification-manager.js +130 -0
  146. package/dist/src/utils/notification-manager.js.map +1 -0
  147. package/dist/src/utils/platform-utils.d.ts +136 -0
  148. package/dist/src/utils/platform-utils.d.ts.map +1 -0
  149. package/dist/src/utils/platform-utils.js +366 -0
  150. package/dist/src/utils/platform-utils.js.map +1 -0
  151. package/dist/src/utils/session-registry.d.ts +142 -0
  152. package/dist/src/utils/session-registry.d.ts.map +1 -0
  153. package/dist/src/utils/session-registry.js +480 -0
  154. package/dist/src/utils/session-registry.js.map +1 -0
  155. package/package.json +5 -2
  156. package/plugins/specweave/commands/specweave-living-docs.md +42 -0
  157. package/plugins/specweave/hooks/hooks.json +10 -0
  158. package/plugins/specweave/hooks/lib/update-active-increment.sh +2 -2
  159. package/plugins/specweave/hooks/lib/update-status-line.sh +1 -1
  160. package/plugins/specweave/hooks/post-increment-status-change.sh +3 -3
  161. package/plugins/specweave/hooks/post-metadata-change.sh +1 -1
  162. package/plugins/specweave/hooks/universal/hook-wrapper.cmd +26 -26
  163. package/plugins/specweave/hooks/universal/session-start.cmd +16 -16
  164. package/plugins/specweave/hooks/universal/session-start.ps1 +16 -16
  165. package/plugins/specweave/hooks/user-prompt-submit.sh +2 -2
  166. package/plugins/specweave/hooks/v2/guards/increment-root-guard.sh +61 -0
  167. package/plugins/specweave/hooks/v2/session-end.sh +69 -0
  168. package/plugins/specweave/hooks/v2/session-start.sh +81 -0
  169. package/plugins/specweave/lib/vendor/sync/github-reconciler.js +1 -1
  170. package/plugins/specweave/lib/vendor/sync/github-reconciler.js.map +1 -1
  171. package/plugins/specweave/scripts/heartbeat.sh +110 -0
  172. package/plugins/specweave/scripts/progress.js +34 -4
  173. package/plugins/specweave/scripts/read-jobs.sh +1 -1
  174. package/plugins/specweave/scripts/read-progress.sh +50 -5
  175. package/plugins/specweave/scripts/read-workflow.sh +1 -1
  176. package/plugins/specweave/scripts/session-watchdog.sh +65 -0
  177. package/plugins/specweave/scripts/status.js +28 -11
  178. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +738 -0
  179. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +1107 -0
@@ -0,0 +1,290 @@
1
+ /**
2
+ * Dashboard Generator
3
+ *
4
+ * Creates HTML overview dashboard with project statistics and quick links.
5
+ */
6
+ /**
7
+ * Generates HTML dashboards for living docs overview.
8
+ */
9
+ export class DashboardGenerator {
10
+ /**
11
+ * Generate overview dashboard HTML.
12
+ */
13
+ generateDashboard(data) {
14
+ const totalDebt = data.techDebt.p1 + data.techDebt.p2 + data.techDebt.p3;
15
+ return `<!DOCTYPE html>
16
+ <html lang="en">
17
+ <head>
18
+ <meta charset="UTF-8">
19
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
20
+ <title>${data.projectName} - Architecture Dashboard</title>
21
+ <style>
22
+ * {
23
+ margin: 0;
24
+ padding: 0;
25
+ box-sizing: border-box;
26
+ }
27
+ body {
28
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
29
+ background: #f5f7fa;
30
+ color: #2c3e50;
31
+ padding: 20px;
32
+ }
33
+ .container {
34
+ max-width: 1200px;
35
+ margin: 0 auto;
36
+ }
37
+ header {
38
+ background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
39
+ color: white;
40
+ padding: 40px;
41
+ border-radius: 12px;
42
+ margin-bottom: 30px;
43
+ box-shadow: 0 4px 6px rgba(0,0,0,0.1);
44
+ }
45
+ header h1 {
46
+ font-size: 32px;
47
+ margin-bottom: 10px;
48
+ }
49
+ header p {
50
+ font-size: 16px;
51
+ opacity: 0.9;
52
+ }
53
+ .stats-grid {
54
+ display: grid;
55
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
56
+ gap: 20px;
57
+ margin-bottom: 30px;
58
+ }
59
+ .stat-card {
60
+ background: white;
61
+ padding: 25px;
62
+ border-radius: 12px;
63
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
64
+ border-left: 4px solid #667eea;
65
+ }
66
+ .stat-card h3 {
67
+ font-size: 14px;
68
+ text-transform: uppercase;
69
+ letter-spacing: 0.5px;
70
+ color: #7f8c8d;
71
+ margin-bottom: 10px;
72
+ }
73
+ .stat-card .value {
74
+ font-size: 32px;
75
+ font-weight: bold;
76
+ color: #2c3e50;
77
+ }
78
+ .section {
79
+ background: white;
80
+ padding: 30px;
81
+ border-radius: 12px;
82
+ margin-bottom: 20px;
83
+ box-shadow: 0 2px 4px rgba(0,0,0,0.05);
84
+ }
85
+ .section h2 {
86
+ font-size: 20px;
87
+ margin-bottom: 20px;
88
+ color: #2c3e50;
89
+ }
90
+ .tech-stack {
91
+ display: flex;
92
+ flex-wrap: wrap;
93
+ gap: 10px;
94
+ }
95
+ .tech-badge {
96
+ background: #ecf0f1;
97
+ padding: 8px 15px;
98
+ border-radius: 20px;
99
+ font-size: 14px;
100
+ color: #2c3e50;
101
+ }
102
+ .adr-list {
103
+ list-style: none;
104
+ }
105
+ .adr-item {
106
+ padding: 12px 0;
107
+ border-bottom: 1px solid #ecf0f1;
108
+ display: flex;
109
+ justify-content: space-between;
110
+ align-items: center;
111
+ }
112
+ .adr-item:last-child {
113
+ border-bottom: none;
114
+ }
115
+ .adr-number {
116
+ font-weight: bold;
117
+ color: #667eea;
118
+ margin-right: 10px;
119
+ }
120
+ .adr-status {
121
+ padding: 4px 12px;
122
+ border-radius: 12px;
123
+ font-size: 12px;
124
+ font-weight: 600;
125
+ }
126
+ .adr-status.accepted {
127
+ background: #d4edda;
128
+ color: #155724;
129
+ }
130
+ .adr-status.proposed {
131
+ background: #fff3cd;
132
+ color: #856404;
133
+ }
134
+ .debt-bar {
135
+ display: flex;
136
+ height: 30px;
137
+ border-radius: 6px;
138
+ overflow: hidden;
139
+ margin: 15px 0;
140
+ }
141
+ .debt-p1 {
142
+ background: #e74c3c;
143
+ color: white;
144
+ display: flex;
145
+ align-items: center;
146
+ justify-content: center;
147
+ font-size: 12px;
148
+ font-weight: bold;
149
+ }
150
+ .debt-p2 {
151
+ background: #f39c12;
152
+ color: white;
153
+ display: flex;
154
+ align-items: center;
155
+ justify-content: center;
156
+ font-size: 12px;
157
+ font-weight: bold;
158
+ }
159
+ .debt-p3 {
160
+ background: #f1c40f;
161
+ color: white;
162
+ display: flex;
163
+ align-items: center;
164
+ justify-content: center;
165
+ font-size: 12px;
166
+ font-weight: bold;
167
+ }
168
+ .quick-links {
169
+ display: grid;
170
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
171
+ gap: 15px;
172
+ }
173
+ .quick-link {
174
+ display: block;
175
+ padding: 20px;
176
+ background: #667eea;
177
+ color: white;
178
+ text-decoration: none;
179
+ border-radius: 8px;
180
+ text-align: center;
181
+ font-weight: 600;
182
+ transition: transform 0.2s, box-shadow 0.2s;
183
+ }
184
+ .quick-link:hover {
185
+ transform: translateY(-2px);
186
+ box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
187
+ }
188
+ .warning {
189
+ background: #fff3cd;
190
+ border-left: 4px solid #ffc107;
191
+ padding: 15px;
192
+ border-radius: 6px;
193
+ margin: 15px 0;
194
+ }
195
+ .warning-icon {
196
+ color: #ff6b6b;
197
+ margin-right: 8px;
198
+ }
199
+ </style>
200
+ </head>
201
+ <body>
202
+ <div class="container">
203
+ <header>
204
+ <h1>${data.projectName}</h1>
205
+ <p>Architecture Overview & Living Documentation Dashboard</p>
206
+ </header>
207
+
208
+ <div class="stats-grid">
209
+ <div class="stat-card">
210
+ <h3>Repositories</h3>
211
+ <div class="value">${data.repoCount}</div>
212
+ </div>
213
+ <div class="stat-card">
214
+ <h3>Source Files</h3>
215
+ <div class="value">${data.fileCount.toLocaleString()}</div>
216
+ </div>
217
+ <div class="stat-card">
218
+ <h3>Modules</h3>
219
+ <div class="value">${data.moduleCount}</div>
220
+ </div>
221
+ <div class="stat-card">
222
+ <h3>Tech Debt Items</h3>
223
+ <div class="value">${totalDebt}</div>
224
+ </div>
225
+ </div>
226
+
227
+ <div class="section">
228
+ <h2>Tech Stack</h2>
229
+ <div class="tech-stack">
230
+ ${data.techStack.map(tech => `<span class="tech-badge">${tech}</span>`).join('')}
231
+ </div>
232
+ </div>
233
+
234
+ <div class="section">
235
+ <h2>Architecture Decision Records</h2>
236
+ ${data.adrs.length === 0 ? '<p style="color: #95a5a6;">No ADRs discovered yet. Run analysis to generate.</p>' : `
237
+ <ul class="adr-list">
238
+ ${data.adrs.map(adr => `
239
+ <li class="adr-item">
240
+ <div>
241
+ <span class="adr-number">ADR-${String(adr.number).padStart(4, '0')}</span>
242
+ <span>${adr.title}</span>
243
+ </div>
244
+ <span class="adr-status ${adr.status.toLowerCase()}">${adr.status}</span>
245
+ </li>
246
+ `).join('')}
247
+ </ul>
248
+ `}
249
+ </div>
250
+
251
+ <div class="section">
252
+ <h2>Technical Debt</h2>
253
+ <div class="debt-bar">
254
+ ${data.techDebt.p1 > 0 ? `<div class="debt-p1" style="width: ${(data.techDebt.p1 / totalDebt) * 100}%">P1: ${data.techDebt.p1}</div>` : ''}
255
+ ${data.techDebt.p2 > 0 ? `<div class="debt-p2" style="width: ${(data.techDebt.p2 / totalDebt) * 100}%">P2: ${data.techDebt.p2}</div>` : ''}
256
+ ${data.techDebt.p3 > 0 ? `<div class="debt-p3" style="width: ${(data.techDebt.p3 / totalDebt) * 100}%">P3: ${data.techDebt.p3}</div>` : ''}
257
+ </div>
258
+ <p style="font-size: 14px; color: #7f8c8d;">
259
+ <strong>P1 (Critical):</strong> ${data.techDebt.p1} |
260
+ <strong>P2 (Important):</strong> ${data.techDebt.p2} |
261
+ <strong>P3 (Nice-to-have):</strong> ${data.techDebt.p3}
262
+ </p>
263
+ ${data.circularDeps > 0 ? `
264
+ <div class="warning">
265
+ <span class="warning-icon">⚠️</span>
266
+ <strong>Warning:</strong> ${data.circularDeps} circular ${data.circularDeps === 1 ? 'dependency' : 'dependencies'} detected. Check dependency graph for details.
267
+ </div>
268
+ ` : ''}
269
+ </div>
270
+
271
+ <div class="section">
272
+ <h2>Quick Links</h2>
273
+ <div class="quick-links">
274
+ <a href="architecture/diagrams/module-graph.html" class="quick-link">📊 Module Graph</a>
275
+ <a href="architecture/diagrams/module-dependencies.mmd" class="quick-link">🔷 Mermaid Diagram</a>
276
+ <a href="technical-debt.md" class="quick-link">⚠️ Tech Debt Report</a>
277
+ <a href="team-structure.md" class="quick-link">👥 Team Structure</a>
278
+ <a href="architecture/adr/" class="quick-link">📋 All ADRs</a>
279
+ </div>
280
+ </div>
281
+
282
+ <footer style="text-align: center; margin-top: 40px; padding: 20px; color: #95a5a6; font-size: 14px;">
283
+ Generated by SpecWeave Intelligent Living Docs • Updated: ${new Date().toLocaleDateString()}
284
+ </footer>
285
+ </div>
286
+ </body>
287
+ </html>`;
288
+ }
289
+ }
290
+ //# sourceMappingURL=dashboard-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dashboard-generator.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/dashboard-generator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;OAEG;IACH,iBAAiB,CAAC,IAAmB;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAEzE,OAAO;;;;;WAKA,IAAI,CAAC,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAwLf,IAAI,CAAC,WAAW;;;;;;;6BAOC,IAAI,CAAC,SAAS;;;;6BAId,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE;;;;6BAI/B,IAAI,CAAC,WAAW;;;;6BAIhB,SAAS;;;;;;;UAO5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,4BAA4B,IAAI,SAAS,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;;;;;QAMhF,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kFAAkF,CAAC,CAAC,CAAC;;YAE1G,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;;;+CAGc,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;wBAC1D,GAAG,CAAC,KAAK;;wCAEO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,MAAM;;WAEpE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;;OAEd;;;;;;UAMG,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;UACxI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;UACxI,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,UAAU,IAAI,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE;;;0CAGxG,IAAI,CAAC,QAAQ,CAAC,EAAE;2CACf,IAAI,CAAC,QAAQ,CAAC,EAAE;8CACb,IAAI,CAAC,QAAQ,CAAC,EAAE;;QAEtD,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC;;;sCAGM,IAAI,CAAC,YAAY,aAAa,IAAI,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc;;OAEpH,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;kEAesD,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE;;;;QAIzF,CAAC;IACP,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"deep-repo-analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAmFD,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAY5P"}
1
+ {"version":3,"file":"deep-repo-analyzer.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EACV,YAAY,EAGZ,WAAW,EACX,gBAAgB,EAEjB,MAAM,YAAY,CAAC;AAEpB,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,WAAW,GAAG,IAAI,EAC/B,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GACzB,OAAO,CAAC,YAAY,CAAC,CA2BvB;AAwMD,wBAAsB,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,EAAE,UAAU,CAAC,EAAE;IAAE,cAAc,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAY5P"}
@@ -38,13 +38,30 @@ function buildRepoAnalysisPrompt(repoName, samples) {
38
38
  purpose: 'string (2-3 sentences)',
39
39
  keyConcepts: '["concept1", ...]',
40
40
  mainApis: '[{name, type, description, location}, ...]',
41
- patternsUsed: '[{pattern, category, evidence}, ...]',
41
+ patternsUsed: '[{pattern, category, evidence:["evidence1", "evidence2"]}, ...]',
42
42
  internalDependencies: '["repo1", ...]',
43
43
  externalDependencies: '["service1", ...]',
44
44
  observations: '["observation1", ...]',
45
45
  };
46
- const context = `Repository: ${repoName}\n\nKey files:\n${filesContent}\n\nBe SPECIFIC. Don't say "handles data" - say "processes DICOM medical images".`;
47
- return buildJsonPrompt(context, schema, 'Analyze this repository.');
46
+ const patternExamples = `
47
+ Detect ALL relevant patterns from these categories:
48
+ - API: REST API, GraphQL, gRPC, WebSocket, OpenAPI/Swagger
49
+ - Data: ORM, MongoDB, PostgreSQL, Redis Cache, Elasticsearch, CQRS, Repository Pattern, Event Sourcing
50
+ - Auth: JWT Authentication, OAuth/SSO, Password Hashing, RBAC
51
+ - Cloud: AWS/Azure/GCP Integration, Docker, Kubernetes, Serverless, Infrastructure as Code
52
+ - Frontend: React, Angular, Vue.js, State Management (Redux/Zustand), Design System
53
+ - Testing: Unit Testing, E2E Testing, Code Quality Tools
54
+ - Architecture: Event-Driven, Domain-Driven Design, Microservices, Clean Architecture, Hexagonal Architecture
55
+ - Messaging: Message Queue (RabbitMQ), Event Streaming (Kafka)
56
+ - Security: Security Middleware, Encryption, CORS
57
+
58
+ For EACH pattern detected, provide:
59
+ - pattern: Clear pattern name (e.g., "REST API using Express", "PostgreSQL with TypeORM")
60
+ - category: One of [api, data, auth, cloud, frontend, testing, architecture, messaging, security, integration, deployment, structure]
61
+ - evidence: Array of specific evidence (file names, library names, code patterns)
62
+ `;
63
+ const context = `Repository: ${repoName}\n\nKey files:\n${filesContent}\n\n${patternExamples}\n\nBe SPECIFIC. Don't say "handles data" - say "processes DICOM medical images". Identify ALL technologies and patterns present.`;
64
+ return buildJsonPrompt(context, schema, 'Deeply analyze this repository for patterns and purpose.');
48
65
  }
49
66
  function convertLLMResponse(repoPath, repoName, response, filesAnalyzed) {
50
67
  return {
@@ -87,14 +104,100 @@ function extractPurposeFromReadme(samples) {
87
104
  function detectBasicPatterns(samples) {
88
105
  const patterns = [];
89
106
  const content = samples.map(s => s.content).join('\n');
90
- if (content.includes('express') || content.includes('fastify'))
91
- patterns.push({ pattern: 'REST API', category: 'api', evidence: ['Framework detected'], confidence: 'high' });
92
- if (content.includes('graphql'))
93
- patterns.push({ pattern: 'GraphQL', category: 'api', evidence: ['GraphQL imports'], confidence: 'high' });
94
- if (content.includes('prisma') || content.includes('typeorm'))
95
- patterns.push({ pattern: 'ORM', category: 'data', evidence: ['ORM detected'], confidence: 'high' });
96
- if (content.includes('jwt'))
97
- patterns.push({ pattern: 'JWT Auth', category: 'auth', evidence: ['JWT library'], confidence: 'high' });
107
+ const contentLower = content.toLowerCase();
108
+ // API & Communication Patterns (10)
109
+ if (content.includes('express') || content.includes('fastify') || content.includes('koa'))
110
+ patterns.push({ pattern: 'REST API', category: 'api', evidence: ['Web framework detected'], confidence: 'high' });
111
+ if (content.includes('graphql') || contentLower.includes('gql'))
112
+ patterns.push({ pattern: 'GraphQL', category: 'api', evidence: ['GraphQL library'], confidence: 'high' });
113
+ if (content.includes('grpc') || content.includes('@grpc'))
114
+ patterns.push({ pattern: 'gRPC', category: 'api', evidence: ['gRPC imports'], confidence: 'high' });
115
+ if (content.includes('socket.io') || content.includes('ws') || contentLower.includes('websocket'))
116
+ patterns.push({ pattern: 'WebSocket', category: 'api', evidence: ['Real-time communication'], confidence: 'high' });
117
+ if (contentLower.includes('event-driven') || content.includes('EventEmitter') || content.includes('eventemitter'))
118
+ patterns.push({ pattern: 'Event-Driven Architecture', category: 'architecture', evidence: ['Event system detected'], confidence: 'medium' });
119
+ if (content.includes('rabbitmq') || content.includes('amqp'))
120
+ patterns.push({ pattern: 'Message Queue (RabbitMQ)', category: 'messaging', evidence: ['RabbitMQ client'], confidence: 'high' });
121
+ if (content.includes('kafka') || content.includes('kafkajs'))
122
+ patterns.push({ pattern: 'Event Streaming (Kafka)', category: 'messaging', evidence: ['Kafka client'], confidence: 'high' });
123
+ if (contentLower.includes('swagger') || contentLower.includes('openapi'))
124
+ patterns.push({ pattern: 'OpenAPI/Swagger', category: 'api', evidence: ['API documentation'], confidence: 'high' });
125
+ if (content.includes('axios') || content.includes('fetch') || content.includes('got'))
126
+ patterns.push({ pattern: 'HTTP Client', category: 'integration', evidence: ['HTTP library'], confidence: 'medium' });
127
+ if (contentLower.includes('webhook'))
128
+ patterns.push({ pattern: 'Webhook Integration', category: 'integration', evidence: ['Webhook handling'], confidence: 'medium' });
129
+ // Data & Persistence Patterns (8)
130
+ if (content.includes('prisma') || content.includes('typeorm') || content.includes('sequelize'))
131
+ patterns.push({ pattern: 'ORM', category: 'data', evidence: ['ORM library'], confidence: 'high' });
132
+ if (content.includes('mongoose') || contentLower.includes('mongodb'))
133
+ patterns.push({ pattern: 'MongoDB', category: 'data', evidence: ['MongoDB driver'], confidence: 'high' });
134
+ if (content.includes('pg') || content.includes('postgres') || contentLower.includes('postgresql'))
135
+ patterns.push({ pattern: 'PostgreSQL', category: 'data', evidence: ['PostgreSQL driver'], confidence: 'high' });
136
+ if (content.includes('redis') || content.includes('ioredis'))
137
+ patterns.push({ pattern: 'Redis Cache', category: 'data', evidence: ['Redis client'], confidence: 'high' });
138
+ if (contentLower.includes('cqrs') || (contentLower.includes('command') && contentLower.includes('query')))
139
+ patterns.push({ pattern: 'CQRS', category: 'architecture', evidence: ['Command/Query separation'], confidence: 'medium' });
140
+ if (contentLower.includes('repository') && contentLower.includes('interface'))
141
+ patterns.push({ pattern: 'Repository Pattern', category: 'data', evidence: ['Repository abstraction'], confidence: 'medium' });
142
+ if (content.includes('elasticsearch') || content.includes('@elastic'))
143
+ patterns.push({ pattern: 'Elasticsearch', category: 'data', evidence: ['Search engine integration'], confidence: 'high' });
144
+ if (contentLower.includes('event sourcing') || contentLower.includes('eventsourcing'))
145
+ patterns.push({ pattern: 'Event Sourcing', category: 'architecture', evidence: ['Event store pattern'], confidence: 'medium' });
146
+ // Auth & Security Patterns (5)
147
+ if (content.includes('jwt') || content.includes('jsonwebtoken'))
148
+ patterns.push({ pattern: 'JWT Authentication', category: 'auth', evidence: ['JWT library'], confidence: 'high' });
149
+ if (content.includes('passport') || content.includes('oauth'))
150
+ patterns.push({ pattern: 'OAuth/SSO', category: 'auth', evidence: ['Authentication provider'], confidence: 'high' });
151
+ if (content.includes('bcrypt') || content.includes('argon2'))
152
+ patterns.push({ pattern: 'Password Hashing', category: 'security', evidence: ['Cryptographic library'], confidence: 'high' });
153
+ if (contentLower.includes('rbac') || (contentLower.includes('role') && contentLower.includes('permission')))
154
+ patterns.push({ pattern: 'RBAC', category: 'auth', evidence: ['Role-based access control'], confidence: 'medium' });
155
+ if (content.includes('helmet') || contentLower.includes('csrf'))
156
+ patterns.push({ pattern: 'Security Middleware', category: 'security', evidence: ['Security headers/CSRF'], confidence: 'high' });
157
+ // Cloud & Infrastructure Patterns (7)
158
+ if (content.includes('aws-sdk') || content.includes('@aws-sdk'))
159
+ patterns.push({ pattern: 'AWS Integration', category: 'cloud', evidence: ['AWS SDK'], confidence: 'high' });
160
+ if (content.includes('@azure') || contentLower.includes('azure'))
161
+ patterns.push({ pattern: 'Azure Integration', category: 'cloud', evidence: ['Azure SDK'], confidence: 'high' });
162
+ if (content.includes('@google-cloud') || content.includes('gcp'))
163
+ patterns.push({ pattern: 'GCP Integration', category: 'cloud', evidence: ['Google Cloud SDK'], confidence: 'high' });
164
+ if (content.includes('docker') || contentLower.includes('dockerfile'))
165
+ patterns.push({ pattern: 'Docker Containerization', category: 'deployment', evidence: ['Docker config'], confidence: 'high' });
166
+ if (content.includes('kubernetes') || content.includes('k8s') || contentLower.includes('kubectl'))
167
+ patterns.push({ pattern: 'Kubernetes Orchestration', category: 'deployment', evidence: ['K8s manifests'], confidence: 'high' });
168
+ if (content.includes('terraform') || contentLower.includes('.tf'))
169
+ patterns.push({ pattern: 'Infrastructure as Code', category: 'deployment', evidence: ['Terraform detected'], confidence: 'high' });
170
+ if (content.includes('serverless') || content.includes('lambda'))
171
+ patterns.push({ pattern: 'Serverless Architecture', category: 'cloud', evidence: ['Serverless framework'], confidence: 'high' });
172
+ // Frontend & UI Patterns (5)
173
+ if (content.includes('react') || content.includes('jsx'))
174
+ patterns.push({ pattern: 'React', category: 'frontend', evidence: ['React library'], confidence: 'high' });
175
+ if (content.includes('angular') || content.includes('@angular'))
176
+ patterns.push({ pattern: 'Angular', category: 'frontend', evidence: ['Angular framework'], confidence: 'high' });
177
+ if (content.includes('vue') || content.includes('vuex'))
178
+ patterns.push({ pattern: 'Vue.js', category: 'frontend', evidence: ['Vue framework'], confidence: 'high' });
179
+ if (content.includes('redux') || content.includes('zustand') || content.includes('mobx'))
180
+ patterns.push({ pattern: 'State Management', category: 'frontend', evidence: ['State library'], confidence: 'high' });
181
+ if (content.includes('storybook') || contentLower.includes('component library'))
182
+ patterns.push({ pattern: 'Design System', category: 'frontend', evidence: ['Component documentation'], confidence: 'medium' });
183
+ // Testing & Quality Patterns (3)
184
+ if (content.includes('jest') || content.includes('vitest') || content.includes('mocha'))
185
+ patterns.push({ pattern: 'Unit Testing', category: 'testing', evidence: ['Test framework'], confidence: 'high' });
186
+ if (content.includes('cypress') || content.includes('playwright') || content.includes('selenium'))
187
+ patterns.push({ pattern: 'E2E Testing', category: 'testing', evidence: ['E2E test framework'], confidence: 'high' });
188
+ if (content.includes('eslint') || content.includes('prettier'))
189
+ patterns.push({ pattern: 'Code Quality Tools', category: 'quality', evidence: ['Linter/formatter'], confidence: 'high' });
190
+ // Domain & Business Patterns (5)
191
+ if (contentLower.includes('domain-driven') || contentLower.includes('ddd') || (contentLower.includes('aggregate') && contentLower.includes('entity')))
192
+ patterns.push({ pattern: 'Domain-Driven Design', category: 'architecture', evidence: ['DDD concepts'], confidence: 'medium' });
193
+ if (contentLower.includes('microservices') || contentLower.includes('micro-services'))
194
+ patterns.push({ pattern: 'Microservices Architecture', category: 'architecture', evidence: ['Service pattern'], confidence: 'medium' });
195
+ if (contentLower.includes('monorepo') || content.includes('nx') || content.includes('lerna'))
196
+ patterns.push({ pattern: 'Monorepo', category: 'structure', evidence: ['Monorepo tooling'], confidence: 'high' });
197
+ if (contentLower.includes('clean architecture') || (contentLower.includes('use case') && contentLower.includes('entity')))
198
+ patterns.push({ pattern: 'Clean Architecture', category: 'architecture', evidence: ['Layered structure'], confidence: 'medium' });
199
+ if (contentLower.includes('hexagonal') || contentLower.includes('ports and adapters'))
200
+ patterns.push({ pattern: 'Hexagonal Architecture', category: 'architecture', evidence: ['Ports/Adapters pattern'], confidence: 'medium' });
98
201
  return patterns;
99
202
  }
100
203
  function extractBasicApis(samples) {
@@ -1 +1 @@
1
- {"version":3,"file":"deep-repo-analyzer.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deep-repo-analyzer.js","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/deep-repo-analyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Interactive Graph Visualizer
3
+ *
4
+ * Generates standalone HTML files with D3.js-powered interactive dependency graphs.
5
+ */
6
+ import type { ModuleGraph, CircularDep } from './mermaid-generator.js';
7
+ export interface GraphVisualizerOptions {
8
+ title?: string;
9
+ highlightCircular?: boolean;
10
+ enableSearch?: boolean;
11
+ enableFilters?: boolean;
12
+ }
13
+ /**
14
+ * Generates interactive HTML visualizations using D3.js.
15
+ */
16
+ export declare class GraphVisualizer {
17
+ /**
18
+ * Generate standalone HTML file with interactive module graph.
19
+ */
20
+ generateInteractiveGraph(graph: ModuleGraph, circularDeps?: CircularDep[], options?: GraphVisualizerOptions): string;
21
+ private isNodeInCircularDep;
22
+ }
23
+ //# sourceMappingURL=graph-visualizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-visualizer.d.ts","sourceRoot":"","sources":["../../../../../src/core/living-docs/intelligent-analyzer/graph-visualizer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEvE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,qBAAa,eAAe;IAC1B;;OAEG;IACH,wBAAwB,CACtB,KAAK,EAAE,WAAW,EAClB,YAAY,GAAE,WAAW,EAAO,EAChC,OAAO,GAAE,sBAA2B,GACnC,MAAM;IAmRT,OAAO,CAAC,mBAAmB;CAG5B"}