specweave 0.17.1 → 0.17.3

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 (807) hide show
  1. package/bin/specweave.js +16 -16
  2. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +109 -6
  3. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -1
  4. package/dist/plugins/specweave-github/lib/github-spec-sync.js +435 -49
  5. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -1
  6. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts +10 -2
  7. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +1 -1
  8. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js +28 -14
  9. package/dist/src/cli/helpers/issue-tracker/github-multi-repo.js.map +1 -1
  10. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -1
  11. package/dist/src/cli/helpers/issue-tracker/github.js +10 -1
  12. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -1
  13. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -1
  14. package/dist/src/cli/helpers/issue-tracker/index.js +20 -0
  15. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -1
  16. package/dist/src/core/project-manager.d.ts +25 -21
  17. package/dist/src/core/project-manager.d.ts.map +1 -1
  18. package/dist/src/core/project-manager.js +41 -51
  19. package/dist/src/core/project-manager.js.map +1 -1
  20. package/dist/src/core/repo-structure/folder-detector.d.ts +19 -0
  21. package/dist/src/core/repo-structure/folder-detector.d.ts.map +1 -0
  22. package/dist/src/core/repo-structure/folder-detector.js +95 -0
  23. package/dist/src/core/repo-structure/folder-detector.js.map +1 -0
  24. package/dist/src/core/repo-structure/repo-structure-manager.d.ts +4 -1
  25. package/dist/src/core/repo-structure/repo-structure-manager.d.ts.map +1 -1
  26. package/dist/src/core/repo-structure/repo-structure-manager.js +41 -27
  27. package/dist/src/core/repo-structure/repo-structure-manager.js.map +1 -1
  28. package/dist/src/core/types/spec-metadata.d.ts +34 -1
  29. package/dist/src/core/types/spec-metadata.d.ts.map +1 -1
  30. package/dist/src/core/types/sync-profile.d.ts +30 -0
  31. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  32. package/dist/src/core/types/sync-profile.js.map +1 -1
  33. package/dist/src/utils/project-validator.d.ts +27 -0
  34. package/dist/src/utils/project-validator.d.ts.map +1 -0
  35. package/dist/src/utils/project-validator.js +68 -0
  36. package/dist/src/utils/project-validator.js.map +1 -0
  37. package/package.json +1 -1
  38. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +129 -213
  39. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +146 -192
  40. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +103 -116
  41. package/plugins/specweave/lib/hooks/reflection-config-loader.js +85 -125
  42. package/plugins/specweave/lib/hooks/reflection-parser.js +267 -385
  43. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +169 -226
  44. package/plugins/specweave/lib/hooks/reflection-storage.js +223 -297
  45. package/plugins/specweave/lib/hooks/run-self-reflection.js +120 -191
  46. package/plugins/specweave/lib/hooks/translate-file.js +239 -300
  47. package/plugins/specweave/lib/hooks/translate-living-docs.js +88 -144
  48. package/plugins/specweave/lib/hooks/types/reflection-types.js +57 -72
  49. package/plugins/specweave/lib/hooks/update-tasks-md.js +117 -179
  50. package/plugins/specweave-ado/lib/ado-board-resolver.js +135 -205
  51. package/plugins/specweave-ado/lib/ado-client-v2.js +405 -449
  52. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +223 -335
  53. package/plugins/specweave-ado/lib/ado-spec-commit-sync.js +173 -194
  54. package/plugins/specweave-ado/lib/ado-spec-sync.js +380 -414
  55. package/plugins/specweave-ado/lib/conflict-resolver.ts +1 -1
  56. package/plugins/specweave-ado/lib/project-selector.js +168 -196
  57. package/plugins/specweave-github/MULTI-PROJECT-SYNC-ARCHITECTURE.md +658 -0
  58. package/plugins/specweave-github/SYNC-ARCHITECTURE-FIX-SUMMARY.md +302 -0
  59. package/plugins/specweave-github/hooks/post-task-completion.sh +55 -157
  60. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +9 -20
  61. package/plugins/specweave-github/lib/github-board-resolver.js +69 -115
  62. package/plugins/specweave-github/lib/github-client-v2.js +400 -389
  63. package/plugins/specweave-github/lib/github-client.js +246 -280
  64. package/plugins/specweave-github/lib/github-hierarchical-sync.js +168 -251
  65. package/plugins/specweave-github/lib/github-spec-commit-sync.js +171 -194
  66. package/plugins/specweave-github/lib/github-spec-sync.js +742 -418
  67. package/plugins/specweave-github/lib/github-spec-sync.ts +597 -61
  68. package/plugins/specweave-github/lib/index.js +11 -10
  69. package/plugins/specweave-github/lib/repo-selector.js +174 -201
  70. package/plugins/specweave-github/lib/subtask-sync.js +132 -125
  71. package/plugins/specweave-github/lib/task-parser.js +191 -207
  72. package/plugins/specweave-github/lib/task-sync.js +344 -296
  73. package/plugins/specweave-github/lib/types.js +0 -5
  74. package/plugins/specweave-github/skills/github-sync/SKILL.md +234 -242
  75. package/plugins/specweave-jira/lib/jira-board-resolver.js +50 -79
  76. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +119 -191
  77. package/plugins/specweave-jira/lib/jira-spec-commit-sync.js +241 -263
  78. package/plugins/specweave-jira/lib/jira-spec-sync.js +366 -405
  79. package/plugins/specweave-jira/lib/project-selector.js +172 -201
  80. package/plugins/specweave-jira/lib/reorganization-detector.js +202 -237
  81. package/plugins/specweave-jira/lib/setup-wizard.js +162 -204
  82. package/dist/adapters/adapter-base.d.ts +0 -71
  83. package/dist/adapters/adapter-base.d.ts.map +0 -1
  84. package/dist/adapters/adapter-base.js +0 -139
  85. package/dist/adapters/adapter-base.js.map +0 -1
  86. package/dist/adapters/adapter-interface.d.ts +0 -149
  87. package/dist/adapters/adapter-interface.d.ts.map +0 -1
  88. package/dist/adapters/adapter-interface.js +0 -8
  89. package/dist/adapters/adapter-interface.js.map +0 -1
  90. package/dist/adapters/adapter-loader.d.ts +0 -91
  91. package/dist/adapters/adapter-loader.d.ts.map +0 -1
  92. package/dist/adapters/adapter-loader.js +0 -238
  93. package/dist/adapters/adapter-loader.js.map +0 -1
  94. package/dist/adapters/agents-md-generator.d.ts +0 -48
  95. package/dist/adapters/agents-md-generator.d.ts.map +0 -1
  96. package/dist/adapters/agents-md-generator.js +0 -193
  97. package/dist/adapters/agents-md-generator.js.map +0 -1
  98. package/dist/adapters/claude/adapter.d.ts +0 -128
  99. package/dist/adapters/claude/adapter.d.ts.map +0 -1
  100. package/dist/adapters/claude/adapter.js +0 -415
  101. package/dist/adapters/claude/adapter.js.map +0 -1
  102. package/dist/adapters/claude-md-generator.d.ts +0 -78
  103. package/dist/adapters/claude-md-generator.d.ts.map +0 -1
  104. package/dist/adapters/claude-md-generator.js +0 -307
  105. package/dist/adapters/claude-md-generator.js.map +0 -1
  106. package/dist/adapters/codex/adapter.d.ts +0 -50
  107. package/dist/adapters/codex/adapter.d.ts.map +0 -1
  108. package/dist/adapters/codex/adapter.js +0 -316
  109. package/dist/adapters/codex/adapter.js.map +0 -1
  110. package/dist/adapters/cursor/adapter.d.ts +0 -98
  111. package/dist/adapters/cursor/adapter.d.ts.map +0 -1
  112. package/dist/adapters/cursor/adapter.js +0 -406
  113. package/dist/adapters/cursor/adapter.js.map +0 -1
  114. package/dist/adapters/doc-generator.d.ts +0 -69
  115. package/dist/adapters/doc-generator.d.ts.map +0 -1
  116. package/dist/adapters/doc-generator.js +0 -247
  117. package/dist/adapters/doc-generator.js.map +0 -1
  118. package/dist/adapters/gemini/adapter.d.ts +0 -50
  119. package/dist/adapters/gemini/adapter.d.ts.map +0 -1
  120. package/dist/adapters/gemini/adapter.js +0 -281
  121. package/dist/adapters/gemini/adapter.js.map +0 -1
  122. package/dist/adapters/generic/adapter.d.ts +0 -86
  123. package/dist/adapters/generic/adapter.d.ts.map +0 -1
  124. package/dist/adapters/generic/adapter.js +0 -338
  125. package/dist/adapters/generic/adapter.js.map +0 -1
  126. package/dist/cli/commands/abandon.d.ts +0 -13
  127. package/dist/cli/commands/abandon.d.ts.map +0 -1
  128. package/dist/cli/commands/abandon.js +0 -15
  129. package/dist/cli/commands/abandon.js.map +0 -1
  130. package/dist/cli/commands/check-discipline.d.ts +0 -16
  131. package/dist/cli/commands/check-discipline.d.ts.map +0 -1
  132. package/dist/cli/commands/check-discipline.js +0 -79
  133. package/dist/cli/commands/check-discipline.js.map +0 -1
  134. package/dist/cli/commands/import-docs.d.ts +0 -21
  135. package/dist/cli/commands/import-docs.d.ts.map +0 -1
  136. package/dist/cli/commands/import-docs.js +0 -146
  137. package/dist/cli/commands/import-docs.js.map +0 -1
  138. package/dist/cli/commands/init-multiproject.d.ts +0 -11
  139. package/dist/cli/commands/init-multiproject.d.ts.map +0 -1
  140. package/dist/cli/commands/init-multiproject.js +0 -202
  141. package/dist/cli/commands/init-multiproject.js.map +0 -1
  142. package/dist/cli/commands/init.d.ts +0 -10
  143. package/dist/cli/commands/init.d.ts.map +0 -1
  144. package/dist/cli/commands/init.js +0 -1328
  145. package/dist/cli/commands/init.js.map +0 -1
  146. package/dist/cli/commands/install.d.ts +0 -9
  147. package/dist/cli/commands/install.d.ts.map +0 -1
  148. package/dist/cli/commands/install.js +0 -127
  149. package/dist/cli/commands/install.js.map +0 -1
  150. package/dist/cli/commands/list.d.ts +0 -8
  151. package/dist/cli/commands/list.d.ts.map +0 -1
  152. package/dist/cli/commands/list.js +0 -119
  153. package/dist/cli/commands/list.js.map +0 -1
  154. package/dist/cli/commands/migrate-to-multiproject.d.ts +0 -37
  155. package/dist/cli/commands/migrate-to-multiproject.d.ts.map +0 -1
  156. package/dist/cli/commands/migrate-to-multiproject.js +0 -189
  157. package/dist/cli/commands/migrate-to-multiproject.js.map +0 -1
  158. package/dist/cli/commands/migrate-to-profiles.d.ts +0 -25
  159. package/dist/cli/commands/migrate-to-profiles.d.ts.map +0 -1
  160. package/dist/cli/commands/migrate-to-profiles.js +0 -348
  161. package/dist/cli/commands/migrate-to-profiles.js.map +0 -1
  162. package/dist/cli/commands/pause.d.ts +0 -13
  163. package/dist/cli/commands/pause.d.ts.map +0 -1
  164. package/dist/cli/commands/pause.js +0 -15
  165. package/dist/cli/commands/pause.js.map +0 -1
  166. package/dist/cli/commands/qa.d.ts +0 -54
  167. package/dist/cli/commands/qa.d.ts.map +0 -1
  168. package/dist/cli/commands/qa.js +0 -98
  169. package/dist/cli/commands/qa.js.map +0 -1
  170. package/dist/cli/commands/resume.d.ts +0 -12
  171. package/dist/cli/commands/resume.d.ts.map +0 -1
  172. package/dist/cli/commands/resume.js +0 -14
  173. package/dist/cli/commands/resume.js.map +0 -1
  174. package/dist/cli/commands/revert-wip-limit.js +0 -60
  175. package/dist/cli/commands/status-line.d.ts +0 -14
  176. package/dist/cli/commands/status-line.d.ts.map +0 -1
  177. package/dist/cli/commands/status-line.js +0 -75
  178. package/dist/cli/commands/status-line.js.map +0 -1
  179. package/dist/cli/commands/status.d.ts +0 -12
  180. package/dist/cli/commands/status.d.ts.map +0 -1
  181. package/dist/cli/commands/status.js +0 -23
  182. package/dist/cli/commands/status.js.map +0 -1
  183. package/dist/cli/commands/switch-project.d.ts +0 -13
  184. package/dist/cli/commands/switch-project.d.ts.map +0 -1
  185. package/dist/cli/commands/switch-project.js +0 -91
  186. package/dist/cli/commands/switch-project.js.map +0 -1
  187. package/dist/cli/commands/sync-spec-commits.d.ts +0 -9
  188. package/dist/cli/commands/sync-spec-commits.d.ts.map +0 -1
  189. package/dist/cli/commands/sync-spec-commits.js +0 -186
  190. package/dist/cli/commands/sync-spec-commits.js.map +0 -1
  191. package/dist/cli/commands/validate-jira.d.ts +0 -35
  192. package/dist/cli/commands/validate-jira.d.ts.map +0 -1
  193. package/dist/cli/commands/validate-jira.js +0 -112
  194. package/dist/cli/commands/validate-jira.js.map +0 -1
  195. package/dist/cli/commands/validate-plugins.d.ts +0 -41
  196. package/dist/cli/commands/validate-plugins.d.ts.map +0 -1
  197. package/dist/cli/commands/validate-plugins.js +0 -171
  198. package/dist/cli/commands/validate-plugins.js.map +0 -1
  199. package/dist/cli/helpers/github/increment-profile-selector.d.ts +0 -47
  200. package/dist/cli/helpers/github/increment-profile-selector.d.ts.map +0 -1
  201. package/dist/cli/helpers/github/increment-profile-selector.js +0 -186
  202. package/dist/cli/helpers/github/increment-profile-selector.js.map +0 -1
  203. package/dist/cli/helpers/github/profile-manager.d.ts +0 -119
  204. package/dist/cli/helpers/github/profile-manager.d.ts.map +0 -1
  205. package/dist/cli/helpers/github/profile-manager.js +0 -311
  206. package/dist/cli/helpers/github/profile-manager.js.map +0 -1
  207. package/dist/cli/helpers/issue-tracker/ado.d.ts +0 -57
  208. package/dist/cli/helpers/issue-tracker/ado.d.ts.map +0 -1
  209. package/dist/cli/helpers/issue-tracker/ado.js +0 -243
  210. package/dist/cli/helpers/issue-tracker/ado.js.map +0 -1
  211. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts +0 -86
  212. package/dist/cli/helpers/issue-tracker/github-multi-repo.d.ts.map +0 -1
  213. package/dist/cli/helpers/issue-tracker/github-multi-repo.js +0 -417
  214. package/dist/cli/helpers/issue-tracker/github-multi-repo.js.map +0 -1
  215. package/dist/cli/helpers/issue-tracker/github.d.ts +0 -80
  216. package/dist/cli/helpers/issue-tracker/github.d.ts.map +0 -1
  217. package/dist/cli/helpers/issue-tracker/github.js +0 -324
  218. package/dist/cli/helpers/issue-tracker/github.js.map +0 -1
  219. package/dist/cli/helpers/issue-tracker/index.d.ts +0 -22
  220. package/dist/cli/helpers/issue-tracker/index.d.ts.map +0 -1
  221. package/dist/cli/helpers/issue-tracker/index.js +0 -562
  222. package/dist/cli/helpers/issue-tracker/index.js.map +0 -1
  223. package/dist/cli/helpers/issue-tracker/jira.d.ts +0 -61
  224. package/dist/cli/helpers/issue-tracker/jira.d.ts.map +0 -1
  225. package/dist/cli/helpers/issue-tracker/jira.js +0 -404
  226. package/dist/cli/helpers/issue-tracker/jira.js.map +0 -1
  227. package/dist/cli/helpers/issue-tracker/types.d.ts +0 -108
  228. package/dist/cli/helpers/issue-tracker/types.d.ts.map +0 -1
  229. package/dist/cli/helpers/issue-tracker/types.js +0 -16
  230. package/dist/cli/helpers/issue-tracker/types.js.map +0 -1
  231. package/dist/cli/helpers/issue-tracker/utils.d.ts +0 -120
  232. package/dist/cli/helpers/issue-tracker/utils.d.ts.map +0 -1
  233. package/dist/cli/helpers/issue-tracker/utils.js +0 -293
  234. package/dist/cli/helpers/issue-tracker/utils.js.map +0 -1
  235. package/dist/core/agent-model-manager.d.ts +0 -52
  236. package/dist/core/agent-model-manager.d.ts.map +0 -1
  237. package/dist/core/agent-model-manager.js +0 -120
  238. package/dist/core/agent-model-manager.js.map +0 -1
  239. package/dist/core/brownfield/analyzer.d.ts +0 -86
  240. package/dist/core/brownfield/analyzer.d.ts.map +0 -1
  241. package/dist/core/brownfield/analyzer.js +0 -365
  242. package/dist/core/brownfield/analyzer.js.map +0 -1
  243. package/dist/core/brownfield/importer.d.ts +0 -76
  244. package/dist/core/brownfield/importer.d.ts.map +0 -1
  245. package/dist/core/brownfield/importer.js +0 -287
  246. package/dist/core/brownfield/importer.js.map +0 -1
  247. package/dist/core/comment-builder.d.ts +0 -57
  248. package/dist/core/comment-builder.d.ts.map +0 -1
  249. package/dist/core/comment-builder.js +0 -239
  250. package/dist/core/comment-builder.js.map +0 -1
  251. package/dist/core/config-manager.d.ts +0 -47
  252. package/dist/core/config-manager.d.ts.map +0 -1
  253. package/dist/core/config-manager.js +0 -136
  254. package/dist/core/config-manager.js.map +0 -1
  255. package/dist/core/cost-tracker.d.ts +0 -108
  256. package/dist/core/cost-tracker.d.ts.map +0 -1
  257. package/dist/core/cost-tracker.js +0 -281
  258. package/dist/core/cost-tracker.js.map +0 -1
  259. package/dist/core/credentials-manager.d.ts +0 -107
  260. package/dist/core/credentials-manager.d.ts.map +0 -1
  261. package/dist/core/credentials-manager.js +0 -457
  262. package/dist/core/credentials-manager.js.map +0 -1
  263. package/dist/core/i18n/language-detector.d.ts +0 -29
  264. package/dist/core/i18n/language-detector.d.ts.map +0 -1
  265. package/dist/core/i18n/language-detector.js +0 -143
  266. package/dist/core/i18n/language-detector.js.map +0 -1
  267. package/dist/core/i18n/language-manager.d.ts +0 -101
  268. package/dist/core/i18n/language-manager.d.ts.map +0 -1
  269. package/dist/core/i18n/language-manager.js +0 -232
  270. package/dist/core/i18n/language-manager.js.map +0 -1
  271. package/dist/core/i18n/language-registry.d.ts +0 -44
  272. package/dist/core/i18n/language-registry.d.ts.map +0 -1
  273. package/dist/core/i18n/language-registry.js +0 -234
  274. package/dist/core/i18n/language-registry.js.map +0 -1
  275. package/dist/core/i18n/locale-manager.d.ts +0 -62
  276. package/dist/core/i18n/locale-manager.d.ts.map +0 -1
  277. package/dist/core/i18n/locale-manager.js +0 -137
  278. package/dist/core/i18n/locale-manager.js.map +0 -1
  279. package/dist/core/i18n/system-prompt-injector.d.ts +0 -33
  280. package/dist/core/i18n/system-prompt-injector.d.ts.map +0 -1
  281. package/dist/core/i18n/system-prompt-injector.js +0 -131
  282. package/dist/core/i18n/system-prompt-injector.js.map +0 -1
  283. package/dist/core/i18n/types.d.ts +0 -151
  284. package/dist/core/i18n/types.d.ts.map +0 -1
  285. package/dist/core/i18n/types.js +0 -11
  286. package/dist/core/i18n/types.js.map +0 -1
  287. package/dist/core/increment/active-increment-manager.d.ts +0 -79
  288. package/dist/core/increment/active-increment-manager.d.ts.map +0 -1
  289. package/dist/core/increment/active-increment-manager.js +0 -153
  290. package/dist/core/increment/active-increment-manager.js.map +0 -1
  291. package/dist/core/increment/discipline-checker.d.ts +0 -60
  292. package/dist/core/increment/discipline-checker.d.ts.map +0 -1
  293. package/dist/core/increment/discipline-checker.js +0 -274
  294. package/dist/core/increment/discipline-checker.js.map +0 -1
  295. package/dist/core/increment/limits.d.ts +0 -68
  296. package/dist/core/increment/limits.d.ts.map +0 -1
  297. package/dist/core/increment/limits.js +0 -224
  298. package/dist/core/increment/limits.js.map +0 -1
  299. package/dist/core/increment/metadata-manager.d.ts +0 -116
  300. package/dist/core/increment/metadata-manager.d.ts.map +0 -1
  301. package/dist/core/increment/metadata-manager.js.map +0 -1
  302. package/dist/core/increment/metadata-validator.d.ts +0 -33
  303. package/dist/core/increment/metadata-validator.d.ts.map +0 -1
  304. package/dist/core/increment/metadata-validator.js +0 -147
  305. package/dist/core/increment/metadata-validator.js.map +0 -1
  306. package/dist/core/increment/status-commands.d.ts +0 -43
  307. package/dist/core/increment/status-commands.d.ts.map +0 -1
  308. package/dist/core/increment/status-commands.js +0 -277
  309. package/dist/core/increment/status-commands.js.map +0 -1
  310. package/dist/core/increment/types.d.ts +0 -88
  311. package/dist/core/increment/types.d.ts.map +0 -1
  312. package/dist/core/increment/types.js +0 -8
  313. package/dist/core/increment/types.js.map +0 -1
  314. package/dist/core/increment-status.d.ts +0 -72
  315. package/dist/core/increment-status.d.ts.map +0 -1
  316. package/dist/core/increment-status.js +0 -227
  317. package/dist/core/increment-status.js.map +0 -1
  318. package/dist/core/model-selector.d.ts +0 -57
  319. package/dist/core/model-selector.d.ts.map +0 -1
  320. package/dist/core/model-selector.js +0 -115
  321. package/dist/core/model-selector.js.map +0 -1
  322. package/dist/core/phase-detector.d.ts +0 -62
  323. package/dist/core/phase-detector.d.ts.map +0 -1
  324. package/dist/core/phase-detector.js +0 -229
  325. package/dist/core/phase-detector.js.map +0 -1
  326. package/dist/core/plugin-loader.d.ts +0 -131
  327. package/dist/core/plugin-loader.d.ts.map +0 -1
  328. package/dist/core/plugin-loader.js +0 -421
  329. package/dist/core/plugin-loader.js.map +0 -1
  330. package/dist/core/project-manager.d.ts +0 -127
  331. package/dist/core/project-manager.d.ts.map +0 -1
  332. package/dist/core/project-manager.js +0 -524
  333. package/dist/core/project-manager.js.map +0 -1
  334. package/dist/core/project-structure-detector.d.ts +0 -92
  335. package/dist/core/project-structure-detector.d.ts.map +0 -1
  336. package/dist/core/project-structure-detector.js +0 -289
  337. package/dist/core/project-structure-detector.js.map +0 -1
  338. package/dist/core/qa/qa-runner.d.ts +0 -16
  339. package/dist/core/qa/qa-runner.d.ts.map +0 -1
  340. package/dist/core/qa/qa-runner.js +0 -422
  341. package/dist/core/qa/qa-runner.js.map +0 -1
  342. package/dist/core/qa/quality-gate-decider.d.ts +0 -53
  343. package/dist/core/qa/quality-gate-decider.d.ts.map +0 -1
  344. package/dist/core/qa/quality-gate-decider.js +0 -268
  345. package/dist/core/qa/quality-gate-decider.js.map +0 -1
  346. package/dist/core/qa/risk-calculator.d.ts +0 -126
  347. package/dist/core/qa/risk-calculator.d.ts.map +0 -1
  348. package/dist/core/qa/risk-calculator.js +0 -247
  349. package/dist/core/qa/risk-calculator.js.map +0 -1
  350. package/dist/core/qa/types.d.ts +0 -315
  351. package/dist/core/qa/types.d.ts.map +0 -1
  352. package/dist/core/qa/types.js +0 -8
  353. package/dist/core/qa/types.js.map +0 -1
  354. package/dist/core/repo-structure/repo-structure-manager.d.ts +0 -82
  355. package/dist/core/repo-structure/repo-structure-manager.d.ts.map +0 -1
  356. package/dist/core/repo-structure/repo-structure-manager.js +0 -581
  357. package/dist/core/repo-structure/repo-structure-manager.js.map +0 -1
  358. package/dist/core/rfc-generator-v2.d.ts +0 -149
  359. package/dist/core/rfc-generator-v2.d.ts.map +0 -1
  360. package/dist/core/rfc-generator-v2.js +0 -399
  361. package/dist/core/rfc-generator-v2.js.map +0 -1
  362. package/dist/core/spec-task-mapper.d.ts +0 -71
  363. package/dist/core/spec-task-mapper.d.ts.map +0 -1
  364. package/dist/core/spec-task-mapper.js +0 -208
  365. package/dist/core/spec-task-mapper.js.map +0 -1
  366. package/dist/core/specs/spec-metadata-manager.d.ts +0 -70
  367. package/dist/core/specs/spec-metadata-manager.d.ts.map +0 -1
  368. package/dist/core/specs/spec-metadata-manager.js +0 -371
  369. package/dist/core/specs/spec-metadata-manager.js.map +0 -1
  370. package/dist/core/specs/spec-parser.d.ts +0 -66
  371. package/dist/core/specs/spec-parser.d.ts.map +0 -1
  372. package/dist/core/specs/spec-parser.js +0 -276
  373. package/dist/core/specs/spec-parser.js.map +0 -1
  374. package/dist/core/status-line/status-line-manager.d.ts +0 -62
  375. package/dist/core/status-line/status-line-manager.d.ts.map +0 -1
  376. package/dist/core/status-line/status-line-manager.js +0 -169
  377. package/dist/core/status-line/status-line-manager.js.map +0 -1
  378. package/dist/core/status-line/types.d.ts +0 -50
  379. package/dist/core/status-line/types.d.ts.map +0 -1
  380. package/dist/core/status-line/types.js +0 -17
  381. package/dist/core/status-line/types.js.map +0 -1
  382. package/dist/core/sync/bidirectional-engine.d.ts +0 -110
  383. package/dist/core/sync/bidirectional-engine.d.ts.map +0 -1
  384. package/dist/core/sync/bidirectional-engine.js +0 -356
  385. package/dist/core/sync/bidirectional-engine.js.map +0 -1
  386. package/dist/core/sync/folder-mapper.d.ts +0 -71
  387. package/dist/core/sync/folder-mapper.d.ts.map +0 -1
  388. package/dist/core/sync/folder-mapper.js +0 -203
  389. package/dist/core/sync/folder-mapper.js.map +0 -1
  390. package/dist/core/sync/profile-manager.d.ts +0 -72
  391. package/dist/core/sync/profile-manager.d.ts.map +0 -1
  392. package/dist/core/sync/profile-manager.js +0 -338
  393. package/dist/core/sync/profile-manager.js.map +0 -1
  394. package/dist/core/sync/profile-selector.d.ts +0 -52
  395. package/dist/core/sync/profile-selector.d.ts.map +0 -1
  396. package/dist/core/sync/profile-selector.js +0 -179
  397. package/dist/core/sync/profile-selector.js.map +0 -1
  398. package/dist/core/sync/profile-validator.d.ts +0 -52
  399. package/dist/core/sync/profile-validator.d.ts.map +0 -1
  400. package/dist/core/sync/profile-validator.js +0 -170
  401. package/dist/core/sync/profile-validator.js.map +0 -1
  402. package/dist/core/sync/project-context.d.ts +0 -81
  403. package/dist/core/sync/project-context.d.ts.map +0 -1
  404. package/dist/core/sync/project-context.js +0 -354
  405. package/dist/core/sync/project-context.js.map +0 -1
  406. package/dist/core/sync/rate-limiter.d.ts +0 -116
  407. package/dist/core/sync/rate-limiter.d.ts.map +0 -1
  408. package/dist/core/sync/rate-limiter.js +0 -308
  409. package/dist/core/sync/rate-limiter.js.map +0 -1
  410. package/dist/core/sync/time-range-selector.d.ts +0 -48
  411. package/dist/core/sync/time-range-selector.d.ts.map +0 -1
  412. package/dist/core/sync/time-range-selector.js +0 -224
  413. package/dist/core/sync/time-range-selector.js.map +0 -1
  414. package/dist/core/types/config.d.ts +0 -90
  415. package/dist/core/types/config.d.ts.map +0 -1
  416. package/dist/core/types/config.js +0 -44
  417. package/dist/core/types/config.js.map +0 -1
  418. package/dist/core/types/increment-metadata.d.ts +0 -120
  419. package/dist/core/types/increment-metadata.d.ts.map +0 -1
  420. package/dist/core/types/increment-metadata.js +0 -138
  421. package/dist/core/types/increment-metadata.js.map +0 -1
  422. package/dist/core/types/plugin.d.ts +0 -283
  423. package/dist/core/types/plugin.d.ts.map +0 -1
  424. package/dist/core/types/plugin.js +0 -49
  425. package/dist/core/types/plugin.js.map +0 -1
  426. package/dist/core/types/spec-metadata.d.ts +0 -229
  427. package/dist/core/types/spec-metadata.d.ts.map +0 -1
  428. package/dist/core/types/spec-metadata.js +0 -14
  429. package/dist/core/types/spec-metadata.js.map +0 -1
  430. package/dist/core/types/sync-profile.d.ts +0 -349
  431. package/dist/core/types/sync-profile.d.ts.map +0 -1
  432. package/dist/core/types/sync-profile.js +0 -79
  433. package/dist/core/types/sync-profile.js.map +0 -1
  434. package/dist/hooks/lib/git-diff-analyzer.d.ts +0 -89
  435. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  436. package/dist/hooks/lib/git-diff-analyzer.js +0 -226
  437. package/dist/hooks/lib/git-diff-analyzer.js.map +0 -1
  438. package/dist/hooks/lib/invoke-translator-skill.d.ts +0 -60
  439. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  440. package/dist/hooks/lib/invoke-translator-skill.js +0 -201
  441. package/dist/hooks/lib/invoke-translator-skill.js.map +0 -1
  442. package/dist/hooks/lib/prepare-reflection-context.d.ts +0 -42
  443. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  444. package/dist/hooks/lib/prepare-reflection-context.js +0 -123
  445. package/dist/hooks/lib/prepare-reflection-context.js.map +0 -1
  446. package/dist/hooks/lib/reflection-config-loader.d.ts +0 -45
  447. package/dist/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  448. package/dist/hooks/lib/reflection-config-loader.js +0 -132
  449. package/dist/hooks/lib/reflection-config-loader.js.map +0 -1
  450. package/dist/hooks/lib/reflection-parser.d.ts +0 -33
  451. package/dist/hooks/lib/reflection-parser.d.ts.map +0 -1
  452. package/dist/hooks/lib/reflection-parser.js +0 -419
  453. package/dist/hooks/lib/reflection-parser.js.map +0 -1
  454. package/dist/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  455. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  456. package/dist/hooks/lib/reflection-prompt-builder.js +0 -239
  457. package/dist/hooks/lib/reflection-prompt-builder.js.map +0 -1
  458. package/dist/hooks/lib/reflection-storage.d.ts +0 -64
  459. package/dist/hooks/lib/reflection-storage.d.ts.map +0 -1
  460. package/dist/hooks/lib/reflection-storage.js +0 -305
  461. package/dist/hooks/lib/reflection-storage.js.map +0 -1
  462. package/dist/hooks/lib/run-self-reflection.d.ts +0 -43
  463. package/dist/hooks/lib/run-self-reflection.d.ts.map +0 -1
  464. package/dist/hooks/lib/run-self-reflection.js +0 -203
  465. package/dist/hooks/lib/run-self-reflection.js.map +0 -1
  466. package/dist/hooks/lib/sync-living-docs.d.ts +0 -27
  467. package/dist/hooks/lib/sync-living-docs.d.ts.map +0 -1
  468. package/dist/hooks/lib/sync-living-docs.js +0 -116
  469. package/dist/hooks/lib/sync-living-docs.js.map +0 -1
  470. package/dist/hooks/lib/translate-file.d.ts +0 -59
  471. package/dist/hooks/lib/translate-file.d.ts.map +0 -1
  472. package/dist/hooks/lib/translate-file.js +0 -350
  473. package/dist/hooks/lib/translate-file.js.map +0 -1
  474. package/dist/hooks/lib/translate-living-docs.d.ts +0 -13
  475. package/dist/hooks/lib/translate-living-docs.d.ts.map +0 -1
  476. package/dist/hooks/lib/translate-living-docs.js +0 -175
  477. package/dist/hooks/lib/translate-living-docs.js.map +0 -1
  478. package/dist/hooks/lib/types/reflection-types.d.ts +0 -164
  479. package/dist/hooks/lib/types/reflection-types.d.ts.map +0 -1
  480. package/dist/hooks/lib/types/reflection-types.js +0 -73
  481. package/dist/hooks/lib/types/reflection-types.js.map +0 -1
  482. package/dist/hooks/lib/update-tasks-md.d.ts +0 -29
  483. package/dist/hooks/lib/update-tasks-md.d.ts.map +0 -1
  484. package/dist/hooks/lib/update-tasks-md.js +0 -203
  485. package/dist/hooks/lib/update-tasks-md.js.map +0 -1
  486. package/dist/integrations/ado/ado-client.d.ts +0 -127
  487. package/dist/integrations/ado/ado-client.d.ts.map +0 -1
  488. package/dist/integrations/ado/ado-client.js +0 -416
  489. package/dist/integrations/ado/ado-client.js.map +0 -1
  490. package/dist/integrations/jira/jira-client.d.ts +0 -139
  491. package/dist/integrations/jira/jira-client.d.ts.map +0 -1
  492. package/dist/integrations/jira/jira-client.js +0 -386
  493. package/dist/integrations/jira/jira-client.js.map +0 -1
  494. package/dist/integrations/jira/jira-incremental-mapper.d.ts +0 -75
  495. package/dist/integrations/jira/jira-incremental-mapper.d.ts.map +0 -1
  496. package/dist/integrations/jira/jira-incremental-mapper.js +0 -474
  497. package/dist/integrations/jira/jira-incremental-mapper.js.map +0 -1
  498. package/dist/integrations/jira/jira-mapper.d.ts +0 -105
  499. package/dist/integrations/jira/jira-mapper.d.ts.map +0 -1
  500. package/dist/integrations/jira/jira-mapper.js +0 -494
  501. package/dist/integrations/jira/jira-mapper.js.map +0 -1
  502. package/dist/metrics/calculators/change-failure-rate.d.ts +0 -22
  503. package/dist/metrics/calculators/change-failure-rate.d.ts.map +0 -1
  504. package/dist/metrics/calculators/change-failure-rate.js +0 -70
  505. package/dist/metrics/calculators/change-failure-rate.js.map +0 -1
  506. package/dist/metrics/calculators/deployment-frequency.d.ts +0 -20
  507. package/dist/metrics/calculators/deployment-frequency.d.ts.map +0 -1
  508. package/dist/metrics/calculators/deployment-frequency.js +0 -61
  509. package/dist/metrics/calculators/deployment-frequency.js.map +0 -1
  510. package/dist/metrics/calculators/lead-time.d.ts +0 -22
  511. package/dist/metrics/calculators/lead-time.d.ts.map +0 -1
  512. package/dist/metrics/calculators/lead-time.js +0 -82
  513. package/dist/metrics/calculators/lead-time.js.map +0 -1
  514. package/dist/metrics/calculators/mttr.d.ts +0 -21
  515. package/dist/metrics/calculators/mttr.d.ts.map +0 -1
  516. package/dist/metrics/calculators/mttr.js +0 -60
  517. package/dist/metrics/calculators/mttr.js.map +0 -1
  518. package/dist/metrics/dora-calculator.d.ts +0 -28
  519. package/dist/metrics/dora-calculator.d.ts.map +0 -1
  520. package/dist/metrics/dora-calculator.js +0 -117
  521. package/dist/metrics/dora-calculator.js.map +0 -1
  522. package/dist/metrics/github-client.d.ts +0 -51
  523. package/dist/metrics/github-client.d.ts.map +0 -1
  524. package/dist/metrics/github-client.js +0 -133
  525. package/dist/metrics/github-client.js.map +0 -1
  526. package/dist/metrics/report-generator.d.ts +0 -17
  527. package/dist/metrics/report-generator.d.ts.map +0 -1
  528. package/dist/metrics/report-generator.js +0 -403
  529. package/dist/metrics/report-generator.js.map +0 -1
  530. package/dist/metrics/types.d.ts +0 -112
  531. package/dist/metrics/types.d.ts.map +0 -1
  532. package/dist/metrics/types.js +0 -10
  533. package/dist/metrics/types.js.map +0 -1
  534. package/dist/metrics/utils/percentile.d.ts +0 -25
  535. package/dist/metrics/utils/percentile.d.ts.map +0 -1
  536. package/dist/metrics/utils/percentile.js +0 -46
  537. package/dist/metrics/utils/percentile.js.map +0 -1
  538. package/dist/metrics/utils/tier-classifier.d.ts +0 -61
  539. package/dist/metrics/utils/tier-classifier.d.ts.map +0 -1
  540. package/dist/metrics/utils/tier-classifier.js +0 -100
  541. package/dist/metrics/utils/tier-classifier.js.map +0 -1
  542. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +0 -94
  543. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +0 -1
  544. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +0 -219
  545. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +0 -1
  546. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +0 -40
  547. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +0 -1
  548. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +0 -370
  549. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +0 -1
  550. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts +0 -149
  551. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.d.ts.map +0 -1
  552. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js +0 -517
  553. package/dist/plugins/specweave-ado/lib/ado-multi-project-sync.js.map +0 -1
  554. package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts +0 -72
  555. package/dist/plugins/specweave-ado/lib/ado-project-detector.d.ts.map +0 -1
  556. package/dist/plugins/specweave-ado/lib/ado-project-detector.js +0 -416
  557. package/dist/plugins/specweave-ado/lib/ado-project-detector.js.map +0 -1
  558. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts +0 -99
  559. package/dist/plugins/specweave-ado/lib/conflict-resolver.d.ts.map +0 -1
  560. package/dist/plugins/specweave-ado/lib/conflict-resolver.js +0 -331
  561. package/dist/plugins/specweave-ado/lib/conflict-resolver.js.map +0 -1
  562. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +0 -42
  563. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +0 -1
  564. package/dist/plugins/specweave-ado/lib/project-selector.js +0 -211
  565. package/dist/plugins/specweave-ado/lib/project-selector.js.map +0 -1
  566. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +0 -54
  567. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +0 -1
  568. package/dist/plugins/specweave-github/lib/github-board-resolver.js +0 -122
  569. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +0 -1
  570. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +0 -29
  571. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +0 -1
  572. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +0 -268
  573. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +0 -1
  574. package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts +0 -126
  575. package/dist/plugins/specweave-github/lib/github-multi-project-sync.d.ts.map +0 -1
  576. package/dist/plugins/specweave-github/lib/github-multi-project-sync.js +0 -420
  577. package/dist/plugins/specweave-github/lib/github-multi-project-sync.js.map +0 -1
  578. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +0 -49
  579. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +0 -1
  580. package/dist/plugins/specweave-github/lib/repo-selector.js +0 -216
  581. package/dist/plugins/specweave-github/lib/repo-selector.js.map +0 -1
  582. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +0 -50
  583. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +0 -1
  584. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +0 -84
  585. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +0 -1
  586. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +0 -33
  587. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +0 -1
  588. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +0 -206
  589. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +0 -1
  590. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts +0 -95
  591. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.d.ts.map +0 -1
  592. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js +0 -301
  593. package/dist/plugins/specweave-jira/lib/jira-multi-project-sync.js.map +0 -1
  594. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +0 -42
  595. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +0 -1
  596. package/dist/plugins/specweave-jira/lib/project-selector.js +0 -216
  597. package/dist/plugins/specweave-jira/lib/project-selector.js.map +0 -1
  598. package/dist/project-mapper.js +0 -272
  599. package/dist/scripts/split-spec-by-project.js +0 -105
  600. package/dist/spec-splitter.js +0 -283
  601. package/dist/src/core/agent-model-manager.d.ts +0 -52
  602. package/dist/src/core/agent-model-manager.d.ts.map +0 -1
  603. package/dist/src/core/agent-model-manager.js +0 -120
  604. package/dist/src/core/agent-model-manager.js.map +0 -1
  605. package/dist/src/core/model-selector.d.ts +0 -57
  606. package/dist/src/core/model-selector.d.ts.map +0 -1
  607. package/dist/src/core/model-selector.js +0 -115
  608. package/dist/src/core/model-selector.js.map +0 -1
  609. package/dist/src/core/phase-detector.d.ts +0 -62
  610. package/dist/src/core/phase-detector.d.ts.map +0 -1
  611. package/dist/src/core/phase-detector.js +0 -229
  612. package/dist/src/core/phase-detector.js.map +0 -1
  613. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +0 -89
  614. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +0 -1
  615. package/dist/src/hooks/lib/git-diff-analyzer.js +0 -226
  616. package/dist/src/hooks/lib/git-diff-analyzer.js.map +0 -1
  617. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +0 -60
  618. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +0 -1
  619. package/dist/src/hooks/lib/invoke-translator-skill.js +0 -201
  620. package/dist/src/hooks/lib/invoke-translator-skill.js.map +0 -1
  621. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +0 -42
  622. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +0 -1
  623. package/dist/src/hooks/lib/prepare-reflection-context.js +0 -123
  624. package/dist/src/hooks/lib/prepare-reflection-context.js.map +0 -1
  625. package/dist/src/hooks/lib/reflection-config-loader.d.ts +0 -45
  626. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +0 -1
  627. package/dist/src/hooks/lib/reflection-config-loader.js +0 -132
  628. package/dist/src/hooks/lib/reflection-config-loader.js.map +0 -1
  629. package/dist/src/hooks/lib/reflection-parser.d.ts +0 -33
  630. package/dist/src/hooks/lib/reflection-parser.d.ts.map +0 -1
  631. package/dist/src/hooks/lib/reflection-parser.js +0 -419
  632. package/dist/src/hooks/lib/reflection-parser.js.map +0 -1
  633. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +0 -56
  634. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +0 -1
  635. package/dist/src/hooks/lib/reflection-prompt-builder.js +0 -239
  636. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +0 -1
  637. package/dist/src/hooks/lib/reflection-storage.d.ts +0 -64
  638. package/dist/src/hooks/lib/reflection-storage.d.ts.map +0 -1
  639. package/dist/src/hooks/lib/reflection-storage.js +0 -305
  640. package/dist/src/hooks/lib/reflection-storage.js.map +0 -1
  641. package/dist/src/hooks/lib/run-self-reflection.d.ts +0 -43
  642. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +0 -1
  643. package/dist/src/hooks/lib/run-self-reflection.js +0 -203
  644. package/dist/src/hooks/lib/run-self-reflection.js.map +0 -1
  645. package/dist/src/hooks/lib/sync-living-docs.d.ts +0 -27
  646. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +0 -1
  647. package/dist/src/hooks/lib/sync-living-docs.js +0 -116
  648. package/dist/src/hooks/lib/sync-living-docs.js.map +0 -1
  649. package/dist/src/hooks/lib/translate-file.d.ts +0 -59
  650. package/dist/src/hooks/lib/translate-file.d.ts.map +0 -1
  651. package/dist/src/hooks/lib/translate-file.js +0 -350
  652. package/dist/src/hooks/lib/translate-file.js.map +0 -1
  653. package/dist/src/hooks/lib/translate-living-docs.d.ts +0 -13
  654. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +0 -1
  655. package/dist/src/hooks/lib/translate-living-docs.js +0 -175
  656. package/dist/src/hooks/lib/translate-living-docs.js.map +0 -1
  657. package/dist/src/hooks/lib/types/reflection-types.d.ts +0 -164
  658. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +0 -1
  659. package/dist/src/hooks/lib/types/reflection-types.js +0 -73
  660. package/dist/src/hooks/lib/types/reflection-types.js.map +0 -1
  661. package/dist/src/hooks/lib/update-tasks-md.d.ts +0 -29
  662. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +0 -1
  663. package/dist/src/hooks/lib/update-tasks-md.js +0 -203
  664. package/dist/src/hooks/lib/update-tasks-md.js.map +0 -1
  665. package/dist/testing/test-generator.d.ts +0 -117
  666. package/dist/testing/test-generator.d.ts.map +0 -1
  667. package/dist/testing/test-generator.js +0 -370
  668. package/dist/testing/test-generator.js.map +0 -1
  669. package/dist/types/cost-tracking.d.ts +0 -43
  670. package/dist/types/cost-tracking.d.ts.map +0 -1
  671. package/dist/types/cost-tracking.js +0 -8
  672. package/dist/types/cost-tracking.js.map +0 -1
  673. package/dist/types/model-selection.d.ts +0 -53
  674. package/dist/types/model-selection.d.ts.map +0 -1
  675. package/dist/types/model-selection.js +0 -12
  676. package/dist/types/model-selection.js.map +0 -1
  677. package/dist/utils/agents-md-compiler.d.ts +0 -68
  678. package/dist/utils/agents-md-compiler.d.ts.map +0 -1
  679. package/dist/utils/agents-md-compiler.js +0 -420
  680. package/dist/utils/agents-md-compiler.js.map +0 -1
  681. package/dist/utils/auth-helpers.d.ts +0 -58
  682. package/dist/utils/auth-helpers.d.ts.map +0 -1
  683. package/dist/utils/auth-helpers.js +0 -108
  684. package/dist/utils/auth-helpers.js.map +0 -1
  685. package/dist/utils/auto-install.d.ts +0 -47
  686. package/dist/utils/auto-install.d.ts.map +0 -1
  687. package/dist/utils/auto-install.js +0 -211
  688. package/dist/utils/auto-install.js.map +0 -1
  689. package/dist/utils/claude-cli-detector.d.ts +0 -75
  690. package/dist/utils/claude-cli-detector.d.ts.map +0 -1
  691. package/dist/utils/claude-cli-detector.js +0 -285
  692. package/dist/utils/claude-cli-detector.js.map +0 -1
  693. package/dist/utils/cost-reporter.d.ts +0 -58
  694. package/dist/utils/cost-reporter.d.ts.map +0 -1
  695. package/dist/utils/cost-reporter.js +0 -224
  696. package/dist/utils/cost-reporter.js.map +0 -1
  697. package/dist/utils/docs-preview/config-generator.d.ts +0 -46
  698. package/dist/utils/docs-preview/config-generator.d.ts.map +0 -1
  699. package/dist/utils/docs-preview/config-generator.js +0 -377
  700. package/dist/utils/docs-preview/config-generator.js.map +0 -1
  701. package/dist/utils/docs-preview/docusaurus-setup.d.ts +0 -38
  702. package/dist/utils/docs-preview/docusaurus-setup.d.ts.map +0 -1
  703. package/dist/utils/docs-preview/docusaurus-setup.js +0 -177
  704. package/dist/utils/docs-preview/docusaurus-setup.js.map +0 -1
  705. package/dist/utils/docs-preview/index.d.ts +0 -7
  706. package/dist/utils/docs-preview/index.d.ts.map +0 -1
  707. package/dist/utils/docs-preview/index.js +0 -7
  708. package/dist/utils/docs-preview/index.js.map +0 -1
  709. package/dist/utils/docs-preview/package-installer.d.ts +0 -42
  710. package/dist/utils/docs-preview/package-installer.d.ts.map +0 -1
  711. package/dist/utils/docs-preview/package-installer.js +0 -182
  712. package/dist/utils/docs-preview/package-installer.js.map +0 -1
  713. package/dist/utils/docs-preview/server-manager.d.ts +0 -30
  714. package/dist/utils/docs-preview/server-manager.d.ts.map +0 -1
  715. package/dist/utils/docs-preview/server-manager.js +0 -212
  716. package/dist/utils/docs-preview/server-manager.js.map +0 -1
  717. package/dist/utils/docs-preview/sidebar-builder.d.ts +0 -32
  718. package/dist/utils/docs-preview/sidebar-builder.d.ts.map +0 -1
  719. package/dist/utils/docs-preview/sidebar-builder.js +0 -202
  720. package/dist/utils/docs-preview/sidebar-builder.js.map +0 -1
  721. package/dist/utils/docs-preview/types.d.ts +0 -57
  722. package/dist/utils/docs-preview/types.d.ts.map +0 -1
  723. package/dist/utils/docs-preview/types.js +0 -2
  724. package/dist/utils/docs-preview/types.js.map +0 -1
  725. package/dist/utils/env-file.d.ts +0 -88
  726. package/dist/utils/env-file.d.ts.map +0 -1
  727. package/dist/utils/env-file.js +0 -180
  728. package/dist/utils/env-file.js.map +0 -1
  729. package/dist/utils/env-multi-project-parser.d.ts +0 -220
  730. package/dist/utils/env-multi-project-parser.d.ts.map +0 -1
  731. package/dist/utils/env-multi-project-parser.js +0 -401
  732. package/dist/utils/env-multi-project-parser.js.map +0 -1
  733. package/dist/utils/esm-helpers.d.ts +0 -50
  734. package/dist/utils/esm-helpers.d.ts.map +0 -1
  735. package/dist/utils/esm-helpers.js +0 -57
  736. package/dist/utils/esm-helpers.js.map +0 -1
  737. package/dist/utils/execFileNoThrow.d.ts +0 -99
  738. package/dist/utils/execFileNoThrow.d.ts.map +0 -1
  739. package/dist/utils/execFileNoThrow.js +0 -137
  740. package/dist/utils/execFileNoThrow.js.map +0 -1
  741. package/dist/utils/external-resource-validator.d.ts +0 -102
  742. package/dist/utils/external-resource-validator.d.ts.map +0 -1
  743. package/dist/utils/external-resource-validator.js +0 -504
  744. package/dist/utils/external-resource-validator.js.map +0 -1
  745. package/dist/utils/generate-skills-index.d.ts +0 -24
  746. package/dist/utils/generate-skills-index.d.ts.map +0 -1
  747. package/dist/utils/generate-skills-index.js +0 -410
  748. package/dist/utils/generate-skills-index.js.map +0 -1
  749. package/dist/utils/git-detector.d.ts +0 -84
  750. package/dist/utils/git-detector.d.ts.map +0 -1
  751. package/dist/utils/git-detector.js +0 -233
  752. package/dist/utils/git-detector.js.map +0 -1
  753. package/dist/utils/git-utils.d.ts +0 -74
  754. package/dist/utils/git-utils.d.ts.map +0 -1
  755. package/dist/utils/git-utils.js +0 -272
  756. package/dist/utils/git-utils.js.map +0 -1
  757. package/dist/utils/model-selection.d.ts +0 -75
  758. package/dist/utils/model-selection.d.ts.map +0 -1
  759. package/dist/utils/model-selection.js +0 -204
  760. package/dist/utils/model-selection.js.map +0 -1
  761. package/dist/utils/plugin-validator.d.ts +0 -161
  762. package/dist/utils/plugin-validator.d.ts.map +0 -1
  763. package/dist/utils/plugin-validator.js +0 -558
  764. package/dist/utils/plugin-validator.js.map +0 -1
  765. package/dist/utils/pricing-constants.d.ts +0 -70
  766. package/dist/utils/pricing-constants.d.ts.map +0 -1
  767. package/dist/utils/pricing-constants.js +0 -71
  768. package/dist/utils/pricing-constants.js.map +0 -1
  769. package/dist/utils/project-detection.d.ts +0 -141
  770. package/dist/utils/project-detection.d.ts.map +0 -1
  771. package/dist/utils/project-detection.js +0 -321
  772. package/dist/utils/project-detection.js.map +0 -1
  773. package/dist/utils/project-mapper.d.ts +0 -92
  774. package/dist/utils/project-mapper.d.ts.map +0 -1
  775. package/dist/utils/project-mapper.js +0 -276
  776. package/dist/utils/project-mapper.js.map +0 -1
  777. package/dist/utils/spec-splitter.d.ts +0 -75
  778. package/dist/utils/spec-splitter.d.ts.map +0 -1
  779. package/dist/utils/spec-splitter.js +0 -332
  780. package/dist/utils/spec-splitter.js.map +0 -1
  781. package/dist/utils/string-utils.d.ts +0 -40
  782. package/dist/utils/string-utils.d.ts.map +0 -1
  783. package/dist/utils/string-utils.js +0 -58
  784. package/dist/utils/string-utils.js.map +0 -1
  785. package/dist/utils/translation.d.ts +0 -187
  786. package/dist/utils/translation.d.ts.map +0 -1
  787. package/dist/utils/translation.js +0 -414
  788. package/dist/utils/translation.js.map +0 -1
  789. /package/dist/{locales → src/locales}/de/.gitkeep +0 -0
  790. /package/dist/{locales → src/locales}/de/cli.json +0 -0
  791. /package/dist/{locales → src/locales}/en/cli.json +0 -0
  792. /package/dist/{locales → src/locales}/en/errors.json +0 -0
  793. /package/dist/{locales → src/locales}/en/templates.json +0 -0
  794. /package/dist/{locales → src/locales}/es/.gitkeep +0 -0
  795. /package/dist/{locales → src/locales}/es/cli.json +0 -0
  796. /package/dist/{locales → src/locales}/fr/.gitkeep +0 -0
  797. /package/dist/{locales → src/locales}/fr/cli.json +0 -0
  798. /package/dist/{locales → src/locales}/ja/.gitkeep +0 -0
  799. /package/dist/{locales → src/locales}/ja/cli.json +0 -0
  800. /package/dist/{locales → src/locales}/ko/.gitkeep +0 -0
  801. /package/dist/{locales → src/locales}/ko/cli.json +0 -0
  802. /package/dist/{locales → src/locales}/pt/.gitkeep +0 -0
  803. /package/dist/{locales → src/locales}/pt/cli.json +0 -0
  804. /package/dist/{locales → src/locales}/ru/.gitkeep +0 -0
  805. /package/dist/{locales → src/locales}/ru/cli.json +0 -0
  806. /package/dist/{locales → src/locales}/zh/.gitkeep +0 -0
  807. /package/dist/{locales → src/locales}/zh/cli.json +0 -0
