specweave 0.13.6 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (826) hide show
  1. package/CLAUDE.md +189 -0
  2. package/README.md +58 -9
  3. package/bin/specweave.js +65 -0
  4. package/dist/cli/commands/init.js +1 -1
  5. package/dist/cli/commands/init.js.map +1 -1
  6. package/dist/cli/commands/migrate-to-profiles.d.ts.map +1 -1
  7. package/dist/cli/commands/migrate-to-profiles.js +0 -2
  8. package/dist/cli/commands/migrate-to-profiles.js.map +1 -1
  9. package/dist/cli/commands/status-line.d.ts +14 -0
  10. package/dist/cli/commands/status-line.d.ts.map +1 -0
  11. package/dist/cli/commands/status-line.js +75 -0
  12. package/dist/cli/commands/status-line.js.map +1 -0
  13. package/dist/core/agent-model-manager.d.ts +52 -0
  14. package/dist/core/agent-model-manager.d.ts.map +1 -0
  15. package/dist/core/agent-model-manager.js +120 -0
  16. package/dist/core/agent-model-manager.js.map +1 -0
  17. package/dist/core/model-selector.d.ts +57 -0
  18. package/dist/core/model-selector.d.ts.map +1 -0
  19. package/dist/core/model-selector.js +115 -0
  20. package/dist/core/model-selector.js.map +1 -0
  21. package/dist/core/phase-detector.d.ts +62 -0
  22. package/dist/core/phase-detector.d.ts.map +1 -0
  23. package/dist/core/phase-detector.js +229 -0
  24. package/dist/core/phase-detector.js.map +1 -0
  25. package/dist/core/status-line/status-line-manager.d.ts +62 -0
  26. package/dist/core/status-line/status-line-manager.d.ts.map +1 -0
  27. package/dist/core/status-line/status-line-manager.js +169 -0
  28. package/dist/core/status-line/status-line-manager.js.map +1 -0
  29. package/dist/core/status-line/types.d.ts +50 -0
  30. package/dist/core/status-line/types.d.ts.map +1 -0
  31. package/dist/core/status-line/types.js +17 -0
  32. package/dist/core/status-line/types.js.map +1 -0
  33. package/dist/core/sync/folder-mapper.d.ts.map +1 -1
  34. package/dist/core/sync/folder-mapper.js +70 -35
  35. package/dist/core/sync/folder-mapper.js.map +1 -1
  36. package/dist/core/sync/profile-validator.d.ts.map +1 -1
  37. package/dist/core/sync/profile-validator.js +35 -90
  38. package/dist/core/sync/profile-validator.js.map +1 -1
  39. package/dist/core/types/sync-profile.d.ts +101 -155
  40. package/dist/core/types/sync-profile.d.ts.map +1 -1
  41. package/dist/core/types/sync-profile.js +46 -22
  42. package/dist/core/types/sync-profile.js.map +1 -1
  43. package/dist/hooks/lib/git-diff-analyzer.d.ts +89 -0
  44. package/dist/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
  45. package/dist/hooks/lib/git-diff-analyzer.js +226 -0
  46. package/dist/hooks/lib/git-diff-analyzer.js.map +1 -0
  47. package/dist/hooks/lib/invoke-translator-skill.d.ts +60 -0
  48. package/dist/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
  49. package/dist/hooks/lib/invoke-translator-skill.js +201 -0
  50. package/dist/hooks/lib/invoke-translator-skill.js.map +1 -0
  51. package/dist/hooks/lib/prepare-reflection-context.d.ts +42 -0
  52. package/dist/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
  53. package/dist/hooks/lib/prepare-reflection-context.js +123 -0
  54. package/dist/hooks/lib/prepare-reflection-context.js.map +1 -0
  55. package/dist/hooks/lib/reflection-config-loader.d.ts +45 -0
  56. package/dist/hooks/lib/reflection-config-loader.d.ts.map +1 -0
  57. package/dist/hooks/lib/reflection-config-loader.js +132 -0
  58. package/dist/hooks/lib/reflection-config-loader.js.map +1 -0
  59. package/dist/hooks/lib/reflection-parser.d.ts +33 -0
  60. package/dist/hooks/lib/reflection-parser.d.ts.map +1 -0
  61. package/dist/hooks/lib/reflection-parser.js +419 -0
  62. package/dist/hooks/lib/reflection-parser.js.map +1 -0
  63. package/dist/hooks/lib/reflection-prompt-builder.d.ts +56 -0
  64. package/dist/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
  65. package/dist/hooks/lib/reflection-prompt-builder.js +239 -0
  66. package/dist/hooks/lib/reflection-prompt-builder.js.map +1 -0
  67. package/dist/hooks/lib/reflection-storage.d.ts +64 -0
  68. package/dist/hooks/lib/reflection-storage.d.ts.map +1 -0
  69. package/dist/hooks/lib/reflection-storage.js +305 -0
  70. package/dist/hooks/lib/reflection-storage.js.map +1 -0
  71. package/dist/hooks/lib/run-self-reflection.d.ts +43 -0
  72. package/dist/hooks/lib/run-self-reflection.d.ts.map +1 -0
  73. package/dist/hooks/lib/run-self-reflection.js +203 -0
  74. package/dist/hooks/lib/run-self-reflection.js.map +1 -0
  75. package/dist/hooks/lib/sync-living-docs.d.ts +27 -0
  76. package/dist/hooks/lib/sync-living-docs.d.ts.map +1 -0
  77. package/dist/hooks/lib/sync-living-docs.js +116 -0
  78. package/dist/hooks/lib/sync-living-docs.js.map +1 -0
  79. package/dist/hooks/lib/translate-file.d.ts +59 -0
  80. package/dist/hooks/lib/translate-file.d.ts.map +1 -0
  81. package/dist/hooks/lib/translate-file.js +350 -0
  82. package/dist/hooks/lib/translate-file.js.map +1 -0
  83. package/dist/hooks/lib/translate-living-docs.d.ts +13 -0
  84. package/dist/hooks/lib/translate-living-docs.d.ts.map +1 -0
  85. package/dist/hooks/lib/translate-living-docs.js +175 -0
  86. package/dist/hooks/lib/translate-living-docs.js.map +1 -0
  87. package/dist/hooks/lib/types/reflection-types.d.ts +164 -0
  88. package/dist/hooks/lib/types/reflection-types.d.ts.map +1 -0
  89. package/dist/hooks/lib/types/reflection-types.js +73 -0
  90. package/dist/hooks/lib/types/reflection-types.js.map +1 -0
  91. package/dist/hooks/lib/update-tasks-md.d.ts +29 -0
  92. package/dist/hooks/lib/update-tasks-md.d.ts.map +1 -0
  93. package/dist/hooks/lib/update-tasks-md.js +203 -0
  94. package/dist/hooks/lib/update-tasks-md.js.map +1 -0
  95. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +89 -0
  96. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +1 -0
  97. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +226 -0
  98. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +1 -0
  99. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +60 -0
  100. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +1 -0
  101. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +201 -0
  102. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +1 -0
  103. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +42 -0
  104. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +1 -0
  105. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +123 -0
  106. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +1 -0
  107. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +45 -0
  108. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +1 -0
  109. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +132 -0
  110. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +1 -0
  111. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +33 -0
  112. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +1 -0
  113. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +419 -0
  114. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +1 -0
  115. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +56 -0
  116. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +1 -0
  117. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +239 -0
  118. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +1 -0
  119. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +64 -0
  120. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +1 -0
  121. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +305 -0
  122. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +1 -0
  123. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +43 -0
  124. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +1 -0
  125. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +203 -0
  126. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +1 -0
  127. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +27 -0
  128. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +1 -0
  129. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +144 -0
  130. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +1 -0
  131. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +59 -0
  132. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +1 -0
  133. package/dist/plugins/specweave/lib/hooks/translate-file.js +350 -0
  134. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +1 -0
  135. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +13 -0
  136. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +1 -0
  137. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +175 -0
  138. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +1 -0
  139. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +164 -0
  140. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +1 -0
  141. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +73 -0
  142. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +1 -0
  143. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +29 -0
  144. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +1 -0
  145. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +203 -0
  146. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +1 -0
  147. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts +94 -0
  148. package/dist/plugins/specweave-ado/lib/ado-board-resolver.d.ts.map +1 -0
  149. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js +219 -0
  150. package/dist/plugins/specweave-ado/lib/ado-board-resolver.js.map +1 -0
  151. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts +124 -0
  152. package/dist/plugins/specweave-ado/lib/ado-client-v2.d.ts.map +1 -0
  153. package/dist/plugins/specweave-ado/lib/ado-client-v2.js +382 -0
  154. package/dist/plugins/specweave-ado/lib/ado-client-v2.js.map +1 -0
  155. package/dist/plugins/specweave-ado/lib/ado-client.d.ts +112 -0
  156. package/dist/plugins/specweave-ado/lib/ado-client.d.ts.map +1 -0
  157. package/dist/plugins/specweave-ado/lib/ado-client.js +257 -0
  158. package/dist/plugins/specweave-ado/lib/ado-client.js.map +1 -0
  159. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts +40 -0
  160. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.d.ts.map +1 -0
  161. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js +370 -0
  162. package/dist/plugins/specweave-ado/lib/ado-hierarchical-sync.js.map +1 -0
  163. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts +100 -0
  164. package/dist/plugins/specweave-ado/lib/ado-spec-sync.d.ts.map +1 -0
  165. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js +471 -0
  166. package/dist/plugins/specweave-ado/lib/ado-spec-sync.js.map +1 -0
  167. package/dist/plugins/specweave-ado/lib/project-selector.d.ts +42 -0
  168. package/dist/plugins/specweave-ado/lib/project-selector.d.ts.map +1 -0
  169. package/dist/plugins/specweave-ado/lib/project-selector.js +211 -0
  170. package/dist/plugins/specweave-ado/lib/project-selector.js.map +1 -0
  171. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts +12 -0
  172. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.d.ts.map +1 -0
  173. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js +28 -0
  174. package/dist/plugins/specweave-github/lib/cli-sync-increment-changes.js.map +1 -0
  175. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts +54 -0
  176. package/dist/plugins/specweave-github/lib/github-board-resolver.d.ts.map +1 -0
  177. package/dist/plugins/specweave-github/lib/github-board-resolver.js +122 -0
  178. package/dist/plugins/specweave-github/lib/github-board-resolver.js.map +1 -0
  179. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +104 -0
  180. package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -0
  181. package/dist/plugins/specweave-github/lib/github-client-v2.js +408 -0
  182. package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -0
  183. package/dist/plugins/specweave-github/lib/github-client.d.ts +96 -0
  184. package/dist/plugins/specweave-github/lib/github-client.d.ts.map +1 -0
  185. package/dist/plugins/specweave-github/lib/github-client.js +299 -0
  186. package/dist/plugins/specweave-github/lib/github-client.js.map +1 -0
  187. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts +29 -0
  188. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.d.ts.map +1 -0
  189. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js +268 -0
  190. package/dist/plugins/specweave-github/lib/github-hierarchical-sync.js.map +1 -0
  191. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts +61 -0
  192. package/dist/plugins/specweave-github/lib/github-issue-updater.d.ts.map +1 -0
  193. package/dist/plugins/specweave-github/lib/github-issue-updater.js +327 -0
  194. package/dist/plugins/specweave-github/lib/github-issue-updater.js.map +1 -0
  195. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts +108 -0
  196. package/dist/plugins/specweave-github/lib/github-spec-sync.d.ts.map +1 -0
  197. package/dist/plugins/specweave-github/lib/github-spec-sync.js +505 -0
  198. package/dist/plugins/specweave-github/lib/github-spec-sync.js.map +1 -0
  199. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts +36 -0
  200. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.d.ts.map +1 -0
  201. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js +228 -0
  202. package/dist/plugins/specweave-github/lib/github-sync-bidirectional.js.map +1 -0
  203. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts +18 -0
  204. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.d.ts.map +1 -0
  205. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js +287 -0
  206. package/dist/plugins/specweave-github/lib/github-sync-increment-changes.js.map +1 -0
  207. package/dist/plugins/specweave-github/lib/index.d.ts +10 -0
  208. package/dist/plugins/specweave-github/lib/index.d.ts.map +1 -0
  209. package/dist/plugins/specweave-github/lib/index.js +10 -0
  210. package/dist/plugins/specweave-github/lib/index.js.map +1 -0
  211. package/dist/plugins/specweave-github/lib/repo-selector.d.ts +49 -0
  212. package/dist/plugins/specweave-github/lib/repo-selector.d.ts.map +1 -0
  213. package/dist/plugins/specweave-github/lib/repo-selector.js +216 -0
  214. package/dist/plugins/specweave-github/lib/repo-selector.js.map +1 -0
  215. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts +51 -0
  216. package/dist/plugins/specweave-github/lib/subtask-sync.d.ts.map +1 -0
  217. package/dist/plugins/specweave-github/lib/subtask-sync.js +147 -0
  218. package/dist/plugins/specweave-github/lib/subtask-sync.js.map +1 -0
  219. package/dist/plugins/specweave-github/lib/task-parser.d.ts +37 -0
  220. package/dist/plugins/specweave-github/lib/task-parser.d.ts.map +1 -0
  221. package/dist/plugins/specweave-github/lib/task-parser.js +211 -0
  222. package/dist/plugins/specweave-github/lib/task-parser.js.map +1 -0
  223. package/dist/plugins/specweave-github/lib/task-sync.d.ts +51 -0
  224. package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -0
  225. package/dist/plugins/specweave-github/lib/task-sync.js +332 -0
  226. package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -0
  227. package/dist/plugins/specweave-github/lib/types.d.ts +80 -0
  228. package/dist/plugins/specweave-github/lib/types.d.ts.map +1 -0
  229. package/dist/plugins/specweave-github/lib/types.js +5 -0
  230. package/dist/plugins/specweave-github/lib/types.js.map +1 -0
  231. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts +50 -0
  232. package/dist/plugins/specweave-jira/lib/jira-board-resolver.d.ts.map +1 -0
  233. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js +84 -0
  234. package/dist/plugins/specweave-jira/lib/jira-board-resolver.js.map +1 -0
  235. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts +33 -0
  236. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.d.ts.map +1 -0
  237. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js +206 -0
  238. package/dist/plugins/specweave-jira/lib/jira-hierarchical-sync.js.map +1 -0
  239. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts +105 -0
  240. package/dist/plugins/specweave-jira/lib/jira-spec-sync.d.ts.map +1 -0
  241. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js +456 -0
  242. package/dist/plugins/specweave-jira/lib/jira-spec-sync.js.map +1 -0
  243. package/dist/plugins/specweave-jira/lib/project-selector.d.ts +42 -0
  244. package/dist/plugins/specweave-jira/lib/project-selector.d.ts.map +1 -0
  245. package/dist/plugins/specweave-jira/lib/project-selector.js +216 -0
  246. package/dist/plugins/specweave-jira/lib/project-selector.js.map +1 -0
  247. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts +67 -0
  248. package/dist/plugins/specweave-jira/lib/reorganization-detector.d.ts.map +1 -0
  249. package/dist/plugins/specweave-jira/lib/reorganization-detector.js +252 -0
  250. package/dist/plugins/specweave-jira/lib/reorganization-detector.js.map +1 -0
  251. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts +29 -0
  252. package/dist/plugins/specweave-jira/lib/setup-wizard.d.ts.map +1 -0
  253. package/dist/plugins/specweave-jira/lib/setup-wizard.js +219 -0
  254. package/dist/plugins/specweave-jira/lib/setup-wizard.js.map +1 -0
  255. package/dist/project-mapper.js +272 -0
  256. package/dist/scripts/split-spec-by-project.js +105 -0
  257. package/dist/spec-splitter.js +283 -0
  258. package/dist/src/adapters/adapter-base.d.ts +71 -0
  259. package/dist/src/adapters/adapter-base.d.ts.map +1 -0
  260. package/dist/src/adapters/adapter-base.js +139 -0
  261. package/dist/src/adapters/adapter-base.js.map +1 -0
  262. package/dist/src/adapters/adapter-interface.d.ts +149 -0
  263. package/dist/src/adapters/adapter-interface.d.ts.map +1 -0
  264. package/dist/src/adapters/adapter-interface.js +8 -0
  265. package/dist/src/adapters/adapter-interface.js.map +1 -0
  266. package/dist/src/adapters/adapter-loader.d.ts +91 -0
  267. package/dist/src/adapters/adapter-loader.d.ts.map +1 -0
  268. package/dist/src/adapters/adapter-loader.js +238 -0
  269. package/dist/src/adapters/adapter-loader.js.map +1 -0
  270. package/dist/src/adapters/agents-md-generator.d.ts +48 -0
  271. package/dist/src/adapters/agents-md-generator.d.ts.map +1 -0
  272. package/dist/src/adapters/agents-md-generator.js +193 -0
  273. package/dist/src/adapters/agents-md-generator.js.map +1 -0
  274. package/dist/src/adapters/claude/adapter.d.ts +128 -0
  275. package/dist/src/adapters/claude/adapter.d.ts.map +1 -0
  276. package/dist/src/adapters/claude/adapter.js +415 -0
  277. package/dist/src/adapters/claude/adapter.js.map +1 -0
  278. package/dist/src/adapters/claude-md-generator.d.ts +78 -0
  279. package/dist/src/adapters/claude-md-generator.d.ts.map +1 -0
  280. package/dist/src/adapters/claude-md-generator.js +307 -0
  281. package/dist/src/adapters/claude-md-generator.js.map +1 -0
  282. package/dist/src/adapters/codex/adapter.d.ts +50 -0
  283. package/dist/src/adapters/codex/adapter.d.ts.map +1 -0
  284. package/dist/src/adapters/codex/adapter.js +316 -0
  285. package/dist/src/adapters/codex/adapter.js.map +1 -0
  286. package/dist/src/adapters/cursor/adapter.d.ts +98 -0
  287. package/dist/src/adapters/cursor/adapter.d.ts.map +1 -0
  288. package/dist/src/adapters/cursor/adapter.js +406 -0
  289. package/dist/src/adapters/cursor/adapter.js.map +1 -0
  290. package/dist/src/adapters/doc-generator.d.ts +69 -0
  291. package/dist/src/adapters/doc-generator.d.ts.map +1 -0
  292. package/dist/src/adapters/doc-generator.js +247 -0
  293. package/dist/src/adapters/doc-generator.js.map +1 -0
  294. package/dist/src/adapters/gemini/adapter.d.ts +50 -0
  295. package/dist/src/adapters/gemini/adapter.d.ts.map +1 -0
  296. package/dist/src/adapters/gemini/adapter.js +281 -0
  297. package/dist/src/adapters/gemini/adapter.js.map +1 -0
  298. package/dist/src/adapters/generic/adapter.d.ts +86 -0
  299. package/dist/src/adapters/generic/adapter.d.ts.map +1 -0
  300. package/dist/src/adapters/generic/adapter.js +338 -0
  301. package/dist/src/adapters/generic/adapter.js.map +1 -0
  302. package/dist/src/cli/commands/abandon.d.ts +13 -0
  303. package/dist/src/cli/commands/abandon.d.ts.map +1 -0
  304. package/dist/src/cli/commands/abandon.js +15 -0
  305. package/dist/src/cli/commands/abandon.js.map +1 -0
  306. package/dist/src/cli/commands/import-docs.d.ts +21 -0
  307. package/dist/src/cli/commands/import-docs.d.ts.map +1 -0
  308. package/dist/src/cli/commands/import-docs.js +146 -0
  309. package/dist/src/cli/commands/import-docs.js.map +1 -0
  310. package/dist/src/cli/commands/init-multiproject.d.ts +11 -0
  311. package/dist/src/cli/commands/init-multiproject.d.ts.map +1 -0
  312. package/dist/src/cli/commands/init-multiproject.js +202 -0
  313. package/dist/src/cli/commands/init-multiproject.js.map +1 -0
  314. package/dist/src/cli/commands/init.d.ts +9 -0
  315. package/dist/src/cli/commands/init.d.ts.map +1 -0
  316. package/dist/src/cli/commands/init.js +1444 -0
  317. package/dist/src/cli/commands/init.js.map +1 -0
  318. package/dist/src/cli/commands/install.d.ts +9 -0
  319. package/dist/src/cli/commands/install.d.ts.map +1 -0
  320. package/dist/src/cli/commands/install.js +127 -0
  321. package/dist/src/cli/commands/install.js.map +1 -0
  322. package/dist/src/cli/commands/list.d.ts +8 -0
  323. package/dist/src/cli/commands/list.d.ts.map +1 -0
  324. package/dist/src/cli/commands/list.js +119 -0
  325. package/dist/src/cli/commands/list.js.map +1 -0
  326. package/dist/src/cli/commands/migrate-to-multiproject.d.ts +37 -0
  327. package/dist/src/cli/commands/migrate-to-multiproject.d.ts.map +1 -0
  328. package/dist/src/cli/commands/migrate-to-multiproject.js +189 -0
  329. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -0
  330. package/dist/src/cli/commands/migrate-to-profiles.d.ts +25 -0
  331. package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +1 -0
  332. package/dist/src/cli/commands/migrate-to-profiles.js +350 -0
  333. package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -0
  334. package/dist/src/cli/commands/pause.d.ts +13 -0
  335. package/dist/src/cli/commands/pause.d.ts.map +1 -0
  336. package/dist/src/cli/commands/pause.js +15 -0
  337. package/dist/src/cli/commands/pause.js.map +1 -0
  338. package/dist/src/cli/commands/qa.d.ts +54 -0
  339. package/dist/src/cli/commands/qa.d.ts.map +1 -0
  340. package/dist/src/cli/commands/qa.js +98 -0
  341. package/dist/src/cli/commands/qa.js.map +1 -0
  342. package/dist/src/cli/commands/resume.d.ts +12 -0
  343. package/dist/src/cli/commands/resume.d.ts.map +1 -0
  344. package/dist/src/cli/commands/resume.js +14 -0
  345. package/dist/src/cli/commands/resume.js.map +1 -0
  346. package/dist/src/cli/commands/status.d.ts +12 -0
  347. package/dist/src/cli/commands/status.d.ts.map +1 -0
  348. package/dist/src/cli/commands/status.js +23 -0
  349. package/dist/src/cli/commands/status.js.map +1 -0
  350. package/dist/src/cli/commands/switch-project.d.ts +13 -0
  351. package/dist/src/cli/commands/switch-project.d.ts.map +1 -0
  352. package/dist/src/cli/commands/switch-project.js +91 -0
  353. package/dist/src/cli/commands/switch-project.js.map +1 -0
  354. package/dist/src/cli/commands/validate-jira.d.ts +35 -0
  355. package/dist/src/cli/commands/validate-jira.d.ts.map +1 -0
  356. package/dist/src/cli/commands/validate-jira.js +112 -0
  357. package/dist/src/cli/commands/validate-jira.js.map +1 -0
  358. package/dist/src/cli/commands/validate-plugins.d.ts +41 -0
  359. package/dist/src/cli/commands/validate-plugins.d.ts.map +1 -0
  360. package/dist/src/cli/commands/validate-plugins.js +171 -0
  361. package/dist/src/cli/commands/validate-plugins.js.map +1 -0
  362. package/dist/src/cli/helpers/issue-tracker/ado.d.ts +57 -0
  363. package/dist/src/cli/helpers/issue-tracker/ado.d.ts.map +1 -0
  364. package/dist/src/cli/helpers/issue-tracker/ado.js +243 -0
  365. package/dist/src/cli/helpers/issue-tracker/ado.js.map +1 -0
  366. package/dist/src/cli/helpers/issue-tracker/github.d.ts +65 -0
  367. package/dist/src/cli/helpers/issue-tracker/github.d.ts.map +1 -0
  368. package/dist/src/cli/helpers/issue-tracker/github.js +426 -0
  369. package/dist/src/cli/helpers/issue-tracker/github.js.map +1 -0
  370. package/dist/src/cli/helpers/issue-tracker/index.d.ts +22 -0
  371. package/dist/src/cli/helpers/issue-tracker/index.d.ts.map +1 -0
  372. package/dist/src/cli/helpers/issue-tracker/index.js +314 -0
  373. package/dist/src/cli/helpers/issue-tracker/index.js.map +1 -0
  374. package/dist/src/cli/helpers/issue-tracker/jira.d.ts +61 -0
  375. package/dist/src/cli/helpers/issue-tracker/jira.d.ts.map +1 -0
  376. package/dist/src/cli/helpers/issue-tracker/jira.js +404 -0
  377. package/dist/src/cli/helpers/issue-tracker/jira.js.map +1 -0
  378. package/dist/src/cli/helpers/issue-tracker/types.d.ts +108 -0
  379. package/dist/src/cli/helpers/issue-tracker/types.d.ts.map +1 -0
  380. package/dist/src/cli/helpers/issue-tracker/types.js +16 -0
  381. package/dist/src/cli/helpers/issue-tracker/types.js.map +1 -0
  382. package/dist/src/cli/helpers/issue-tracker/utils.d.ts +112 -0
  383. package/dist/src/cli/helpers/issue-tracker/utils.d.ts.map +1 -0
  384. package/dist/src/cli/helpers/issue-tracker/utils.js +247 -0
  385. package/dist/src/cli/helpers/issue-tracker/utils.js.map +1 -0
  386. package/dist/src/core/agent-model-manager.d.ts +52 -0
  387. package/dist/src/core/agent-model-manager.d.ts.map +1 -0
  388. package/dist/src/core/agent-model-manager.js +120 -0
  389. package/dist/src/core/agent-model-manager.js.map +1 -0
  390. package/dist/src/core/brownfield/analyzer.d.ts +86 -0
  391. package/dist/src/core/brownfield/analyzer.d.ts.map +1 -0
  392. package/dist/src/core/brownfield/analyzer.js +365 -0
  393. package/dist/src/core/brownfield/analyzer.js.map +1 -0
  394. package/dist/src/core/brownfield/importer.d.ts +76 -0
  395. package/dist/src/core/brownfield/importer.d.ts.map +1 -0
  396. package/dist/src/core/brownfield/importer.js +287 -0
  397. package/dist/src/core/brownfield/importer.js.map +1 -0
  398. package/dist/src/core/config-manager.d.ts +47 -0
  399. package/dist/src/core/config-manager.d.ts.map +1 -0
  400. package/dist/src/core/config-manager.js +136 -0
  401. package/dist/src/core/config-manager.js.map +1 -0
  402. package/dist/src/core/cost-tracker.d.ts +108 -0
  403. package/dist/src/core/cost-tracker.d.ts.map +1 -0
  404. package/dist/src/core/cost-tracker.js +281 -0
  405. package/dist/src/core/cost-tracker.js.map +1 -0
  406. package/dist/src/core/credentials-manager.d.ts +107 -0
  407. package/dist/src/core/credentials-manager.d.ts.map +1 -0
  408. package/dist/src/core/credentials-manager.js +457 -0
  409. package/dist/src/core/credentials-manager.js.map +1 -0
  410. package/dist/src/core/i18n/language-detector.d.ts +29 -0
  411. package/dist/src/core/i18n/language-detector.d.ts.map +1 -0
  412. package/dist/src/core/i18n/language-detector.js +143 -0
  413. package/dist/src/core/i18n/language-detector.js.map +1 -0
  414. package/dist/src/core/i18n/language-manager.d.ts +101 -0
  415. package/dist/src/core/i18n/language-manager.d.ts.map +1 -0
  416. package/dist/src/core/i18n/language-manager.js +232 -0
  417. package/dist/src/core/i18n/language-manager.js.map +1 -0
  418. package/dist/src/core/i18n/language-registry.d.ts +44 -0
  419. package/dist/src/core/i18n/language-registry.d.ts.map +1 -0
  420. package/dist/src/core/i18n/language-registry.js +234 -0
  421. package/dist/src/core/i18n/language-registry.js.map +1 -0
  422. package/dist/src/core/i18n/locale-manager.d.ts +62 -0
  423. package/dist/src/core/i18n/locale-manager.d.ts.map +1 -0
  424. package/dist/src/core/i18n/locale-manager.js +137 -0
  425. package/dist/src/core/i18n/locale-manager.js.map +1 -0
  426. package/dist/src/core/i18n/system-prompt-injector.d.ts +33 -0
  427. package/dist/src/core/i18n/system-prompt-injector.d.ts.map +1 -0
  428. package/dist/src/core/i18n/system-prompt-injector.js +131 -0
  429. package/dist/src/core/i18n/system-prompt-injector.js.map +1 -0
  430. package/dist/src/core/i18n/types.d.ts +151 -0
  431. package/dist/src/core/i18n/types.d.ts.map +1 -0
  432. package/dist/src/core/i18n/types.js +11 -0
  433. package/dist/src/core/i18n/types.js.map +1 -0
  434. package/dist/src/core/increment/limits.d.ts +68 -0
  435. package/dist/src/core/increment/limits.d.ts.map +1 -0
  436. package/dist/src/core/increment/limits.js +224 -0
  437. package/dist/src/core/increment/limits.js.map +1 -0
  438. package/dist/src/core/increment/metadata-manager.d.ts +114 -0
  439. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -0
  440. package/dist/src/core/increment/metadata-manager.js +320 -0
  441. package/dist/src/core/increment/metadata-manager.js.map +1 -0
  442. package/dist/src/core/increment/status-commands.d.ts +43 -0
  443. package/dist/src/core/increment/status-commands.d.ts.map +1 -0
  444. package/dist/src/core/increment/status-commands.js +277 -0
  445. package/dist/src/core/increment/status-commands.js.map +1 -0
  446. package/dist/src/core/increment-status.d.ts +72 -0
  447. package/dist/src/core/increment-status.d.ts.map +1 -0
  448. package/dist/src/core/increment-status.js +227 -0
  449. package/dist/src/core/increment-status.js.map +1 -0
  450. package/dist/src/core/model-selector.d.ts +57 -0
  451. package/dist/src/core/model-selector.d.ts.map +1 -0
  452. package/dist/src/core/model-selector.js +115 -0
  453. package/dist/src/core/model-selector.js.map +1 -0
  454. package/dist/src/core/phase-detector.d.ts +62 -0
  455. package/dist/src/core/phase-detector.d.ts.map +1 -0
  456. package/dist/src/core/phase-detector.js +229 -0
  457. package/dist/src/core/phase-detector.js.map +1 -0
  458. package/dist/src/core/plugin-loader.d.ts +131 -0
  459. package/dist/src/core/plugin-loader.d.ts.map +1 -0
  460. package/dist/src/core/plugin-loader.js +421 -0
  461. package/dist/src/core/plugin-loader.js.map +1 -0
  462. package/dist/src/core/project-manager.d.ts +127 -0
  463. package/dist/src/core/project-manager.d.ts.map +1 -0
  464. package/dist/src/core/project-manager.js +524 -0
  465. package/dist/src/core/project-manager.js.map +1 -0
  466. package/dist/src/core/project-structure-detector.d.ts +92 -0
  467. package/dist/src/core/project-structure-detector.d.ts.map +1 -0
  468. package/dist/src/core/project-structure-detector.js +289 -0
  469. package/dist/src/core/project-structure-detector.js.map +1 -0
  470. package/dist/src/core/qa/qa-runner.d.ts +16 -0
  471. package/dist/src/core/qa/qa-runner.d.ts.map +1 -0
  472. package/dist/src/core/qa/qa-runner.js +404 -0
  473. package/dist/src/core/qa/qa-runner.js.map +1 -0
  474. package/dist/src/core/qa/quality-gate-decider.d.ts +53 -0
  475. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -0
  476. package/dist/src/core/qa/quality-gate-decider.js +268 -0
  477. package/dist/src/core/qa/quality-gate-decider.js.map +1 -0
  478. package/dist/src/core/qa/risk-calculator.d.ts +126 -0
  479. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -0
  480. package/dist/src/core/qa/risk-calculator.js +247 -0
  481. package/dist/src/core/qa/risk-calculator.js.map +1 -0
  482. package/dist/src/core/qa/types.d.ts +315 -0
  483. package/dist/src/core/qa/types.d.ts.map +1 -0
  484. package/dist/src/core/qa/types.js +8 -0
  485. package/dist/src/core/qa/types.js.map +1 -0
  486. package/dist/src/core/rfc-generator-v2.d.ts +149 -0
  487. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -0
  488. package/dist/src/core/rfc-generator-v2.js +399 -0
  489. package/dist/src/core/rfc-generator-v2.js.map +1 -0
  490. package/dist/src/core/specs/spec-metadata-manager.d.ts +70 -0
  491. package/dist/src/core/specs/spec-metadata-manager.d.ts.map +1 -0
  492. package/dist/src/core/specs/spec-metadata-manager.js +371 -0
  493. package/dist/src/core/specs/spec-metadata-manager.js.map +1 -0
  494. package/dist/src/core/specs/spec-parser.d.ts +66 -0
  495. package/dist/src/core/specs/spec-parser.d.ts.map +1 -0
  496. package/dist/src/core/specs/spec-parser.js +276 -0
  497. package/dist/src/core/specs/spec-parser.js.map +1 -0
  498. package/dist/src/core/sync/bidirectional-engine.d.ts +110 -0
  499. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -0
  500. package/dist/src/core/sync/bidirectional-engine.js +356 -0
  501. package/dist/src/core/sync/bidirectional-engine.js.map +1 -0
  502. package/dist/src/core/sync/folder-mapper.d.ts +71 -0
  503. package/dist/src/core/sync/folder-mapper.d.ts.map +1 -0
  504. package/dist/src/core/sync/folder-mapper.js +168 -0
  505. package/dist/src/core/sync/folder-mapper.js.map +1 -0
  506. package/dist/src/core/sync/profile-manager.d.ts +72 -0
  507. package/dist/src/core/sync/profile-manager.d.ts.map +1 -0
  508. package/dist/src/core/sync/profile-manager.js +338 -0
  509. package/dist/src/core/sync/profile-manager.js.map +1 -0
  510. package/dist/src/core/sync/profile-selector.d.ts +52 -0
  511. package/dist/src/core/sync/profile-selector.d.ts.map +1 -0
  512. package/dist/src/core/sync/profile-selector.js +179 -0
  513. package/dist/src/core/sync/profile-selector.js.map +1 -0
  514. package/dist/src/core/sync/profile-validator.d.ts +52 -0
  515. package/dist/src/core/sync/profile-validator.d.ts.map +1 -0
  516. package/dist/src/core/sync/profile-validator.js +225 -0
  517. package/dist/src/core/sync/profile-validator.js.map +1 -0
  518. package/dist/src/core/sync/project-context.d.ts +81 -0
  519. package/dist/src/core/sync/project-context.d.ts.map +1 -0
  520. package/dist/src/core/sync/project-context.js +354 -0
  521. package/dist/src/core/sync/project-context.js.map +1 -0
  522. package/dist/src/core/sync/rate-limiter.d.ts +116 -0
  523. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -0
  524. package/dist/src/core/sync/rate-limiter.js +308 -0
  525. package/dist/src/core/sync/rate-limiter.js.map +1 -0
  526. package/dist/src/core/sync/time-range-selector.d.ts +48 -0
  527. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -0
  528. package/dist/src/core/sync/time-range-selector.js +224 -0
  529. package/dist/src/core/sync/time-range-selector.js.map +1 -0
  530. package/dist/src/core/types/config.d.ts +90 -0
  531. package/dist/src/core/types/config.d.ts.map +1 -0
  532. package/dist/src/core/types/config.js +44 -0
  533. package/dist/src/core/types/config.js.map +1 -0
  534. package/dist/src/core/types/increment-metadata.d.ts +120 -0
  535. package/dist/src/core/types/increment-metadata.d.ts.map +1 -0
  536. package/dist/src/core/types/increment-metadata.js +138 -0
  537. package/dist/src/core/types/increment-metadata.js.map +1 -0
  538. package/dist/src/core/types/plugin.d.ts +283 -0
  539. package/dist/src/core/types/plugin.d.ts.map +1 -0
  540. package/dist/src/core/types/plugin.js +49 -0
  541. package/dist/src/core/types/plugin.js.map +1 -0
  542. package/dist/src/core/types/spec-metadata.d.ts +229 -0
  543. package/dist/src/core/types/spec-metadata.d.ts.map +1 -0
  544. package/dist/src/core/types/spec-metadata.js +14 -0
  545. package/dist/src/core/types/spec-metadata.js.map +1 -0
  546. package/dist/src/core/types/sync-profile.d.ts +403 -0
  547. package/dist/src/core/types/sync-profile.d.ts.map +1 -0
  548. package/dist/src/core/types/sync-profile.js +55 -0
  549. package/dist/src/core/types/sync-profile.js.map +1 -0
  550. package/dist/src/hooks/lib/git-diff-analyzer.d.ts +89 -0
  551. package/dist/src/hooks/lib/git-diff-analyzer.d.ts.map +1 -0
  552. package/dist/src/hooks/lib/git-diff-analyzer.js +226 -0
  553. package/dist/src/hooks/lib/git-diff-analyzer.js.map +1 -0
  554. package/dist/src/hooks/lib/invoke-translator-skill.d.ts +60 -0
  555. package/dist/src/hooks/lib/invoke-translator-skill.d.ts.map +1 -0
  556. package/dist/src/hooks/lib/invoke-translator-skill.js +201 -0
  557. package/dist/src/hooks/lib/invoke-translator-skill.js.map +1 -0
  558. package/dist/src/hooks/lib/prepare-reflection-context.d.ts +42 -0
  559. package/dist/src/hooks/lib/prepare-reflection-context.d.ts.map +1 -0
  560. package/dist/src/hooks/lib/prepare-reflection-context.js +123 -0
  561. package/dist/src/hooks/lib/prepare-reflection-context.js.map +1 -0
  562. package/dist/src/hooks/lib/reflection-config-loader.d.ts +45 -0
  563. package/dist/src/hooks/lib/reflection-config-loader.d.ts.map +1 -0
  564. package/dist/src/hooks/lib/reflection-config-loader.js +132 -0
  565. package/dist/src/hooks/lib/reflection-config-loader.js.map +1 -0
  566. package/dist/src/hooks/lib/reflection-parser.d.ts +33 -0
  567. package/dist/src/hooks/lib/reflection-parser.d.ts.map +1 -0
  568. package/dist/src/hooks/lib/reflection-parser.js +419 -0
  569. package/dist/src/hooks/lib/reflection-parser.js.map +1 -0
  570. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts +56 -0
  571. package/dist/src/hooks/lib/reflection-prompt-builder.d.ts.map +1 -0
  572. package/dist/src/hooks/lib/reflection-prompt-builder.js +239 -0
  573. package/dist/src/hooks/lib/reflection-prompt-builder.js.map +1 -0
  574. package/dist/src/hooks/lib/reflection-storage.d.ts +64 -0
  575. package/dist/src/hooks/lib/reflection-storage.d.ts.map +1 -0
  576. package/dist/src/hooks/lib/reflection-storage.js +305 -0
  577. package/dist/src/hooks/lib/reflection-storage.js.map +1 -0
  578. package/dist/src/hooks/lib/run-self-reflection.d.ts +43 -0
  579. package/dist/src/hooks/lib/run-self-reflection.d.ts.map +1 -0
  580. package/dist/src/hooks/lib/run-self-reflection.js +203 -0
  581. package/dist/src/hooks/lib/run-self-reflection.js.map +1 -0
  582. package/dist/src/hooks/lib/sync-living-docs.d.ts +27 -0
  583. package/dist/src/hooks/lib/sync-living-docs.d.ts.map +1 -0
  584. package/dist/src/hooks/lib/sync-living-docs.js +116 -0
  585. package/dist/src/hooks/lib/sync-living-docs.js.map +1 -0
  586. package/dist/src/hooks/lib/translate-file.d.ts +59 -0
  587. package/dist/src/hooks/lib/translate-file.d.ts.map +1 -0
  588. package/dist/src/hooks/lib/translate-file.js +350 -0
  589. package/dist/src/hooks/lib/translate-file.js.map +1 -0
  590. package/dist/src/hooks/lib/translate-living-docs.d.ts +13 -0
  591. package/dist/src/hooks/lib/translate-living-docs.d.ts.map +1 -0
  592. package/dist/src/hooks/lib/translate-living-docs.js +175 -0
  593. package/dist/src/hooks/lib/translate-living-docs.js.map +1 -0
  594. package/dist/src/hooks/lib/types/reflection-types.d.ts +164 -0
  595. package/dist/src/hooks/lib/types/reflection-types.d.ts.map +1 -0
  596. package/dist/src/hooks/lib/types/reflection-types.js +73 -0
  597. package/dist/src/hooks/lib/types/reflection-types.js.map +1 -0
  598. package/dist/src/hooks/lib/update-tasks-md.d.ts +29 -0
  599. package/dist/src/hooks/lib/update-tasks-md.d.ts.map +1 -0
  600. package/dist/src/hooks/lib/update-tasks-md.js +203 -0
  601. package/dist/src/hooks/lib/update-tasks-md.js.map +1 -0
  602. package/dist/src/integrations/ado/ado-client.d.ts +127 -0
  603. package/dist/src/integrations/ado/ado-client.d.ts.map +1 -0
  604. package/dist/src/integrations/ado/ado-client.js +416 -0
  605. package/dist/src/integrations/ado/ado-client.js.map +1 -0
  606. package/dist/src/integrations/jira/jira-client.d.ts +139 -0
  607. package/dist/src/integrations/jira/jira-client.d.ts.map +1 -0
  608. package/dist/src/integrations/jira/jira-client.js +386 -0
  609. package/dist/src/integrations/jira/jira-client.js.map +1 -0
  610. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts +75 -0
  611. package/dist/src/integrations/jira/jira-incremental-mapper.d.ts.map +1 -0
  612. package/dist/src/integrations/jira/jira-incremental-mapper.js +474 -0
  613. package/dist/src/integrations/jira/jira-incremental-mapper.js.map +1 -0
  614. package/dist/src/integrations/jira/jira-mapper.d.ts +105 -0
  615. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -0
  616. package/dist/src/integrations/jira/jira-mapper.js +494 -0
  617. package/dist/src/integrations/jira/jira-mapper.js.map +1 -0
  618. package/dist/src/metrics/calculators/change-failure-rate.d.ts +22 -0
  619. package/dist/src/metrics/calculators/change-failure-rate.d.ts.map +1 -0
  620. package/dist/src/metrics/calculators/change-failure-rate.js +70 -0
  621. package/dist/src/metrics/calculators/change-failure-rate.js.map +1 -0
  622. package/dist/src/metrics/calculators/deployment-frequency.d.ts +20 -0
  623. package/dist/src/metrics/calculators/deployment-frequency.d.ts.map +1 -0
  624. package/dist/src/metrics/calculators/deployment-frequency.js +61 -0
  625. package/dist/src/metrics/calculators/deployment-frequency.js.map +1 -0
  626. package/dist/src/metrics/calculators/lead-time.d.ts +22 -0
  627. package/dist/src/metrics/calculators/lead-time.d.ts.map +1 -0
  628. package/dist/src/metrics/calculators/lead-time.js +82 -0
  629. package/dist/src/metrics/calculators/lead-time.js.map +1 -0
  630. package/dist/src/metrics/calculators/mttr.d.ts +21 -0
  631. package/dist/src/metrics/calculators/mttr.d.ts.map +1 -0
  632. package/dist/src/metrics/calculators/mttr.js +60 -0
  633. package/dist/src/metrics/calculators/mttr.js.map +1 -0
  634. package/dist/src/metrics/dora-calculator.d.ts +28 -0
  635. package/dist/src/metrics/dora-calculator.d.ts.map +1 -0
  636. package/dist/src/metrics/dora-calculator.js +117 -0
  637. package/dist/src/metrics/dora-calculator.js.map +1 -0
  638. package/dist/src/metrics/github-client.d.ts +51 -0
  639. package/dist/src/metrics/github-client.d.ts.map +1 -0
  640. package/dist/src/metrics/github-client.js +133 -0
  641. package/dist/src/metrics/github-client.js.map +1 -0
  642. package/dist/src/metrics/report-generator.d.ts +17 -0
  643. package/dist/src/metrics/report-generator.d.ts.map +1 -0
  644. package/dist/src/metrics/report-generator.js +403 -0
  645. package/dist/src/metrics/report-generator.js.map +1 -0
  646. package/dist/src/metrics/types.d.ts +112 -0
  647. package/dist/src/metrics/types.d.ts.map +1 -0
  648. package/dist/src/metrics/types.js +10 -0
  649. package/dist/src/metrics/types.js.map +1 -0
  650. package/dist/src/metrics/utils/percentile.d.ts +25 -0
  651. package/dist/src/metrics/utils/percentile.d.ts.map +1 -0
  652. package/dist/src/metrics/utils/percentile.js +46 -0
  653. package/dist/src/metrics/utils/percentile.js.map +1 -0
  654. package/dist/src/metrics/utils/tier-classifier.d.ts +61 -0
  655. package/dist/src/metrics/utils/tier-classifier.d.ts.map +1 -0
  656. package/dist/src/metrics/utils/tier-classifier.js +100 -0
  657. package/dist/src/metrics/utils/tier-classifier.js.map +1 -0
  658. package/dist/src/testing/test-generator.d.ts +117 -0
  659. package/dist/src/testing/test-generator.d.ts.map +1 -0
  660. package/dist/src/testing/test-generator.js +370 -0
  661. package/dist/src/testing/test-generator.js.map +1 -0
  662. package/dist/src/types/cost-tracking.d.ts +43 -0
  663. package/dist/src/types/cost-tracking.d.ts.map +1 -0
  664. package/dist/src/types/cost-tracking.js +8 -0
  665. package/dist/src/types/cost-tracking.js.map +1 -0
  666. package/dist/src/types/model-selection.d.ts +53 -0
  667. package/dist/src/types/model-selection.d.ts.map +1 -0
  668. package/dist/src/types/model-selection.js +12 -0
  669. package/dist/src/types/model-selection.js.map +1 -0
  670. package/dist/src/utils/agents-md-compiler.d.ts +68 -0
  671. package/dist/src/utils/agents-md-compiler.d.ts.map +1 -0
  672. package/dist/src/utils/agents-md-compiler.js +420 -0
  673. package/dist/src/utils/agents-md-compiler.js.map +1 -0
  674. package/dist/src/utils/auth-helpers.d.ts +58 -0
  675. package/dist/src/utils/auth-helpers.d.ts.map +1 -0
  676. package/dist/src/utils/auth-helpers.js +108 -0
  677. package/dist/src/utils/auth-helpers.js.map +1 -0
  678. package/dist/src/utils/auto-install.d.ts +47 -0
  679. package/dist/src/utils/auto-install.d.ts.map +1 -0
  680. package/dist/src/utils/auto-install.js +211 -0
  681. package/dist/src/utils/auto-install.js.map +1 -0
  682. package/dist/src/utils/claude-cli-detector.d.ts +75 -0
  683. package/dist/src/utils/claude-cli-detector.d.ts.map +1 -0
  684. package/dist/src/utils/claude-cli-detector.js +285 -0
  685. package/dist/src/utils/claude-cli-detector.js.map +1 -0
  686. package/dist/src/utils/cost-reporter.d.ts +58 -0
  687. package/dist/src/utils/cost-reporter.d.ts.map +1 -0
  688. package/dist/src/utils/cost-reporter.js +224 -0
  689. package/dist/src/utils/cost-reporter.js.map +1 -0
  690. package/dist/src/utils/docs-preview/config-generator.d.ts +46 -0
  691. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -0
  692. package/dist/src/utils/docs-preview/config-generator.js +377 -0
  693. package/dist/src/utils/docs-preview/config-generator.js.map +1 -0
  694. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +38 -0
  695. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
  696. package/dist/src/utils/docs-preview/docusaurus-setup.js +177 -0
  697. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -0
  698. package/dist/src/utils/docs-preview/index.d.ts +7 -0
  699. package/dist/src/utils/docs-preview/index.d.ts.map +1 -0
  700. package/dist/src/utils/docs-preview/index.js +7 -0
  701. package/dist/src/utils/docs-preview/index.js.map +1 -0
  702. package/dist/src/utils/docs-preview/package-installer.d.ts +42 -0
  703. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -0
  704. package/dist/src/utils/docs-preview/package-installer.js +182 -0
  705. package/dist/src/utils/docs-preview/package-installer.js.map +1 -0
  706. package/dist/src/utils/docs-preview/server-manager.d.ts +30 -0
  707. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -0
  708. package/dist/src/utils/docs-preview/server-manager.js +212 -0
  709. package/dist/src/utils/docs-preview/server-manager.js.map +1 -0
  710. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +32 -0
  711. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
  712. package/dist/src/utils/docs-preview/sidebar-builder.js +202 -0
  713. package/dist/src/utils/docs-preview/sidebar-builder.js.map +1 -0
  714. package/dist/src/utils/docs-preview/types.d.ts +57 -0
  715. package/dist/src/utils/docs-preview/types.d.ts.map +1 -0
  716. package/dist/src/utils/docs-preview/types.js +2 -0
  717. package/dist/src/utils/docs-preview/types.js.map +1 -0
  718. package/dist/src/utils/env-file.d.ts +88 -0
  719. package/dist/src/utils/env-file.d.ts.map +1 -0
  720. package/dist/src/utils/env-file.js +180 -0
  721. package/dist/src/utils/env-file.js.map +1 -0
  722. package/dist/src/utils/env-multi-project-parser.d.ts +220 -0
  723. package/dist/src/utils/env-multi-project-parser.d.ts.map +1 -0
  724. package/dist/src/utils/env-multi-project-parser.js +403 -0
  725. package/dist/src/utils/env-multi-project-parser.js.map +1 -0
  726. package/dist/src/utils/esm-helpers.d.ts +50 -0
  727. package/dist/src/utils/esm-helpers.d.ts.map +1 -0
  728. package/dist/src/utils/esm-helpers.js +57 -0
  729. package/dist/src/utils/esm-helpers.js.map +1 -0
  730. package/dist/src/utils/execFileNoThrow.d.ts +99 -0
  731. package/dist/src/utils/execFileNoThrow.d.ts.map +1 -0
  732. package/dist/src/utils/execFileNoThrow.js +137 -0
  733. package/dist/src/utils/execFileNoThrow.js.map +1 -0
  734. package/dist/src/utils/external-resource-validator.d.ts +102 -0
  735. package/dist/src/utils/external-resource-validator.d.ts.map +1 -0
  736. package/dist/src/utils/external-resource-validator.js +442 -0
  737. package/dist/src/utils/external-resource-validator.js.map +1 -0
  738. package/dist/src/utils/generate-skills-index.d.ts +24 -0
  739. package/dist/src/utils/generate-skills-index.d.ts.map +1 -0
  740. package/dist/src/utils/generate-skills-index.js +410 -0
  741. package/dist/src/utils/generate-skills-index.js.map +1 -0
  742. package/dist/src/utils/model-selection.d.ts +75 -0
  743. package/dist/src/utils/model-selection.d.ts.map +1 -0
  744. package/dist/src/utils/model-selection.js +204 -0
  745. package/dist/src/utils/model-selection.js.map +1 -0
  746. package/dist/src/utils/plugin-validator.d.ts +161 -0
  747. package/dist/src/utils/plugin-validator.d.ts.map +1 -0
  748. package/dist/src/utils/plugin-validator.js +558 -0
  749. package/dist/src/utils/plugin-validator.js.map +1 -0
  750. package/dist/src/utils/pricing-constants.d.ts +70 -0
  751. package/dist/src/utils/pricing-constants.d.ts.map +1 -0
  752. package/dist/src/utils/pricing-constants.js +71 -0
  753. package/dist/src/utils/pricing-constants.js.map +1 -0
  754. package/dist/src/utils/project-detection.d.ts +141 -0
  755. package/dist/src/utils/project-detection.d.ts.map +1 -0
  756. package/dist/src/utils/project-detection.js +321 -0
  757. package/dist/src/utils/project-detection.js.map +1 -0
  758. package/dist/src/utils/string-utils.d.ts +40 -0
  759. package/dist/src/utils/string-utils.d.ts.map +1 -0
  760. package/dist/src/utils/string-utils.js +58 -0
  761. package/dist/src/utils/string-utils.js.map +1 -0
  762. package/dist/src/utils/translation.d.ts +187 -0
  763. package/dist/src/utils/translation.d.ts.map +1 -0
  764. package/dist/src/utils/translation.js +414 -0
  765. package/dist/src/utils/translation.js.map +1 -0
  766. package/dist/utils/env-multi-project-parser.d.ts.map +1 -1
  767. package/dist/utils/env-multi-project-parser.js +0 -2
  768. package/dist/utils/env-multi-project-parser.js.map +1 -1
  769. package/dist/utils/project-mapper.d.ts +92 -0
  770. package/dist/utils/project-mapper.d.ts.map +1 -0
  771. package/dist/utils/project-mapper.js +276 -0
  772. package/dist/utils/project-mapper.js.map +1 -0
  773. package/dist/utils/spec-splitter.d.ts +75 -0
  774. package/dist/utils/spec-splitter.d.ts.map +1 -0
  775. package/dist/utils/spec-splitter.js +332 -0
  776. package/dist/utils/spec-splitter.js.map +1 -0
  777. package/package.json +1 -1
  778. package/plugins/specweave/hooks/lib/update-status-line.sh +138 -0
  779. package/plugins/specweave/hooks/post-task-completion.sh +10 -0
  780. package/plugins/specweave/lib/hooks/git-diff-analyzer.js +213 -129
  781. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +192 -146
  782. package/plugins/specweave/lib/hooks/prepare-reflection-context.js +116 -103
  783. package/plugins/specweave/lib/hooks/reflection-config-loader.js +125 -85
  784. package/plugins/specweave/lib/hooks/reflection-parser.js +385 -267
  785. package/plugins/specweave/lib/hooks/reflection-prompt-builder.js +226 -169
  786. package/plugins/specweave/lib/hooks/reflection-storage.js +297 -223
  787. package/plugins/specweave/lib/hooks/run-self-reflection.js +191 -120
  788. package/plugins/specweave/lib/hooks/sync-living-docs.js +129 -87
  789. package/plugins/specweave/lib/hooks/translate-file.js +300 -239
  790. package/plugins/specweave/lib/hooks/translate-living-docs.js +144 -88
  791. package/plugins/specweave/lib/hooks/types/reflection-types.js +72 -57
  792. package/plugins/specweave/lib/hooks/update-tasks-md.js +179 -117
  793. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +399 -0
  794. package/plugins/specweave-ado/lib/ado-board-resolver.js +205 -135
  795. package/plugins/specweave-ado/lib/ado-hierarchical-sync.js +335 -223
  796. package/plugins/specweave-ado/lib/ado-multi-project-sync.js +486 -0
  797. package/plugins/specweave-ado/lib/ado-multi-project-sync.ts +675 -0
  798. package/plugins/specweave-ado/lib/ado-spec-sync.js +414 -380
  799. package/plugins/specweave-ado/lib/project-selector.js +196 -168
  800. package/plugins/specweave-docs/skills/docusaurus/SKILL.md +17 -3
  801. package/plugins/specweave-docs-preview/commands/preview.md +29 -4
  802. package/plugins/specweave-github/lib/cli-sync-increment-changes.js +20 -9
  803. package/plugins/specweave-github/lib/github-board-resolver.js +115 -69
  804. package/plugins/specweave-github/lib/github-client-v2.js +389 -400
  805. package/plugins/specweave-github/lib/github-client.js +280 -246
  806. package/plugins/specweave-github/lib/github-hierarchical-sync.js +251 -168
  807. package/plugins/specweave-github/lib/github-issue-updater.js +288 -231
  808. package/plugins/specweave-github/lib/github-multi-project-sync.js +393 -0
  809. package/plugins/specweave-github/lib/github-multi-project-sync.ts +537 -0
  810. package/plugins/specweave-github/lib/github-spec-sync.js +420 -379
  811. package/plugins/specweave-github/lib/github-sync-bidirectional.js +202 -175
  812. package/plugins/specweave-github/lib/github-sync-increment-changes.js +251 -212
  813. package/plugins/specweave-github/lib/index.js +10 -11
  814. package/plugins/specweave-github/lib/repo-selector.js +201 -174
  815. package/plugins/specweave-github/lib/subtask-sync.js +125 -132
  816. package/plugins/specweave-github/lib/task-parser.js +207 -191
  817. package/plugins/specweave-github/lib/task-sync.js +296 -344
  818. package/plugins/specweave-github/lib/types.js +5 -0
  819. package/plugins/specweave-jira/lib/jira-board-resolver.js +79 -50
  820. package/plugins/specweave-jira/lib/jira-hierarchical-sync.js +191 -119
  821. package/plugins/specweave-jira/lib/jira-multi-project-sync.js +269 -0
  822. package/plugins/specweave-jira/lib/jira-multi-project-sync.ts +387 -0
  823. package/plugins/specweave-jira/lib/jira-spec-sync.js +405 -366
  824. package/plugins/specweave-jira/lib/project-selector.js +201 -172
  825. package/plugins/specweave-jira/lib/reorganization-detector.js +237 -202
  826. package/plugins/specweave-jira/lib/setup-wizard.js +204 -162
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Type definitions for GitHub sync plugin
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -1,55 +1,84 @@
1
- async function fetchBoardsForProject(client, projectKey) {
2
- console.log(`\u{1F50D} Fetching boards for project: ${projectKey}`);
3
- try {
4
- const baseUrl = client.baseUrl;
5
- const authHeader = client.getAuthHeader();
6
- const url = `${baseUrl}/rest/agile/1.0/board?projectKeyOrId=${projectKey}`;
7
- const response = await fetch(url, {
8
- method: "GET",
9
- headers: {
10
- "Authorization": authHeader,
11
- "Content-Type": "application/json"
12
- }
13
- });
14
- if (!response.ok) {
15
- const error = await response.text();
16
- console.error(`\u274C Failed to fetch boards for ${projectKey}:`, error);
17
- throw new Error(`Jira API error: ${response.status} ${error}`);
1
+ /**
2
+ * Jira Board Resolution for Hierarchical Sync
3
+ *
4
+ * Resolves board names to board IDs for use in JQL queries.
5
+ * Supports Jira Agile (Software) boards.
6
+ */
7
+ /**
8
+ * Fetch all boards for a Jira project
9
+ *
10
+ * Uses Jira Agile REST API: GET /rest/agile/1.0/board?projectKeyOrId={projectKey}
11
+ *
12
+ * @param client JiraClient instance
13
+ * @param projectKey Jira project key (e.g., "PROJECT-A")
14
+ * @returns Array of boards in the project
15
+ */
16
+ export async function fetchBoardsForProject(client, projectKey) {
17
+ console.log(`🔍 Fetching boards for project: ${projectKey}`);
18
+ try {
19
+ // Access private baseUrl and getAuthHeader via reflection (not ideal but necessary)
20
+ const baseUrl = client.baseUrl;
21
+ const authHeader = client.getAuthHeader();
22
+ const url = `${baseUrl}/rest/agile/1.0/board?projectKeyOrId=${projectKey}`;
23
+ const response = await fetch(url, {
24
+ method: 'GET',
25
+ headers: {
26
+ 'Authorization': authHeader,
27
+ 'Content-Type': 'application/json',
28
+ },
29
+ });
30
+ if (!response.ok) {
31
+ const error = await response.text();
32
+ console.error(`❌ Failed to fetch boards for ${projectKey}:`, error);
33
+ throw new Error(`Jira API error: ${response.status} ${error}`);
34
+ }
35
+ const data = await response.json();
36
+ const boards = data.values || [];
37
+ console.log(`✅ Found ${boards.length} board(s) for project ${projectKey}`);
38
+ return boards;
39
+ }
40
+ catch (error) {
41
+ console.error(`❌ Error fetching boards for ${projectKey}:`, error.message);
42
+ throw error;
18
43
  }
19
- const data = await response.json();
20
- const boards = data.values || [];
21
- console.log(`\u2705 Found ${boards.length} board(s) for project ${projectKey}`);
22
- return boards;
23
- } catch (error) {
24
- console.error(`\u274C Error fetching boards for ${projectKey}:`, error.message);
25
- throw error;
26
- }
27
44
  }
28
- async function resolveBoardNames(client, projectKey, boardNames) {
29
- if (!boardNames || boardNames.length === 0) {
30
- return /* @__PURE__ */ new Map();
31
- }
32
- const boards = await fetchBoardsForProject(client, projectKey);
33
- const boardMap = /* @__PURE__ */ new Map();
34
- for (const boardName of boardNames) {
35
- const board = boards.find(
36
- (b) => b.name.toLowerCase() === boardName.toLowerCase()
37
- );
38
- if (board) {
39
- boardMap.set(boardName, board.id);
40
- console.log(`\u2705 Resolved board "${boardName}" \u2192 ID ${board.id}`);
41
- } else {
42
- console.warn(`\u26A0\uFE0F Board "${boardName}" not found in project ${projectKey}`);
45
+ /**
46
+ * Resolve board names to board IDs
47
+ *
48
+ * @param client JiraClient instance
49
+ * @param projectKey Jira project key
50
+ * @param boardNames Array of board names to resolve
51
+ * @returns Map of board name → board ID
52
+ */
53
+ export async function resolveBoardNames(client, projectKey, boardNames) {
54
+ if (!boardNames || boardNames.length === 0) {
55
+ return new Map();
56
+ }
57
+ const boards = await fetchBoardsForProject(client, projectKey);
58
+ const boardMap = new Map();
59
+ for (const boardName of boardNames) {
60
+ const board = boards.find((b) => b.name.toLowerCase() === boardName.toLowerCase());
61
+ if (board) {
62
+ boardMap.set(boardName, board.id);
63
+ console.log(`✅ Resolved board "${boardName}" → ID ${board.id}`);
64
+ }
65
+ else {
66
+ console.warn(`⚠️ Board "${boardName}" not found in project ${projectKey}`);
67
+ // Don't throw - just skip this board (user may have typo or board was deleted)
68
+ }
43
69
  }
44
- }
45
- return boardMap;
70
+ return boardMap;
46
71
  }
47
- async function getBoardIds(client, projectKey, boardNames) {
48
- const boardMap = await resolveBoardNames(client, projectKey, boardNames);
49
- return Array.from(boardMap.values());
72
+ /**
73
+ * Get board IDs for a list of board names (helper function)
74
+ *
75
+ * @param client JiraClient instance
76
+ * @param projectKey Jira project key
77
+ * @param boardNames Array of board names
78
+ * @returns Array of board IDs (skips boards not found)
79
+ */
80
+ export async function getBoardIds(client, projectKey, boardNames) {
81
+ const boardMap = await resolveBoardNames(client, projectKey, boardNames);
82
+ return Array.from(boardMap.values());
50
83
  }
51
- export {
52
- fetchBoardsForProject,
53
- getBoardIds,
54
- resolveBoardNames
55
- };
84
+ //# sourceMappingURL=jira-board-resolver.js.map
@@ -1,134 +1,206 @@
1
- import {
2
- isSimpleStrategy,
3
- isFilteredStrategy,
4
- isCustomStrategy
5
- } from "../../../src/core/types/sync-profile.js";
6
- import { getBoardIds } from "./jira-board-resolver.js";
7
- async function buildHierarchicalJQL(client, containers) {
8
- const clauses = [];
9
- for (const container of containers) {
10
- const parts = [];
11
- parts.push(`project=${container.id}`);
12
- if (container.subOrganizations && container.subOrganizations.length > 0) {
13
- try {
14
- const boardIds = await getBoardIds(
15
- client,
16
- container.id,
17
- container.subOrganizations
18
- );
19
- if (boardIds.length > 0) {
20
- parts.push(`board IN (${boardIds.join(",")})`);
21
- } else {
22
- console.warn(
23
- `\u26A0\uFE0F No valid boards found for project ${container.id}, syncing all boards`
24
- );
1
+ /**
2
+ * Jira Hierarchical Sync Implementation
3
+ *
4
+ * Supports three sync strategies:
5
+ * 1. Simple: One project, all boards (backward compatible)
6
+ * 2. Filtered: Multiple projects + specific boards + filters
7
+ * 3. Custom: Raw JQL query
8
+ */
9
+ import { isSimpleStrategy, isFilteredStrategy, isCustomStrategy, } from '../../../src/core/types/sync-profile.js';
10
+ import { getBoardIds } from './jira-board-resolver.js';
11
+ /**
12
+ * Build hierarchical JQL query from containers
13
+ *
14
+ * Example output:
15
+ * (project=PROJECT-A AND board IN (123, 456) AND labels IN (feature))
16
+ * OR
17
+ * (project=PROJECT-B AND board IN (789))
18
+ *
19
+ * @param client JiraClient instance
20
+ * @param containers Array of containers with projects + boards + filters
21
+ * @returns JQL query string
22
+ */
23
+ export async function buildHierarchicalJQL(client, containers) {
24
+ const clauses = [];
25
+ for (const container of containers) {
26
+ const parts = [];
27
+ // Project clause
28
+ parts.push(`project=${container.id}`);
29
+ // Board filtering (if sub-organizations specified)
30
+ if (container.subOrganizations && container.subOrganizations.length > 0) {
31
+ try {
32
+ const boardIds = await getBoardIds(client, container.id, container.subOrganizations);
33
+ if (boardIds.length > 0) {
34
+ parts.push(`board IN (${boardIds.join(',')})`);
35
+ }
36
+ else {
37
+ console.warn(`⚠️ No valid boards found for project ${container.id}, syncing all boards`);
38
+ }
39
+ }
40
+ catch (error) {
41
+ console.warn(`⚠️ Failed to resolve boards for ${container.id}, syncing all boards:`, error.message);
42
+ }
25
43
  }
26
- } catch (error) {
27
- console.warn(
28
- `\u26A0\uFE0F Failed to resolve boards for ${container.id}, syncing all boards:`,
29
- error.message
30
- );
31
- }
32
- }
33
- if (container.filters) {
34
- const filterClauses = buildFilterClauses(container.filters);
35
- parts.push(...filterClauses);
44
+ // Filters
45
+ if (container.filters) {
46
+ const filterClauses = buildFilterClauses(container.filters);
47
+ parts.push(...filterClauses);
48
+ }
49
+ // Combine parts with AND
50
+ clauses.push(`(${parts.join(' AND ')})`);
36
51
  }
37
- clauses.push(`(${parts.join(" AND ")})`);
38
- }
39
- return clauses.join(" OR ");
52
+ // Combine clauses with OR
53
+ return clauses.join(' OR ');
40
54
  }
55
+ /**
56
+ * Build filter clauses from container filters
57
+ *
58
+ * @param filters Container filters
59
+ * @returns Array of JQL filter clauses
60
+ */
41
61
  function buildFilterClauses(filters) {
42
- const clauses = [];
43
- if (filters.includeLabels && filters.includeLabels.length > 0) {
44
- const labels = filters.includeLabels.map((l) => `"${l}"`).join(", ");
45
- clauses.push(`labels IN (${labels})`);
46
- }
47
- if (filters.excludeLabels && filters.excludeLabels.length > 0) {
48
- const labels = filters.excludeLabels.map((l) => `"${l}"`).join(", ");
49
- clauses.push(`labels NOT IN (${labels})`);
50
- }
51
- if (filters.assignees && filters.assignees.length > 0) {
52
- const assignees = filters.assignees.map((a) => `"${a}"`).join(", ");
53
- clauses.push(`assignee IN (${assignees})`);
54
- }
55
- if (filters.statusCategories && filters.statusCategories.length > 0) {
56
- const statuses = filters.statusCategories.map((s) => `"${s}"`).join(", ");
57
- clauses.push(`status IN (${statuses})`);
58
- }
59
- if (filters.components && filters.components.length > 0) {
60
- const components = filters.components.map((c) => `"${c}"`).join(", ");
61
- clauses.push(`component IN (${components})`);
62
- }
63
- if (filters.sprints && filters.sprints.length > 0) {
64
- const sprints = filters.sprints.map((s) => `"${s}"`).join(", ");
65
- clauses.push(`sprint IN (${sprints})`);
66
- }
67
- if (filters.issueTypes && filters.issueTypes.length > 0) {
68
- const types = filters.issueTypes.map((t) => `"${t}"`).join(", ");
69
- clauses.push(`issuetype IN (${types})`);
70
- }
71
- return clauses;
62
+ const clauses = [];
63
+ // Include labels
64
+ if (filters.includeLabels && filters.includeLabels.length > 0) {
65
+ const labels = filters.includeLabels.map((l) => `"${l}"`).join(', ');
66
+ clauses.push(`labels IN (${labels})`);
67
+ }
68
+ // Exclude labels
69
+ if (filters.excludeLabels && filters.excludeLabels.length > 0) {
70
+ const labels = filters.excludeLabels.map((l) => `"${l}"`).join(', ');
71
+ clauses.push(`labels NOT IN (${labels})`);
72
+ }
73
+ // Assignees
74
+ if (filters.assignees && filters.assignees.length > 0) {
75
+ const assignees = filters.assignees.map((a) => `"${a}"`).join(', ');
76
+ clauses.push(`assignee IN (${assignees})`);
77
+ }
78
+ // Status categories
79
+ if (filters.statusCategories && filters.statusCategories.length > 0) {
80
+ const statuses = filters.statusCategories.map((s) => `"${s}"`).join(', ');
81
+ clauses.push(`status IN (${statuses})`);
82
+ }
83
+ // Components (Jira-specific)
84
+ if (filters.components && filters.components.length > 0) {
85
+ const components = filters.components.map((c) => `"${c}"`).join(', ');
86
+ clauses.push(`component IN (${components})`);
87
+ }
88
+ // Sprints (Jira-specific)
89
+ if (filters.sprints && filters.sprints.length > 0) {
90
+ const sprints = filters.sprints.map((s) => `"${s}"`).join(', ');
91
+ clauses.push(`sprint IN (${sprints})`);
92
+ }
93
+ // Issue types (Jira-specific)
94
+ if (filters.issueTypes && filters.issueTypes.length > 0) {
95
+ const types = filters.issueTypes.map((t) => `"${t}"`).join(', ');
96
+ clauses.push(`issuetype IN (${types})`);
97
+ }
98
+ return clauses;
72
99
  }
100
+ /**
101
+ * Add time range filter to JQL query
102
+ *
103
+ * @param jql Base JQL query
104
+ * @param timeRange Time range preset (1W, 1M, 3M, 6M, ALL)
105
+ * @returns JQL with time range filter
106
+ */
73
107
  function addTimeRangeFilter(jql, timeRange) {
74
- if (timeRange === "ALL") {
75
- return jql;
76
- }
77
- const timeMap = {
78
- "1W": "-1w",
79
- "2W": "-2w",
80
- "1M": "-1M",
81
- "3M": "-3M",
82
- "6M": "-6M",
83
- "1Y": "-1y"
84
- };
85
- const jiraTime = timeMap[timeRange] || "-1M";
86
- return `${jql} AND created >= ${jiraTime}`;
108
+ if (timeRange === 'ALL') {
109
+ return jql; // No time filter
110
+ }
111
+ // Convert time range to Jira format
112
+ const timeMap = {
113
+ '1W': '-1w',
114
+ '2W': '-2w',
115
+ '1M': '-1M',
116
+ '3M': '-3M',
117
+ '6M': '-6M',
118
+ '1Y': '-1y',
119
+ };
120
+ const jiraTime = timeMap[timeRange] || '-1M';
121
+ return `${jql} AND created >= ${jiraTime}`;
87
122
  }
88
- async function fetchIssuesHierarchical(client, profile, timeRange = "1M") {
89
- const config = profile.config;
90
- if (isSimpleStrategy(profile)) {
123
+ /**
124
+ * Fetch issues hierarchically based on sync strategy
125
+ *
126
+ * @param client JiraClient instance
127
+ * @param profile Sync profile with strategy
128
+ * @param timeRange Time range preset
129
+ * @returns Array of Jira issues
130
+ */
131
+ export async function fetchIssuesHierarchical(client, profile, timeRange = '1M') {
132
+ const config = profile.config;
133
+ // Strategy 1: SIMPLE (backward compatible)
134
+ if (isSimpleStrategy(profile)) {
135
+ return fetchIssuesSimple(client, config, timeRange);
136
+ }
137
+ // Strategy 2: CUSTOM (raw JQL)
138
+ if (isCustomStrategy(profile)) {
139
+ return fetchIssuesCustom(client, config, timeRange);
140
+ }
141
+ // Strategy 3: FILTERED (hierarchical)
142
+ if (isFilteredStrategy(profile)) {
143
+ return fetchIssuesFiltered(client, config, timeRange);
144
+ }
145
+ // Default to simple if strategy not recognized
146
+ console.warn('⚠️ Unknown strategy, defaulting to simple');
91
147
  return fetchIssuesSimple(client, config, timeRange);
92
- }
93
- if (isCustomStrategy(profile)) {
94
- return fetchIssuesCustom(client, config, timeRange);
95
- }
96
- if (isFilteredStrategy(profile)) {
97
- return fetchIssuesFiltered(client, config, timeRange);
98
- }
99
- console.warn("\u26A0\uFE0F Unknown strategy, defaulting to simple");
100
- return fetchIssuesSimple(client, config, timeRange);
101
148
  }
149
+ /**
150
+ * Fetch issues using SIMPLE strategy (one project, all boards)
151
+ *
152
+ * @param client JiraClient instance
153
+ * @param config Jira configuration
154
+ * @param timeRange Time range preset
155
+ * @returns Array of Jira issues
156
+ */
102
157
  async function fetchIssuesSimple(client, config, timeRange) {
103
- const projectKey = config.projectKey;
104
- if (!projectKey) {
105
- throw new Error("Simple strategy requires projectKey in config");
106
- }
107
- let jql = `project=${projectKey}`;
108
- jql = addTimeRangeFilter(jql, timeRange);
109
- console.log("\u{1F50D} Fetching issues (SIMPLE strategy):", jql);
110
- return client.searchIssues({ jql });
158
+ const projectKey = config.projectKey;
159
+ if (!projectKey) {
160
+ throw new Error('Simple strategy requires projectKey in config');
161
+ }
162
+ let jql = `project=${projectKey}`;
163
+ // Add time range
164
+ jql = addTimeRangeFilter(jql, timeRange);
165
+ console.log('🔍 Fetching issues (SIMPLE strategy):', jql);
166
+ return client.searchIssues({ jql });
111
167
  }
168
+ /**
169
+ * Fetch issues using CUSTOM strategy (raw JQL)
170
+ *
171
+ * @param client JiraClient instance
172
+ * @param config Jira configuration
173
+ * @param timeRange Time range preset
174
+ * @returns Array of Jira issues
175
+ */
112
176
  async function fetchIssuesCustom(client, config, timeRange) {
113
- const customQuery = config.customQuery;
114
- if (!customQuery) {
115
- throw new Error("Custom strategy requires customQuery in config");
116
- }
117
- const jql = addTimeRangeFilter(customQuery, timeRange);
118
- console.log("\u{1F50D} Fetching issues (CUSTOM strategy):", jql);
119
- return client.searchIssues({ jql });
177
+ const customQuery = config.customQuery;
178
+ if (!customQuery) {
179
+ throw new Error('Custom strategy requires customQuery in config');
180
+ }
181
+ // Add time range to custom query
182
+ const jql = addTimeRangeFilter(customQuery, timeRange);
183
+ console.log('🔍 Fetching issues (CUSTOM strategy):', jql);
184
+ return client.searchIssues({ jql });
120
185
  }
186
+ /**
187
+ * Fetch issues using FILTERED strategy (multiple projects + boards + filters)
188
+ *
189
+ * @param client JiraClient instance
190
+ * @param config Jira configuration
191
+ * @param timeRange Time range preset
192
+ * @returns Array of Jira issues
193
+ */
121
194
  async function fetchIssuesFiltered(client, config, timeRange) {
122
- const containers = config.containers;
123
- if (!containers || containers.length === 0) {
124
- throw new Error("Filtered strategy requires containers array in config");
125
- }
126
- const baseJql = await buildHierarchicalJQL(client, containers);
127
- const jql = addTimeRangeFilter(baseJql, timeRange);
128
- console.log("\u{1F50D} Fetching issues (FILTERED strategy):", jql);
129
- return client.searchIssues({ jql });
195
+ const containers = config.containers;
196
+ if (!containers || containers.length === 0) {
197
+ throw new Error('Filtered strategy requires containers array in config');
198
+ }
199
+ // Build hierarchical JQL
200
+ const baseJql = await buildHierarchicalJQL(client, containers);
201
+ // Add time range
202
+ const jql = addTimeRangeFilter(baseJql, timeRange);
203
+ console.log('🔍 Fetching issues (FILTERED strategy):', jql);
204
+ return client.searchIssues({ jql });
130
205
  }
131
- export {
132
- buildHierarchicalJQL,
133
- fetchIssuesHierarchical
134
- };
206
+ //# sourceMappingURL=jira-hierarchical-sync.js.map