@sk8metal/michi-cli 0.14.1 → 0.20.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 (623) hide show
  1. package/CHANGELOG.md +268 -2
  2. package/README.md +27 -2
  3. package/dist/scripts/config/config-schema.d.ts +5 -333
  4. package/dist/scripts/config/config-schema.d.ts.map +1 -1
  5. package/dist/scripts/config/config-schema.js +6 -233
  6. package/dist/scripts/config/config-schema.js.map +1 -1
  7. package/dist/scripts/config-global.d.ts.map +1 -1
  8. package/dist/scripts/config-global.js +3 -2
  9. package/dist/scripts/config-global.js.map +1 -1
  10. package/dist/scripts/confluence-sync.d.ts +5 -73
  11. package/dist/scripts/confluence-sync.d.ts.map +1 -1
  12. package/dist/scripts/confluence-sync.js +14 -392
  13. package/dist/scripts/confluence-sync.js.map +1 -1
  14. package/dist/scripts/constants/environments.d.ts +3 -30
  15. package/dist/scripts/constants/environments.d.ts.map +1 -1
  16. package/dist/scripts/constants/environments.js +3 -41
  17. package/dist/scripts/constants/environments.js.map +1 -1
  18. package/dist/scripts/constants/languages.d.ts +3 -20
  19. package/dist/scripts/constants/languages.d.ts.map +1 -1
  20. package/dist/scripts/constants/languages.js +3 -50
  21. package/dist/scripts/constants/languages.js.map +1 -1
  22. package/dist/scripts/constants/test-commands.d.ts +3 -33
  23. package/dist/scripts/constants/test-commands.d.ts.map +1 -1
  24. package/dist/scripts/constants/test-commands.js +3 -67
  25. package/dist/scripts/constants/test-commands.js.map +1 -1
  26. package/dist/scripts/dev-tools/mermaid-converter.d.ts.map +1 -0
  27. package/dist/scripts/dev-tools/mermaid-converter.js.map +1 -0
  28. package/dist/scripts/dev-tools/test-interactive.d.ts.map +1 -0
  29. package/dist/scripts/{test-interactive.js → dev-tools/test-interactive.js} +4 -3
  30. package/dist/scripts/dev-tools/test-interactive.js.map +1 -0
  31. package/dist/scripts/github-actions-client.d.ts +5 -75
  32. package/dist/scripts/github-actions-client.d.ts.map +1 -1
  33. package/dist/scripts/github-actions-client.js +4 -178
  34. package/dist/scripts/github-actions-client.js.map +1 -1
  35. package/dist/scripts/jira-sync.d.ts +3 -121
  36. package/dist/scripts/jira-sync.d.ts.map +1 -1
  37. package/dist/scripts/jira-sync.js +5 -879
  38. package/dist/scripts/jira-sync.js.map +1 -1
  39. package/dist/scripts/markdown-to-confluence.d.ts.map +1 -1
  40. package/dist/scripts/markdown-to-confluence.js +2 -2
  41. package/dist/scripts/markdown-to-confluence.js.map +1 -1
  42. package/dist/scripts/multi-project-estimate.d.ts.map +1 -1
  43. package/dist/scripts/multi-project-estimate.js +3 -2
  44. package/dist/scripts/multi-project-estimate.js.map +1 -1
  45. package/dist/scripts/phase-runner.d.ts.map +1 -1
  46. package/dist/scripts/phase-runner.js +34 -18
  47. package/dist/scripts/phase-runner.js.map +1 -1
  48. package/dist/scripts/pre-flight-check.d.ts.map +1 -1
  49. package/dist/scripts/pre-flight-check.js +27 -11
  50. package/dist/scripts/pre-flight-check.js.map +1 -1
  51. package/dist/scripts/template/multi-repo-renderer.js +2 -2
  52. package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
  53. package/dist/scripts/test-execution-generator.d.ts.map +1 -1
  54. package/dist/scripts/test-execution-generator.js +5 -4
  55. package/dist/scripts/test-execution-generator.js.map +1 -1
  56. package/dist/scripts/utils/aidlc-parser.d.ts +5 -82
  57. package/dist/scripts/utils/aidlc-parser.d.ts.map +1 -1
  58. package/dist/scripts/utils/aidlc-parser.js +4 -204
  59. package/dist/scripts/utils/aidlc-parser.js.map +1 -1
  60. package/dist/scripts/utils/ci-generator.d.ts.map +1 -1
  61. package/dist/scripts/utils/ci-generator.js +4 -3
  62. package/dist/scripts/utils/ci-generator.js.map +1 -1
  63. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  64. package/dist/scripts/utils/config-loader.js +46 -49
  65. package/dist/scripts/utils/config-loader.js.map +1 -1
  66. package/dist/scripts/utils/config-validator.d.ts +9 -10
  67. package/dist/scripts/utils/config-validator.d.ts.map +1 -1
  68. package/dist/scripts/utils/config-validator.js +68 -70
  69. package/dist/scripts/utils/config-validator.js.map +1 -1
  70. package/dist/scripts/utils/docker-requirement-detector.d.ts.map +1 -1
  71. package/dist/scripts/utils/docker-requirement-detector.js +5 -4
  72. package/dist/scripts/utils/docker-requirement-detector.js.map +1 -1
  73. package/dist/scripts/utils/env-config.d.ts.map +1 -1
  74. package/dist/scripts/utils/env-config.js +55 -38
  75. package/dist/scripts/utils/env-config.js.map +1 -1
  76. package/dist/scripts/utils/feature-name-validator.d.ts +4 -9
  77. package/dist/scripts/utils/feature-name-validator.d.ts.map +1 -1
  78. package/dist/scripts/utils/feature-name-validator.js +12 -21
  79. package/dist/scripts/utils/feature-name-validator.js.map +1 -1
  80. package/dist/scripts/utils/interactive-helpers.d.ts +5 -29
  81. package/dist/scripts/utils/interactive-helpers.d.ts.map +1 -1
  82. package/dist/scripts/utils/interactive-helpers.js +5 -89
  83. package/dist/scripts/utils/interactive-helpers.js.map +1 -1
  84. package/dist/scripts/utils/language-detector.d.ts.map +1 -1
  85. package/dist/scripts/utils/language-detector.js +4 -3
  86. package/dist/scripts/utils/language-detector.js.map +1 -1
  87. package/dist/scripts/utils/markdown-parser.d.ts +6 -52
  88. package/dist/scripts/utils/markdown-parser.d.ts.map +1 -1
  89. package/dist/scripts/utils/markdown-parser.js +5 -286
  90. package/dist/scripts/utils/markdown-parser.js.map +1 -1
  91. package/dist/scripts/utils/multi-repo-validator.d.ts +9 -10
  92. package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
  93. package/dist/scripts/utils/multi-repo-validator.js +15 -17
  94. package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
  95. package/dist/scripts/utils/project-analyzer.d.ts +120 -0
  96. package/dist/scripts/utils/project-analyzer.d.ts.map +1 -0
  97. package/dist/scripts/utils/project-analyzer.js +358 -0
  98. package/dist/scripts/utils/project-analyzer.js.map +1 -0
  99. package/dist/scripts/utils/project-detector.d.ts.map +1 -1
  100. package/dist/scripts/utils/project-detector.js +6 -5
  101. package/dist/scripts/utils/project-detector.js.map +1 -1
  102. package/dist/scripts/utils/project-finder.d.ts +1 -21
  103. package/dist/scripts/utils/project-finder.d.ts.map +1 -1
  104. package/dist/scripts/utils/project-finder.js +2 -121
  105. package/dist/scripts/utils/project-finder.js.map +1 -1
  106. package/dist/scripts/utils/project-meta.d.ts +4 -27
  107. package/dist/scripts/utils/project-meta.d.ts.map +1 -1
  108. package/dist/scripts/utils/project-meta.js +3 -67
  109. package/dist/scripts/utils/project-meta.js.map +1 -1
  110. package/dist/scripts/utils/safe-file-reader.d.ts +84 -0
  111. package/dist/scripts/utils/safe-file-reader.d.ts.map +1 -0
  112. package/dist/scripts/utils/safe-file-reader.js +122 -0
  113. package/dist/scripts/utils/safe-file-reader.js.map +1 -0
  114. package/dist/scripts/utils/security-validator.d.ts +8 -19
  115. package/dist/scripts/utils/security-validator.d.ts.map +1 -1
  116. package/dist/scripts/utils/security-validator.js +28 -58
  117. package/dist/scripts/utils/security-validator.js.map +1 -1
  118. package/dist/scripts/utils/spec-archiver.d.ts.map +1 -1
  119. package/dist/scripts/utils/spec-archiver.js +7 -6
  120. package/dist/scripts/utils/spec-archiver.js.map +1 -1
  121. package/dist/scripts/utils/spec-updater.d.ts.map +1 -1
  122. package/dist/scripts/utils/spec-updater.js +10 -7
  123. package/dist/scripts/utils/spec-updater.js.map +1 -1
  124. package/dist/scripts/utils/tasks-converter.js +2 -2
  125. package/dist/scripts/utils/tasks-converter.js.map +1 -1
  126. package/dist/scripts/utils/tasks-format-validator.js +4 -4
  127. package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
  128. package/dist/scripts/utils/template-applier.d.ts.map +1 -1
  129. package/dist/scripts/utils/template-applier.js +4 -3
  130. package/dist/scripts/utils/template-applier.js.map +1 -1
  131. package/dist/scripts/utils/types/validation.d.ts +57 -0
  132. package/dist/scripts/utils/types/validation.d.ts.map +1 -0
  133. package/dist/scripts/utils/types/validation.js +50 -0
  134. package/dist/scripts/utils/types/validation.js.map +1 -0
  135. package/dist/scripts/validate-phase.d.ts +6 -1
  136. package/dist/scripts/validate-phase.d.ts.map +1 -1
  137. package/dist/scripts/validate-phase.js +42 -20
  138. package/dist/scripts/validate-phase.js.map +1 -1
  139. package/dist/scripts/workflow-orchestrator.d.ts +4 -40
  140. package/dist/scripts/workflow-orchestrator.d.ts.map +1 -1
  141. package/dist/scripts/workflow-orchestrator.js +7 -194
  142. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  143. package/dist/src/application/interfaces/config-provider.d.ts +89 -0
  144. package/dist/src/application/interfaces/config-provider.d.ts.map +1 -0
  145. package/dist/src/application/interfaces/config-provider.js +8 -0
  146. package/dist/src/application/interfaces/config-provider.js.map +1 -0
  147. package/dist/src/application/interfaces/external-api.d.ts +80 -0
  148. package/dist/src/application/interfaces/external-api.d.ts.map +1 -0
  149. package/dist/src/application/interfaces/external-api.js +8 -0
  150. package/dist/src/application/interfaces/external-api.js.map +1 -0
  151. package/dist/src/application/interfaces/spec-repository.d.ts +52 -0
  152. package/dist/src/application/interfaces/spec-repository.d.ts.map +1 -0
  153. package/dist/src/application/interfaces/spec-repository.js +8 -0
  154. package/dist/src/application/interfaces/spec-repository.js.map +1 -0
  155. package/dist/src/application/services/spec-service.d.ts +49 -0
  156. package/dist/src/application/services/spec-service.d.ts.map +1 -0
  157. package/dist/src/application/services/spec-service.js +94 -0
  158. package/dist/src/application/services/spec-service.js.map +1 -0
  159. package/dist/src/application/services/workflow-service.d.ts +58 -0
  160. package/dist/src/application/services/workflow-service.d.ts.map +1 -0
  161. package/dist/src/application/services/workflow-service.js +125 -0
  162. package/dist/src/application/services/workflow-service.js.map +1 -0
  163. package/dist/src/application/templates/processor.d.ts +31 -0
  164. package/dist/src/application/templates/processor.d.ts.map +1 -0
  165. package/dist/src/application/templates/processor.js +58 -0
  166. package/dist/src/application/templates/processor.js.map +1 -0
  167. package/dist/src/application/use-cases/spec/archive-spec.d.ts +34 -0
  168. package/dist/src/application/use-cases/spec/archive-spec.d.ts.map +1 -0
  169. package/dist/src/application/use-cases/spec/archive-spec.js +56 -0
  170. package/dist/src/application/use-cases/spec/archive-spec.js.map +1 -0
  171. package/dist/src/application/use-cases/spec/generate-design.d.ts +34 -0
  172. package/dist/src/application/use-cases/spec/generate-design.d.ts.map +1 -0
  173. package/dist/src/application/use-cases/spec/generate-design.js +58 -0
  174. package/dist/src/application/use-cases/spec/generate-design.js.map +1 -0
  175. package/dist/src/application/use-cases/spec/generate-requirements.d.ts +34 -0
  176. package/dist/src/application/use-cases/spec/generate-requirements.d.ts.map +1 -0
  177. package/dist/src/application/use-cases/spec/generate-requirements.js +58 -0
  178. package/dist/src/application/use-cases/spec/generate-requirements.js.map +1 -0
  179. package/dist/src/application/use-cases/spec/generate-tasks.d.ts +34 -0
  180. package/dist/src/application/use-cases/spec/generate-tasks.d.ts.map +1 -0
  181. package/dist/src/application/use-cases/spec/generate-tasks.js +58 -0
  182. package/dist/src/application/use-cases/spec/generate-tasks.js.map +1 -0
  183. package/dist/src/application/use-cases/spec/init-spec.d.ts +48 -0
  184. package/dist/src/application/use-cases/spec/init-spec.d.ts.map +1 -0
  185. package/dist/src/application/use-cases/spec/init-spec.js +121 -0
  186. package/dist/src/application/use-cases/spec/init-spec.js.map +1 -0
  187. package/dist/src/cli.d.ts +6 -7
  188. package/dist/src/cli.d.ts.map +1 -1
  189. package/dist/src/cli.js +6 -745
  190. package/dist/src/cli.js.map +1 -1
  191. package/dist/src/commands/config-validate.js +2 -2
  192. package/dist/src/commands/init.d.ts +6 -21
  193. package/dist/src/commands/init.d.ts.map +1 -1
  194. package/dist/src/commands/init.js +5 -508
  195. package/dist/src/commands/init.js.map +1 -1
  196. package/dist/src/commands/migrate.js +4 -3
  197. package/dist/src/commands/migrate.js.map +1 -1
  198. package/dist/src/commands/spec-archive.d.ts +6 -13
  199. package/dist/src/commands/spec-archive.d.ts.map +1 -1
  200. package/dist/src/commands/spec-archive.js +5 -36
  201. package/dist/src/commands/spec-archive.js.map +1 -1
  202. package/dist/src/commands/spec-list.d.ts +6 -11
  203. package/dist/src/commands/spec-list.d.ts.map +1 -1
  204. package/dist/src/commands/spec-list.js +5 -51
  205. package/dist/src/commands/spec-list.js.map +1 -1
  206. package/dist/src/domain/constants/approval.d.ts +18 -0
  207. package/dist/src/domain/constants/approval.d.ts.map +1 -0
  208. package/dist/src/domain/constants/approval.js +23 -0
  209. package/dist/src/domain/constants/approval.js.map +1 -0
  210. package/dist/src/domain/constants/environments.d.ts +33 -0
  211. package/dist/src/domain/constants/environments.d.ts.map +1 -0
  212. package/dist/src/domain/constants/environments.js +44 -0
  213. package/dist/src/domain/constants/environments.js.map +1 -0
  214. package/dist/src/domain/constants/index.d.ts +12 -0
  215. package/dist/src/domain/constants/index.d.ts.map +1 -0
  216. package/dist/src/domain/constants/index.js +18 -0
  217. package/dist/src/domain/constants/index.js.map +1 -0
  218. package/dist/src/domain/constants/languages.d.ts +23 -0
  219. package/dist/src/domain/constants/languages.d.ts.map +1 -0
  220. package/dist/src/domain/constants/languages.js +53 -0
  221. package/dist/src/domain/constants/languages.js.map +1 -0
  222. package/dist/src/domain/constants/phases.d.ts +32 -0
  223. package/dist/src/domain/constants/phases.d.ts.map +1 -0
  224. package/dist/src/domain/constants/phases.js +52 -0
  225. package/dist/src/domain/constants/phases.js.map +1 -0
  226. package/dist/src/domain/constants/test-commands.d.ts +36 -0
  227. package/dist/src/domain/constants/test-commands.d.ts.map +1 -0
  228. package/dist/src/domain/constants/test-commands.js +70 -0
  229. package/dist/src/domain/constants/test-commands.js.map +1 -0
  230. package/dist/src/domain/constants/validation-rules.d.ts +32 -0
  231. package/dist/src/domain/constants/validation-rules.d.ts.map +1 -0
  232. package/dist/src/domain/constants/validation-rules.js +51 -0
  233. package/dist/src/domain/constants/validation-rules.js.map +1 -0
  234. package/dist/src/domain/entities/spec.d.ts +66 -0
  235. package/dist/src/domain/entities/spec.d.ts.map +1 -0
  236. package/dist/src/domain/entities/spec.js +112 -0
  237. package/dist/src/domain/entities/spec.js.map +1 -0
  238. package/dist/src/domain/entities/task.d.ts +43 -0
  239. package/dist/src/domain/entities/task.d.ts.map +1 -0
  240. package/dist/src/domain/entities/task.js +65 -0
  241. package/dist/src/domain/entities/task.js.map +1 -0
  242. package/dist/src/domain/services/spec-validator.d.ts +46 -0
  243. package/dist/src/domain/services/spec-validator.d.ts.map +1 -0
  244. package/dist/src/domain/services/spec-validator.js +99 -0
  245. package/dist/src/domain/services/spec-validator.js.map +1 -0
  246. package/dist/src/domain/value-objects/feature-name.d.ts +24 -0
  247. package/dist/src/domain/value-objects/feature-name.d.ts.map +1 -0
  248. package/dist/src/domain/value-objects/feature-name.js +36 -0
  249. package/dist/src/domain/value-objects/feature-name.js.map +1 -0
  250. package/dist/src/domain/value-objects/index.d.ts +7 -0
  251. package/dist/src/domain/value-objects/index.d.ts.map +1 -0
  252. package/dist/src/domain/value-objects/index.js +7 -0
  253. package/dist/src/domain/value-objects/index.js.map +1 -0
  254. package/dist/src/infrastructure/config/index.d.ts +5 -0
  255. package/dist/src/infrastructure/config/index.d.ts.map +1 -0
  256. package/dist/src/infrastructure/config/index.js +6 -0
  257. package/dist/src/infrastructure/config/index.js.map +1 -0
  258. package/dist/src/infrastructure/config/schema.d.ts +337 -0
  259. package/dist/src/infrastructure/config/schema.d.ts.map +1 -0
  260. package/dist/src/infrastructure/config/schema.js +237 -0
  261. package/dist/src/infrastructure/config/schema.js.map +1 -0
  262. package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.d.ts +14 -0
  263. package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.d.ts.map +1 -0
  264. package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.js +102 -0
  265. package/dist/src/infrastructure/external-apis/atlassian/confluence/approval.js.map +1 -0
  266. package/dist/src/infrastructure/external-apis/atlassian/confluence/client.d.ts +23 -0
  267. package/dist/src/infrastructure/external-apis/atlassian/confluence/client.d.ts.map +1 -0
  268. package/dist/src/infrastructure/external-apis/atlassian/confluence/client.js +192 -0
  269. package/dist/src/infrastructure/external-apis/atlassian/confluence/client.js.map +1 -0
  270. package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.d.ts +48 -0
  271. package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.d.ts.map +1 -0
  272. package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.js +531 -0
  273. package/dist/src/infrastructure/external-apis/atlassian/confluence/hierarchy.js.map +1 -0
  274. package/dist/src/infrastructure/external-apis/atlassian/confluence/index.d.ts +10 -0
  275. package/dist/src/infrastructure/external-apis/atlassian/confluence/index.d.ts.map +1 -0
  276. package/dist/src/infrastructure/external-apis/atlassian/confluence/index.js +12 -0
  277. package/dist/src/infrastructure/external-apis/atlassian/confluence/index.js.map +1 -0
  278. package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.d.ts +13 -0
  279. package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.d.ts.map +1 -0
  280. package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.js +129 -0
  281. package/dist/src/infrastructure/external-apis/atlassian/confluence/sync-service.js.map +1 -0
  282. package/dist/src/infrastructure/external-apis/atlassian/confluence/types.d.ts +113 -0
  283. package/dist/src/infrastructure/external-apis/atlassian/confluence/types.d.ts.map +1 -0
  284. package/dist/src/infrastructure/external-apis/atlassian/confluence/types.js +5 -0
  285. package/dist/src/infrastructure/external-apis/atlassian/confluence/types.js.map +1 -0
  286. package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.d.ts +15 -0
  287. package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.d.ts.map +1 -0
  288. package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.js +141 -0
  289. package/dist/src/infrastructure/external-apis/atlassian/jira/adf-converter.js.map +1 -0
  290. package/dist/src/infrastructure/external-apis/atlassian/jira/client.d.ts +50 -0
  291. package/dist/src/infrastructure/external-apis/atlassian/jira/client.d.ts.map +1 -0
  292. package/dist/src/infrastructure/external-apis/atlassian/jira/client.js +226 -0
  293. package/dist/src/infrastructure/external-apis/atlassian/jira/client.js.map +1 -0
  294. package/dist/src/infrastructure/external-apis/atlassian/jira/index.d.ts +12 -0
  295. package/dist/src/infrastructure/external-apis/atlassian/jira/index.d.ts.map +1 -0
  296. package/dist/src/infrastructure/external-apis/atlassian/jira/index.js +16 -0
  297. package/dist/src/infrastructure/external-apis/atlassian/jira/index.js.map +1 -0
  298. package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.d.ts +49 -0
  299. package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.d.ts.map +1 -0
  300. package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.js +165 -0
  301. package/dist/src/infrastructure/external-apis/atlassian/jira/issue-builder.js.map +1 -0
  302. package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.d.ts +14 -0
  303. package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.d.ts.map +1 -0
  304. package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.js +110 -0
  305. package/dist/src/infrastructure/external-apis/atlassian/jira/status-mapper.js.map +1 -0
  306. package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.d.ts +32 -0
  307. package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.d.ts.map +1 -0
  308. package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.js +284 -0
  309. package/dist/src/infrastructure/external-apis/atlassian/jira/sync-service.js.map +1 -0
  310. package/dist/src/infrastructure/external-apis/atlassian/jira/types.d.ts +114 -0
  311. package/dist/src/infrastructure/external-apis/atlassian/jira/types.d.ts.map +1 -0
  312. package/dist/src/infrastructure/external-apis/atlassian/jira/types.js +7 -0
  313. package/dist/src/infrastructure/external-apis/atlassian/jira/types.js.map +1 -0
  314. package/dist/src/infrastructure/external-apis/github/client.d.ts +25 -0
  315. package/dist/src/infrastructure/external-apis/github/client.d.ts.map +1 -0
  316. package/dist/src/infrastructure/external-apis/github/client.js +109 -0
  317. package/dist/src/infrastructure/external-apis/github/client.js.map +1 -0
  318. package/dist/src/infrastructure/external-apis/github/index.d.ts +7 -0
  319. package/dist/src/infrastructure/external-apis/github/index.d.ts.map +1 -0
  320. package/dist/src/infrastructure/external-apis/github/index.js +8 -0
  321. package/dist/src/infrastructure/external-apis/github/index.js.map +1 -0
  322. package/dist/src/infrastructure/external-apis/github/types.d.ts +69 -0
  323. package/dist/src/infrastructure/external-apis/github/types.d.ts.map +1 -0
  324. package/dist/src/infrastructure/external-apis/github/types.js +5 -0
  325. package/dist/src/infrastructure/external-apis/github/types.js.map +1 -0
  326. package/dist/src/infrastructure/external-apis/github/utils.d.ts +18 -0
  327. package/dist/src/infrastructure/external-apis/github/utils.d.ts.map +1 -0
  328. package/dist/src/infrastructure/external-apis/github/utils.js +84 -0
  329. package/dist/src/infrastructure/external-apis/github/utils.js.map +1 -0
  330. package/dist/src/infrastructure/filesystem/index.d.ts +6 -0
  331. package/dist/src/infrastructure/filesystem/index.d.ts.map +1 -0
  332. package/dist/src/infrastructure/filesystem/index.js +5 -0
  333. package/dist/src/infrastructure/filesystem/index.js.map +1 -0
  334. package/dist/src/infrastructure/filesystem/project-meta.d.ts +32 -0
  335. package/dist/src/infrastructure/filesystem/project-meta.d.ts.map +1 -0
  336. package/dist/src/infrastructure/filesystem/project-meta.js +75 -0
  337. package/dist/src/infrastructure/filesystem/project-meta.js.map +1 -0
  338. package/dist/src/infrastructure/parsers/aidlc-parser.d.ts +86 -0
  339. package/dist/src/infrastructure/parsers/aidlc-parser.d.ts.map +1 -0
  340. package/dist/src/infrastructure/parsers/aidlc-parser.js +208 -0
  341. package/dist/src/infrastructure/parsers/aidlc-parser.js.map +1 -0
  342. package/dist/src/infrastructure/parsers/index.d.ts +8 -0
  343. package/dist/src/infrastructure/parsers/index.d.ts.map +1 -0
  344. package/dist/src/infrastructure/parsers/index.js +6 -0
  345. package/dist/src/infrastructure/parsers/index.js.map +1 -0
  346. package/dist/src/infrastructure/parsers/markdown-parser.d.ts +51 -0
  347. package/dist/src/infrastructure/parsers/markdown-parser.d.ts.map +1 -0
  348. package/dist/src/infrastructure/parsers/markdown-parser.js +253 -0
  349. package/dist/src/infrastructure/parsers/markdown-parser.js.map +1 -0
  350. package/dist/src/presentation/cli/config.d.ts +12 -0
  351. package/dist/src/presentation/cli/config.d.ts.map +1 -0
  352. package/dist/src/presentation/cli/config.js +22 -0
  353. package/dist/src/presentation/cli/config.js.map +1 -0
  354. package/dist/src/presentation/cli/version.d.ts +10 -0
  355. package/dist/src/presentation/cli/version.d.ts.map +1 -0
  356. package/dist/src/presentation/cli/version.js +41 -0
  357. package/dist/src/presentation/cli/version.js.map +1 -0
  358. package/dist/src/presentation/cli.d.ts +22 -0
  359. package/dist/src/presentation/cli.d.ts.map +1 -0
  360. package/dist/src/presentation/cli.js +85 -0
  361. package/dist/src/presentation/cli.js.map +1 -0
  362. package/dist/src/presentation/commands/config/register.d.ts +11 -0
  363. package/dist/src/presentation/commands/config/register.d.ts.map +1 -0
  364. package/dist/src/presentation/commands/config/register.js +98 -0
  365. package/dist/src/presentation/commands/config/register.js.map +1 -0
  366. package/dist/src/presentation/commands/confluence/register.d.ts +11 -0
  367. package/dist/src/presentation/commands/confluence/register.d.ts.map +1 -0
  368. package/dist/src/presentation/commands/confluence/register.js +32 -0
  369. package/dist/src/presentation/commands/confluence/register.js.map +1 -0
  370. package/dist/src/presentation/commands/confluence/sync.d.ts +17 -0
  371. package/dist/src/presentation/commands/confluence/sync.d.ts.map +1 -0
  372. package/dist/src/presentation/commands/confluence/sync.js +25 -0
  373. package/dist/src/presentation/commands/confluence/sync.js.map +1 -0
  374. package/dist/src/presentation/commands/init/handler.d.ts +10 -0
  375. package/dist/src/presentation/commands/init/handler.d.ts.map +1 -0
  376. package/dist/src/presentation/commands/init/handler.js +64 -0
  377. package/dist/src/presentation/commands/init/handler.js.map +1 -0
  378. package/dist/src/presentation/commands/init/prompts.d.ts +41 -0
  379. package/dist/src/presentation/commands/init/prompts.d.ts.map +1 -0
  380. package/dist/src/presentation/commands/init/prompts.js +119 -0
  381. package/dist/src/presentation/commands/init/prompts.js.map +1 -0
  382. package/dist/src/presentation/commands/init/register.d.ts +11 -0
  383. package/dist/src/presentation/commands/init/register.d.ts.map +1 -0
  384. package/dist/src/presentation/commands/init/register.js +141 -0
  385. package/dist/src/presentation/commands/init/register.js.map +1 -0
  386. package/dist/src/presentation/commands/init/setup.d.ts +26 -0
  387. package/dist/src/presentation/commands/init/setup.d.ts.map +1 -0
  388. package/dist/src/presentation/commands/init/setup.js +196 -0
  389. package/dist/src/presentation/commands/init/setup.js.map +1 -0
  390. package/dist/src/presentation/commands/init/templates.d.ts +19 -0
  391. package/dist/src/presentation/commands/init/templates.d.ts.map +1 -0
  392. package/dist/src/presentation/commands/init/templates.js +140 -0
  393. package/dist/src/presentation/commands/init/templates.js.map +1 -0
  394. package/dist/src/presentation/commands/init/validation.d.ts +21 -0
  395. package/dist/src/presentation/commands/init/validation.d.ts.map +1 -0
  396. package/dist/src/presentation/commands/init/validation.js +65 -0
  397. package/dist/src/presentation/commands/init/validation.js.map +1 -0
  398. package/dist/src/presentation/commands/jira/register.d.ts +11 -0
  399. package/dist/src/presentation/commands/jira/register.d.ts.map +1 -0
  400. package/dist/src/presentation/commands/jira/register.js +75 -0
  401. package/dist/src/presentation/commands/jira/register.js.map +1 -0
  402. package/dist/src/presentation/commands/jira/sync.d.ts +29 -0
  403. package/dist/src/presentation/commands/jira/sync.d.ts.map +1 -0
  404. package/dist/src/presentation/commands/jira/sync.js +37 -0
  405. package/dist/src/presentation/commands/jira/sync.js.map +1 -0
  406. package/dist/src/{commands/multi-repo-add-repo.d.ts → presentation/commands/multi-repo/add-repo.d.ts} +1 -1
  407. package/dist/src/presentation/commands/multi-repo/add-repo.d.ts.map +1 -0
  408. package/dist/src/{commands/multi-repo-add-repo.js → presentation/commands/multi-repo/add-repo.js} +4 -4
  409. package/dist/src/presentation/commands/multi-repo/add-repo.js.map +1 -0
  410. package/dist/src/{commands/multi-repo-ci-status.d.ts → presentation/commands/multi-repo/ci-status.d.ts} +2 -2
  411. package/dist/src/presentation/commands/multi-repo/ci-status.d.ts.map +1 -0
  412. package/dist/src/{commands/multi-repo-ci-status.js → presentation/commands/multi-repo/ci-status.js} +95 -81
  413. package/dist/src/presentation/commands/multi-repo/ci-status.js.map +1 -0
  414. package/dist/src/{commands/multi-repo-confluence-sync.d.ts → presentation/commands/multi-repo/confluence-sync.d.ts} +1 -1
  415. package/dist/src/presentation/commands/multi-repo/confluence-sync.d.ts.map +1 -0
  416. package/dist/src/{commands/multi-repo-confluence-sync.js → presentation/commands/multi-repo/confluence-sync.js} +7 -6
  417. package/dist/src/presentation/commands/multi-repo/confluence-sync.js.map +1 -0
  418. package/dist/src/{commands/multi-repo-init.d.ts → presentation/commands/multi-repo/init.d.ts} +1 -1
  419. package/dist/src/presentation/commands/multi-repo/init.d.ts.map +1 -0
  420. package/dist/src/{commands/multi-repo-init.js → presentation/commands/multi-repo/init.js} +6 -6
  421. package/dist/src/presentation/commands/multi-repo/init.js.map +1 -0
  422. package/dist/src/{commands/multi-repo-list.d.ts → presentation/commands/multi-repo/list.d.ts} +1 -1
  423. package/dist/src/presentation/commands/multi-repo/list.d.ts.map +1 -0
  424. package/dist/src/{commands/multi-repo-list.js → presentation/commands/multi-repo/list.js} +2 -2
  425. package/dist/src/presentation/commands/multi-repo/list.js.map +1 -0
  426. package/dist/src/presentation/commands/multi-repo/register.d.ts +12 -0
  427. package/dist/src/presentation/commands/multi-repo/register.d.ts.map +1 -0
  428. package/dist/src/presentation/commands/multi-repo/register.js +249 -0
  429. package/dist/src/presentation/commands/multi-repo/register.js.map +1 -0
  430. package/dist/src/{commands/multi-repo-test.d.ts → presentation/commands/multi-repo/test.d.ts} +1 -1
  431. package/dist/src/presentation/commands/multi-repo/test.d.ts.map +1 -0
  432. package/dist/src/{commands/multi-repo-test.js → presentation/commands/multi-repo/test.js} +4 -4
  433. package/dist/src/presentation/commands/multi-repo/test.js.map +1 -0
  434. package/dist/src/presentation/commands/phase/register.d.ts +11 -0
  435. package/dist/src/presentation/commands/phase/register.d.ts.map +1 -0
  436. package/dist/src/presentation/commands/phase/register.js +97 -0
  437. package/dist/src/presentation/commands/phase/register.js.map +1 -0
  438. package/dist/src/presentation/commands/spec/archive.d.ts +17 -0
  439. package/dist/src/presentation/commands/spec/archive.d.ts.map +1 -0
  440. package/dist/src/presentation/commands/spec/archive.js +40 -0
  441. package/dist/src/presentation/commands/spec/archive.js.map +1 -0
  442. package/dist/src/presentation/commands/spec/list.d.ts +15 -0
  443. package/dist/src/presentation/commands/spec/list.d.ts.map +1 -0
  444. package/dist/src/presentation/commands/spec/list.js +55 -0
  445. package/dist/src/presentation/commands/spec/list.js.map +1 -0
  446. package/dist/src/presentation/commands/spec/register.d.ts +11 -0
  447. package/dist/src/presentation/commands/spec/register.d.ts.map +1 -0
  448. package/dist/src/presentation/commands/spec/register.js +45 -0
  449. package/dist/src/presentation/commands/spec/register.js.map +1 -0
  450. package/dist/src/presentation/commands/workflow/orchestrator.d.ts +50 -0
  451. package/dist/src/presentation/commands/workflow/orchestrator.d.ts.map +1 -0
  452. package/dist/src/presentation/commands/workflow/orchestrator.js +174 -0
  453. package/dist/src/presentation/commands/workflow/orchestrator.js.map +1 -0
  454. package/dist/src/presentation/commands/workflow/register.d.ts +11 -0
  455. package/dist/src/presentation/commands/workflow/register.d.ts.map +1 -0
  456. package/dist/src/presentation/commands/workflow/register.js +58 -0
  457. package/dist/src/presentation/commands/workflow/register.js.map +1 -0
  458. package/dist/src/presentation/formatters/error-formatter.d.ts +79 -0
  459. package/dist/src/presentation/formatters/error-formatter.d.ts.map +1 -0
  460. package/dist/src/presentation/formatters/error-formatter.js +150 -0
  461. package/dist/src/presentation/formatters/error-formatter.js.map +1 -0
  462. package/dist/src/presentation/formatters/index.d.ts +8 -0
  463. package/dist/src/presentation/formatters/index.d.ts.map +1 -0
  464. package/dist/src/presentation/formatters/index.js +11 -0
  465. package/dist/src/presentation/formatters/index.js.map +1 -0
  466. package/dist/src/presentation/formatters/output-formatter.d.ts +98 -0
  467. package/dist/src/presentation/formatters/output-formatter.d.ts.map +1 -0
  468. package/dist/src/presentation/formatters/output-formatter.js +165 -0
  469. package/dist/src/presentation/formatters/output-formatter.js.map +1 -0
  470. package/dist/src/presentation/formatters/progress-formatter.d.ts +121 -0
  471. package/dist/src/presentation/formatters/progress-formatter.d.ts.map +1 -0
  472. package/dist/src/presentation/formatters/progress-formatter.js +235 -0
  473. package/dist/src/presentation/formatters/progress-formatter.js.map +1 -0
  474. package/dist/src/presentation/interactive/config/env-wizard.d.ts +9 -0
  475. package/dist/src/presentation/interactive/config/env-wizard.d.ts.map +1 -0
  476. package/dist/src/presentation/interactive/config/env-wizard.js +193 -0
  477. package/dist/src/presentation/interactive/config/env-wizard.js.map +1 -0
  478. package/dist/src/presentation/interactive/config/index.d.ts +5 -0
  479. package/dist/src/presentation/interactive/config/index.d.ts.map +1 -0
  480. package/dist/src/presentation/interactive/config/index.js +5 -0
  481. package/dist/src/presentation/interactive/config/index.js.map +1 -0
  482. package/dist/src/presentation/interactive/confirmation.d.ts +24 -0
  483. package/dist/src/presentation/interactive/confirmation.d.ts.map +1 -0
  484. package/dist/src/presentation/interactive/confirmation.js +54 -0
  485. package/dist/src/presentation/interactive/confirmation.js.map +1 -0
  486. package/dist/src/presentation/interactive/index.d.ts +8 -0
  487. package/dist/src/presentation/interactive/index.d.ts.map +1 -0
  488. package/dist/src/presentation/interactive/index.js +11 -0
  489. package/dist/src/presentation/interactive/index.js.map +1 -0
  490. package/dist/src/presentation/interactive/prompts.d.ts +30 -0
  491. package/dist/src/presentation/interactive/prompts.d.ts.map +1 -0
  492. package/dist/src/presentation/interactive/prompts.js +69 -0
  493. package/dist/src/presentation/interactive/prompts.js.map +1 -0
  494. package/dist/src/presentation/interactive/selection.d.ts +31 -0
  495. package/dist/src/presentation/interactive/selection.d.ts.map +1 -0
  496. package/dist/src/presentation/interactive/selection.js +138 -0
  497. package/dist/src/presentation/interactive/selection.js.map +1 -0
  498. package/dist/src/shared/types/errors.d.ts +132 -0
  499. package/dist/src/shared/types/errors.d.ts.map +1 -0
  500. package/dist/src/shared/types/errors.js +61 -0
  501. package/dist/src/shared/types/errors.js.map +1 -0
  502. package/dist/src/shared/types/result.d.ts +53 -0
  503. package/dist/src/shared/types/result.d.ts.map +1 -0
  504. package/dist/src/shared/types/result.js +42 -0
  505. package/dist/src/shared/types/result.js.map +1 -0
  506. package/dist/test-confluence-auth.d.ts +6 -0
  507. package/dist/test-confluence-auth.d.ts.map +1 -0
  508. package/dist/test-confluence-auth.js +128 -0
  509. package/dist/test-confluence-auth.js.map +1 -0
  510. package/docs/MIGRATION.md +513 -0
  511. package/docs/architecture.md +774 -0
  512. package/docs/guides/comprehensive-verification-guide.md +1926 -0
  513. package/docs/guides/interactive-config.md +285 -0
  514. package/docs/onion-architecture-phase0-complete.md +91 -0
  515. package/package.json +6 -6
  516. package/scripts/README.md +148 -0
  517. package/scripts/__tests__/jira-transitions.test.ts +44 -30
  518. package/scripts/__tests__/mermaid-converter.test.ts +2 -2
  519. package/scripts/__tests__/multi-repo-validator.test.ts +62 -62
  520. package/scripts/__tests__/spec-archiver.test.ts +12 -0
  521. package/scripts/__tests__/validate-phase.test.ts +6 -6
  522. package/scripts/build/README.md +24 -0
  523. package/scripts/{copy-static-assets.js → build/copy-static-assets.js} +1 -1
  524. package/scripts/{set-permissions.js → build/set-permissions.js} +1 -1
  525. package/scripts/config/config-schema.ts +43 -302
  526. package/scripts/config-global.ts +3 -2
  527. package/scripts/confluence-sync.ts +17 -538
  528. package/scripts/constants/environments.ts +3 -53
  529. package/scripts/constants/languages.ts +3 -68
  530. package/scripts/constants/test-commands.ts +3 -94
  531. package/scripts/dev-tools/README.md +22 -0
  532. package/scripts/{test-interactive.ts → dev-tools/test-interactive.ts} +4 -3
  533. package/scripts/github-actions-client.ts +18 -256
  534. package/scripts/jira-sync.ts +5 -1270
  535. package/scripts/markdown-to-confluence.ts +5 -5
  536. package/scripts/multi-project-estimate.ts +3 -2
  537. package/scripts/phase-runner.ts +41 -19
  538. package/scripts/pre-flight-check.ts +27 -11
  539. package/scripts/template/__tests__/multi-repo-renderer.test.ts +12 -0
  540. package/scripts/template/multi-repo-renderer.ts +2 -2
  541. package/scripts/test-execution-generator.ts +5 -4
  542. package/scripts/utils/__tests__/config-validator.test.ts +19 -19
  543. package/scripts/utils/__tests__/feature-name-validator.test.ts +13 -13
  544. package/scripts/utils/__tests__/multi-repo-validator.test.ts +34 -34
  545. package/scripts/utils/__tests__/project-analyzer.test.ts +542 -0
  546. package/scripts/utils/__tests__/safe-file-reader.test.ts +208 -0
  547. package/scripts/utils/__tests__/security-validator.test.ts +33 -33
  548. package/scripts/utils/__tests__/validation-result.test.ts +112 -0
  549. package/scripts/utils/aidlc-parser.ts +18 -287
  550. package/scripts/utils/ci-generator.ts +4 -3
  551. package/scripts/utils/config-loader.ts +54 -50
  552. package/scripts/utils/config-validator.ts +89 -80
  553. package/scripts/utils/docker-requirement-detector.ts +5 -4
  554. package/scripts/utils/env-config.ts +59 -40
  555. package/scripts/utils/feature-name-validator.ts +25 -40
  556. package/scripts/utils/interactive-helpers.ts +24 -132
  557. package/scripts/utils/language-detector.ts +4 -3
  558. package/scripts/utils/markdown-parser.ts +18 -373
  559. package/scripts/utils/multi-repo-validator.ts +27 -28
  560. package/scripts/utils/project-analyzer.ts +429 -0
  561. package/scripts/utils/project-detector.ts +6 -5
  562. package/scripts/utils/project-finder.ts +2 -154
  563. package/scripts/utils/project-meta.ts +8 -91
  564. package/scripts/utils/safe-file-reader.ts +158 -0
  565. package/scripts/utils/security-validator.ts +42 -78
  566. package/scripts/utils/spec-archiver.ts +7 -6
  567. package/scripts/utils/spec-updater.ts +12 -6
  568. package/scripts/utils/tasks-converter.ts +2 -2
  569. package/scripts/utils/tasks-format-validator.ts +4 -4
  570. package/scripts/utils/template-applier.ts +4 -3
  571. package/scripts/utils/types/validation.ts +92 -0
  572. package/scripts/validate-phase.ts +51 -23
  573. package/scripts/workflow-orchestrator.ts +16 -251
  574. package/dist/scripts/mermaid-converter.d.ts.map +0 -1
  575. package/dist/scripts/mermaid-converter.js.map +0 -1
  576. package/dist/scripts/resource-dashboard.d.ts +0 -7
  577. package/dist/scripts/resource-dashboard.d.ts.map +0 -1
  578. package/dist/scripts/resource-dashboard.js +0 -157
  579. package/dist/scripts/resource-dashboard.js.map +0 -1
  580. package/dist/scripts/test-interactive.d.ts.map +0 -1
  581. package/dist/scripts/test-interactive.js.map +0 -1
  582. package/dist/scripts/test-new-features.d.ts +0 -5
  583. package/dist/scripts/test-new-features.d.ts.map +0 -1
  584. package/dist/scripts/test-new-features.js +0 -148
  585. package/dist/scripts/test-new-features.js.map +0 -1
  586. package/dist/scripts/test-spec-generator.d.ts +0 -29
  587. package/dist/scripts/test-spec-generator.d.ts.map +0 -1
  588. package/dist/scripts/test-spec-generator.js +0 -493
  589. package/dist/scripts/test-spec-generator.js.map +0 -1
  590. package/dist/scripts/utils/confluence-approval.d.ts +0 -46
  591. package/dist/scripts/utils/confluence-approval.d.ts.map +0 -1
  592. package/dist/scripts/utils/confluence-approval.js +0 -120
  593. package/dist/scripts/utils/confluence-approval.js.map +0 -1
  594. package/dist/scripts/utils/template-finder.d.ts +0 -37
  595. package/dist/scripts/utils/template-finder.d.ts.map +0 -1
  596. package/dist/scripts/utils/template-finder.js +0 -58
  597. package/dist/scripts/utils/template-finder.js.map +0 -1
  598. package/dist/src/commands/multi-repo-add-repo.d.ts.map +0 -1
  599. package/dist/src/commands/multi-repo-add-repo.js.map +0 -1
  600. package/dist/src/commands/multi-repo-ci-status.d.ts.map +0 -1
  601. package/dist/src/commands/multi-repo-ci-status.js.map +0 -1
  602. package/dist/src/commands/multi-repo-confluence-sync.d.ts.map +0 -1
  603. package/dist/src/commands/multi-repo-confluence-sync.js.map +0 -1
  604. package/dist/src/commands/multi-repo-init.d.ts.map +0 -1
  605. package/dist/src/commands/multi-repo-init.js.map +0 -1
  606. package/dist/src/commands/multi-repo-list.d.ts.map +0 -1
  607. package/dist/src/commands/multi-repo-list.js.map +0 -1
  608. package/dist/src/commands/multi-repo-test.d.ts.map +0 -1
  609. package/dist/src/commands/multi-repo-test.js.map +0 -1
  610. package/dist/src/commands/setup-existing.d.ts +0 -22
  611. package/dist/src/commands/setup-existing.d.ts.map +0 -1
  612. package/dist/src/commands/setup-existing.js +0 -606
  613. package/dist/src/commands/setup-existing.js.map +0 -1
  614. package/scripts/__tests__/setup-existing-project.test.ts +0 -244
  615. package/scripts/resource-dashboard.ts +0 -189
  616. package/scripts/test-new-features.ts +0 -171
  617. package/scripts/test-spec-generator.ts +0 -570
  618. package/scripts/utils/confluence-approval.ts +0 -169
  619. package/scripts/utils/template-finder.ts +0 -69
  620. /package/dist/scripts/{mermaid-converter.d.ts → dev-tools/mermaid-converter.d.ts} +0 -0
  621. /package/dist/scripts/{mermaid-converter.js → dev-tools/mermaid-converter.js} +0 -0
  622. /package/dist/scripts/{test-interactive.d.ts → dev-tools/test-interactive.d.ts} +0 -0
  623. /package/scripts/{mermaid-converter.ts → dev-tools/mermaid-converter.ts} +0 -0
