specweave 0.21.1 → 0.21.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (607) hide show
  1. package/CLAUDE.md +232 -5
  2. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts +98 -0
  3. package/dist/plugins/specweave-github/lib/IssueStateManager.d.ts.map +1 -0
  4. package/dist/plugins/specweave-github/lib/IssueStateManager.js +146 -0
  5. package/dist/plugins/specweave-github/lib/IssueStateManager.js.map +1 -0
  6. package/dist/plugins/specweave-github/lib/user-story-issue-builder.d.ts.map +1 -1
  7. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js +6 -0
  8. package/dist/plugins/specweave-github/lib/user-story-issue-builder.js.map +1 -1
  9. package/dist/src/cli/commands/check-hooks.d.ts +11 -0
  10. package/dist/src/cli/commands/check-hooks.d.ts.map +1 -0
  11. package/dist/src/cli/commands/check-hooks.js +144 -0
  12. package/dist/src/cli/commands/check-hooks.js.map +1 -0
  13. package/dist/src/cli/commands/cicd-monitor.js +3 -3
  14. package/dist/src/cli/commands/cicd-monitor.js.map +1 -1
  15. package/dist/src/cli/commands/import-docs.js +2 -2
  16. package/dist/src/cli/commands/import-docs.js.map +1 -1
  17. package/dist/src/cli/commands/init-multiproject.js +4 -4
  18. package/dist/src/cli/commands/init-multiproject.js.map +1 -1
  19. package/dist/src/cli/commands/migrate-to-multiproject.js +3 -3
  20. package/dist/src/cli/commands/migrate-to-multiproject.js.map +1 -1
  21. package/dist/src/cli/commands/plan/agent-invoker.d.ts +79 -0
  22. package/dist/src/cli/commands/plan/agent-invoker.d.ts.map +1 -0
  23. package/dist/src/cli/commands/plan/agent-invoker.js +383 -0
  24. package/dist/src/cli/commands/plan/agent-invoker.js.map +1 -0
  25. package/dist/src/cli/commands/plan/increment-detector.d.ts +27 -0
  26. package/dist/src/cli/commands/plan/increment-detector.d.ts.map +1 -0
  27. package/dist/src/cli/commands/plan/increment-detector.js +159 -0
  28. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -0
  29. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts +45 -0
  30. package/dist/src/cli/commands/plan/plan-orchestrator.d.ts.map +1 -0
  31. package/dist/src/cli/commands/plan/plan-orchestrator.js +229 -0
  32. package/dist/src/cli/commands/plan/plan-orchestrator.js.map +1 -0
  33. package/dist/src/cli/commands/plan/plan-validator.d.ts +36 -0
  34. package/dist/src/cli/commands/plan/plan-validator.d.ts.map +1 -0
  35. package/dist/src/cli/commands/plan/plan-validator.js +174 -0
  36. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -0
  37. package/dist/src/cli/commands/plan/types.d.ts +170 -0
  38. package/dist/src/cli/commands/plan/types.d.ts.map +1 -0
  39. package/dist/src/cli/commands/plan/types.js +42 -0
  40. package/dist/src/cli/commands/plan/types.js.map +1 -0
  41. package/dist/src/cli/commands/plan-command.d.ts +16 -0
  42. package/dist/src/cli/commands/plan-command.d.ts.map +1 -0
  43. package/dist/src/cli/commands/plan-command.js +127 -0
  44. package/dist/src/cli/commands/plan-command.js.map +1 -0
  45. package/dist/src/cli/commands/switch-project.js +3 -3
  46. package/dist/src/cli/commands/switch-project.js.map +1 -1
  47. package/dist/src/cli/commands/validate-parent-repo.js +1 -1
  48. package/dist/src/cli/commands/validate-parent-repo.js.map +1 -1
  49. package/dist/src/config/ConfigManager.d.ts +69 -0
  50. package/dist/src/config/ConfigManager.d.ts.map +1 -0
  51. package/dist/src/config/ConfigManager.js +130 -0
  52. package/dist/src/config/ConfigManager.js.map +1 -0
  53. package/dist/src/config/types.d.ts +1357 -0
  54. package/dist/src/config/types.d.ts.map +1 -0
  55. package/dist/src/config/types.js +67 -0
  56. package/dist/src/config/types.js.map +1 -0
  57. package/dist/src/core/brownfield/importer.d.ts +1 -1
  58. package/dist/src/core/brownfield/importer.d.ts.map +1 -1
  59. package/dist/src/core/brownfield/importer.js +3 -3
  60. package/dist/src/core/brownfield/importer.js.map +1 -1
  61. package/dist/src/core/cicd/config-loader.d.ts +1 -1
  62. package/dist/src/core/cicd/config-loader.d.ts.map +1 -1
  63. package/dist/src/core/cicd/index.d.ts +6 -6
  64. package/dist/src/core/cicd/index.d.ts.map +1 -1
  65. package/dist/src/core/cicd/index.js +6 -6
  66. package/dist/src/core/cicd/index.js.map +1 -1
  67. package/dist/src/core/cicd/monitor-service.d.ts +3 -3
  68. package/dist/src/core/cicd/monitor-service.d.ts.map +1 -1
  69. package/dist/src/core/cicd/monitor-service.js +3 -3
  70. package/dist/src/core/cicd/monitor-service.js.map +1 -1
  71. package/dist/src/core/cicd/notifier.d.ts +1 -1
  72. package/dist/src/core/cicd/notifier.d.ts.map +1 -1
  73. package/dist/src/core/cicd/state-manager.d.ts +1 -1
  74. package/dist/src/core/cicd/state-manager.d.ts.map +1 -1
  75. package/dist/src/core/cicd/state-manager.js +1 -1
  76. package/dist/src/core/cicd/state-manager.js.map +1 -1
  77. package/dist/src/core/cicd/workflow-monitor.d.ts +1 -1
  78. package/dist/src/core/cicd/workflow-monitor.d.ts.map +1 -1
  79. package/dist/src/core/cicd/workflow-monitor.js +1 -1
  80. package/dist/src/core/cicd/workflow-monitor.js.map +1 -1
  81. package/dist/src/core/cost-tracker.d.ts +2 -2
  82. package/dist/src/core/cost-tracker.d.ts.map +1 -1
  83. package/dist/src/core/cost-tracker.js +1 -1
  84. package/dist/src/core/cost-tracker.js.map +1 -1
  85. package/dist/src/core/hooks/HealthReporter.d.ts +55 -0
  86. package/dist/src/core/hooks/HealthReporter.d.ts.map +1 -0
  87. package/dist/src/core/hooks/HealthReporter.js +268 -0
  88. package/dist/src/core/hooks/HealthReporter.js.map +1 -0
  89. package/dist/src/core/hooks/HookAutoFixer.d.ts +41 -0
  90. package/dist/src/core/hooks/HookAutoFixer.d.ts.map +1 -0
  91. package/dist/src/core/hooks/HookAutoFixer.js +222 -0
  92. package/dist/src/core/hooks/HookAutoFixer.js.map +1 -0
  93. package/dist/src/core/hooks/HookExecutor.d.ts +57 -0
  94. package/dist/src/core/hooks/HookExecutor.d.ts.map +1 -0
  95. package/dist/src/core/hooks/HookExecutor.js +287 -0
  96. package/dist/src/core/hooks/HookExecutor.js.map +1 -0
  97. package/dist/src/core/hooks/HookHealthChecker.d.ts +51 -0
  98. package/dist/src/core/hooks/HookHealthChecker.d.ts.map +1 -0
  99. package/dist/src/core/hooks/HookHealthChecker.js +212 -0
  100. package/dist/src/core/hooks/HookHealthChecker.js.map +1 -0
  101. package/dist/src/core/hooks/HookScanner.d.ts +65 -0
  102. package/dist/src/core/hooks/HookScanner.d.ts.map +1 -0
  103. package/dist/src/core/hooks/HookScanner.js +214 -0
  104. package/dist/src/core/hooks/HookScanner.js.map +1 -0
  105. package/dist/src/core/hooks/types.d.ts +281 -0
  106. package/dist/src/core/hooks/types.d.ts.map +1 -0
  107. package/dist/src/core/hooks/types.js +10 -0
  108. package/dist/src/core/hooks/types.js.map +1 -0
  109. package/dist/src/core/iac/index.d.ts +10 -0
  110. package/dist/src/core/iac/index.d.ts.map +1 -0
  111. package/dist/src/core/iac/index.js +11 -0
  112. package/dist/src/core/iac/index.js.map +1 -0
  113. package/dist/src/core/iac/template-engine.d.ts +77 -0
  114. package/dist/src/core/iac/template-engine.d.ts.map +1 -0
  115. package/dist/src/core/iac/template-engine.js +182 -0
  116. package/dist/src/core/iac/template-engine.js.map +1 -0
  117. package/dist/src/core/increment/ac-status-manager.d.ts +115 -0
  118. package/dist/src/core/increment/ac-status-manager.d.ts.map +1 -0
  119. package/dist/src/core/increment/ac-status-manager.js +343 -0
  120. package/dist/src/core/increment/ac-status-manager.js.map +1 -0
  121. package/dist/src/core/increment/auto-transition-manager.d.ts +60 -0
  122. package/dist/src/core/increment/auto-transition-manager.d.ts.map +1 -0
  123. package/dist/src/core/increment/auto-transition-manager.js +192 -0
  124. package/dist/src/core/increment/auto-transition-manager.js.map +1 -0
  125. package/dist/src/core/increment/limits.d.ts +1 -1
  126. package/dist/src/core/increment/limits.d.ts.map +1 -1
  127. package/dist/src/core/increment/limits.js +2 -2
  128. package/dist/src/core/increment/limits.js.map +1 -1
  129. package/dist/src/core/increment/spec-sync-manager.d.ts +177 -0
  130. package/dist/src/core/increment/spec-sync-manager.d.ts.map +1 -0
  131. package/dist/src/core/increment/spec-sync-manager.js +496 -0
  132. package/dist/src/core/increment/spec-sync-manager.js.map +1 -0
  133. package/dist/src/core/increment/status-auto-transition.d.ts +46 -0
  134. package/dist/src/core/increment/status-auto-transition.d.ts.map +1 -0
  135. package/dist/src/core/increment/status-auto-transition.js +178 -0
  136. package/dist/src/core/increment/status-auto-transition.js.map +1 -0
  137. package/dist/src/core/increment/task-state-manager.d.ts +75 -0
  138. package/dist/src/core/increment/task-state-manager.d.ts.map +1 -0
  139. package/dist/src/core/increment/task-state-manager.js +117 -0
  140. package/dist/src/core/increment/task-state-manager.js.map +1 -0
  141. package/dist/src/core/living-docs/CodeValidator.d.ts +68 -0
  142. package/dist/src/core/living-docs/CodeValidator.d.ts.map +1 -0
  143. package/dist/src/core/living-docs/CodeValidator.js +160 -0
  144. package/dist/src/core/living-docs/CodeValidator.js.map +1 -0
  145. package/dist/src/core/living-docs/CompletionPropagator.d.ts +84 -0
  146. package/dist/src/core/living-docs/CompletionPropagator.d.ts.map +1 -0
  147. package/dist/src/core/living-docs/CompletionPropagator.js +205 -0
  148. package/dist/src/core/living-docs/CompletionPropagator.js.map +1 -0
  149. package/dist/src/core/living-docs/ProjectDetector.d.ts +29 -0
  150. package/dist/src/core/living-docs/ProjectDetector.d.ts.map +1 -0
  151. package/dist/src/core/living-docs/ProjectDetector.js +94 -0
  152. package/dist/src/core/living-docs/ProjectDetector.js.map +1 -0
  153. package/dist/src/core/living-docs/SpecDistributor.d.ts +55 -0
  154. package/dist/src/core/living-docs/SpecDistributor.d.ts.map +1 -0
  155. package/dist/src/core/living-docs/SpecDistributor.js +216 -0
  156. package/dist/src/core/living-docs/SpecDistributor.js.map +1 -0
  157. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts +116 -0
  158. package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts.map +1 -0
  159. package/dist/src/core/living-docs/ThreeLayerSyncManager.js +356 -0
  160. package/dist/src/core/living-docs/ThreeLayerSyncManager.js.map +1 -0
  161. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  162. package/dist/src/core/living-docs/hierarchy-mapper.js +2 -1
  163. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  164. package/dist/src/core/living-docs/index.d.ts +1 -1
  165. package/dist/src/core/living-docs/index.d.ts.map +1 -1
  166. package/dist/src/core/living-docs/index.js +5 -1
  167. package/dist/src/core/living-docs/index.js.map +1 -1
  168. package/dist/src/core/living-docs/types.d.ts +70 -300
  169. package/dist/src/core/living-docs/types.d.ts.map +1 -1
  170. package/dist/src/core/living-docs/types.js +2 -10
  171. package/dist/src/core/living-docs/types.js.map +1 -1
  172. package/dist/src/core/project-manager.d.ts +1 -1
  173. package/dist/src/core/project-manager.d.ts.map +1 -1
  174. package/dist/src/core/project-manager.js +2 -2
  175. package/dist/src/core/project-manager.js.map +1 -1
  176. package/dist/src/core/qa/quality-gate-decider.d.ts +1 -1
  177. package/dist/src/core/qa/quality-gate-decider.d.ts.map +1 -1
  178. package/dist/src/core/qa/risk-calculator.d.ts +1 -1
  179. package/dist/src/core/qa/risk-calculator.d.ts.map +1 -1
  180. package/dist/src/core/repo-structure/setup-summary.d.ts +1 -1
  181. package/dist/src/core/repo-structure/setup-summary.d.ts.map +1 -1
  182. package/dist/src/core/rfc-generator-v2.d.ts +1 -1
  183. package/dist/src/core/rfc-generator-v2.d.ts.map +1 -1
  184. package/dist/src/core/rfc-generator-v2.js +1 -1
  185. package/dist/src/core/rfc-generator-v2.js.map +1 -1
  186. package/dist/src/core/serverless/context-detector.d.ts +12 -0
  187. package/dist/src/core/serverless/context-detector.d.ts.map +1 -0
  188. package/dist/src/core/serverless/context-detector.js +213 -0
  189. package/dist/src/core/serverless/context-detector.js.map +1 -0
  190. package/dist/src/core/serverless/cost-comparison.d.ts +73 -0
  191. package/dist/src/core/serverless/cost-comparison.d.ts.map +1 -0
  192. package/dist/src/core/serverless/cost-comparison.js +198 -0
  193. package/dist/src/core/serverless/cost-comparison.js.map +1 -0
  194. package/dist/src/core/serverless/cost-estimator.d.ts +69 -0
  195. package/dist/src/core/serverless/cost-estimator.d.ts.map +1 -0
  196. package/dist/src/core/serverless/cost-estimator.js +127 -0
  197. package/dist/src/core/serverless/cost-estimator.js.map +1 -0
  198. package/dist/src/core/serverless/cost-optimizer.d.ts +57 -0
  199. package/dist/src/core/serverless/cost-optimizer.d.ts.map +1 -0
  200. package/dist/src/core/serverless/cost-optimizer.js +221 -0
  201. package/dist/src/core/serverless/cost-optimizer.js.map +1 -0
  202. package/dist/src/core/serverless/index.d.ts +20 -0
  203. package/dist/src/core/serverless/index.d.ts.map +1 -0
  204. package/dist/src/core/serverless/index.js +26 -0
  205. package/dist/src/core/serverless/index.js.map +1 -0
  206. package/dist/src/core/serverless/learning-path-recommender.d.ts +152 -0
  207. package/dist/src/core/serverless/learning-path-recommender.d.ts.map +1 -0
  208. package/dist/src/core/serverless/learning-path-recommender.js +389 -0
  209. package/dist/src/core/serverless/learning-path-recommender.js.map +1 -0
  210. package/dist/src/core/serverless/platform-data-loader.d.ts +22 -0
  211. package/dist/src/core/serverless/platform-data-loader.d.ts.map +1 -0
  212. package/dist/src/core/serverless/platform-data-loader.js +49 -0
  213. package/dist/src/core/serverless/platform-data-loader.js.map +1 -0
  214. package/dist/src/core/serverless/platform-selector.d.ts +20 -0
  215. package/dist/src/core/serverless/platform-selector.d.ts.map +1 -0
  216. package/dist/src/core/serverless/platform-selector.js +279 -0
  217. package/dist/src/core/serverless/platform-selector.js.map +1 -0
  218. package/dist/src/core/serverless/recommendation-formatter.d.ts +24 -0
  219. package/dist/src/core/serverless/recommendation-formatter.d.ts.map +1 -0
  220. package/dist/src/core/serverless/recommendation-formatter.js +70 -0
  221. package/dist/src/core/serverless/recommendation-formatter.js.map +1 -0
  222. package/dist/src/core/serverless/suitability-analyzer.d.ts +22 -0
  223. package/dist/src/core/serverless/suitability-analyzer.d.ts.map +1 -0
  224. package/dist/src/core/serverless/suitability-analyzer.js +262 -0
  225. package/dist/src/core/serverless/suitability-analyzer.js.map +1 -0
  226. package/dist/src/core/serverless/types.d.ts +96 -0
  227. package/dist/src/core/serverless/types.d.ts.map +1 -0
  228. package/dist/src/core/serverless/types.js +5 -0
  229. package/dist/src/core/serverless/types.js.map +1 -0
  230. package/dist/src/core/sync/bidirectional-engine.d.ts +1 -1
  231. package/dist/src/core/sync/bidirectional-engine.d.ts.map +1 -1
  232. package/dist/src/core/sync/enhanced-content-builder.d.ts +1 -1
  233. package/dist/src/core/sync/enhanced-content-builder.d.ts.map +1 -1
  234. package/dist/src/core/sync/profile-manager.d.ts +1 -1
  235. package/dist/src/core/sync/profile-manager.d.ts.map +1 -1
  236. package/dist/src/core/sync/profile-selector.d.ts +1 -1
  237. package/dist/src/core/sync/profile-selector.d.ts.map +1 -1
  238. package/dist/src/core/sync/profile-selector.js +1 -1
  239. package/dist/src/core/sync/profile-selector.js.map +1 -1
  240. package/dist/src/core/sync/project-context.d.ts +1 -1
  241. package/dist/src/core/sync/project-context.d.ts.map +1 -1
  242. package/dist/src/core/sync/rate-limiter.d.ts +1 -1
  243. package/dist/src/core/sync/rate-limiter.d.ts.map +1 -1
  244. package/dist/src/core/sync/status-sync-engine.d.ts +2 -2
  245. package/dist/src/core/sync/status-sync-engine.d.ts.map +1 -1
  246. package/dist/src/core/sync/status-sync-engine.js +2 -2
  247. package/dist/src/core/sync/status-sync-engine.js.map +1 -1
  248. package/dist/src/core/sync/time-range-selector.d.ts +1 -1
  249. package/dist/src/core/sync/time-range-selector.d.ts.map +1 -1
  250. package/dist/src/core/sync/time-range-selector.js +1 -1
  251. package/dist/src/core/sync/time-range-selector.js.map +1 -1
  252. package/dist/src/core/types/increment-metadata.d.ts +27 -0
  253. package/dist/src/core/types/increment-metadata.d.ts.map +1 -1
  254. package/dist/src/core/types/increment-metadata.js +45 -1
  255. package/dist/src/core/types/increment-metadata.js.map +1 -1
  256. package/dist/src/core/types/sync-profile.d.ts +2 -0
  257. package/dist/src/core/types/sync-profile.d.ts.map +1 -1
  258. package/dist/src/core/types/sync-profile.js.map +1 -1
  259. package/dist/src/core/validation/increment-structure-validator.d.ts +47 -0
  260. package/dist/src/core/validation/increment-structure-validator.d.ts.map +1 -0
  261. package/dist/src/core/validation/increment-structure-validator.js +187 -0
  262. package/dist/src/core/validation/increment-structure-validator.js.map +1 -0
  263. package/dist/src/core/validation/three-file-validator.d.ts +82 -0
  264. package/dist/src/core/validation/three-file-validator.d.ts.map +1 -0
  265. package/dist/src/core/validation/three-file-validator.js +320 -0
  266. package/dist/src/core/validation/three-file-validator.js.map +1 -0
  267. package/dist/src/core/workflow/phase-detector.d.ts +103 -0
  268. package/dist/src/core/workflow/phase-detector.d.ts.map +1 -0
  269. package/dist/src/core/workflow/phase-detector.js +704 -0
  270. package/dist/src/core/workflow/phase-detector.js.map +1 -0
  271. package/dist/src/core/workflow/types.d.ts +153 -0
  272. package/dist/src/core/workflow/types.d.ts.map +1 -0
  273. package/dist/src/core/workflow/types.js +47 -0
  274. package/dist/src/core/workflow/types.js.map +1 -0
  275. package/dist/src/init/InitFlow.d.ts +37 -0
  276. package/dist/src/init/InitFlow.d.ts.map +1 -0
  277. package/dist/src/init/InitFlow.js +209 -0
  278. package/dist/src/init/InitFlow.js.map +1 -0
  279. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts +107 -0
  280. package/dist/src/init/architecture/ArchitectureDecisionEngine.d.ts.map +1 -0
  281. package/dist/src/init/architecture/ArchitectureDecisionEngine.js +405 -0
  282. package/dist/src/init/architecture/ArchitectureDecisionEngine.js.map +1 -0
  283. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts +11 -0
  284. package/dist/src/init/architecture/CloudCreditsDatabase.d.ts.map +1 -0
  285. package/dist/src/init/architecture/CloudCreditsDatabase.js +92 -0
  286. package/dist/src/init/architecture/CloudCreditsDatabase.js.map +1 -0
  287. package/dist/src/init/architecture/types.d.ts +251 -0
  288. package/dist/src/init/architecture/types.d.ts.map +1 -0
  289. package/dist/src/init/architecture/types.js +54 -0
  290. package/dist/src/init/architecture/types.js.map +1 -0
  291. package/dist/src/init/compliance/ComplianceDetector.d.ts +17 -0
  292. package/dist/src/init/compliance/ComplianceDetector.d.ts.map +1 -0
  293. package/dist/src/init/compliance/ComplianceDetector.js +64 -0
  294. package/dist/src/init/compliance/ComplianceDetector.js.map +1 -0
  295. package/dist/src/init/compliance/standards-database.d.ts +48 -0
  296. package/dist/src/init/compliance/standards-database.d.ts.map +1 -0
  297. package/dist/src/init/compliance/standards-database.js +506 -0
  298. package/dist/src/init/compliance/standards-database.js.map +1 -0
  299. package/dist/src/init/compliance/types.d.ts +91 -0
  300. package/dist/src/init/compliance/types.d.ts.map +1 -0
  301. package/dist/src/init/compliance/types.js +43 -0
  302. package/dist/src/init/compliance/types.js.map +1 -0
  303. package/dist/src/init/repo/GitHubAPIClient.d.ts +51 -0
  304. package/dist/src/init/repo/GitHubAPIClient.d.ts.map +1 -0
  305. package/dist/src/init/repo/GitHubAPIClient.js +144 -0
  306. package/dist/src/init/repo/GitHubAPIClient.js.map +1 -0
  307. package/dist/src/init/repo/RepositorySelector.d.ts +45 -0
  308. package/dist/src/init/repo/RepositorySelector.d.ts.map +1 -0
  309. package/dist/src/init/repo/RepositorySelector.js +106 -0
  310. package/dist/src/init/repo/RepositorySelector.js.map +1 -0
  311. package/dist/src/init/repo/types.d.ts +95 -0
  312. package/dist/src/init/repo/types.d.ts.map +1 -0
  313. package/dist/src/init/repo/types.js +25 -0
  314. package/dist/src/init/repo/types.js.map +1 -0
  315. package/dist/src/init/research/CompetitorAnalyzer.d.ts +79 -0
  316. package/dist/src/init/research/CompetitorAnalyzer.d.ts.map +1 -0
  317. package/dist/src/init/research/CompetitorAnalyzer.js +265 -0
  318. package/dist/src/init/research/CompetitorAnalyzer.js.map +1 -0
  319. package/dist/src/init/research/MarketDetector.d.ts +62 -0
  320. package/dist/src/init/research/MarketDetector.d.ts.map +1 -0
  321. package/dist/src/init/research/MarketDetector.js +247 -0
  322. package/dist/src/init/research/MarketDetector.js.map +1 -0
  323. package/dist/src/init/research/OpportunityScorer.d.ts +58 -0
  324. package/dist/src/init/research/OpportunityScorer.d.ts.map +1 -0
  325. package/dist/src/init/research/OpportunityScorer.js +194 -0
  326. package/dist/src/init/research/OpportunityScorer.js.map +1 -0
  327. package/dist/src/init/research/QuestionGenerator.d.ts +68 -0
  328. package/dist/src/init/research/QuestionGenerator.d.ts.map +1 -0
  329. package/dist/src/init/research/QuestionGenerator.js +244 -0
  330. package/dist/src/init/research/QuestionGenerator.js.map +1 -0
  331. package/dist/src/init/research/ReportGenerator.d.ts +36 -0
  332. package/dist/src/init/research/ReportGenerator.d.ts.map +1 -0
  333. package/dist/src/init/research/ReportGenerator.js +125 -0
  334. package/dist/src/init/research/ReportGenerator.js.map +1 -0
  335. package/dist/src/init/research/VisionAnalyzer.d.ts +129 -0
  336. package/dist/src/init/research/VisionAnalyzer.d.ts.map +1 -0
  337. package/dist/src/init/research/VisionAnalyzer.js +212 -0
  338. package/dist/src/init/research/VisionAnalyzer.js.map +1 -0
  339. package/dist/src/init/research/keyword-extractor.d.ts +78 -0
  340. package/dist/src/init/research/keyword-extractor.d.ts.map +1 -0
  341. package/dist/src/init/research/keyword-extractor.js +230 -0
  342. package/dist/src/init/research/keyword-extractor.js.map +1 -0
  343. package/dist/src/init/research/src/config/ConfigManager.d.ts +14 -0
  344. package/dist/src/init/research/src/config/ConfigManager.d.ts.map +1 -0
  345. package/dist/src/init/research/src/config/ConfigManager.js +45 -0
  346. package/dist/src/init/research/src/config/ConfigManager.js.map +1 -0
  347. package/dist/src/init/research/src/config/types.d.ts +102 -0
  348. package/dist/src/init/research/src/config/types.d.ts.map +1 -0
  349. package/dist/src/init/research/src/config/types.js +24 -0
  350. package/dist/src/init/research/src/config/types.js.map +1 -0
  351. package/dist/src/init/research/types.d.ts +183 -0
  352. package/dist/src/init/research/types.d.ts.map +1 -0
  353. package/dist/src/init/research/types.js +65 -0
  354. package/dist/src/init/research/types.js.map +1 -0
  355. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts +136 -0
  356. package/dist/src/init/team/ServerlessSavingsCalculator.d.ts.map +1 -0
  357. package/dist/src/init/team/ServerlessSavingsCalculator.js +360 -0
  358. package/dist/src/init/team/ServerlessSavingsCalculator.js.map +1 -0
  359. package/dist/src/init/team/TeamRecommender.d.ts +122 -0
  360. package/dist/src/init/team/TeamRecommender.d.ts.map +1 -0
  361. package/dist/src/init/team/TeamRecommender.js +405 -0
  362. package/dist/src/init/team/TeamRecommender.js.map +1 -0
  363. package/dist/src/init/team/types.d.ts +95 -0
  364. package/dist/src/init/team/types.d.ts.map +1 -0
  365. package/dist/src/init/team/types.js +23 -0
  366. package/dist/src/init/team/types.js.map +1 -0
  367. package/dist/src/integrations/jira/jira-mapper.d.ts +1 -1
  368. package/dist/src/integrations/jira/jira-mapper.d.ts.map +1 -1
  369. package/dist/src/types/cost-tracking.d.ts +1 -1
  370. package/dist/src/types/cost-tracking.d.ts.map +1 -1
  371. package/dist/src/utils/cost-reporter.d.ts +2 -2
  372. package/dist/src/utils/cost-reporter.d.ts.map +1 -1
  373. package/dist/src/utils/docs-preview/config-generator.d.ts +1 -1
  374. package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
  375. package/dist/src/utils/docs-preview/config-generator.js +1 -1
  376. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +1 -1
  377. package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
  378. package/dist/src/utils/docs-preview/docusaurus-setup.js +4 -4
  379. package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
  380. package/dist/src/utils/docs-preview/index.d.ts +6 -6
  381. package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
  382. package/dist/src/utils/docs-preview/index.js +6 -6
  383. package/dist/src/utils/docs-preview/index.js.map +1 -1
  384. package/dist/src/utils/docs-preview/package-installer.d.ts +1 -1
  385. package/dist/src/utils/docs-preview/package-installer.d.ts.map +1 -1
  386. package/dist/src/utils/docs-preview/package-installer.js +1 -1
  387. package/dist/src/utils/docs-preview/package-installer.js.map +1 -1
  388. package/dist/src/utils/docs-preview/server-manager.d.ts +1 -1
  389. package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
  390. package/dist/src/utils/docs-preview/server-manager.js +1 -1
  391. package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
  392. package/dist/src/utils/docs-preview/sidebar-builder.d.ts +1 -1
  393. package/dist/src/utils/docs-preview/sidebar-builder.d.ts.map +1 -1
  394. package/dist/src/utils/generate-skills-index.d.ts +1 -1
  395. package/dist/src/utils/generate-skills-index.js +1 -1
  396. package/dist/src/utils/project-detection.js +1 -1
  397. package/dist/src/utils/project-detection.js.map +1 -1
  398. package/package.json +9 -3
  399. package/plugins/specweave/agents/architect/AGENT.md +605 -0
  400. package/plugins/specweave/agents/infrastructure/AGENT.md +760 -0
  401. package/plugins/specweave/agents/pm/AGENT.md +14 -13
  402. package/plugins/specweave/commands/specweave-check-hooks.md +186 -0
  403. package/plugins/specweave/commands/specweave-plan.md +151 -0
  404. package/plugins/specweave/commands/specweave-sync-acs.md +342 -0
  405. package/plugins/specweave/commands/specweave-validate.md +60 -11
  406. package/plugins/specweave/hooks/lib/update-status-line.sh +8 -4
  407. package/plugins/specweave/hooks/post-increment-change.sh +4 -0
  408. package/plugins/specweave/hooks/post-increment-completion.sh +7 -1
  409. package/plugins/specweave/hooks/post-increment-planning.sh +4 -0
  410. package/plugins/specweave/hooks/post-increment-status-change.sh +4 -0
  411. package/plugins/specweave/hooks/user-prompt-submit.sh +78 -0
  412. package/plugins/specweave/iac-templates/aws-lambda/README.md.hbs +280 -0
  413. package/plugins/specweave/iac-templates/aws-lambda/defaults.json +118 -0
  414. package/plugins/specweave/iac-templates/aws-lambda/environments/dev.defaults.json +46 -0
  415. package/plugins/specweave/iac-templates/aws-lambda/environments/prod.defaults.json +67 -0
  416. package/plugins/specweave/iac-templates/aws-lambda/environments/staging.defaults.json +47 -0
  417. package/plugins/specweave/iac-templates/aws-lambda/main.tf.hbs +241 -0
  418. package/plugins/specweave/iac-templates/aws-lambda/outputs.tf.hbs +61 -0
  419. package/plugins/specweave/iac-templates/aws-lambda/provider.tf.hbs +15 -0
  420. package/plugins/specweave/iac-templates/aws-lambda/variables.tf.hbs +88 -0
  421. package/plugins/specweave/iac-templates/azure-functions/README.md.hbs +315 -0
  422. package/plugins/specweave/iac-templates/azure-functions/defaults.json +65 -0
  423. package/plugins/specweave/iac-templates/azure-functions/environments/dev.defaults.json +30 -0
  424. package/plugins/specweave/iac-templates/azure-functions/environments/prod.defaults.json +34 -0
  425. package/plugins/specweave/iac-templates/azure-functions/environments/staging.defaults.json +31 -0
  426. package/plugins/specweave/iac-templates/azure-functions/iam.tf.hbs +34 -0
  427. package/plugins/specweave/iac-templates/azure-functions/main.tf.hbs +247 -0
  428. package/plugins/specweave/iac-templates/azure-functions/outputs.tf.hbs +72 -0
  429. package/plugins/specweave/iac-templates/azure-functions/provider.tf.hbs +14 -0
  430. package/plugins/specweave/iac-templates/azure-functions/variables.tf.hbs +64 -0
  431. package/plugins/specweave/iac-templates/firebase/README.md.hbs +487 -0
  432. package/plugins/specweave/iac-templates/firebase/defaults.json +55 -0
  433. package/plugins/specweave/iac-templates/firebase/environments/dev.defaults.json +44 -0
  434. package/plugins/specweave/iac-templates/firebase/environments/prod.defaults.json +52 -0
  435. package/plugins/specweave/iac-templates/firebase/environments/staging.defaults.json +43 -0
  436. package/plugins/specweave/iac-templates/firebase/iam.tf.hbs +75 -0
  437. package/plugins/specweave/iac-templates/firebase/main.tf.hbs +297 -0
  438. package/plugins/specweave/iac-templates/firebase/outputs.tf.hbs +67 -0
  439. package/plugins/specweave/iac-templates/firebase/provider.tf.hbs +26 -0
  440. package/plugins/specweave/iac-templates/firebase/variables.tf.hbs +68 -0
  441. package/plugins/specweave/iac-templates/gcp-cloud-functions/README.md.hbs +330 -0
  442. package/plugins/specweave/iac-templates/gcp-cloud-functions/defaults.json +69 -0
  443. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/dev.defaults.json +33 -0
  444. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/prod.defaults.json +40 -0
  445. package/plugins/specweave/iac-templates/gcp-cloud-functions/environments/staging.defaults.json +33 -0
  446. package/plugins/specweave/iac-templates/gcp-cloud-functions/iam.tf.hbs +54 -0
  447. package/plugins/specweave/iac-templates/gcp-cloud-functions/main.tf.hbs +211 -0
  448. package/plugins/specweave/iac-templates/gcp-cloud-functions/outputs.tf.hbs +44 -0
  449. package/plugins/specweave/iac-templates/gcp-cloud-functions/provider.tf.hbs +14 -0
  450. package/plugins/specweave/iac-templates/gcp-cloud-functions/variables.tf.hbs +82 -0
  451. package/plugins/specweave/iac-templates/supabase/README.md.hbs +534 -0
  452. package/plugins/specweave/iac-templates/supabase/defaults.json +69 -0
  453. package/plugins/specweave/iac-templates/supabase/environments/dev.defaults.json +55 -0
  454. package/plugins/specweave/iac-templates/supabase/environments/prod.defaults.json +75 -0
  455. package/plugins/specweave/iac-templates/supabase/environments/staging.defaults.json +54 -0
  456. package/plugins/specweave/iac-templates/supabase/iam.tf.hbs +146 -0
  457. package/plugins/specweave/iac-templates/supabase/main.tf.hbs +310 -0
  458. package/plugins/specweave/iac-templates/supabase/outputs.tf.hbs +74 -0
  459. package/plugins/specweave/iac-templates/supabase/provider.tf.hbs +19 -0
  460. package/plugins/specweave/iac-templates/supabase/variables.tf.hbs +78 -0
  461. package/plugins/specweave/knowledge-base/serverless/FRESHNESS.md +69 -0
  462. package/plugins/specweave/knowledge-base/serverless/learning-paths.json +865 -0
  463. package/plugins/specweave/knowledge-base/serverless/platforms/aws-lambda.json +41 -0
  464. package/plugins/specweave/knowledge-base/serverless/platforms/azure-functions.json +41 -0
  465. package/plugins/specweave/knowledge-base/serverless/platforms/firebase.json +46 -0
  466. package/plugins/specweave/knowledge-base/serverless/platforms/gcp-cloud-functions.json +41 -0
  467. package/plugins/specweave/knowledge-base/serverless/platforms/supabase.json +41 -0
  468. package/plugins/specweave/knowledge-base/serverless/schema.json +155 -0
  469. package/plugins/specweave/lib/hooks/auto-transition.js +50 -0
  470. package/plugins/specweave/lib/hooks/auto-transition.ts +84 -0
  471. package/plugins/specweave/lib/hooks/invoke-translator-skill.js +1 -1
  472. package/plugins/specweave/lib/hooks/invoke-translator-skill.ts +1 -1
  473. package/plugins/specweave/lib/hooks/sync-living-docs.js +4 -31
  474. package/plugins/specweave/lib/hooks/{sync-living-docs.ts → sync-living-docs.ts.DISABLED} +9 -48
  475. package/plugins/specweave/lib/hooks/translate-file.js +1 -1
  476. package/plugins/specweave/lib/hooks/translate-file.ts +1 -1
  477. package/plugins/specweave/lib/hooks/update-ac-status.js +24 -75
  478. package/plugins/specweave/lib/hooks/update-ac-status.ts +46 -135
  479. package/plugins/specweave/lib/hooks/update-tasks-md.js +115 -3
  480. package/plugins/specweave/lib/hooks/update-tasks-md.ts +182 -10
  481. package/plugins/specweave/lib/utils/validate-dev-setup.sh +133 -0
  482. package/plugins/specweave/skills/increment-planner/SKILL.md +25 -15
  483. package/plugins/specweave/skills/serverless-recommender/SKILL.md +368 -0
  484. package/plugins/specweave/templates/iac/aws-lambda/templates/iam.tf.hbs +137 -0
  485. package/plugins/specweave/templates/iac/aws-lambda/templates/main.tf.hbs +216 -0
  486. package/plugins/specweave-github/lib/IssueStateManager.js +117 -0
  487. package/plugins/specweave-github/lib/IssueStateManager.ts +231 -0
  488. package/plugins/specweave-github/lib/user-story-issue-builder.js +7 -0
  489. package/plugins/specweave-github/lib/user-story-issue-builder.ts +11 -0
  490. package/plugins/specweave-ui/.mcp.json +0 -10
  491. package/plugins/specweave-ui/README.md +26 -26
  492. package/plugins/specweave-ui/skills/browser-automation/SKILL.md +31 -18
  493. package/src/templates/tasks.md.template +51 -33
  494. package/dist/locales/de/.gitkeep +0 -0
  495. package/dist/locales/de/cli.json +0 -108
  496. package/dist/locales/en/cli.json +0 -287
  497. package/dist/locales/en/errors.json +0 -7
  498. package/dist/locales/en/templates.json +0 -6
  499. package/dist/locales/es/.gitkeep +0 -0
  500. package/dist/locales/es/cli.json +0 -41
  501. package/dist/locales/fr/.gitkeep +0 -0
  502. package/dist/locales/fr/cli.json +0 -108
  503. package/dist/locales/ja/.gitkeep +0 -0
  504. package/dist/locales/ja/cli.json +0 -108
  505. package/dist/locales/ko/.gitkeep +0 -0
  506. package/dist/locales/ko/cli.json +0 -108
  507. package/dist/locales/pt/.gitkeep +0 -0
  508. package/dist/locales/pt/cli.json +0 -108
  509. package/dist/locales/ru/.gitkeep +0 -0
  510. package/dist/locales/ru/cli.json +0 -269
  511. package/dist/locales/zh/.gitkeep +0 -0
  512. package/dist/locales/zh/cli.json +0 -108
  513. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts +0 -89
  514. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.d.ts.map +0 -1
  515. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js +0 -226
  516. package/dist/plugins/specweave/lib/hooks/git-diff-analyzer.js.map +0 -1
  517. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts +0 -60
  518. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.d.ts.map +0 -1
  519. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js +0 -201
  520. package/dist/plugins/specweave/lib/hooks/invoke-translator-skill.js.map +0 -1
  521. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts +0 -42
  522. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.d.ts.map +0 -1
  523. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js +0 -123
  524. package/dist/plugins/specweave/lib/hooks/prepare-reflection-context.js.map +0 -1
  525. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts +0 -45
  526. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.d.ts.map +0 -1
  527. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js +0 -132
  528. package/dist/plugins/specweave/lib/hooks/reflection-config-loader.js.map +0 -1
  529. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts +0 -33
  530. package/dist/plugins/specweave/lib/hooks/reflection-parser.d.ts.map +0 -1
  531. package/dist/plugins/specweave/lib/hooks/reflection-parser.js +0 -419
  532. package/dist/plugins/specweave/lib/hooks/reflection-parser.js.map +0 -1
  533. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts +0 -56
  534. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.d.ts.map +0 -1
  535. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js +0 -239
  536. package/dist/plugins/specweave/lib/hooks/reflection-prompt-builder.js.map +0 -1
  537. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts +0 -64
  538. package/dist/plugins/specweave/lib/hooks/reflection-storage.d.ts.map +0 -1
  539. package/dist/plugins/specweave/lib/hooks/reflection-storage.js +0 -305
  540. package/dist/plugins/specweave/lib/hooks/reflection-storage.js.map +0 -1
  541. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts +0 -43
  542. package/dist/plugins/specweave/lib/hooks/run-self-reflection.d.ts.map +0 -1
  543. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js +0 -203
  544. package/dist/plugins/specweave/lib/hooks/run-self-reflection.js.map +0 -1
  545. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts +0 -32
  546. package/dist/plugins/specweave/lib/hooks/sync-living-docs.d.ts.map +0 -1
  547. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js +0 -405
  548. package/dist/plugins/specweave/lib/hooks/sync-living-docs.js.map +0 -1
  549. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts +0 -59
  550. package/dist/plugins/specweave/lib/hooks/translate-file.d.ts.map +0 -1
  551. package/dist/plugins/specweave/lib/hooks/translate-file.js +0 -350
  552. package/dist/plugins/specweave/lib/hooks/translate-file.js.map +0 -1
  553. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts +0 -13
  554. package/dist/plugins/specweave/lib/hooks/translate-living-docs.d.ts.map +0 -1
  555. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js +0 -175
  556. package/dist/plugins/specweave/lib/hooks/translate-living-docs.js.map +0 -1
  557. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts +0 -164
  558. package/dist/plugins/specweave/lib/hooks/types/reflection-types.d.ts.map +0 -1
  559. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js +0 -73
  560. package/dist/plugins/specweave/lib/hooks/types/reflection-types.js.map +0 -1
  561. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts +0 -21
  562. package/dist/plugins/specweave/lib/hooks/update-ac-status.d.ts.map +0 -1
  563. package/dist/plugins/specweave/lib/hooks/update-ac-status.js +0 -162
  564. package/dist/plugins/specweave/lib/hooks/update-ac-status.js.map +0 -1
  565. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts +0 -29
  566. package/dist/plugins/specweave/lib/hooks/update-tasks-md.d.ts.map +0 -1
  567. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js +0 -203
  568. package/dist/plugins/specweave/lib/hooks/update-tasks-md.js.map +0 -1
  569. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts +0 -25
  570. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.d.ts.map +0 -1
  571. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -191
  572. package/dist/plugins/specweave-ado/lib/enhanced-ado-sync.js.map +0 -1
  573. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts +0 -57
  574. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.d.ts.map +0 -1
  575. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js +0 -248
  576. package/dist/plugins/specweave-kafka/lib/cli/kcat-wrapper.js.map +0 -1
  577. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts +0 -82
  578. package/dist/plugins/specweave-kafka/lib/cli/types.d.ts.map +0 -1
  579. package/dist/plugins/specweave-kafka/lib/cli/types.js +0 -13
  580. package/dist/plugins/specweave-kafka/lib/cli/types.js.map +0 -1
  581. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts +0 -49
  582. package/dist/plugins/specweave-kafka/lib/mcp/detector.d.ts.map +0 -1
  583. package/dist/plugins/specweave-kafka/lib/mcp/detector.js +0 -316
  584. package/dist/plugins/specweave-kafka/lib/mcp/detector.js.map +0 -1
  585. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts +0 -70
  586. package/dist/plugins/specweave-kafka/lib/mcp/types.d.ts.map +0 -1
  587. package/dist/plugins/specweave-kafka/lib/mcp/types.js +0 -23
  588. package/dist/plugins/specweave-kafka/lib/mcp/types.js.map +0 -1
  589. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts +0 -85
  590. package/dist/plugins/specweave-kafka/lib/utils/partitioning.d.ts.map +0 -1
  591. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js +0 -281
  592. package/dist/plugins/specweave-kafka/lib/utils/partitioning.js.map +0 -1
  593. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts +0 -75
  594. package/dist/plugins/specweave-kafka/lib/utils/sizing.d.ts.map +0 -1
  595. package/dist/plugins/specweave-kafka/lib/utils/sizing.js +0 -238
  596. package/dist/plugins/specweave-kafka/lib/utils/sizing.js.map +0 -1
  597. package/dist/spec-parser.js +0 -629
  598. package/dist/src/core/living-docs/spec-distributor.d.ts +0 -180
  599. package/dist/src/core/living-docs/spec-distributor.d.ts.map +0 -1
  600. package/dist/src/core/living-docs/spec-distributor.js +0 -1840
  601. package/dist/src/core/living-docs/spec-distributor.js.map +0 -1
  602. package/dist/src/core/sync/spec-content-sync.d.ts +0 -88
  603. package/dist/src/core/sync/spec-content-sync.d.ts.map +0 -1
  604. package/dist/src/core/sync/spec-content-sync.js +0 -5
  605. package/dist/src/core/sync/spec-content-sync.js.map +0 -1
  606. package/dist/tsconfig.tsbuildinfo +0 -1
  607. package/plugins/specweave-ado/lib/enhanced-ado-sync.js +0 -170
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Types for Vision & Market Research Engine
3
+ *
4
+ * This module defines the core types for analyzing product vision,
5
+ * detecting market categories, identifying competitors, and calculating
6
+ * opportunity scores.
7
+ */
8
+ import { z } from 'zod';
9
+ /**
10
+ * Zod schema for VisionInsights validation
11
+ */
12
+ export const VisionInsightsSchema = z.object({
13
+ keywords: z.array(z.string()).min(3).max(15),
14
+ market: z.enum([
15
+ 'productivity-saas',
16
+ 'healthcare',
17
+ 'fintech',
18
+ 'e-commerce',
19
+ 'education',
20
+ 'gaming',
21
+ 'social-network',
22
+ 'enterprise-b2b',
23
+ 'consumer-b2c',
24
+ 'marketplace',
25
+ 'iot',
26
+ 'blockchain',
27
+ 'ai-ml',
28
+ 'unknown'
29
+ ]),
30
+ competitors: z.array(z.object({
31
+ name: z.string(),
32
+ url: z.string().url().optional(),
33
+ strengths: z.array(z.string()),
34
+ weaknesses: z.array(z.string())
35
+ })).min(0).max(10),
36
+ opportunityScore: z.number().min(1).max(10),
37
+ viralPotential: z.boolean(),
38
+ followUpQuestions: z.array(z.object({
39
+ question: z.string(),
40
+ type: z.enum(['open', 'multiple-choice', 'scale']),
41
+ options: z.array(z.string()).optional(),
42
+ rationale: z.string()
43
+ })),
44
+ confidence: z.number().min(0).max(1).optional(),
45
+ rawVision: z.string()
46
+ });
47
+ /**
48
+ * Zod schema for Competitor validation
49
+ */
50
+ export const CompetitorSchema = z.object({
51
+ name: z.string(),
52
+ url: z.string().url().optional(),
53
+ strengths: z.array(z.string()),
54
+ weaknesses: z.array(z.string())
55
+ });
56
+ /**
57
+ * Zod schema for Question validation
58
+ */
59
+ export const QuestionSchema = z.object({
60
+ question: z.string(),
61
+ type: z.enum(['open', 'multiple-choice', 'scale']),
62
+ options: z.array(z.string()).optional(),
63
+ rationale: z.string()
64
+ });
65
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/init/research/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwFxB;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;QACb,mBAAmB;QACnB,YAAY;QACZ,SAAS;QACT,YAAY;QACZ,WAAW;QACX,QAAQ;QACR,gBAAgB;QAChB,gBAAgB;QAChB,cAAc;QACd,aAAa;QACb,KAAK;QACL,YAAY;QACZ,OAAO;QACP,SAAS;KACV,CAAC;IACF,WAAW,EAAE,CAAC,CAAC,KAAK,CAClB,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KAChC,CAAC,CACH,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAChB,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3C,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;IAC3B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CACxB,CAAC,CAAC,MAAM,CAAC;QACP,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;KACtB,CAAC,CACH;IACD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;IAChC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC9B,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CAChC,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC"}
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Serverless Cost Savings Calculator
3
+ *
4
+ * Calculates potential monthly cost savings by using serverless
5
+ * alternatives instead of traditional infrastructure.
6
+ *
7
+ * **Savings Categories**:
8
+ * - Auth → AWS Cognito/Auth0: $185/month
9
+ * - File uploads → S3 + Lambda: $480/month
10
+ * - Image processing → Lambda/Cloudinary: $490/month
11
+ * - Email → SendGrid/SES: $85/month
12
+ * - Background jobs → Lambda: $280/month
13
+ * - **Total Potential: $1,520/month**
14
+ */
15
+ /**
16
+ * Serverless alternative for a specific use case
17
+ */
18
+ export interface ServerlessOption {
19
+ /** Use case name (e.g., "Authentication", "File Uploads") */
20
+ useCase: string;
21
+ /** Traditional infrastructure cost per month */
22
+ traditionalCost: number;
23
+ /** Serverless solution cost per month */
24
+ serverlessCost: number;
25
+ /** Monthly savings (traditionalCost - serverlessCost) */
26
+ savings: number;
27
+ /** Recommended serverless service */
28
+ service: string;
29
+ /** Alternative serverless services */
30
+ alternatives?: string[];
31
+ /** Trade-offs to consider */
32
+ tradeoffs: string[];
33
+ /** When to use serverless for this use case */
34
+ recommendedWhen: string[];
35
+ /** When NOT to use serverless for this use case */
36
+ notRecommendedWhen: string[];
37
+ }
38
+ /**
39
+ * Complete serverless savings analysis
40
+ */
41
+ export interface ServerlessSavingsAnalysis {
42
+ /** Total potential monthly savings */
43
+ totalSavings: number;
44
+ /** Breakdown by use case */
45
+ breakdown: ServerlessOption[];
46
+ /** Overall recommendation (serverless vs traditional) */
47
+ recommendation: 'serverless' | 'traditional' | 'hybrid';
48
+ /** Rationale for recommendation */
49
+ rationale: string;
50
+ /** Confidence level (0-1) */
51
+ confidence: number;
52
+ }
53
+ /**
54
+ * Serverless Savings Calculator
55
+ *
56
+ * Analyzes which services can benefit from serverless and calculates savings.
57
+ */
58
+ export declare class ServerlessSavingsCalculator {
59
+ /**
60
+ * Calculate potential serverless savings for a project
61
+ *
62
+ * @param useCases - Array of use cases detected in project (e.g., ["auth", "file-uploads"])
63
+ * @returns Complete savings analysis with recommendations
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const calculator = new ServerlessSavingsCalculator();
68
+ * const analysis = calculator.calculateSavings(['auth', 'file-uploads', 'email']);
69
+ * console.log(analysis.totalSavings); // 750
70
+ * console.log(analysis.recommendation); // 'serverless'
71
+ * ```
72
+ */
73
+ calculateSavings(useCases: string[]): ServerlessSavingsAnalysis;
74
+ /**
75
+ * Get all available serverless options
76
+ *
77
+ * @returns Complete database of serverless savings options
78
+ */
79
+ getAllOptions(): ServerlessOption[];
80
+ /**
81
+ * Get serverless option by use case
82
+ *
83
+ * @param useCase - Use case name
84
+ * @returns Serverless option or undefined if not found
85
+ */
86
+ getOption(useCase: string): ServerlessOption | undefined;
87
+ /**
88
+ * Calculate savings for specific use case
89
+ *
90
+ * @param useCase - Use case name
91
+ * @returns Savings amount or 0 if not found
92
+ */
93
+ getSavings(useCase: string): number;
94
+ /**
95
+ * Normalize use case name for matching
96
+ *
97
+ * @param useCase - Raw use case string
98
+ * @returns Normalized use case
99
+ *
100
+ * @example
101
+ * normalizeUseCase("file upload") → "file-uploads"
102
+ * normalizeUseCase("AUTH") → "authentication"
103
+ */
104
+ private normalizeUseCase;
105
+ /**
106
+ * Check if normalized use case matches database use case
107
+ *
108
+ * @param normalized - Normalized use case from user input
109
+ * @param dbUseCase - Use case from database
110
+ * @returns True if match
111
+ */
112
+ private matchesUseCase;
113
+ /**
114
+ * Determine serverless recommendation based on savings
115
+ *
116
+ * @param options - Applicable serverless options
117
+ * @param totalSavings - Total monthly savings
118
+ * @returns Recommendation with rationale
119
+ */
120
+ private determineRecommendation;
121
+ /**
122
+ * Format savings analysis as markdown report
123
+ *
124
+ * @param analysis - Savings analysis result
125
+ * @returns Markdown-formatted report
126
+ */
127
+ formatReport(analysis: ServerlessSavingsAnalysis): string;
128
+ }
129
+ /**
130
+ * Quick helper to calculate total potential serverless savings
131
+ *
132
+ * @param useCases - Array of use cases
133
+ * @returns Total monthly savings
134
+ */
135
+ export declare function calculateTotalSavings(useCases: string[]): number;
136
+ //# sourceMappingURL=ServerlessSavingsCalculator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerlessSavingsCalculator.d.ts","sourceRoot":"","sources":["../../../../src/init/team/ServerlessSavingsCalculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAEhB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IAExB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAC;IAEvB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAEhB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAEhB,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,6BAA6B;IAC7B,SAAS,EAAE,MAAM,EAAE,CAAC;IAEpB,+CAA+C;IAC/C,eAAe,EAAE,MAAM,EAAE,CAAC;IAE1B,mDAAmD;IACnD,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IAErB,4BAA4B;IAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE9B,yDAAyD;IACzD,cAAc,EAAE,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAExD,mCAAmC;IACnC,SAAS,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AA0ID;;;;GAIG;AACH,qBAAa,2BAA2B;IACtC;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,yBAAyB;IA2B/D;;;;OAIG;IACH,aAAa,IAAI,gBAAgB,EAAE;IAInC;;;;;OAKG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAOxD;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAKnC;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAoD/B;;;;;OAKG;IACH,YAAY,CAAC,QAAQ,EAAE,yBAAyB,GAAG,MAAM;CA4C1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAIhE"}
@@ -0,0 +1,360 @@
1
+ /**
2
+ * Serverless Cost Savings Calculator
3
+ *
4
+ * Calculates potential monthly cost savings by using serverless
5
+ * alternatives instead of traditional infrastructure.
6
+ *
7
+ * **Savings Categories**:
8
+ * - Auth → AWS Cognito/Auth0: $185/month
9
+ * - File uploads → S3 + Lambda: $480/month
10
+ * - Image processing → Lambda/Cloudinary: $490/month
11
+ * - Email → SendGrid/SES: $85/month
12
+ * - Background jobs → Lambda: $280/month
13
+ * - **Total Potential: $1,520/month**
14
+ */
15
+ /**
16
+ * Database of serverless cost savings by use case
17
+ */
18
+ const SERVERLESS_SAVINGS_DATABASE = [
19
+ {
20
+ useCase: 'Authentication',
21
+ traditionalCost: 250, // EC2 t3.small ($17/month) + load balancer ($23/month) + dev time ($210/month maintenance)
22
+ serverlessCost: 65, // AWS Cognito free tier → $55/month at 10K users + minimal dev time
23
+ savings: 185,
24
+ service: 'AWS Cognito',
25
+ alternatives: ['Auth0', 'Firebase Auth', 'Supabase Auth'],
26
+ tradeoffs: [
27
+ 'Limited customization vs full control',
28
+ 'Vendor lock-in vs self-hosted',
29
+ 'Instant scale vs manual scaling',
30
+ 'AWS-specific vs multi-cloud'
31
+ ],
32
+ recommendedWhen: [
33
+ 'Standard OAuth/SAML requirements',
34
+ 'User count < 100K (free tier optimized)',
35
+ 'Want zero ops burden',
36
+ 'Need instant global scale'
37
+ ],
38
+ notRecommendedWhen: [
39
+ 'Highly custom auth flows',
40
+ 'On-premise requirements',
41
+ 'Non-AWS infrastructure',
42
+ 'Need full audit trail control'
43
+ ]
44
+ },
45
+ {
46
+ useCase: 'File Uploads',
47
+ traditionalCost: 650, // EC2 t3.medium ($34/month) + EBS 500GB ($50/month) + bandwidth ($100/month) + dev time ($466/month)
48
+ serverlessCost: 170, // S3 500GB ($11.5/month) + Lambda processing ($45/month) + bandwidth ($100/month) + minimal dev time ($13/month)
49
+ savings: 480,
50
+ service: 'S3 + Lambda',
51
+ alternatives: ['Cloudflare R2 + Workers', 'Azure Blob + Functions', 'GCP Cloud Storage + Cloud Functions'],
52
+ tradeoffs: [
53
+ 'Pay-per-use vs fixed cost',
54
+ 'Automatic scaling vs manual capacity planning',
55
+ 'Cold start latency vs always-on',
56
+ 'Function timeout limits (15 min Lambda) vs unlimited processing'
57
+ ],
58
+ recommendedWhen: [
59
+ 'Sporadic upload patterns',
60
+ 'Need global CDN',
61
+ 'Variable file sizes',
62
+ 'Want automatic backup/versioning'
63
+ ],
64
+ notRecommendedWhen: [
65
+ 'Constant high-volume uploads',
66
+ 'Processing > 15 minutes per file',
67
+ 'Need file system access patterns',
68
+ 'On-premise storage requirements'
69
+ ]
70
+ },
71
+ {
72
+ useCase: 'Image Processing',
73
+ traditionalCost: 800, // EC2 c5.large for ImageMagick ($70/month) + EBS ($30/month) + dev time ($700/month)
74
+ serverlessCost: 310, // Lambda with sharp.js ($120/month at scale) + S3 storage ($20/month) + Cloudinary transformations ($170/month) + minimal dev time
75
+ savings: 490,
76
+ service: 'Lambda + Cloudinary',
77
+ alternatives: ['Imgix', 'Cloudflare Images', 'AWS Lambda + sharp.js only', 'Vercel Image Optimization'],
78
+ tradeoffs: [
79
+ 'Per-transformation cost vs fixed infrastructure',
80
+ 'Automatic optimization vs manual tuning',
81
+ 'CDN-integrated vs separate CDN setup',
82
+ 'Limited processing time vs unlimited'
83
+ ],
84
+ recommendedWhen: [
85
+ 'On-demand image transformations',
86
+ 'Need responsive images (multiple sizes)',
87
+ 'Want automatic format optimization (WebP, AVIF)',
88
+ 'Global user base (CDN benefit)'
89
+ ],
90
+ notRecommendedWhen: [
91
+ 'Batch processing millions of images',
92
+ 'Custom processing algorithms',
93
+ 'Processing time > 15 minutes',
94
+ 'Need specific ImageMagick features'
95
+ ]
96
+ },
97
+ {
98
+ useCase: 'Email Sending',
99
+ traditionalCost: 175, // EC2 t3.micro ($9/month) + Postfix setup + IP warming + dev time ($150/month) + deliverability monitoring ($16/month)
100
+ serverlessCost: 90, // SendGrid free tier → $20/month at 10K emails + SES backup ($5/month) + minimal dev time ($65/month)
101
+ savings: 85,
102
+ service: 'SendGrid / AWS SES',
103
+ alternatives: ['Mailgun', 'Postmark', 'Resend', 'Brevo (formerly Sendinblue)'],
104
+ tradeoffs: [
105
+ 'Pay-per-email vs fixed cost',
106
+ 'Managed deliverability vs DIY IP warming',
107
+ 'Email templates vs custom SMTP',
108
+ 'Analytics included vs separate tracking'
109
+ ],
110
+ recommendedWhen: [
111
+ 'Transactional emails (< 100K/month)',
112
+ 'Want high deliverability out-of-box',
113
+ 'Need email analytics',
114
+ 'Don\'t want to manage SMTP servers'
115
+ ],
116
+ notRecommendedWhen: [
117
+ 'Sending millions of emails monthly',
118
+ 'Need full SMTP control',
119
+ 'On-premise email requirements',
120
+ 'Highly sensitive email content (compliance)'
121
+ ]
122
+ },
123
+ {
124
+ useCase: 'Background Jobs',
125
+ traditionalCost: 500, // EC2 t3.medium for queue workers ($34/month) + Redis ($50/month) + monitoring ($50/month) + dev time ($366/month)
126
+ serverlessCost: 220, // Lambda executions ($80/month at 1M jobs) + SQS ($10/month) + CloudWatch ($30/month) + minimal dev time ($100/month)
127
+ savings: 280,
128
+ service: 'AWS Lambda + SQS',
129
+ alternatives: ['Azure Functions + Queue Storage', 'GCP Cloud Functions + Pub/Sub', 'Cloudflare Workers + Queues'],
130
+ tradeoffs: [
131
+ 'Per-invocation cost vs always-on workers',
132
+ '15-minute timeout vs unlimited job duration',
133
+ 'Automatic scaling vs manual worker pools',
134
+ 'Cold start delay vs instant execution'
135
+ ],
136
+ recommendedWhen: [
137
+ 'Sporadic job patterns',
138
+ 'Jobs complete in < 15 minutes',
139
+ 'Want automatic scaling',
140
+ 'Need retry logic out-of-box'
141
+ ],
142
+ notRecommendedWhen: [
143
+ 'Long-running jobs (> 15 min)',
144
+ 'Constant high-frequency jobs',
145
+ 'Need stateful workers',
146
+ 'Complex job dependencies'
147
+ ]
148
+ }
149
+ ];
150
+ /**
151
+ * Serverless Savings Calculator
152
+ *
153
+ * Analyzes which services can benefit from serverless and calculates savings.
154
+ */
155
+ export class ServerlessSavingsCalculator {
156
+ /**
157
+ * Calculate potential serverless savings for a project
158
+ *
159
+ * @param useCases - Array of use cases detected in project (e.g., ["auth", "file-uploads"])
160
+ * @returns Complete savings analysis with recommendations
161
+ *
162
+ * @example
163
+ * ```typescript
164
+ * const calculator = new ServerlessSavingsCalculator();
165
+ * const analysis = calculator.calculateSavings(['auth', 'file-uploads', 'email']);
166
+ * console.log(analysis.totalSavings); // 750
167
+ * console.log(analysis.recommendation); // 'serverless'
168
+ * ```
169
+ */
170
+ calculateSavings(useCases) {
171
+ // Normalize use cases to match database keys
172
+ const normalizedUseCases = useCases.map(uc => this.normalizeUseCase(uc));
173
+ // Filter database to matching use cases
174
+ const applicableOptions = SERVERLESS_SAVINGS_DATABASE.filter(option => normalizedUseCases.some(uc => this.matchesUseCase(uc, option.useCase)));
175
+ // Calculate total savings
176
+ const totalSavings = applicableOptions.reduce((sum, option) => sum + option.savings, 0);
177
+ // Determine recommendation
178
+ const { recommendation, rationale, confidence } = this.determineRecommendation(applicableOptions, totalSavings);
179
+ return {
180
+ totalSavings,
181
+ breakdown: applicableOptions,
182
+ recommendation,
183
+ rationale,
184
+ confidence
185
+ };
186
+ }
187
+ /**
188
+ * Get all available serverless options
189
+ *
190
+ * @returns Complete database of serverless savings options
191
+ */
192
+ getAllOptions() {
193
+ return [...SERVERLESS_SAVINGS_DATABASE];
194
+ }
195
+ /**
196
+ * Get serverless option by use case
197
+ *
198
+ * @param useCase - Use case name
199
+ * @returns Serverless option or undefined if not found
200
+ */
201
+ getOption(useCase) {
202
+ const normalized = this.normalizeUseCase(useCase);
203
+ return SERVERLESS_SAVINGS_DATABASE.find(option => this.matchesUseCase(normalized, option.useCase));
204
+ }
205
+ /**
206
+ * Calculate savings for specific use case
207
+ *
208
+ * @param useCase - Use case name
209
+ * @returns Savings amount or 0 if not found
210
+ */
211
+ getSavings(useCase) {
212
+ const option = this.getOption(useCase);
213
+ return option?.savings ?? 0;
214
+ }
215
+ /**
216
+ * Normalize use case name for matching
217
+ *
218
+ * @param useCase - Raw use case string
219
+ * @returns Normalized use case
220
+ *
221
+ * @example
222
+ * normalizeUseCase("file upload") → "file-uploads"
223
+ * normalizeUseCase("AUTH") → "authentication"
224
+ */
225
+ normalizeUseCase(useCase) {
226
+ const normalized = useCase.toLowerCase().trim().replace(/\s+/g, '-');
227
+ // Map common variations to standard names
228
+ const mappings = {
229
+ 'auth': 'authentication',
230
+ 'login': 'authentication',
231
+ 'user-auth': 'authentication',
232
+ 'file-upload': 'file-uploads',
233
+ 'files': 'file-uploads',
234
+ 'storage': 'file-uploads',
235
+ 'images': 'image-processing',
236
+ 'image-transform': 'image-processing',
237
+ 'image-resize': 'image-processing',
238
+ 'email': 'email-sending',
239
+ 'emails': 'email-sending',
240
+ 'notifications': 'email-sending',
241
+ 'jobs': 'background-jobs',
242
+ 'queue': 'background-jobs',
243
+ 'workers': 'background-jobs',
244
+ 'tasks': 'background-jobs'
245
+ };
246
+ return mappings[normalized] || normalized;
247
+ }
248
+ /**
249
+ * Check if normalized use case matches database use case
250
+ *
251
+ * @param normalized - Normalized use case from user input
252
+ * @param dbUseCase - Use case from database
253
+ * @returns True if match
254
+ */
255
+ matchesUseCase(normalized, dbUseCase) {
256
+ const dbNormalized = dbUseCase.toLowerCase().replace(/\s+/g, '-');
257
+ return normalized === dbNormalized;
258
+ }
259
+ /**
260
+ * Determine serverless recommendation based on savings
261
+ *
262
+ * @param options - Applicable serverless options
263
+ * @param totalSavings - Total monthly savings
264
+ * @returns Recommendation with rationale
265
+ */
266
+ determineRecommendation(options, totalSavings) {
267
+ // No applicable use cases → traditional
268
+ if (options.length === 0) {
269
+ return {
270
+ recommendation: 'traditional',
271
+ rationale: 'No serverless-optimized use cases detected',
272
+ confidence: 0.8
273
+ };
274
+ }
275
+ // High savings (> $500/month) → serverless
276
+ if (totalSavings >= 500) {
277
+ return {
278
+ recommendation: 'serverless',
279
+ rationale: `Serverless saves $${totalSavings}/month across ${options.length} use cases. Significant cost reduction with minimal trade-offs.`,
280
+ confidence: 0.95
281
+ };
282
+ }
283
+ // Moderate savings ($200-500) → hybrid
284
+ if (totalSavings >= 200) {
285
+ return {
286
+ recommendation: 'hybrid',
287
+ rationale: `Serverless saves $${totalSavings}/month. Consider hybrid approach: serverless for ${options.map(o => o.useCase.toLowerCase()).join(', ')}, traditional for other services.`,
288
+ confidence: 0.85
289
+ };
290
+ }
291
+ // Low savings (< $200) → evaluate trade-offs
292
+ if (totalSavings >= 100) {
293
+ return {
294
+ recommendation: 'hybrid',
295
+ rationale: `Modest savings of $${totalSavings}/month. Serverless benefits: zero ops burden, instant scaling. Trade-off: vendor lock-in.`,
296
+ confidence: 0.7
297
+ };
298
+ }
299
+ // Minimal savings → traditional
300
+ return {
301
+ recommendation: 'traditional',
302
+ rationale: `Minimal savings ($${totalSavings}/month). Traditional infrastructure may offer better control for your use cases.`,
303
+ confidence: 0.75
304
+ };
305
+ }
306
+ /**
307
+ * Format savings analysis as markdown report
308
+ *
309
+ * @param analysis - Savings analysis result
310
+ * @returns Markdown-formatted report
311
+ */
312
+ formatReport(analysis) {
313
+ const lines = [];
314
+ lines.push('# Serverless Cost Savings Analysis\n');
315
+ lines.push(`**Total Potential Savings**: $${analysis.totalSavings}/month\n`);
316
+ lines.push(`**Recommendation**: ${analysis.recommendation.toUpperCase()}`);
317
+ lines.push(`**Confidence**: ${(analysis.confidence * 100).toFixed(0)}%\n`);
318
+ lines.push(`**Rationale**: ${analysis.rationale}\n`);
319
+ lines.push('---\n');
320
+ if (analysis.breakdown.length > 0) {
321
+ lines.push('## Savings Breakdown\n');
322
+ for (const option of analysis.breakdown) {
323
+ lines.push(`### ${option.useCase}\n`);
324
+ lines.push(`- **Service**: ${option.service}`);
325
+ if (option.alternatives && option.alternatives.length > 0) {
326
+ lines.push(`- **Alternatives**: ${option.alternatives.join(', ')}`);
327
+ }
328
+ lines.push(`- **Traditional Cost**: $${option.traditionalCost}/month`);
329
+ lines.push(`- **Serverless Cost**: $${option.serverlessCost}/month`);
330
+ lines.push(`- **Savings**: $${option.savings}/month\n`);
331
+ lines.push('**Recommended When**:');
332
+ for (const when of option.recommendedWhen) {
333
+ lines.push(` - ${when}`);
334
+ }
335
+ lines.push('\n**NOT Recommended When**:');
336
+ for (const when of option.notRecommendedWhen) {
337
+ lines.push(` - ${when}`);
338
+ }
339
+ lines.push('\n**Trade-offs**:');
340
+ for (const tradeoff of option.tradeoffs) {
341
+ lines.push(` - ${tradeoff}`);
342
+ }
343
+ lines.push('\n---\n');
344
+ }
345
+ }
346
+ return lines.join('\n');
347
+ }
348
+ }
349
+ /**
350
+ * Quick helper to calculate total potential serverless savings
351
+ *
352
+ * @param useCases - Array of use cases
353
+ * @returns Total monthly savings
354
+ */
355
+ export function calculateTotalSavings(useCases) {
356
+ const calculator = new ServerlessSavingsCalculator();
357
+ const analysis = calculator.calculateSavings(useCases);
358
+ return analysis.totalSavings;
359
+ }
360
+ //# sourceMappingURL=ServerlessSavingsCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerlessSavingsCalculator.js","sourceRoot":"","sources":["../../../../src/init/team/ServerlessSavingsCalculator.ts"],"names":[],"mappings":"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"}