specweave 0.28.68 → 0.29.1

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 (318) hide show
  1. package/CLAUDE.md +3 -2
  2. package/README.md +19 -2
  3. package/dist/src/cli/commands/discrepancies.d.ts +89 -0
  4. package/dist/src/cli/commands/discrepancies.d.ts.map +1 -0
  5. package/dist/src/cli/commands/discrepancies.js +385 -0
  6. package/dist/src/cli/commands/discrepancies.js.map +1 -0
  7. package/dist/src/cli/commands/notifications.d.ts +70 -0
  8. package/dist/src/cli/commands/notifications.d.ts.map +1 -0
  9. package/dist/src/cli/commands/notifications.js +236 -0
  10. package/dist/src/cli/commands/notifications.js.map +1 -0
  11. package/dist/src/cli/commands/sync-logs.d.ts +54 -0
  12. package/dist/src/cli/commands/sync-logs.d.ts.map +1 -0
  13. package/dist/src/cli/commands/sync-logs.js +240 -0
  14. package/dist/src/cli/commands/sync-logs.js.map +1 -0
  15. package/dist/src/cli/commands/sync-monitor.d.ts +42 -0
  16. package/dist/src/cli/commands/sync-monitor.d.ts.map +1 -0
  17. package/dist/src/cli/commands/sync-monitor.js +191 -0
  18. package/dist/src/cli/commands/sync-monitor.js.map +1 -0
  19. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts +45 -0
  20. package/dist/src/cli/helpers/init/brownfield-analysis.d.ts.map +1 -0
  21. package/dist/src/cli/helpers/init/brownfield-analysis.js +431 -0
  22. package/dist/src/cli/helpers/init/brownfield-analysis.js.map +1 -0
  23. package/dist/src/cli/helpers/init/index.d.ts +1 -0
  24. package/dist/src/cli/helpers/init/index.d.ts.map +1 -1
  25. package/dist/src/cli/helpers/init/index.js +2 -0
  26. package/dist/src/cli/helpers/init/index.js.map +1 -1
  27. package/dist/src/cli/workers/brownfield-worker.d.ts +66 -0
  28. package/dist/src/cli/workers/brownfield-worker.d.ts.map +1 -0
  29. package/dist/src/cli/workers/brownfield-worker.js +417 -0
  30. package/dist/src/cli/workers/brownfield-worker.js.map +1 -0
  31. package/dist/src/core/background/brownfield-launcher.d.ts +86 -0
  32. package/dist/src/core/background/brownfield-launcher.d.ts.map +1 -0
  33. package/dist/src/core/background/brownfield-launcher.js +295 -0
  34. package/dist/src/core/background/brownfield-launcher.js.map +1 -0
  35. package/dist/src/core/background/index.d.ts +2 -0
  36. package/dist/src/core/background/index.d.ts.map +1 -1
  37. package/dist/src/core/background/index.js +2 -0
  38. package/dist/src/core/background/index.js.map +1 -1
  39. package/dist/src/core/background/types.d.ts +23 -2
  40. package/dist/src/core/background/types.d.ts.map +1 -1
  41. package/dist/src/core/config/index.d.ts +1 -0
  42. package/dist/src/core/config/index.d.ts.map +1 -1
  43. package/dist/src/core/config/index.js +1 -0
  44. package/dist/src/core/config/index.js.map +1 -1
  45. package/dist/src/core/config/types.d.ts +6 -0
  46. package/dist/src/core/config/types.d.ts.map +1 -1
  47. package/dist/src/core/config/types.js.map +1 -1
  48. package/dist/src/core/dashboard/dashboard-data.d.ts +156 -0
  49. package/dist/src/core/dashboard/dashboard-data.d.ts.map +1 -0
  50. package/dist/src/core/dashboard/dashboard-data.js +191 -0
  51. package/dist/src/core/dashboard/dashboard-data.js.map +1 -0
  52. package/dist/src/core/dashboard/index.d.ts +9 -0
  53. package/dist/src/core/dashboard/index.d.ts.map +1 -0
  54. package/dist/src/core/dashboard/index.js +9 -0
  55. package/dist/src/core/dashboard/index.js.map +1 -0
  56. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts +77 -0
  57. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.d.ts.map +1 -0
  58. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js +286 -0
  59. package/dist/src/core/discrepancy/analyzers/api-route-analyzer.js.map +1 -0
  60. package/dist/src/core/discrepancy/analyzers/index.d.ts +8 -0
  61. package/dist/src/core/discrepancy/analyzers/index.d.ts.map +1 -0
  62. package/dist/src/core/discrepancy/analyzers/index.js +8 -0
  63. package/dist/src/core/discrepancy/analyzers/index.js.map +1 -0
  64. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts +96 -0
  65. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.d.ts.map +1 -0
  66. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js +247 -0
  67. package/dist/src/core/discrepancy/analyzers/typescript-analyzer.js.map +1 -0
  68. package/dist/src/core/discrepancy/brownfield-manager.d.ts +88 -0
  69. package/dist/src/core/discrepancy/brownfield-manager.d.ts.map +1 -0
  70. package/dist/src/core/discrepancy/brownfield-manager.js +520 -0
  71. package/dist/src/core/discrepancy/brownfield-manager.js.map +1 -0
  72. package/dist/src/core/discrepancy/brownfield-types.d.ts +174 -0
  73. package/dist/src/core/discrepancy/brownfield-types.d.ts.map +1 -0
  74. package/dist/src/core/discrepancy/brownfield-types.js +11 -0
  75. package/dist/src/core/discrepancy/brownfield-types.js.map +1 -0
  76. package/dist/src/core/discrepancy/detector.d.ts +92 -0
  77. package/dist/src/core/discrepancy/detector.d.ts.map +1 -0
  78. package/dist/src/core/discrepancy/detector.js +346 -0
  79. package/dist/src/core/discrepancy/detector.js.map +1 -0
  80. package/dist/src/core/discrepancy/increment-generator.d.ts +51 -0
  81. package/dist/src/core/discrepancy/increment-generator.d.ts.map +1 -0
  82. package/dist/src/core/discrepancy/increment-generator.js +234 -0
  83. package/dist/src/core/discrepancy/increment-generator.js.map +1 -0
  84. package/dist/src/core/discrepancy/index.d.ts +18 -0
  85. package/dist/src/core/discrepancy/index.d.ts.map +1 -0
  86. package/dist/src/core/discrepancy/index.js +24 -0
  87. package/dist/src/core/discrepancy/index.js.map +1 -0
  88. package/dist/src/core/discrepancy/severity-classifier.d.ts +81 -0
  89. package/dist/src/core/discrepancy/severity-classifier.d.ts.map +1 -0
  90. package/dist/src/core/discrepancy/severity-classifier.js +289 -0
  91. package/dist/src/core/discrepancy/severity-classifier.js.map +1 -0
  92. package/dist/src/core/discrepancy/spec-parser.d.ts +74 -0
  93. package/dist/src/core/discrepancy/spec-parser.d.ts.map +1 -0
  94. package/dist/src/core/discrepancy/spec-parser.js +213 -0
  95. package/dist/src/core/discrepancy/spec-parser.js.map +1 -0
  96. package/dist/src/core/discrepancy/update-recommender.d.ts +77 -0
  97. package/dist/src/core/discrepancy/update-recommender.d.ts.map +1 -0
  98. package/dist/src/core/discrepancy/update-recommender.js +323 -0
  99. package/dist/src/core/discrepancy/update-recommender.js.map +1 -0
  100. package/dist/src/core/living-docs/living-docs-sync.d.ts +13 -16
  101. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  102. package/dist/src/core/living-docs/living-docs-sync.js +31 -112
  103. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  104. package/dist/src/core/logs/index.d.ts +10 -0
  105. package/dist/src/core/logs/index.d.ts.map +1 -0
  106. package/dist/src/core/logs/index.js +10 -0
  107. package/dist/src/core/logs/index.js.map +1 -0
  108. package/dist/src/core/logs/log-aggregator.d.ts +130 -0
  109. package/dist/src/core/logs/log-aggregator.d.ts.map +1 -0
  110. package/dist/src/core/logs/log-aggregator.js +206 -0
  111. package/dist/src/core/logs/log-aggregator.js.map +1 -0
  112. package/dist/src/core/logs/log-exporter.d.ts +81 -0
  113. package/dist/src/core/logs/log-exporter.d.ts.map +1 -0
  114. package/dist/src/core/logs/log-exporter.js +141 -0
  115. package/dist/src/core/logs/log-exporter.js.map +1 -0
  116. package/dist/src/core/notifications/command-integration.d.ts +82 -0
  117. package/dist/src/core/notifications/command-integration.d.ts.map +1 -0
  118. package/dist/src/core/notifications/command-integration.js +80 -0
  119. package/dist/src/core/notifications/command-integration.js.map +1 -0
  120. package/dist/src/core/notifications/index.d.ts +12 -0
  121. package/dist/src/core/notifications/index.d.ts.map +1 -0
  122. package/dist/src/core/notifications/index.js +12 -0
  123. package/dist/src/core/notifications/index.js.map +1 -0
  124. package/dist/src/core/notifications/notification-display.d.ts +70 -0
  125. package/dist/src/core/notifications/notification-display.d.ts.map +1 -0
  126. package/dist/src/core/notifications/notification-display.js +177 -0
  127. package/dist/src/core/notifications/notification-display.js.map +1 -0
  128. package/dist/src/core/notifications/notification-manager.d.ts +126 -0
  129. package/dist/src/core/notifications/notification-manager.d.ts.map +1 -0
  130. package/dist/src/core/notifications/notification-manager.js +287 -0
  131. package/dist/src/core/notifications/notification-manager.js.map +1 -0
  132. package/dist/src/core/notifications/notification-types.d.ts +159 -0
  133. package/dist/src/core/notifications/notification-types.d.ts.map +1 -0
  134. package/dist/src/core/notifications/notification-types.js +93 -0
  135. package/dist/src/core/notifications/notification-types.js.map +1 -0
  136. package/dist/src/core/scheduler/index.d.ts +11 -0
  137. package/dist/src/core/scheduler/index.d.ts.map +1 -0
  138. package/dist/src/core/scheduler/index.js +11 -0
  139. package/dist/src/core/scheduler/index.js.map +1 -0
  140. package/dist/src/core/scheduler/job-scheduler.d.ts +179 -0
  141. package/dist/src/core/scheduler/job-scheduler.d.ts.map +1 -0
  142. package/dist/src/core/scheduler/job-scheduler.js +282 -0
  143. package/dist/src/core/scheduler/job-scheduler.js.map +1 -0
  144. package/dist/src/core/scheduler/schedule-persistence.d.ts +83 -0
  145. package/dist/src/core/scheduler/schedule-persistence.d.ts.map +1 -0
  146. package/dist/src/core/scheduler/schedule-persistence.js +180 -0
  147. package/dist/src/core/scheduler/schedule-persistence.js.map +1 -0
  148. package/dist/src/core/scheduler/scheduled-job.d.ts +188 -0
  149. package/dist/src/core/scheduler/scheduled-job.d.ts.map +1 -0
  150. package/dist/src/core/scheduler/scheduled-job.js +182 -0
  151. package/dist/src/core/scheduler/scheduled-job.js.map +1 -0
  152. package/dist/src/core/sync/permission-enforcer.d.ts +206 -0
  153. package/dist/src/core/sync/permission-enforcer.d.ts.map +1 -0
  154. package/dist/src/core/sync/permission-enforcer.js +268 -0
  155. package/dist/src/core/sync/permission-enforcer.js.map +1 -0
  156. package/dist/src/core/sync/sync-audit-logger.d.ts +217 -0
  157. package/dist/src/core/sync/sync-audit-logger.d.ts.map +1 -0
  158. package/dist/src/core/sync/sync-audit-logger.js +327 -0
  159. package/dist/src/core/sync/sync-audit-logger.js.map +1 -0
  160. package/dist/src/core/sync/sync-interceptor.d.ts +190 -0
  161. package/dist/src/core/sync/sync-interceptor.d.ts.map +1 -0
  162. package/dist/src/core/sync/sync-interceptor.js +224 -0
  163. package/dist/src/core/sync/sync-interceptor.js.map +1 -0
  164. package/dist/src/core/types/increment-metadata.d.ts +5 -2
  165. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  166. package/dist/src/core/types/sync-config.d.ts +267 -0
  167. package/dist/src/core/types/sync-config.d.ts.map +1 -0
  168. package/dist/src/core/types/sync-config.js +304 -0
  169. package/dist/src/core/types/sync-config.js.map +1 -0
  170. package/dist/src/hooks/index.d.ts +11 -0
  171. package/dist/src/hooks/index.d.ts.map +1 -0
  172. package/dist/src/hooks/index.js +11 -0
  173. package/dist/src/hooks/index.js.map +1 -0
  174. package/dist/src/hooks/platform.d.ts +125 -0
  175. package/dist/src/hooks/platform.d.ts.map +1 -0
  176. package/dist/src/hooks/platform.js +325 -0
  177. package/dist/src/hooks/platform.js.map +1 -0
  178. package/dist/src/hooks/processor.d.ts +20 -0
  179. package/dist/src/hooks/processor.d.ts.map +1 -0
  180. package/dist/src/hooks/processor.js +317 -0
  181. package/dist/src/hooks/processor.js.map +1 -0
  182. package/dist/src/hooks/scheduler-startup.d.ts +19 -0
  183. package/dist/src/hooks/scheduler-startup.d.ts.map +1 -0
  184. package/dist/src/hooks/scheduler-startup.js +92 -0
  185. package/dist/src/hooks/scheduler-startup.js.map +1 -0
  186. package/dist/src/hooks/session-start.d.ts +16 -0
  187. package/dist/src/hooks/session-start.d.ts.map +1 -0
  188. package/dist/src/hooks/session-start.js +92 -0
  189. package/dist/src/hooks/session-start.js.map +1 -0
  190. package/dist/src/importers/duplicate-detector.d.ts +13 -2
  191. package/dist/src/importers/duplicate-detector.d.ts.map +1 -1
  192. package/dist/src/importers/duplicate-detector.js +21 -2
  193. package/dist/src/importers/duplicate-detector.js.map +1 -1
  194. package/dist/src/importers/item-converter.d.ts +41 -2
  195. package/dist/src/importers/item-converter.d.ts.map +1 -1
  196. package/dist/src/importers/item-converter.js +225 -38
  197. package/dist/src/importers/item-converter.js.map +1 -1
  198. package/dist/src/living-docs/fs-id-allocator.d.ts +7 -0
  199. package/dist/src/living-docs/fs-id-allocator.d.ts.map +1 -1
  200. package/dist/src/living-docs/fs-id-allocator.js +30 -4
  201. package/dist/src/living-docs/fs-id-allocator.js.map +1 -1
  202. package/dist/src/sync/ado-sync-wrapper.d.ts +137 -0
  203. package/dist/src/sync/ado-sync-wrapper.d.ts.map +1 -0
  204. package/dist/src/sync/ado-sync-wrapper.js +148 -0
  205. package/dist/src/sync/ado-sync-wrapper.js.map +1 -0
  206. package/dist/src/sync/github-sync-wrapper.d.ts +195 -0
  207. package/dist/src/sync/github-sync-wrapper.d.ts.map +1 -0
  208. package/dist/src/sync/github-sync-wrapper.js +220 -0
  209. package/dist/src/sync/github-sync-wrapper.js.map +1 -0
  210. package/dist/src/sync/jira-sync-wrapper.d.ts +155 -0
  211. package/dist/src/sync/jira-sync-wrapper.d.ts.map +1 -0
  212. package/dist/src/sync/jira-sync-wrapper.js +175 -0
  213. package/dist/src/sync/jira-sync-wrapper.js.map +1 -0
  214. package/dist/src/utils/feature-id-derivation.d.ts +58 -0
  215. package/dist/src/utils/feature-id-derivation.d.ts.map +1 -0
  216. package/dist/src/utils/feature-id-derivation.js +77 -0
  217. package/dist/src/utils/feature-id-derivation.js.map +1 -0
  218. package/package.json +3 -1
  219. package/plugins/specweave/commands/specweave-discrepancies.md +141 -0
  220. package/plugins/specweave/commands/specweave-discrepancy-to-increment.md +160 -0
  221. package/plugins/specweave/commands/specweave-jobs.md +45 -2
  222. package/plugins/specweave/commands/specweave-notifications.md +92 -0
  223. package/plugins/specweave/commands/specweave-sync-logs.md +131 -0
  224. package/plugins/specweave/commands/specweave-sync-monitor.md +57 -0
  225. package/plugins/specweave/hooks/hooks.json +3 -3
  226. package/plugins/specweave/hooks/lib/scheduler-startup.sh +72 -0
  227. package/plugins/specweave/hooks/universal/dispatcher.mjs +246 -0
  228. package/plugins/specweave/hooks/universal/session-start.cmd +16 -0
  229. package/plugins/specweave/hooks/universal/session-start.ps1 +16 -0
  230. package/plugins/specweave/hooks/v2/dispatchers/session-start.sh +14 -5
  231. package/plugins/specweave/lib/vendor/core/types/increment-metadata.d.ts +5 -2
  232. package/plugins/specweave/skills/discrepancy-viewer.md +154 -0
  233. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +46 -0
  234. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +69 -0
  235. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts +0 -26
  236. package/dist/plugins/specweave-github/lib/enhanced-github-sync.d.ts.map +0 -1
  237. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js +0 -249
  238. package/dist/plugins/specweave-github/lib/enhanced-github-sync.js.map +0 -1
  239. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts +0 -28
  240. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.d.ts.map +0 -1
  241. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -156
  242. package/dist/plugins/specweave-jira/lib/enhanced-jira-sync.js.map +0 -1
  243. package/dist/src/core/sync/bidirectional-engine.d.ts +0 -119
  244. package/dist/src/core/sync/bidirectional-engine.d.ts.map +0 -1
  245. package/dist/src/core/sync/bidirectional-engine.js +0 -359
  246. package/dist/src/core/sync/bidirectional-engine.js.map +0 -1
  247. package/dist/src/core/sync/conflict-resolver.d.ts +0 -66
  248. package/dist/src/core/sync/conflict-resolver.d.ts.map +0 -1
  249. package/dist/src/core/sync/conflict-resolver.js +0 -108
  250. package/dist/src/core/sync/conflict-resolver.js.map +0 -1
  251. package/dist/src/core/sync/enhanced-content-builder.d.ts +0 -55
  252. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +0 -1
  253. package/dist/src/core/sync/enhanced-content-builder.js +0 -203
  254. package/dist/src/core/sync/enhanced-content-builder.js.map +0 -1
  255. package/dist/src/core/sync/folder-mapper.d.ts +0 -71
  256. package/dist/src/core/sync/folder-mapper.d.ts.map +0 -1
  257. package/dist/src/core/sync/folder-mapper.js +0 -203
  258. package/dist/src/core/sync/folder-mapper.js.map +0 -1
  259. package/dist/src/core/sync/label-detector.d.ts +0 -66
  260. package/dist/src/core/sync/label-detector.d.ts.map +0 -1
  261. package/dist/src/core/sync/label-detector.js +0 -224
  262. package/dist/src/core/sync/label-detector.js.map +0 -1
  263. package/dist/src/core/sync/performance-optimizer.d.ts +0 -153
  264. package/dist/src/core/sync/performance-optimizer.d.ts.map +0 -1
  265. package/dist/src/core/sync/performance-optimizer.js +0 -220
  266. package/dist/src/core/sync/performance-optimizer.js.map +0 -1
  267. package/dist/src/core/sync/profile-selector.d.ts +0 -52
  268. package/dist/src/core/sync/profile-selector.d.ts.map +0 -1
  269. package/dist/src/core/sync/profile-selector.js +0 -179
  270. package/dist/src/core/sync/profile-selector.js.map +0 -1
  271. package/dist/src/core/sync/profile-validator.d.ts +0 -52
  272. package/dist/src/core/sync/profile-validator.d.ts.map +0 -1
  273. package/dist/src/core/sync/profile-validator.js +0 -170
  274. package/dist/src/core/sync/profile-validator.js.map +0 -1
  275. package/dist/src/core/sync/rate-limiter.d.ts +0 -116
  276. package/dist/src/core/sync/rate-limiter.d.ts.map +0 -1
  277. package/dist/src/core/sync/rate-limiter.js +0 -308
  278. package/dist/src/core/sync/rate-limiter.js.map +0 -1
  279. package/dist/src/core/sync/retry-handler.d.ts +0 -98
  280. package/dist/src/core/sync/retry-handler.d.ts.map +0 -1
  281. package/dist/src/core/sync/retry-handler.js +0 -196
  282. package/dist/src/core/sync/retry-handler.js.map +0 -1
  283. package/dist/src/core/sync/retry-logic.d.ts +0 -64
  284. package/dist/src/core/sync/retry-logic.d.ts.map +0 -1
  285. package/dist/src/core/sync/retry-logic.js +0 -165
  286. package/dist/src/core/sync/retry-logic.js.map +0 -1
  287. package/dist/src/core/sync/status-cache.d.ts +0 -91
  288. package/dist/src/core/sync/status-cache.d.ts.map +0 -1
  289. package/dist/src/core/sync/status-cache.js +0 -140
  290. package/dist/src/core/sync/status-cache.js.map +0 -1
  291. package/dist/src/core/sync/status-mapper.d.ts +0 -69
  292. package/dist/src/core/sync/status-mapper.d.ts.map +0 -1
  293. package/dist/src/core/sync/status-mapper.js +0 -90
  294. package/dist/src/core/sync/status-mapper.js.map +0 -1
  295. package/dist/src/core/sync/status-sync-engine.d.ts +0 -162
  296. package/dist/src/core/sync/status-sync-engine.d.ts.map +0 -1
  297. package/dist/src/core/sync/status-sync-engine.js +0 -347
  298. package/dist/src/core/sync/status-sync-engine.js.map +0 -1
  299. package/dist/src/core/sync/sync-event-logger.d.ts +0 -113
  300. package/dist/src/core/sync/sync-event-logger.d.ts.map +0 -1
  301. package/dist/src/core/sync/sync-event-logger.js +0 -141
  302. package/dist/src/core/sync/sync-event-logger.js.map +0 -1
  303. package/dist/src/core/sync/time-range-selector.d.ts +0 -48
  304. package/dist/src/core/sync/time-range-selector.d.ts.map +0 -1
  305. package/dist/src/core/sync/time-range-selector.js +0 -224
  306. package/dist/src/core/sync/time-range-selector.js.map +0 -1
  307. package/dist/src/core/sync/types.d.ts +0 -52
  308. package/dist/src/core/sync/types.d.ts.map +0 -1
  309. package/dist/src/core/sync/types.js +0 -5
  310. package/dist/src/core/sync/types.js.map +0 -1
  311. package/dist/src/core/sync/workflow-detector.d.ts +0 -95
  312. package/dist/src/core/sync/workflow-detector.d.ts.map +0 -1
  313. package/dist/src/core/sync/workflow-detector.js +0 -175
  314. package/dist/src/core/sync/workflow-detector.js.map +0 -1
  315. package/plugins/specweave-github/lib/enhanced-github-sync.js +0 -220
  316. package/plugins/specweave-github/lib/enhanced-github-sync.ts +0 -322
  317. package/plugins/specweave-jira/lib/enhanced-jira-sync.js +0 -134
  318. package/plugins/specweave-jira/lib/enhanced-jira-sync.ts +0 -196