@@ -1,274 +1,244 @@
1
- /**
2
- * Azure DevOps Spec Sync
3
- *
4
- * CORRECT ARCHITECTURE:
5
- * - Syncs .specweave/docs/internal/specs/spec-*.md ↔ ADO Features
6
- * - NOT increments ↔ ADO Work Items (that was wrong!)
7
- *
8
- * Mapping:
9
- * - Spec → ADO Feature
10
- * - User Story → ADO User Story (child of feature)
11
- * - Acceptance Criteria → Checklist in User Story description
12
- *
13
- * @module ado-spec-sync
14
- */
15
- import { SpecMetadataManager } from '../../../src/core/specs/spec-metadata-manager.js';
16
- import { SpecParser } from '../../../src/core/specs/spec-parser.js';
17
- import axios from 'axios';
18
- export class AdoSpecSync {
19
- constructor(config, projectRoot = process.cwd()) {
20
- this.specManager = new SpecMetadataManager(projectRoot);
21
- this.config = config;
22
- // Create ADO API client
23
- this.client = axios.create({
24
- baseURL: `https://dev.azure.com/${config.organization}/${config.project}/_apis`,
25
- auth: {
26
- username: '', // Empty for PAT auth
27
- password: config.personalAccessToken
28
- },
29
- headers: {
30
- 'Content-Type': 'application/json-patch+json',
31
- 'Accept': 'application/json'
32
- }
1
+ import { SpecMetadataManager } from "../../../src/core/specs/spec-metadata-manager.js";
2
+ import { SpecParser } from "../../../src/core/specs/spec-parser.js";
3
+ import axios from "axios";
4
+ class AdoSpecSync {
5
+ constructor(config, projectRoot = process.cwd()) {
6
+ this.specManager = new SpecMetadataManager(projectRoot);
7
+ this.config = config;
8
+ this.client = axios.create({
9
+ baseURL: `https://dev.azure.com/${config.organization}/${config.project}/_apis`,
10
+ auth: {
11
+ username: "",
12
+ // Empty for PAT auth
13
+ password: config.personalAccessToken
14
+ },
15
+ headers: {
16
+ "Content-Type": "application/json-patch+json",
17
+ "Accept": "application/json"
18
+ }
19
+ });
20
+ }
21
+ /**
22
+ * Sync spec to ADO Feature (CREATE or UPDATE)
23
+ */
24
+ async syncSpecToAdo(specId) {
25
+ console.log(`
26
+ \u{1F504} Syncing spec ${specId} to ADO Feature...`);
27
+ try {
28
+ const spec = await this.specManager.loadSpec(specId);
29
+ if (!spec) {
30
+ return {
31
+ success: false,
32
+ specId,
33
+ provider: "ado",
34
+ error: `Spec ${specId} not found`
35
+ };
36
+ }
37
+ const existingLink = spec.metadata.externalLinks?.ado;
38
+ let feature;
39
+ if (existingLink?.featureId) {
40
+ console.log(` Found existing ADO Feature #${existingLink.featureId}`);
41
+ feature = await this.updateAdoFeature(existingLink.featureId, spec);
42
+ } else {
43
+ console.log(" Creating new ADO Feature...");
44
+ feature = await this.createAdoFeature(spec);
45
+ await this.specManager.linkToExternal(specId, "ado", {
46
+ id: feature.id,
47
+ url: feature.url,
48
+ organization: this.config.organization,
49
+ project: this.config.project
33
50
  });
51
+ }
52
+ const changes = await this.syncUserStories(feature.id, spec);
53
+ console.log("\u2705 Sync complete!");
54
+ return {
55
+ success: true,
56
+ specId,
57
+ provider: "ado",
58
+ externalId: feature.id.toString(),
59
+ url: feature.url,
60
+ changes
61
+ };
62
+ } catch (error) {
63
+ console.error("\u274C Error syncing to ADO:", error);
64
+ return {
65
+ success: false,
66
+ specId,
67
+ provider: "ado",
68
+ error: error instanceof Error ? error.message : "Unknown error"
69
+ };
34
70
  }
35
- /**
36
- * Sync spec to ADO Feature (CREATE or UPDATE)
37
- */
38
- async syncSpecToAdo(specId) {
39
- console.log(`\n🔄 Syncing spec ${specId} to ADO Feature...`);
40
- try {
41
- // 1. Load spec
42
- const spec = await this.specManager.loadSpec(specId);
43
- if (!spec) {
44
- return {
45
- success: false,
46
- specId,
47
- provider: 'ado',
48
- error: `Spec ${specId} not found`
49
- };
50
- }
51
- // 2. Check if spec already linked to ADO Feature
52
- const existingLink = spec.metadata.externalLinks?.ado;
53
- let feature;
54
- if (existingLink?.featureId) {
55
- // UPDATE existing feature
56
- console.log(` Found existing ADO Feature #${existingLink.featureId}`);
57
- feature = await this.updateAdoFeature(existingLink.featureId, spec);
58
- }
59
- else {
60
- // CREATE new feature
61
- console.log(' Creating new ADO Feature...');
62
- feature = await this.createAdoFeature(spec);
63
- // Link spec to feature
64
- await this.specManager.linkToExternal(specId, 'ado', {
65
- id: feature.id,
66
- url: feature.url,
67
- organization: this.config.organization,
68
- project: this.config.project
69
- });
70
- }
71
- // 3. Sync user stories as ADO User Stories
72
- const changes = await this.syncUserStories(feature.id, spec);
73
- console.log('✅ Sync complete!');
74
- return {
75
- success: true,
76
- specId,
77
- provider: 'ado',
78
- externalId: feature.id.toString(),
79
- url: feature.url,
80
- changes
81
- };
82
- }
83
- catch (error) {
84
- console.error('❌ Error syncing to ADO:', error);
85
- return {
86
- success: false,
87
- specId,
88
- provider: 'ado',
89
- error: error instanceof Error ? error.message : 'Unknown error'
90
- };
91
- }
92
- }
93
- /**
94
- * Sync FROM ADO Feature to spec (bidirectional)
95
- */
96
- async syncFromAdo(specId) {
97
- console.log(`\n🔄 Syncing FROM ADO to spec ${specId}...`);
98
- try {
99
- // 1. Load spec
100
- const spec = await this.specManager.loadSpec(specId);
101
- if (!spec) {
102
- return {
103
- success: false,
104
- specId,
105
- provider: 'ado',
106
- error: `Spec ${specId} not found`
107
- };
108
- }
109
- // 2. Get ADO Feature link
110
- const adoLink = spec.metadata.externalLinks?.ado;
111
- if (!adoLink?.featureId) {
112
- return {
113
- success: false,
114
- specId,
115
- provider: 'ado',
116
- error: 'Spec not linked to ADO Feature'
117
- };
118
- }
119
- // 3. Fetch ADO Feature state
120
- const feature = await this.fetchAdoFeature(adoLink.featureId);
121
- // 4. Detect conflicts
122
- const conflicts = await this.detectConflicts(spec, feature);
123
- if (conflicts.length === 0) {
124
- console.log('✅ No conflicts - spec and ADO in sync');
125
- return {
126
- success: true,
127
- specId,
128
- provider: 'ado',
129
- externalId: feature.id.toString(),
130
- url: feature.url
131
- };
132
- }
133
- console.log(`⚠️ Detected ${conflicts.length} conflict(s)`);
134
- // 5. Resolve conflicts (ADO wins by default for now)
135
- await this.resolveConflicts(spec, conflicts);
136
- console.log('✅ Sync FROM ADO complete!');
137
- return {
138
- success: true,
139
- specId,
140
- provider: 'ado',
141
- externalId: feature.id.toString(),
142
- url: feature.url,
143
- conflicts
144
- };
145
- }
146
- catch (error) {
147
- console.error('❌ Error syncing FROM ADO:', error);
148
- return {
149
- success: false,
150
- specId,
151
- provider: 'ado',
152
- error: error instanceof Error ? error.message : 'Unknown error'
153
- };
154
- }
155
- }
156
- /**
157
- * Create new ADO Feature for spec
158
- */
159
- async createAdoFeature(spec) {
160
- const featureTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
161
- const featureDescription = this.generateFeatureDescription(spec);
162
- const tags = [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`].join('; ');
163
- const payload = [
164
- {
165
- op: 'add',
166
- path: '/fields/System.Title',
167
- value: featureTitle
168
- },
169
- {
170
- op: 'add',
171
- path: '/fields/System.Description',
172
- value: featureDescription
173
- },
174
- {
175
- op: 'add',
176
- path: '/fields/System.WorkItemType',
177
- value: 'Feature'
178
- },
179
- {
180
- op: 'add',
181
- path: '/fields/System.Tags',
182
- value: tags
183
- }
184
- ];
185
- const response = await this.client.post('/wit/workitems/$Feature?api-version=7.0', payload);
186
- const featureData = response.data;
187
- console.log(` ✅ Created ADO Feature #${featureData.id}: ${featureData._links.html.href}`);
71
+ }
72
+ /**
73
+ * Sync FROM ADO Feature to spec (bidirectional)
74
+ */
75
+ async syncFromAdo(specId) {
76
+ console.log(`
77
+ \u{1F504} Syncing FROM ADO to spec ${specId}...`);
78
+ try {
79
+ const spec = await this.specManager.loadSpec(specId);
80
+ if (!spec) {
188
81
  return {
189
- id: featureData.id,
190
- url: featureData._links.html.href,
191
- fields: featureData.fields
82
+ success: false,
83
+ specId,
84
+ provider: "ado",
85
+ error: `Spec ${specId} not found`
192
86
  };
193
- }
194
- /**
195
- * Update existing ADO Feature
196
- */
197
- async updateAdoFeature(featureId, spec) {
198
- const featureTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
199
- const featureDescription = this.generateFeatureDescription(spec);
200
- const payload = [
201
- {
202
- op: 'replace',
203
- path: '/fields/System.Title',
204
- value: featureTitle
205
- },
206
- {
207
- op: 'replace',
208
- path: '/fields/System.Description',
209
- value: featureDescription
210
- }
211
- ];
212
- const response = await this.client.patch(`/wit/workitems/${featureId}?api-version=7.0`, payload);
213
- const featureData = response.data;
214
- console.log(` ✅ Updated ADO Feature #${featureId}`);
87
+ }
88
+ const adoLink = spec.metadata.externalLinks?.ado;
89
+ if (!adoLink?.featureId) {
90
+ return {
91
+ success: false,
92
+ specId,
93
+ provider: "ado",
94
+ error: "Spec not linked to ADO Feature"
95
+ };
96
+ }
97
+ const feature = await this.fetchAdoFeature(adoLink.featureId);
98
+ const conflicts = await this.detectConflicts(spec, feature);
99
+ if (conflicts.length === 0) {
100
+ console.log("\u2705 No conflicts - spec and ADO in sync");
215
101
  return {
216
- id: featureData.id,
217
- url: featureData._links.html.href,
218
- fields: featureData.fields
102
+ success: true,
103
+ specId,
104
+ provider: "ado",
105
+ externalId: feature.id.toString(),
106
+ url: feature.url
219
107
  };
108
+ }
109
+ console.log(`\u26A0\uFE0F Detected ${conflicts.length} conflict(s)`);
110
+ await this.resolveConflicts(spec, conflicts);
111
+ console.log("\u2705 Sync FROM ADO complete!");
112
+ return {
113
+ success: true,
114
+ specId,
115
+ provider: "ado",
116
+ externalId: feature.id.toString(),
117
+ url: feature.url,
118
+ conflicts
119
+ };
120
+ } catch (error) {
121
+ console.error("\u274C Error syncing FROM ADO:", error);
122
+ return {
123
+ success: false,
124
+ specId,
125
+ provider: "ado",
126
+ error: error instanceof Error ? error.message : "Unknown error"
127
+ };
220
128
  }
221
- /**
222
- * Sync user stories as ADO User Stories
223
- */
224
- async syncUserStories(featureId, spec) {
225
- const created = [];
226
- const updated = [];
227
- const deleted = [];
228
- if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
229
- console.log(' ℹ️ No user stories to sync');
230
- return { created, updated, deleted };
231
- }
232
- console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
233
- for (const us of spec.metadata.userStories) {
234
- // Create or update ADO User Story for each user story
235
- const storyTitle = `[${us.id}] ${us.title}`;
236
- const storyDescription = this.generateStoryDescription(us);
237
- // Check if story already exists (by searching for US-ID in title)
238
- const existingStory = await this.findStoryByTitle(us.id);
239
- if (existingStory) {
240
- // UPDATE existing story
241
- await this.updateStory(existingStory.id, {
242
- title: storyTitle,
243
- description: storyDescription,
244
- state: us.status === 'done' ? 'Closed' : us.status === 'in-progress' ? 'Active' : 'New'
245
- });
246
- updated.push(us.id);
247
- console.log(` ✅ Updated ${us.id}`);
248
- }
249
- else {
250
- // CREATE new story
251
- const newStory = await this.createStory({
252
- title: storyTitle,
253
- description: storyDescription,
254
- parentId: featureId,
255
- tags: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`].join('; ')
256
- });
257
- created.push(us.id);
258
- console.log(` ✅ Created ${us.id} → User Story #${newStory.id}`);
259
- }
260
- }
261
- return { created, updated, deleted };
129
+ }
130
+ /**
131
+ * Create new ADO Feature for spec
132
+ */
133
+ async createAdoFeature(spec) {
134
+ const featureTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
135
+ const featureDescription = this.generateFeatureDescription(spec);
136
+ const tags = [`spec:${spec.metadata.id}`, `priority:${spec.metadata.priority}`].join("; ");
137
+ const payload = [
138
+ {
139
+ op: "add",
140
+ path: "/fields/System.Title",
141
+ value: featureTitle
142
+ },
143
+ {
144
+ op: "add",
145
+ path: "/fields/System.Description",
146
+ value: featureDescription
147
+ },
148
+ {
149
+ op: "add",
150
+ path: "/fields/System.WorkItemType",
151
+ value: "Feature"
152
+ },
153
+ {
154
+ op: "add",
155
+ path: "/fields/System.Tags",
156
+ value: tags
157
+ }
158
+ ];
159
+ const response = await this.client.post("/wit/workitems/$Feature?api-version=7.0", payload);
160
+ const featureData = response.data;
161
+ console.log(` \u2705 Created ADO Feature #${featureData.id}: ${featureData._links.html.href}`);
162
+ return {
163
+ id: featureData.id,
164
+ url: featureData._links.html.href,
165
+ fields: featureData.fields
166
+ };
167
+ }
168
+ /**
169
+ * Update existing ADO Feature
170
+ */
171
+ async updateAdoFeature(featureId, spec) {
172
+ const featureTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
173
+ const featureDescription = this.generateFeatureDescription(spec);
174
+ const payload = [
175
+ {
176
+ op: "replace",
177
+ path: "/fields/System.Title",
178
+ value: featureTitle
179
+ },
180
+ {
181
+ op: "replace",
182
+ path: "/fields/System.Description",
183
+ value: featureDescription
184
+ }
185
+ ];
186
+ const response = await this.client.patch(
187
+ `/wit/workitems/${featureId}?api-version=7.0`,
188
+ payload
189
+ );
190
+ const featureData = response.data;
191
+ console.log(` \u2705 Updated ADO Feature #${featureId}`);
192
+ return {
193
+ id: featureData.id,
194
+ url: featureData._links.html.href,
195
+ fields: featureData.fields
196
+ };
197
+ }
198
+ /**
199
+ * Sync user stories as ADO User Stories
200
+ */
201
+ async syncUserStories(featureId, spec) {
202
+ const created = [];
203
+ const updated = [];
204
+ const deleted = [];
205
+ if (!spec.metadata.userStories || spec.metadata.userStories.length === 0) {
206
+ console.log(" \u2139\uFE0F No user stories to sync");
207
+ return { created, updated, deleted };
208
+ }
209
+ console.log(` Syncing ${spec.metadata.userStories.length} user stories...`);
210
+ for (const us of spec.metadata.userStories) {
211
+ const storyTitle = `[${us.id}] ${us.title}`;
212
+ const storyDescription = this.generateStoryDescription(us);
213
+ const existingStory = await this.findStoryByTitle(us.id);
214
+ if (existingStory) {
215
+ await this.updateStory(existingStory.id, {
216
+ title: storyTitle,
217
+ description: storyDescription,
218
+ state: us.status === "done" ? "Closed" : us.status === "in-progress" ? "Active" : "New"
219
+ });
220
+ updated.push(us.id);
221
+ console.log(` \u2705 Updated ${us.id}`);
222
+ } else {
223
+ const newStory = await this.createStory({
224
+ title: storyTitle,
225
+ description: storyDescription,
226
+ parentId: featureId,
227
+ tags: [`user-story`, `spec:${spec.metadata.id}`, `priority:${us.priority}`].join("; ")
228
+ });
229
+ created.push(us.id);
230
+ console.log(` \u2705 Created ${us.id} \u2192 User Story #${newStory.id}`);
231
+ }
262
232
  }
263
- /**
264
- * Generate feature description from spec
265
- */
266
- generateFeatureDescription(spec) {
267
- const progress = spec.metadata.progress;
268
- const progressText = progress
269
- ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)`
270
- : '**Progress**: N/A';
271
- return `
233
+ return { created, updated, deleted };
234
+ }
235
+ /**
236
+ * Generate feature description from spec
237
+ */
238
+ generateFeatureDescription(spec) {
239
+ const progress = spec.metadata.progress;
240
+ const progressText = progress ? `**Progress**: ${progress.percentComplete}% (${progress.completedUserStories}/${progress.totalUserStories} user stories)` : "**Progress**: N/A";
241
+ return `
272
242
  <h1>${spec.metadata.title}</h1>
273
243
 
274
244
  <p><strong>Spec ID</strong>: ${spec.metadata.id}</p>
@@ -278,7 +248,7 @@ export class AdoSpecSync {
278
248
 
279
249
  <hr>
280
250
 
281
- ${SpecParser.extractOverview(spec.markdown).replace(/\n/g, '<br>')}
251
+ ${SpecParser.extractOverview(spec.markdown).replace(/\n/g, "<br>")}
282
252
 
283
253
  <hr>
284
254
 
@@ -288,18 +258,16 @@ ${SpecParser.extractOverview(spec.markdown).replace(/\n/g, '<br>')}
288
258
 
289
259
  <hr>
290
260
 
291
- <p>🤖 <strong>Auto-synced from SpecWeave</strong><br>
292
- Last updated: ${new Date().toISOString()}</p>
261
+ <p>\u{1F916} <strong>Auto-synced from SpecWeave</strong><br>
262
+ Last updated: ${(/* @__PURE__ */ new Date()).toISOString()}</p>
293
263
  `.trim();
294
- }
295
- /**
296
- * Generate story description from user story
297
- */
298
- generateStoryDescription(us) {
299
- const acList = us.acceptanceCriteria
300
- .map(ac => `<li>${ac.status === 'done' ? '☑' : '☐'} ${ac.description}</li>`)
301
- .join('\n');
302
- return `
264
+ }
265
+ /**
266
+ * Generate story description from user story
267
+ */
268
+ generateStoryDescription(us) {
269
+ const acList = us.acceptanceCriteria.map((ac) => `<li>${ac.status === "done" ? "\u2611" : "\u2610"} ${ac.description}</li>`).join("\n");
270
+ return `
303
271
  <h2>User Story</h2>
304
272
 
305
273
  <p>${us.title}</p>
@@ -315,157 +283,155 @@ ${acList}
315
283
  <p><strong>Priority</strong>: ${us.priority}</p>
316
284
  <p><strong>Status</strong>: ${us.status}</p>
317
285
 
318
- <p>🤖 <strong>Auto-synced from SpecWeave</strong></p>
286
+ <p>\u{1F916} <strong>Auto-synced from SpecWeave</strong></p>
319
287
  `.trim();
288
+ }
289
+ /**
290
+ * Detect conflicts between spec and ADO
291
+ */
292
+ async detectConflicts(spec, feature) {
293
+ const conflicts = [];
294
+ const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
295
+ if (feature.fields["System.Title"] !== expectedTitle) {
296
+ conflicts.push({
297
+ type: "metadata",
298
+ field: "title",
299
+ localValue: spec.metadata.title,
300
+ remoteValue: feature.fields["System.Title"],
301
+ resolution: "remote-wins",
302
+ description: "Feature title differs from spec title"
303
+ });
320
304
  }
321
- /**
322
- * Detect conflicts between spec and ADO
323
- */
324
- async detectConflicts(spec, feature) {
325
- const conflicts = [];
326
- // Compare feature title
327
- const expectedTitle = `[${spec.metadata.id.toUpperCase()}] ${spec.metadata.title}`;
328
- if (feature.fields['System.Title'] !== expectedTitle) {
329
- conflicts.push({
330
- type: 'metadata',
331
- field: 'title',
332
- localValue: spec.metadata.title,
333
- remoteValue: feature.fields['System.Title'],
334
- resolution: 'remote-wins',
335
- description: 'Feature title differs from spec title'
336
- });
337
- }
338
- // TODO: Compare user stories and their statuses
339
- return conflicts;
340
- }
341
- /**
342
- * Resolve conflicts
343
- */
344
- async resolveConflicts(spec, conflicts) {
345
- for (const conflict of conflicts) {
346
- if (conflict.resolution === 'remote-wins') {
347
- console.log(` 🔄 Resolving: ${conflict.description} (ADO wins)`);
348
- // Update spec metadata from ADO
349
- if (conflict.field === 'title') {
350
- await this.specManager.saveMetadata(spec.metadata.id, {
351
- title: conflict.remoteValue
352
- });
353
- }
354
- }
305
+ return conflicts;
306
+ }
307
+ /**
308
+ * Resolve conflicts
309
+ */
310
+ async resolveConflicts(spec, conflicts) {
311
+ for (const conflict of conflicts) {
312
+ if (conflict.resolution === "remote-wins") {
313
+ console.log(` \u{1F504} Resolving: ${conflict.description} (ADO wins)`);
314
+ if (conflict.field === "title") {
315
+ await this.specManager.saveMetadata(spec.metadata.id, {
316
+ title: conflict.remoteValue
317
+ });
355
318
  }
319
+ }
356
320
  }
357
- /**
358
- * Fetch ADO Feature details
359
- */
360
- async fetchAdoFeature(featureId) {
361
- const response = await this.client.get(`/wit/workitems/${featureId}?api-version=7.0`);
362
- const featureData = response.data;
363
- return {
364
- id: featureData.id,
365
- url: featureData._links.html.href,
366
- fields: featureData.fields
367
- };
368
- }
369
- /**
370
- * Find story by title pattern
371
- */
372
- async findStoryByTitle(usId) {
373
- const wiql = `
321
+ }
322
+ /**
323
+ * Fetch ADO Feature details
324
+ */
325
+ async fetchAdoFeature(featureId) {
326
+ const response = await this.client.get(`/wit/workitems/${featureId}?api-version=7.0`);
327
+ const featureData = response.data;
328
+ return {
329
+ id: featureData.id,
330
+ url: featureData._links.html.href,
331
+ fields: featureData.fields
332
+ };
333
+ }
334
+ /**
335
+ * Find story by title pattern
336
+ */
337
+ async findStoryByTitle(usId) {
338
+ const wiql = `
374
339
  SELECT [System.Id], [System.Title], [System.Description], [System.State]
375
340
  FROM WorkItems
376
341
  WHERE [System.TeamProject] = '${this.config.project}'
377
342
  AND [System.WorkItemType] = 'User Story'
378
343
  AND [System.Title] CONTAINS '[${usId}]'
379
344
  `;
380
- const response = await this.client.post('/wit/wiql?api-version=7.0', {
381
- query: wiql
382
- });
383
- const workItems = response.data.workItems;
384
- if (workItems.length === 0) {
385
- return null;
345
+ const response = await this.client.post("/wit/wiql?api-version=7.0", {
346
+ query: wiql
347
+ });
348
+ const workItems = response.data.workItems;
349
+ if (workItems.length === 0) {
350
+ return null;
351
+ }
352
+ const workItemId = workItems[0].id;
353
+ const detailsResponse = await this.client.get(`/wit/workitems/${workItemId}?api-version=7.0`);
354
+ const storyData = detailsResponse.data;
355
+ return {
356
+ id: storyData.id,
357
+ url: storyData._links.html.href,
358
+ fields: storyData.fields
359
+ };
360
+ }
361
+ /**
362
+ * Create ADO User Story
363
+ */
364
+ async createStory(story) {
365
+ const payload = [
366
+ {
367
+ op: "add",
368
+ path: "/fields/System.Title",
369
+ value: story.title
370
+ },
371
+ {
372
+ op: "add",
373
+ path: "/fields/System.Description",
374
+ value: story.description
375
+ },
376
+ {
377
+ op: "add",
378
+ path: "/fields/System.WorkItemType",
379
+ value: "User Story"
380
+ },
381
+ {
382
+ op: "add",
383
+ path: "/fields/System.Tags",
384
+ value: story.tags
385
+ },
386
+ {
387
+ op: "add",
388
+ path: "/relations/-",
389
+ value: {
390
+ rel: "System.LinkTypes.Hierarchy-Reverse",
391
+ url: `https://dev.azure.com/${this.config.organization}/${this.config.project}/_apis/wit/workitems/${story.parentId}`,
392
+ attributes: {
393
+ name: "Parent"
394
+ }
386
395
  }
387
- // Fetch full work item details
388
- const workItemId = workItems[0].id;
389
- const detailsResponse = await this.client.get(`/wit/workitems/${workItemId}?api-version=7.0`);
390
- const storyData = detailsResponse.data;
391
- return {
392
- id: storyData.id,
393
- url: storyData._links.html.href,
394
- fields: storyData.fields
395
- };
396
+ }
397
+ ];
398
+ const response = await this.client.post("/wit/workitems/$User%20Story?api-version=7.0", payload);
399
+ const storyData = response.data;
400
+ return {
401
+ id: storyData.id,
402
+ url: storyData._links.html.href,
403
+ fields: storyData.fields
404
+ };
405
+ }
406
+ /**
407
+ * Update ADO User Story
408
+ */
409
+ async updateStory(storyId, updates) {
410
+ const payload = [];
411
+ if (updates.title) {
412
+ payload.push({
413
+ op: "replace",
414
+ path: "/fields/System.Title",
415
+ value: updates.title
416
+ });
396
417
  }
397
- /**
398
- * Create ADO User Story
399
- */
400
- async createStory(story) {
401
- const payload = [
402
- {
403
- op: 'add',
404
- path: '/fields/System.Title',
405
- value: story.title
406
- },
407
- {
408
- op: 'add',
409
- path: '/fields/System.Description',
410
- value: story.description
411
- },
412
- {
413
- op: 'add',
414
- path: '/fields/System.WorkItemType',
415
- value: 'User Story'
416
- },
417
- {
418
- op: 'add',
419
- path: '/fields/System.Tags',
420
- value: story.tags
421
- },
422
- {
423
- op: 'add',
424
- path: '/relations/-',
425
- value: {
426
- rel: 'System.LinkTypes.Hierarchy-Reverse',
427
- url: `https://dev.azure.com/${this.config.organization}/${this.config.project}/_apis/wit/workitems/${story.parentId}`,
428
- attributes: {
429
- name: 'Parent'
430
- }
431
- }
432
- }
433
- ];
434
- const response = await this.client.post('/wit/workitems/$User%20Story?api-version=7.0', payload);
435
- const storyData = response.data;
436
- return {
437
- id: storyData.id,
438
- url: storyData._links.html.href,
439
- fields: storyData.fields
440
- };
418
+ if (updates.description) {
419
+ payload.push({
420
+ op: "replace",
421
+ path: "/fields/System.Description",
422
+ value: updates.description
423
+ });
441
424
  }
442
- /**
443
- * Update ADO User Story
444
- */
445
- async updateStory(storyId, updates) {
446
- const payload = [];
447
- if (updates.title) {
448
- payload.push({
449
- op: 'replace',
450
- path: '/fields/System.Title',
451
- value: updates.title
452
- });
453
- }
454
- if (updates.description) {
455
- payload.push({
456
- op: 'replace',
457
- path: '/fields/System.Description',
458
- value: updates.description
459
- });
460
- }
461
- if (updates.state) {
462
- payload.push({
463
- op: 'replace',
464
- path: '/fields/System.State',
465
- value: updates.state
466
- });
467
- }
468
- await this.client.patch(`/wit/workitems/${storyId}?api-version=7.0`, payload);
425
+ if (updates.state) {
426
+ payload.push({
427
+ op: "replace",
428
+ path: "/fields/System.State",
429
+ value: updates.state
430
+ });
469
431
  }
432
+ await this.client.patch(`/wit/workitems/${storyId}?api-version=7.0`, payload);
433
+ }
470
434
  }
471
- //# sourceMappingURL=ado-spec-sync.js.map
435
+ export {
436
+ AdoSpecSync
437
+ };