@@ -0,0 +1,80 @@
1
+ /**
2
+ * ExternalAPIClient Interface (Port)
3
+ *
4
+ * Application layer interface for external API communication
5
+ * Infrastructure layer provides the implementation (Adapter)
6
+ */
7
+ import type { Result } from '../../shared/types/result.js';
8
+ import type { NetworkError } from '../../shared/types/errors.js';
9
+ /**
10
+ * HTTP Method
11
+ */
12
+ export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
13
+ /**
14
+ * HTTP Request Options
15
+ */
16
+ export interface HTTPRequestOptions {
17
+ method: HTTPMethod;
18
+ url: string;
19
+ headers?: Record<string, string>;
20
+ body?: unknown;
21
+ timeout?: number;
22
+ }
23
+ /**
24
+ * HTTP Response
25
+ */
26
+ export interface HTTPResponse<T> {
27
+ status: number;
28
+ statusText: string;
29
+ headers: Record<string, string>;
30
+ data: T;
31
+ }
32
+ /**
33
+ * External API Client Interface
34
+ *
35
+ * Generic HTTP client for external API communication
36
+ */
37
+ export interface ExternalAPIClient {
38
+ /**
39
+ * Send HTTP request
40
+ *
41
+ * @param options - Request options
42
+ * @returns Success with HTTPResponse or failure with NetworkError
43
+ */
44
+ request<T>(options: HTTPRequestOptions): Promise<Result<HTTPResponse<T>, NetworkError>>;
45
+ /**
46
+ * GET request
47
+ *
48
+ * @param url - Request URL
49
+ * @param headers - Optional headers
50
+ * @returns Success with HTTPResponse or failure with NetworkError
51
+ */
52
+ get<T>(url: string, headers?: Record<string, string>): Promise<Result<HTTPResponse<T>, NetworkError>>;
53
+ /**
54
+ * POST request
55
+ *
56
+ * @param url - Request URL
57
+ * @param body - Request body
58
+ * @param headers - Optional headers
59
+ * @returns Success with HTTPResponse or failure with NetworkError
60
+ */
61
+ post<T>(url: string, body: unknown, headers?: Record<string, string>): Promise<Result<HTTPResponse<T>, NetworkError>>;
62
+ /**
63
+ * PUT request
64
+ *
65
+ * @param url - Request URL
66
+ * @param body - Request body
67
+ * @param headers - Optional headers
68
+ * @returns Success with HTTPResponse or failure with NetworkError
69
+ */
70
+ put<T>(url: string, body: unknown, headers?: Record<string, string>): Promise<Result<HTTPResponse<T>, NetworkError>>;
71
+ /**
72
+ * DELETE request
73
+ *
74
+ * @param url - Request URL
75
+ * @param headers - Optional headers
76
+ * @returns Success with HTTPResponse or failure with NetworkError
77
+ */
78
+ delete<T>(url: string, headers?: Record<string, string>): Promise<Result<HTTPResponse<T>, NetworkError>>;
79
+ }
80
+ //# sourceMappingURL=external-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-api.d.ts","sourceRoot":"","sources":["../../../../src/application/interfaces/external-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;CACT;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,CAAC,EACP,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,GAAG,CAAC,CAAC,EACH,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,IAAI,CAAC,CAAC,EACJ,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAElD;;;;;;;OAOG;IACH,GAAG,CAAC,CAAC,EACH,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;IAElD;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EACN,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC;CACnD"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ExternalAPIClient Interface (Port)
3
+ *
4
+ * Application layer interface for external API communication
5
+ * Infrastructure layer provides the implementation (Adapter)
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=external-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"external-api.js","sourceRoot":"","sources":["../../../../src/application/interfaces/external-api.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * SpecRepository Interface (Port)
3
+ *
4
+ * Application layer interface for Spec persistence
5
+ * Infrastructure layer provides the implementation (Adapter)
6
+ */
7
+ import type { Result } from '../../shared/types/result.js';
8
+ import type { RepositoryError } from '../../shared/types/errors.js';
9
+ import type { Spec } from '../../domain/entities/spec.js';
10
+ import type { FeatureName } from '../../domain/value-objects/feature-name.js';
11
+ /**
12
+ * Specification Repository Interface
13
+ *
14
+ * Defines persistence operations for Spec entity
15
+ */
16
+ export interface SpecRepository {
17
+ /**
18
+ * Find specification by feature name
19
+ *
20
+ * @param featureName - Feature name to search
21
+ * @returns Success with Spec or failure with RepositoryError
22
+ */
23
+ findByFeatureName(featureName: FeatureName): Promise<Result<Spec, RepositoryError>>;
24
+ /**
25
+ * Find all specifications
26
+ *
27
+ * @returns Success with array of Specs or failure with RepositoryError
28
+ */
29
+ findAll(): Promise<Result<Spec[], RepositoryError>>;
30
+ /**
31
+ * Save specification
32
+ *
33
+ * @param spec - Specification to save
34
+ * @returns Success with void or failure with RepositoryError
35
+ */
36
+ save(spec: Spec): Promise<Result<void, RepositoryError>>;
37
+ /**
38
+ * Delete specification by feature name
39
+ *
40
+ * @param featureName - Feature name to delete
41
+ * @returns Success with void or failure with RepositoryError
42
+ */
43
+ delete(featureName: FeatureName): Promise<Result<void, RepositoryError>>;
44
+ /**
45
+ * Check if specification exists
46
+ *
47
+ * @param featureName - Feature name to check
48
+ * @returns Success with boolean or failure with RepositoryError
49
+ */
50
+ exists(featureName: FeatureName): Promise<Result<boolean, RepositoryError>>;
51
+ }
52
+ //# sourceMappingURL=spec-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-repository.d.ts","sourceRoot":"","sources":["../../../../src/application/interfaces/spec-repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAE9E;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;OAKG;IACH,iBAAiB,CACf,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAE1C;;;;OAIG;IACH,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAEpD;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAEzE;;;;;OAKG;IACH,MAAM,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC;CAC7E"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * SpecRepository Interface (Port)
3
+ *
4
+ * Application layer interface for Spec persistence
5
+ * Infrastructure layer provides the implementation (Adapter)
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=spec-repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-repository.js","sourceRoot":"","sources":["../../../../src/application/interfaces/spec-repository.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * SpecService - Unified service for spec operations
3
+ *
4
+ * Application layer service that coordinates spec-related operations
5
+ * Replaces scripts/utils/spec-loader.ts and spec-updater.ts
6
+ */
7
+ import type { Result } from '../../shared/types/result.js';
8
+ import type { UseCaseError } from '../../shared/types/errors.js';
9
+ import type { SpecRepository } from '../interfaces/spec-repository.js';
10
+ import type { Spec } from '../../domain/entities/spec.js';
11
+ import type { FeatureName } from '../../domain/value-objects/feature-name.js';
12
+ /**
13
+ * SpecService
14
+ *
15
+ * Central service for spec loading and updating operations
16
+ * Delegates to repository for persistence
17
+ */
18
+ export declare class SpecService {
19
+ private readonly repository;
20
+ constructor(repository: SpecRepository);
21
+ /**
22
+ * Load a spec by feature name
23
+ *
24
+ * @param featureName - Feature name to load
25
+ * @returns Spec or error
26
+ */
27
+ loadSpec(featureName: FeatureName): Promise<Result<Spec, UseCaseError>>;
28
+ /**
29
+ * Load all specs
30
+ *
31
+ * @returns Array of specs or error
32
+ */
33
+ loadAllSpecs(): Promise<Result<Spec[], UseCaseError>>;
34
+ /**
35
+ * Update a spec
36
+ *
37
+ * @param spec - Spec to update
38
+ * @returns Success or error
39
+ */
40
+ updateSpec(spec: Spec): Promise<Result<void, UseCaseError>>;
41
+ /**
42
+ * Check if a spec exists
43
+ *
44
+ * @param featureName - Feature name to check
45
+ * @returns True if exists, false otherwise
46
+ */
47
+ specExists(featureName: FeatureName): Promise<Result<boolean, UseCaseError>>;
48
+ }
49
+ //# sourceMappingURL=spec-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-service.d.ts","sourceRoot":"","sources":["../../../../src/application/services/spec-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAE9E;;;;;GAKG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,cAAc;IAEvD;;;;;OAKG;IACG,QAAQ,CACZ,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IActC;;;;OAIG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;IAc3D;;;;;OAKG;IACG,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAcjE;;;;;OAKG;IACG,UAAU,CACd,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;CAa1C"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * SpecService - Unified service for spec operations
3
+ *
4
+ * Application layer service that coordinates spec-related operations
5
+ * Replaces scripts/utils/spec-loader.ts and spec-updater.ts
6
+ */
7
+ /**
8
+ * SpecService
9
+ *
10
+ * Central service for spec loading and updating operations
11
+ * Delegates to repository for persistence
12
+ */
13
+ export class SpecService {
14
+ repository;
15
+ constructor(repository) {
16
+ this.repository = repository;
17
+ }
18
+ /**
19
+ * Load a spec by feature name
20
+ *
21
+ * @param featureName - Feature name to load
22
+ * @returns Spec or error
23
+ */
24
+ async loadSpec(featureName) {
25
+ const result = await this.repository.findByFeatureName(featureName);
26
+ if (!result.success) {
27
+ return {
28
+ success: false,
29
+ error: {
30
+ type: 'RepositoryError',
31
+ cause: result.error,
32
+ },
33
+ };
34
+ }
35
+ return result;
36
+ }
37
+ /**
38
+ * Load all specs
39
+ *
40
+ * @returns Array of specs or error
41
+ */
42
+ async loadAllSpecs() {
43
+ const result = await this.repository.findAll();
44
+ if (!result.success) {
45
+ return {
46
+ success: false,
47
+ error: {
48
+ type: 'RepositoryError',
49
+ cause: result.error,
50
+ },
51
+ };
52
+ }
53
+ return result;
54
+ }
55
+ /**
56
+ * Update a spec
57
+ *
58
+ * @param spec - Spec to update
59
+ * @returns Success or error
60
+ */
61
+ async updateSpec(spec) {
62
+ const result = await this.repository.save(spec);
63
+ if (!result.success) {
64
+ return {
65
+ success: false,
66
+ error: {
67
+ type: 'RepositoryError',
68
+ cause: result.error,
69
+ },
70
+ };
71
+ }
72
+ return result;
73
+ }
74
+ /**
75
+ * Check if a spec exists
76
+ *
77
+ * @param featureName - Feature name to check
78
+ * @returns True if exists, false otherwise
79
+ */
80
+ async specExists(featureName) {
81
+ const result = await this.repository.exists(featureName);
82
+ if (!result.success) {
83
+ return {
84
+ success: false,
85
+ error: {
86
+ type: 'RepositoryError',
87
+ cause: result.error,
88
+ },
89
+ };
90
+ }
91
+ return result;
92
+ }
93
+ }
94
+ //# sourceMappingURL=spec-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-service.js","sourceRoot":"","sources":["../../../../src/application/services/spec-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACO;IAA7B,YAA6B,UAA0B;QAA1B,eAAU,GAAV,UAAU,CAAgB;IAAG,CAAC;IAE3D;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,WAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,YAAY;QAChB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,IAAU;QACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CACd,WAAwB;QAExB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,MAAM,CAAC,KAAK;iBACpB;aACF,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * WorkflowService - Orchestrates spec workflow phases
3
+ *
4
+ * Application layer service for coordinating workflow execution
5
+ * Replaces scripts/workflow-orchestrator.ts and scripts/phase-runner.ts
6
+ *
7
+ * NOTE: This is a simplified version. Full workflow orchestration
8
+ * will be implemented in Phase 5 (Presentation Layer)
9
+ */
10
+ import type { Result } from '../../shared/types/result.js';
11
+ import type { UseCaseError } from '../../shared/types/errors.js';
12
+ import type { FeatureName } from '../../domain/value-objects/feature-name.js';
13
+ import type { Phase } from '../../domain/constants/phases.js';
14
+ import type { SpecRepository } from '../interfaces/spec-repository.js';
15
+ /**
16
+ * Workflow execution result
17
+ */
18
+ export interface WorkflowExecutionResult {
19
+ featureName: FeatureName;
20
+ currentPhase: Phase;
21
+ nextCommand: string;
22
+ }
23
+ /**
24
+ * WorkflowService
25
+ *
26
+ * Coordinates the execution of workflow phases
27
+ */
28
+ export declare class WorkflowService {
29
+ private readonly initSpecUseCase;
30
+ private readonly generateRequirementsUseCase;
31
+ private readonly generateDesignUseCase;
32
+ private readonly generateTasksUseCase;
33
+ private readonly archiveSpecUseCase;
34
+ constructor(repository: SpecRepository);
35
+ /**
36
+ * Initialize a new spec workflow
37
+ *
38
+ * @param projectDescription - Project description
39
+ * @returns Workflow execution result
40
+ */
41
+ initializeWorkflow(projectDescription: string): Promise<Result<WorkflowExecutionResult, UseCaseError>>;
42
+ /**
43
+ * Execute a workflow phase
44
+ *
45
+ * @param featureName - Feature name
46
+ * @param phase - Phase to execute
47
+ * @returns Workflow execution result
48
+ */
49
+ executePhase(featureName: FeatureName, phase: Phase): Promise<Result<WorkflowExecutionResult, UseCaseError>>;
50
+ /**
51
+ * Archive a completed spec
52
+ *
53
+ * @param featureName - Feature name to archive
54
+ * @returns Archive result
55
+ */
56
+ archiveSpec(featureName: FeatureName): Promise<Result<void, UseCaseError>>;
57
+ }
58
+ //# sourceMappingURL=workflow-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-service.d.ts","sourceRoot":"","sources":["../../../../src/application/services/workflow-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4CAA4C,CAAC;AAC9E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAM9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,KAAK,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAA8B;IAC1E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAwB;IAC9D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAE5C,UAAU,EAAE,cAAc;IAUtC;;;;;OAKG;IACG,kBAAkB,CACtB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;IAiBzD;;;;;;OAMG;IACG,YAAY,CAChB,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,MAAM,CAAC,uBAAuB,EAAE,YAAY,CAAC,CAAC;IAqDzD;;;;;OAKG;IACG,WAAW,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;CASjF"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * WorkflowService - Orchestrates spec workflow phases
3
+ *
4
+ * Application layer service for coordinating workflow execution
5
+ * Replaces scripts/workflow-orchestrator.ts and scripts/phase-runner.ts
6
+ *
7
+ * NOTE: This is a simplified version. Full workflow orchestration
8
+ * will be implemented in Phase 5 (Presentation Layer)
9
+ */
10
+ import { InitSpecUseCase } from '../use-cases/spec/init-spec.js';
11
+ import { GenerateRequirementsUseCase } from '../use-cases/spec/generate-requirements.js';
12
+ import { GenerateDesignUseCase } from '../use-cases/spec/generate-design.js';
13
+ import { GenerateTasksUseCase } from '../use-cases/spec/generate-tasks.js';
14
+ import { ArchiveSpecUseCase } from '../use-cases/spec/archive-spec.js';
15
+ /**
16
+ * WorkflowService
17
+ *
18
+ * Coordinates the execution of workflow phases
19
+ */
20
+ export class WorkflowService {
21
+ initSpecUseCase;
22
+ generateRequirementsUseCase;
23
+ generateDesignUseCase;
24
+ generateTasksUseCase;
25
+ archiveSpecUseCase;
26
+ constructor(repository) {
27
+ this.initSpecUseCase = new InitSpecUseCase(repository);
28
+ this.generateRequirementsUseCase = new GenerateRequirementsUseCase(repository);
29
+ this.generateDesignUseCase = new GenerateDesignUseCase(repository);
30
+ this.generateTasksUseCase = new GenerateTasksUseCase(repository);
31
+ this.archiveSpecUseCase = new ArchiveSpecUseCase(repository);
32
+ }
33
+ /**
34
+ * Initialize a new spec workflow
35
+ *
36
+ * @param projectDescription - Project description
37
+ * @returns Workflow execution result
38
+ */
39
+ async initializeWorkflow(projectDescription) {
40
+ const result = await this.initSpecUseCase.execute(projectDescription);
41
+ if (!result.success) {
42
+ return result;
43
+ }
44
+ return {
45
+ success: true,
46
+ value: {
47
+ featureName: result.value.featureName,
48
+ currentPhase: 'initialized',
49
+ nextCommand: result.value.nextCommand,
50
+ },
51
+ };
52
+ }
53
+ /**
54
+ * Execute a workflow phase
55
+ *
56
+ * @param featureName - Feature name
57
+ * @param phase - Phase to execute
58
+ * @returns Workflow execution result
59
+ */
60
+ async executePhase(featureName, phase) {
61
+ switch (phase) {
62
+ case 'requirements-generated': {
63
+ const result = await this.generateRequirementsUseCase.execute(featureName);
64
+ if (!result.success)
65
+ return result;
66
+ return {
67
+ success: true,
68
+ value: {
69
+ featureName,
70
+ currentPhase: 'requirements-generated',
71
+ nextCommand: result.value.nextCommand,
72
+ },
73
+ };
74
+ }
75
+ case 'design-generated': {
76
+ const result = await this.generateDesignUseCase.execute(featureName);
77
+ if (!result.success)
78
+ return result;
79
+ return {
80
+ success: true,
81
+ value: {
82
+ featureName,
83
+ currentPhase: 'design-generated',
84
+ nextCommand: result.value.nextCommand,
85
+ },
86
+ };
87
+ }
88
+ case 'tasks-generated': {
89
+ const result = await this.generateTasksUseCase.execute(featureName);
90
+ if (!result.success)
91
+ return result;
92
+ return {
93
+ success: true,
94
+ value: {
95
+ featureName,
96
+ currentPhase: 'tasks-generated',
97
+ nextCommand: result.value.nextCommand,
98
+ },
99
+ };
100
+ }
101
+ default:
102
+ return {
103
+ success: false,
104
+ error: {
105
+ type: 'InvalidInput',
106
+ message: `Unsupported phase: ${phase}`,
107
+ },
108
+ };
109
+ }
110
+ }
111
+ /**
112
+ * Archive a completed spec
113
+ *
114
+ * @param featureName - Feature name to archive
115
+ * @returns Archive result
116
+ */
117
+ async archiveSpec(featureName) {
118
+ const result = await this.archiveSpecUseCase.execute(featureName);
119
+ if (!result.success) {
120
+ return result;
121
+ }
122
+ return { success: true, value: undefined };
123
+ }
124
+ }
125
+ //# sourceMappingURL=workflow-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-service.js","sourceRoot":"","sources":["../../../../src/application/services/workflow-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAYvE;;;;GAIG;AACH,MAAM,OAAO,eAAe;IACT,eAAe,CAAkB;IACjC,2BAA2B,CAA8B;IACzD,qBAAqB,CAAwB;IAC7C,oBAAoB,CAAuB;IAC3C,kBAAkB,CAAqB;IAExD,YAAY,UAA0B;QACpC,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,2BAA2B,GAAG,IAAI,2BAA2B,CAChE,UAAU,CACX,CAAC;QACF,IAAI,CAAC,qBAAqB,GAAG,IAAI,qBAAqB,CAAC,UAAU,CAAC,CAAC;QACnE,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,kBAAkB,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,kBAAkB,CACtB,kBAA0B;QAE1B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,KAAK,EAAE;gBACL,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;gBACrC,YAAY,EAAE,aAAa;gBAC3B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;aACtC;SACF,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,YAAY,CAChB,WAAwB,EACxB,KAAY;QAEZ,QAAQ,KAAK,EAAE,CAAC;YAChB,KAAK,wBAAwB,CAAC,CAAC,CAAC;gBAC9B,MAAM,MAAM,GACR,MAAM,IAAI,CAAC,2BAA2B,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBAChE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,WAAW;wBACX,YAAY,EAAE,wBAAwB;wBACtC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;qBACtC;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACrE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,WAAW;wBACX,YAAY,EAAE,kBAAkB;wBAChC,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;qBACtC;iBACF,CAAC;YACJ,CAAC;YAED,KAAK,iBAAiB,CAAC,CAAC,CAAC;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAAE,OAAO,MAAM,CAAC;gBACnC,OAAO;oBACL,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE;wBACL,WAAW;wBACX,YAAY,EAAE,iBAAiB;wBAC/B,WAAW,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;qBACtC;iBACF,CAAC;YACJ,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE;wBACL,IAAI,EAAE,cAAc;wBACpB,OAAO,EAAE,sBAAsB,KAAK,EAAE;qBACvC;iBACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CAAC,WAAwB;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAElE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;IAC7C,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * TemplateProcessor - Template placeholder replacement
3
+ *
4
+ * Application layer template processing
5
+ */
6
+ import type { Result } from '../../shared/types/result.js';
7
+ import type { TemplateError } from '../../shared/types/errors.js';
8
+ /**
9
+ * Template Processor
10
+ *
11
+ * Handles template file reading and placeholder replacement
12
+ */
13
+ export declare class TemplateProcessor {
14
+ /**
15
+ * Process template string with placeholder replacements
16
+ *
17
+ * @param template - Template string with {{PLACEHOLDER}} syntax
18
+ * @param replacements - Key-value pairs for replacement
19
+ * @returns Processed string or error
20
+ */
21
+ processTemplate(template: string, replacements: Record<string, string>): Promise<Result<string, TemplateError>>;
22
+ /**
23
+ * Read template file and process with replacements
24
+ *
25
+ * @param templatePath - Path to template file
26
+ * @param _replacements - Key-value pairs for replacement (unused in TODO implementation)
27
+ * @returns Processed string or error
28
+ */
29
+ processTemplateFile(templatePath: string, _replacements: Record<string, string>): Promise<Result<string, TemplateError>>;
30
+ }
31
+ //# sourceMappingURL=processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.d.ts","sourceRoot":"","sources":["../../../../src/application/templates/processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAGlE;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B;;;;;;OAMG;IACG,eAAe,CACnB,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IA0BzC;;;;;;OAMG;IACG,mBAAmB,CACvB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACpC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;CAQ1C"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * TemplateProcessor - Template placeholder replacement
3
+ *
4
+ * Application layer template processing
5
+ */
6
+ import { ok, err } from '../../shared/types/result.js';
7
+ /**
8
+ * Template Processor
9
+ *
10
+ * Handles template file reading and placeholder replacement
11
+ */
12
+ export class TemplateProcessor {
13
+ /**
14
+ * Process template string with placeholder replacements
15
+ *
16
+ * @param template - Template string with {{PLACEHOLDER}} syntax
17
+ * @param replacements - Key-value pairs for replacement
18
+ * @returns Processed string or error
19
+ */
20
+ async processTemplate(template, replacements) {
21
+ // Find all placeholders in the template
22
+ const placeholderRegex = /\{\{([A-Z_]+)\}\}/g;
23
+ const matches = [...template.matchAll(placeholderRegex)];
24
+ // Check if all placeholders have replacements
25
+ for (const match of matches) {
26
+ const placeholder = match[1];
27
+ if (!(placeholder in replacements)) {
28
+ return err({
29
+ type: 'InvalidPlaceholder',
30
+ placeholder,
31
+ });
32
+ }
33
+ }
34
+ // Replace all placeholders
35
+ let result = template;
36
+ for (const [key, value] of Object.entries(replacements)) {
37
+ const placeholderPattern = new RegExp(`\\{\\{${key}\\}\\}`, 'g');
38
+ result = result.replace(placeholderPattern, value);
39
+ }
40
+ return ok(result);
41
+ }
42
+ /**
43
+ * Read template file and process with replacements
44
+ *
45
+ * @param templatePath - Path to template file
46
+ * @param _replacements - Key-value pairs for replacement (unused in TODO implementation)
47
+ * @returns Processed string or error
48
+ */
49
+ async processTemplateFile(templatePath, _replacements) {
50
+ // TODO: Implement file reading (requires Infrastructure layer dependency)
51
+ // For now, return template not found error
52
+ return err({
53
+ type: 'TemplateNotFound',
54
+ path: templatePath,
55
+ });
56
+ }
57
+ }
58
+ //# sourceMappingURL=processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"processor.js","sourceRoot":"","sources":["../../../../src/application/templates/processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,MAAM,8BAA8B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IAC5B;;;;;;OAMG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB,EAChB,YAAoC;QAEpC,wCAAwC;QACxC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;QAC9C,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEzD,8CAA8C;QAC9C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,CAAC,CAAC,WAAW,IAAI,YAAY,CAAC,EAAE,CAAC;gBACnC,OAAO,GAAG,CAAC;oBACT,IAAI,EAAE,oBAAoB;oBAC1B,WAAW;iBACZ,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,2BAA2B;QAC3B,IAAI,MAAM,GAAG,QAAQ,CAAC;QACtB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,MAAM,kBAAkB,GAAG,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,GAAG,CAAC,CAAC;YACjE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,mBAAmB,CACvB,YAAoB,EACpB,aAAqC;QAErC,0EAA0E;QAC1E,2CAA2C;QAC3C,OAAO,GAAG,CAAC;YACT,IAAI,EAAE,kBAAkB;YACxB,IAAI,EAAE,YAAY;SACnB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * ArchiveSpecUseCase - Archive a specification
3
+ *
4
+ * Application layer use case for spec archiving
5
+ */
6
+ import type { Result } from '../../../shared/types/result.js';
7
+ import type { UseCaseError } from '../../../shared/types/errors.js';
8
+ import type { SpecRepository } from '../../interfaces/spec-repository.js';
9
+ import type { FeatureName } from '../../../domain/value-objects/feature-name.js';
10
+ /**
11
+ * ArchiveSpecUseCase Result
12
+ */
13
+ export interface ArchiveSpecResult {
14
+ featureName: FeatureName;
15
+ archiveLocation: string;
16
+ archivedFiles: string[];
17
+ }
18
+ /**
19
+ * ArchiveSpecUseCase
20
+ *
21
+ * Archive a specification after implementation is complete
22
+ */
23
+ export declare class ArchiveSpecUseCase {
24
+ private readonly repository;
25
+ constructor(repository: SpecRepository);
26
+ /**
27
+ * Execute use case
28
+ *
29
+ * @param featureName - Feature name to archive
30
+ * @returns Success with ArchiveSpecResult or failure with UseCaseError
31
+ */
32
+ execute(featureName: FeatureName): Promise<Result<ArchiveSpecResult, UseCaseError>>;
33
+ }
34
+ //# sourceMappingURL=archive-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive-spec.d.ts","sourceRoot":"","sources":["../../../../../src/application/use-cases/spec/archive-spec.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAGjF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,cAAc;IAEvD;;;;;OAKG;IACG,OAAO,CACX,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;CAmCpD"}