@@ -0,0 +1,431 @@
1
+ /**
2
+ * Brownfield analysis prompts
3
+ * Handles brownfield project detection and analysis configuration
4
+ */
5
+ import * as fs from '../../../utils/fs-native.js';
6
+ import * as path from 'path';
7
+ import chalk from 'chalk';
8
+ import { select, confirm, input } from '@inquirer/prompts';
9
+ /**
10
+ * Get translated strings for brownfield analysis
11
+ */
12
+ function getBrownfieldStrings(language) {
13
+ const strings = {
14
+ en: {
15
+ header: '📚 Brownfield Documentation Analysis',
16
+ subheader: 'Analyze existing codebase for documentation gaps',
17
+ explanation: 'This feature helps bootstrap living docs by analyzing your existing codebase:',
18
+ analyzeQuestion: 'Analyze existing codebase for documentation gaps?',
19
+ skipped: 'Skipping brownfield analysis. You can run it later with /specweave:analyze-brownfield',
20
+ detectedDocs: 'Found existing documentation:',
21
+ useDetectedDocs: 'Use this documentation location?',
22
+ customDocsPath: 'Enter documentation location (relative path):',
23
+ selectDepth: 'Select analysis depth:',
24
+ depthQuick: 'Quick (5-10 min) - Structure and exports only',
25
+ depthStandard: 'Standard (30-60 min) - Full code analysis',
26
+ depthDeep: 'Deep (1-2 hours) - Semantic analysis + git history',
27
+ starting: '✓ Brownfield analysis configured',
28
+ monitorHint: 'Analysis will run as background job. Monitor with: /specweave:jobs',
29
+ discrepancyTypes: [
30
+ 'Undocumented public APIs',
31
+ 'Stale documentation',
32
+ 'Missing ADRs',
33
+ 'Knowledge silos',
34
+ ],
35
+ },
36
+ ru: {
37
+ header: '📚 Анализ документации браунфилда',
38
+ subheader: 'Анализ существующей кодовой базы на пробелы в документации',
39
+ explanation: 'Эта функция помогает создать живую документацию, анализируя существующий код:',
40
+ analyzeQuestion: 'Проанализировать кодовую базу на пробелы в документации?',
41
+ skipped: 'Пропуск анализа браунфилда. Запустите позже: /specweave:analyze-brownfield',
42
+ detectedDocs: 'Найдена существующая документация:',
43
+ useDetectedDocs: 'Использовать эту документацию?',
44
+ customDocsPath: 'Введите путь к документации (относительный):',
45
+ selectDepth: 'Выберите глубину анализа:',
46
+ depthQuick: 'Быстрый (5-10 мин) - Только структура и экспорты',
47
+ depthStandard: 'Стандартный (30-60 мин) - Полный анализ кода',
48
+ depthDeep: 'Глубокий (1-2 часа) - Семантика + история git',
49
+ starting: '✓ Анализ браунфилда настроен',
50
+ monitorHint: 'Анализ запустится в фоне. Мониторинг: /specweave:jobs',
51
+ discrepancyTypes: [
52
+ 'Недокументированные API',
53
+ 'Устаревшая документация',
54
+ 'Отсутствующие ADR',
55
+ 'Информационные бункеры',
56
+ ],
57
+ },
58
+ es: {
59
+ header: '📚 Análisis de documentación Brownfield',
60
+ subheader: 'Analizar base de código existente para brechas de documentación',
61
+ explanation: 'Esta función ayuda a crear docs vivos analizando su código existente:',
62
+ analyzeQuestion: '¿Analizar base de código para brechas de documentación?',
63
+ skipped: 'Omitiendo análisis brownfield. Ejecútelo después: /specweave:analyze-brownfield',
64
+ detectedDocs: 'Documentación encontrada:',
65
+ useDetectedDocs: '¿Usar esta ubicación de documentación?',
66
+ customDocsPath: 'Ingrese ubicación de documentación (ruta relativa):',
67
+ selectDepth: 'Seleccione profundidad de análisis:',
68
+ depthQuick: 'Rápido (5-10 min) - Solo estructura y exportaciones',
69
+ depthStandard: 'Estándar (30-60 min) - Análisis completo de código',
70
+ depthDeep: 'Profundo (1-2 horas) - Análisis semántico + historial git',
71
+ starting: '✓ Análisis brownfield configurado',
72
+ monitorHint: 'El análisis se ejecutará en segundo plano. Monitorear: /specweave:jobs',
73
+ discrepancyTypes: [
74
+ 'APIs públicas sin documentar',
75
+ 'Documentación obsoleta',
76
+ 'ADRs faltantes',
77
+ 'Silos de conocimiento',
78
+ ],
79
+ },
80
+ zh: {
81
+ header: '📚 棕地项目文档分析',
82
+ subheader: '分析现有代码库的文档缺口',
83
+ explanation: '此功能通过分析现有代码库帮助引导活文档:',
84
+ analyzeQuestion: '分析代码库以查找文档缺口?',
85
+ skipped: '跳过棕地分析。稍后运行: /specweave:analyze-brownfield',
86
+ detectedDocs: '发现现有文档:',
87
+ useDetectedDocs: '使用此文档位置?',
88
+ customDocsPath: '输入文档位置 (相对路径):',
89
+ selectDepth: '选择分析深度:',
90
+ depthQuick: '快速 (5-10分钟) - 仅结构和导出',
91
+ depthStandard: '标准 (30-60分钟) - 完整代码分析',
92
+ depthDeep: '深度 (1-2小时) - 语义分析 + git历史',
93
+ starting: '✓ 棕地分析已配置',
94
+ monitorHint: '分析将作为后台任务运行。监控: /specweave:jobs',
95
+ discrepancyTypes: [
96
+ '未文档化的公共API',
97
+ '过时的文档',
98
+ '缺失的ADR',
99
+ '知识孤岛',
100
+ ],
101
+ },
102
+ de: {
103
+ header: '📚 Brownfield-Dokumentationsanalyse',
104
+ subheader: 'Bestehende Codebasis auf Dokumentationslücken analysieren',
105
+ explanation: 'Diese Funktion hilft bei der Erstellung von Living Docs durch Analyse Ihres Codes:',
106
+ analyzeQuestion: 'Codebasis auf Dokumentationslücken analysieren?',
107
+ skipped: 'Brownfield-Analyse übersprungen. Später ausführen: /specweave:analyze-brownfield',
108
+ detectedDocs: 'Gefundene Dokumentation:',
109
+ useDetectedDocs: 'Diesen Dokumentationsort verwenden?',
110
+ customDocsPath: 'Dokumentationsort eingeben (relativer Pfad):',
111
+ selectDepth: 'Analysetiefe wählen:',
112
+ depthQuick: 'Schnell (5-10 Min) - Nur Struktur und Exporte',
113
+ depthStandard: 'Standard (30-60 Min) - Vollständige Code-Analyse',
114
+ depthDeep: 'Tief (1-2 Std) - Semantische Analyse + Git-Historie',
115
+ starting: '✓ Brownfield-Analyse konfiguriert',
116
+ monitorHint: 'Analyse läuft im Hintergrund. Überwachen: /specweave:jobs',
117
+ discrepancyTypes: [
118
+ 'Undokumentierte öffentliche APIs',
119
+ 'Veraltete Dokumentation',
120
+ 'Fehlende ADRs',
121
+ 'Wissens-Silos',
122
+ ],
123
+ },
124
+ fr: {
125
+ header: '📚 Analyse de documentation Brownfield',
126
+ subheader: 'Analyser la base de code existante pour les lacunes de documentation',
127
+ explanation: 'Cette fonction aide à créer des docs vivants en analysant votre code:',
128
+ analyzeQuestion: 'Analyser la base de code pour les lacunes de documentation?',
129
+ skipped: 'Analyse brownfield ignorée. Exécutez plus tard: /specweave:analyze-brownfield',
130
+ detectedDocs: 'Documentation trouvée:',
131
+ useDetectedDocs: 'Utiliser cet emplacement de documentation?',
132
+ customDocsPath: 'Entrez l\'emplacement de documentation (chemin relatif):',
133
+ selectDepth: 'Sélectionnez la profondeur d\'analyse:',
134
+ depthQuick: 'Rapide (5-10 min) - Structure et exports seulement',
135
+ depthStandard: 'Standard (30-60 min) - Analyse complète du code',
136
+ depthDeep: 'Profond (1-2 heures) - Analyse sémantique + historique git',
137
+ starting: '✓ Analyse brownfield configurée',
138
+ monitorHint: 'L\'analyse s\'exécutera en arrière-plan. Surveiller: /specweave:jobs',
139
+ discrepancyTypes: [
140
+ 'APIs publiques non documentées',
141
+ 'Documentation obsolète',
142
+ 'ADRs manquants',
143
+ 'Silos de connaissances',
144
+ ],
145
+ },
146
+ ja: {
147
+ header: '📚 ブラウンフィールドドキュメント分析',
148
+ subheader: '既存コードベースのドキュメントギャップを分析',
149
+ explanation: 'この機能は既存コードを分析してリビングドキュメントの作成を支援します:',
150
+ analyzeQuestion: 'コードベースのドキュメントギャップを分析しますか?',
151
+ skipped: 'ブラウンフィールド分析をスキップ。後で実行: /specweave:analyze-brownfield',
152
+ detectedDocs: '既存ドキュメントを検出:',
153
+ useDetectedDocs: 'このドキュメント場所を使用しますか?',
154
+ customDocsPath: 'ドキュメントの場所を入力 (相対パス):',
155
+ selectDepth: '分析深度を選択:',
156
+ depthQuick: '高速 (5-10分) - 構造とエクスポートのみ',
157
+ depthStandard: '標準 (30-60分) - 完全なコード分析',
158
+ depthDeep: '深層 (1-2時間) - セマンティック分析 + git履歴',
159
+ starting: '✓ ブラウンフィールド分析が設定されました',
160
+ monitorHint: '分析はバックグラウンドジョブとして実行。監視: /specweave:jobs',
161
+ discrepancyTypes: [
162
+ '未文書化のパブリックAPI',
163
+ '古いドキュメント',
164
+ '欠落しているADR',
165
+ 'ナレッジサイロ',
166
+ ],
167
+ },
168
+ ko: {
169
+ header: '📚 브라운필드 문서 분석',
170
+ subheader: '기존 코드베이스의 문서 격차 분석',
171
+ explanation: '이 기능은 기존 코드를 분석하여 리빙 문서 생성을 지원합니다:',
172
+ analyzeQuestion: '코드베이스의 문서 격차를 분석할까요?',
173
+ skipped: '브라운필드 분석 건너뜀. 나중에 실행: /specweave:analyze-brownfield',
174
+ detectedDocs: '발견된 문서:',
175
+ useDetectedDocs: '이 문서 위치를 사용할까요?',
176
+ customDocsPath: '문서 위치 입력 (상대 경로):',
177
+ selectDepth: '분석 깊이 선택:',
178
+ depthQuick: '빠름 (5-10분) - 구조 및 내보내기만',
179
+ depthStandard: '표준 (30-60분) - 전체 코드 분석',
180
+ depthDeep: '심층 (1-2시간) - 의미 분석 + git 기록',
181
+ starting: '✓ 브라운필드 분석이 구성됨',
182
+ monitorHint: '분석은 백그라운드 작업으로 실행됩니다. 모니터링: /specweave:jobs',
183
+ discrepancyTypes: [
184
+ '문서화되지 않은 공개 API',
185
+ '오래된 문서',
186
+ '누락된 ADR',
187
+ '지식 사일로',
188
+ ],
189
+ },
190
+ pt: {
191
+ header: '📚 Análise de Documentação Brownfield',
192
+ subheader: 'Analisar base de código existente para lacunas de documentação',
193
+ explanation: 'Esta função ajuda a criar docs vivos analisando seu código existente:',
194
+ analyzeQuestion: 'Analisar base de código para lacunas de documentação?',
195
+ skipped: 'Análise brownfield ignorada. Execute depois: /specweave:analyze-brownfield',
196
+ detectedDocs: 'Documentação encontrada:',
197
+ useDetectedDocs: 'Usar esta localização de documentação?',
198
+ customDocsPath: 'Digite localização da documentação (caminho relativo):',
199
+ selectDepth: 'Selecione profundidade de análise:',
200
+ depthQuick: 'Rápido (5-10 min) - Apenas estrutura e exportações',
201
+ depthStandard: 'Padrão (30-60 min) - Análise completa de código',
202
+ depthDeep: 'Profundo (1-2 horas) - Análise semântica + histórico git',
203
+ starting: '✓ Análise brownfield configurada',
204
+ monitorHint: 'A análise será executada em segundo plano. Monitorar: /specweave:jobs',
205
+ discrepancyTypes: [
206
+ 'APIs públicas não documentadas',
207
+ 'Documentação obsoleta',
208
+ 'ADRs ausentes',
209
+ 'Silos de conhecimento',
210
+ ],
211
+ },
212
+ };
213
+ return strings[language] || strings.en;
214
+ }
215
+ /**
216
+ * Common documentation folder patterns to detect
217
+ */
218
+ const DOC_FOLDER_PATTERNS = [
219
+ 'docs',
220
+ 'documentation',
221
+ 'doc',
222
+ 'wiki',
223
+ '.wiki',
224
+ 'guide',
225
+ 'guides',
226
+ 'manual',
227
+ 'manuals',
228
+ ];
229
+ /**
230
+ * Detect existing documentation locations in a project
231
+ */
232
+ export function detectExistingDocsLocations(targetDir) {
233
+ const locations = [];
234
+ // Check common doc folders
235
+ for (const pattern of DOC_FOLDER_PATTERNS) {
236
+ const docPath = path.join(targetDir, pattern);
237
+ if (fs.existsSync(docPath) && fs.statSync(docPath).isDirectory()) {
238
+ const fileCount = countDocFiles(docPath);
239
+ if (fileCount > 0) {
240
+ locations.push({
241
+ path: pattern,
242
+ type: 'markdown',
243
+ fileCount,
244
+ });
245
+ }
246
+ }
247
+ }
248
+ // Check for README files
249
+ const readmePatterns = ['README.md', 'README.rst', 'README.txt', 'readme.md'];
250
+ for (const readme of readmePatterns) {
251
+ if (fs.existsSync(path.join(targetDir, readme))) {
252
+ locations.push({
253
+ path: readme,
254
+ type: 'readme',
255
+ fileCount: 1,
256
+ });
257
+ break; // Only count one README
258
+ }
259
+ }
260
+ // Check for JSDoc/TSDoc in source files
261
+ const srcDir = path.join(targetDir, 'src');
262
+ if (fs.existsSync(srcDir)) {
263
+ const hasJsDoc = checkForJsDoc(srcDir);
264
+ if (hasJsDoc) {
265
+ locations.push({
266
+ path: 'src/',
267
+ type: 'jsdoc',
268
+ fileCount: hasJsDoc,
269
+ });
270
+ }
271
+ }
272
+ return locations;
273
+ }
274
+ /**
275
+ * Count markdown files in a directory (recursive)
276
+ */
277
+ function countDocFiles(dir, maxDepth = 3) {
278
+ if (maxDepth <= 0)
279
+ return 0;
280
+ let count = 0;
281
+ try {
282
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
283
+ for (const entry of entries) {
284
+ if (entry.name.startsWith('.'))
285
+ continue;
286
+ const fullPath = path.join(dir, entry.name);
287
+ if (entry.isDirectory()) {
288
+ count += countDocFiles(fullPath, maxDepth - 1);
289
+ }
290
+ else if (entry.name.endsWith('.md') || entry.name.endsWith('.mdx')) {
291
+ count++;
292
+ }
293
+ }
294
+ }
295
+ catch {
296
+ // Ignore permission errors
297
+ }
298
+ return count;
299
+ }
300
+ /**
301
+ * Check for JSDoc comments in source files
302
+ */
303
+ function checkForJsDoc(srcDir) {
304
+ let filesWithDocs = 0;
305
+ try {
306
+ const entries = fs.readdirSync(srcDir, { withFileTypes: true });
307
+ for (const entry of entries) {
308
+ if (entry.name.startsWith('.'))
309
+ continue;
310
+ const fullPath = path.join(srcDir, entry.name);
311
+ if (entry.isDirectory()) {
312
+ filesWithDocs += checkForJsDoc(fullPath);
313
+ }
314
+ else if (entry.name.endsWith('.ts') || entry.name.endsWith('.js')) {
315
+ const content = fs.readFileSync(fullPath, 'utf-8');
316
+ if (content.includes('/**') && content.includes('@')) {
317
+ filesWithDocs++;
318
+ }
319
+ }
320
+ }
321
+ }
322
+ catch {
323
+ // Ignore permission errors
324
+ }
325
+ return filesWithDocs;
326
+ }
327
+ /**
328
+ * Prompt user for brownfield analysis configuration
329
+ *
330
+ * @param targetDir - Project directory
331
+ * @param language - Language for translations
332
+ * @returns Brownfield analysis configuration
333
+ */
334
+ export async function promptBrownfieldAnalysis(targetDir, language = 'en') {
335
+ const strings = getBrownfieldStrings(language);
336
+ console.log('');
337
+ console.log(chalk.cyan.bold(strings.header));
338
+ console.log(chalk.gray(' ' + strings.subheader));
339
+ console.log('');
340
+ // Show explanation
341
+ console.log(chalk.white(strings.explanation));
342
+ for (const discType of strings.discrepancyTypes) {
343
+ console.log(chalk.gray(` • ${discType}`));
344
+ }
345
+ console.log('');
346
+ // Ask if user wants analysis
347
+ const wantsAnalysis = await confirm({
348
+ message: strings.analyzeQuestion,
349
+ default: true,
350
+ });
351
+ if (!wantsAnalysis) {
352
+ console.log(chalk.gray(` ${strings.skipped}`));
353
+ return { enabled: false, analysisDepth: 'quick' };
354
+ }
355
+ // Detect existing docs
356
+ const detectedDocs = detectExistingDocsLocations(targetDir);
357
+ let sourceDocsPath;
358
+ if (detectedDocs.length > 0) {
359
+ console.log('');
360
+ console.log(chalk.gray(` ${strings.detectedDocs}`));
361
+ for (const doc of detectedDocs) {
362
+ console.log(chalk.gray(` • ${doc.path} (${doc.fileCount} files, ${doc.type})`));
363
+ }
364
+ console.log('');
365
+ const useDetected = await confirm({
366
+ message: strings.useDetectedDocs,
367
+ default: true,
368
+ });
369
+ if (useDetected) {
370
+ // Use the first markdown folder, or first detected location
371
+ const mdLoc = detectedDocs.find(d => d.type === 'markdown');
372
+ sourceDocsPath = mdLoc?.path || detectedDocs[0].path;
373
+ }
374
+ else {
375
+ sourceDocsPath = await input({
376
+ message: strings.customDocsPath,
377
+ default: 'docs/',
378
+ });
379
+ }
380
+ }
381
+ // Select analysis depth
382
+ const depth = await select({
383
+ message: strings.selectDepth,
384
+ choices: [
385
+ {
386
+ name: strings.depthQuick,
387
+ value: 'quick',
388
+ },
389
+ {
390
+ name: strings.depthStandard,
391
+ value: 'standard',
392
+ },
393
+ {
394
+ name: strings.depthDeep,
395
+ value: 'deep',
396
+ },
397
+ ],
398
+ default: 'standard',
399
+ });
400
+ console.log('');
401
+ console.log(chalk.green(` ${strings.starting}`));
402
+ console.log(chalk.gray(` ${strings.monitorHint}`));
403
+ console.log('');
404
+ return {
405
+ enabled: true,
406
+ sourceDocsPath,
407
+ analysisDepth: depth,
408
+ };
409
+ }
410
+ /**
411
+ * Update config.json with brownfield analysis configuration
412
+ *
413
+ * @param targetDir - Project directory
414
+ * @param config - Brownfield analysis configuration
415
+ */
416
+ export function updateConfigWithBrownfield(targetDir, config) {
417
+ const configPath = path.join(targetDir, '.specweave', 'config.json');
418
+ if (!fs.existsSync(configPath)) {
419
+ console.error(chalk.red('⚠️ config.json not found'));
420
+ return;
421
+ }
422
+ const existingConfig = fs.readJsonSync(configPath);
423
+ existingConfig.brownfield = {
424
+ analysisEnabled: config.enabled,
425
+ sourceDocsPath: config.sourceDocsPath,
426
+ analysisDepth: config.analysisDepth,
427
+ lastAnalysis: null,
428
+ };
429
+ fs.writeJsonSync(configPath, existingConfig, { spaces: 2 });
430
+ }
431
+ //# sourceMappingURL=brownfield-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brownfield-analysis.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/brownfield-analysis.ts"],"names":[],"mappings":"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"}
@@ -14,4 +14,5 @@ export { promptAndRunExternalImport, } from './external-import.js';
14
14
  export { createDirectoryStructure, copyTemplates, createConfigFile, } from './directory-structure.js';
15
15
  export { showNextSteps, } from './next-steps.js';
16
16
  export { generateInitialIncrement, type InitialIncrementOptions, } from './initial-increment-generator.js';
17
+ export { promptBrownfieldAnalysis, updateConfigWithBrownfield, detectExistingDocsLocations, type BrownfieldAnalysisConfig, type AnalysisDepth, type DetectedDocsLocation, } from './brownfield-analysis.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,cAAc,YAAY,CAAC;AAG3B,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,iBAAiB,EACjB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,iBAAiB,EACjB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,sBAAsB,EACtB,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,KAAK,mBAAmB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,EACrB,KAAK,uBAAuB,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,EAC3B,KAAK,uBAAuB,EAC5B,KAAK,gBAAgB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,aAAa,EAClB,KAAK,oBAAoB,GAC1B,MAAM,0BAA0B,CAAC"}
@@ -27,4 +27,6 @@ export { createDirectoryStructure, copyTemplates, createConfigFile, } from './di
27
27
  export { showNextSteps, } from './next-steps.js';
28
28
  // Initial increment generator (existing)
29
29
  export { generateInitialIncrement, } from './initial-increment-generator.js';
30
+ // Brownfield analysis configuration
31
+ export { promptBrownfieldAnalysis, updateConfigWithBrownfield, detectExistingDocsLocations, } from './brownfield-analysis.js';
30
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,iBAAiB,GAGlB,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,GAIvB,MAAM,uBAAuB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAE7B,6CAA6C;AAC7C,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,4BAA4B;AAC5B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,GAG5B,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,aAAa;AACb,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,yCAAyC;AACzC,OAAO,EACL,wBAAwB,GAEzB,MAAM,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/cli/helpers/init/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,iBAAiB;AACjB,OAAO,EACL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,0BAA0B;AAC1B,OAAO,EACL,iBAAiB,GAGlB,MAAM,mBAAmB,CAAC;AAE3B,sBAAsB;AACtB,OAAO,EACL,iBAAiB,GAGlB,MAAM,uBAAuB,CAAC;AAE/B,mBAAmB;AACnB,OAAO,EACL,sBAAsB,GAIvB,MAAM,uBAAuB,CAAC;AAE/B,wBAAwB;AACxB,OAAO,EACL,mBAAmB,EACnB,uBAAuB,GAExB,MAAM,qBAAqB,CAAC;AAE7B,6CAA6C;AAC7C,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,qBAAqB,GAEtB,MAAM,yBAAyB,CAAC;AAEjC,4BAA4B;AAC5B,OAAO,EACL,uBAAuB,EACvB,2BAA2B,EAC3B,2BAA2B,GAG5B,MAAM,yBAAyB,CAAC;AAEjC,kBAAkB;AAClB,OAAO,EACL,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,sBAAsB;AACtB,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,gBAAgB,GACjB,MAAM,0BAA0B,CAAC;AAElC,aAAa;AACb,OAAO,EACL,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,yCAAyC;AACzC,OAAO,EACL,wBAAwB,GAEzB,MAAM,kCAAkC,CAAC;AAE1C,oCAAoC;AACpC,OAAO,EACL,wBAAwB,EACxB,0BAA0B,EAC1B,2BAA2B,GAI5B,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Brownfield Analysis Worker
3
+ *
4
+ * Performs brownfield documentation analysis in phases:
5
+ * 1. Discovery - Find all code/doc files
6
+ * 2. Code Analysis - Extract signatures, APIs
7
+ * 3. Doc Matching - Match code to docs
8
+ * 4. Discrepancy Detection - Find documentation gaps
9
+ * 5. Reporting - Generate summary
10
+ *
11
+ * Supports pause/resume via checkpoints.
12
+ */
13
+ import { BrownfieldJobConfig } from '../../core/background/index.js';
14
+ import { Logger } from '../../utils/logger.js';
15
+ /**
16
+ * Brownfield Analysis Worker
17
+ */
18
+ export declare class BrownfieldAnalysisWorker {
19
+ private readonly projectPath;
20
+ private readonly jobId;
21
+ private readonly config;
22
+ private readonly logger;
23
+ private readonly discrepancyManager;
24
+ private context;
25
+ constructor(projectPath: string, jobId: string, config: BrownfieldJobConfig, options?: {
26
+ logger?: Logger;
27
+ });
28
+ /**
29
+ * Run the brownfield analysis
30
+ */
31
+ run(): Promise<number>;
32
+ /**
33
+ * Phase 1: Discovery - Find all code and documentation files
34
+ */
35
+ private runDiscoveryPhase;
36
+ /**
37
+ * Phase 2: Code Analysis - Extract exports and signatures
38
+ */
39
+ private runCodeAnalysisPhase;
40
+ /**
41
+ * Phase 3: Doc Matching - Match docs to code modules
42
+ */
43
+ private runDocMatchingPhase;
44
+ /**
45
+ * Phase 4: Discrepancy Detection - Find documentation gaps
46
+ */
47
+ private runDiscrepancyDetectionPhase;
48
+ /**
49
+ * Phase 5: Reporting - Generate summary
50
+ */
51
+ private runReportingPhase;
52
+ private findFiles;
53
+ private walkDir;
54
+ private analyzeModule;
55
+ private extractExports;
56
+ private parseDocFile;
57
+ private calculatePriority;
58
+ private generateRecommendations;
59
+ }
60
+ /**
61
+ * Run brownfield analysis for a job
62
+ */
63
+ export declare function runBrownfieldAnalysis(projectPath: string, jobId: string, config: BrownfieldJobConfig, options?: {
64
+ logger?: Logger;
65
+ }): Promise<number>;
66
+ //# sourceMappingURL=brownfield-worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"brownfield-worker.d.ts","sourceRoot":"","sources":["../../../../src/cli/workers/brownfield-worker.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EACL,mBAAmB,EAKpB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,EAAE,MAAM,EAAiB,MAAM,uBAAuB,CAAC;AA8D9D;;GAEG;AACH,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA+B;IAClE,OAAO,CAAC,OAAO,CAAkB;gBAG/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAO;IAoBnC;;OAEG;IACG,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAuD5B;;OAEG;YACW,iBAAiB;IAyB/B;;OAEG;YACW,oBAAoB;IAyBlC;;OAEG;YACW,mBAAmB;IAajC;;OAEG;YACW,4BAA4B;IAmE1C;;OAEG;YACW,iBAAiB;IAqC/B,OAAO,CAAC,SAAS;IAWjB,OAAO,CAAC,OAAO;IA6Cf,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,cAAc;IAyDtB,OAAO,CAAC,YAAY;IA4BpB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,uBAAuB;CAuBhC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChC,OAAO,CAAC,MAAM,CAAC,CAGjB"}