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,127 @@
1
+ /**
2
+ * Serverless Cost Estimator
3
+ *
4
+ * Calculates accurate costs for serverless platforms including:
5
+ * - Compute costs (GB-seconds)
6
+ * - Request costs
7
+ * - Data transfer costs
8
+ * - Free tier deductions
9
+ */
10
+ import { PlatformDataLoader } from './platform-data-loader.js';
11
+ /**
12
+ * Estimate costs for a serverless platform
13
+ *
14
+ * @param platform - The serverless platform to estimate costs for
15
+ * @param input - Usage parameters
16
+ * @returns Detailed cost estimation with breakdown
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const input = {
21
+ * requestsPerMonth: 1000000,
22
+ * avgExecutionTimeMs: 200,
23
+ * memoryMb: 512,
24
+ * dataTransferGb: 5
25
+ * };
26
+ * const result = estimateCost(platform, input);
27
+ * console.log(`Monthly cost: $${result.monthlyEstimate}`);
28
+ * ```
29
+ */
30
+ export function estimateCost(platform, input) {
31
+ // Validate input
32
+ validateInput(input);
33
+ const { pricing } = platform;
34
+ // Calculate GB-seconds
35
+ // Formula: (requests × execution_time_ms × memory_MB) / (1000 × 1024)
36
+ const gbSeconds = (input.requestsPerMonth * input.avgExecutionTimeMs * input.memoryMb) / (1000 * 1024);
37
+ // Calculate raw costs before free tier
38
+ const computeCostRaw = gbSeconds * pricing.payAsYouGo.computePerGbSecond;
39
+ const requestCostRaw = (input.requestsPerMonth / 1000000) * pricing.payAsYouGo.requestsPer1M;
40
+ const dataTransferCostRaw = input.dataTransferGb * pricing.payAsYouGo.dataTransferPerGb;
41
+ // Calculate free tier deductions
42
+ const freeTierDeduction = calculateFreeTierDeduction({
43
+ compute: computeCostRaw,
44
+ requests: requestCostRaw,
45
+ dataTransfer: dataTransferCostRaw,
46
+ }, {
47
+ gbSeconds,
48
+ requests: input.requestsPerMonth,
49
+ dataTransferGb: input.dataTransferGb,
50
+ }, platform);
51
+ // Calculate billable amounts
52
+ const computeCost = Math.max(0, computeCostRaw - freeTierDeduction.compute);
53
+ const requestCost = Math.max(0, requestCostRaw - freeTierDeduction.requests);
54
+ const dataTransferCost = Math.max(0, dataTransferCostRaw - freeTierDeduction.dataTransfer);
55
+ const total = computeCostRaw + requestCostRaw + dataTransferCostRaw;
56
+ const totalFreeTierDeduction = freeTierDeduction.compute + freeTierDeduction.requests + freeTierDeduction.dataTransfer;
57
+ const billableAmount = computeCost + requestCost + dataTransferCost;
58
+ const breakdown = {
59
+ compute: computeCost,
60
+ requests: requestCost,
61
+ dataTransfer: dataTransferCost,
62
+ total,
63
+ freeTierDeduction: totalFreeTierDeduction,
64
+ billableAmount,
65
+ };
66
+ return {
67
+ platform,
68
+ input,
69
+ breakdown,
70
+ withinFreeTier: billableAmount === 0,
71
+ monthlyEstimate: billableAmount,
72
+ };
73
+ }
74
+ /**
75
+ * Estimate costs by platform ID
76
+ *
77
+ * @param platformId - Platform identifier (e.g., 'aws-lambda', 'firebase')
78
+ * @param input - Usage parameters
79
+ * @returns Cost estimation result
80
+ */
81
+ export async function estimateCostById(platformId, input) {
82
+ const loader = new PlatformDataLoader();
83
+ const platform = await loader.loadById(platformId);
84
+ if (!platform) {
85
+ throw new Error(`Platform not found: ${platformId}`);
86
+ }
87
+ return estimateCost(platform, input);
88
+ }
89
+ /**
90
+ * Calculate free tier deductions
91
+ */
92
+ function calculateFreeTierDeduction(costs, usage, platform) {
93
+ const { freeTier, payAsYouGo } = platform.pricing;
94
+ // Calculate how much of each resource is covered by free tier
95
+ const freeComputeGbSeconds = Math.min(usage.gbSeconds, freeTier.computeGbSeconds);
96
+ const freeRequests = Math.min(usage.requests, freeTier.requests);
97
+ const freeDataTransferGb = Math.min(usage.dataTransferGb, freeTier.dataTransferGb);
98
+ // Calculate the monetary value of free tier coverage
99
+ const computeDeduction = freeComputeGbSeconds * payAsYouGo.computePerGbSecond;
100
+ const requestsDeduction = (freeRequests / 1000000) * payAsYouGo.requestsPer1M;
101
+ const dataTransferDeduction = freeDataTransferGb * payAsYouGo.dataTransferPerGb;
102
+ return {
103
+ compute: Math.min(computeDeduction, costs.compute),
104
+ requests: Math.min(requestsDeduction, costs.requests),
105
+ dataTransfer: Math.min(dataTransferDeduction, costs.dataTransfer),
106
+ };
107
+ }
108
+ /**
109
+ * Validate cost estimation input
110
+ */
111
+ function validateInput(input) {
112
+ if (input.requestsPerMonth < 0) {
113
+ throw new Error('Requests per month cannot be negative');
114
+ }
115
+ if (input.avgExecutionTimeMs < 0) {
116
+ throw new Error('Average execution time cannot be negative');
117
+ }
118
+ if (input.memoryMb < 0) {
119
+ throw new Error('Memory cannot be negative');
120
+ }
121
+ if (input.dataTransferGb < 0) {
122
+ throw new Error('Data transfer cannot be negative');
123
+ }
124
+ // Zero requests is valid (e.g., for testing or estimation purposes)
125
+ // No warning needed as it's a valid scenario
126
+ }
127
+ //# sourceMappingURL=cost-estimator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-estimator.js","sourceRoot":"","sources":["../../../../src/core/serverless/cost-estimator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Serverless Cost Optimizer
3
+ *
4
+ * Analyzes usage patterns and provides optimization recommendations to reduce costs:
5
+ * - Memory right-sizing
6
+ * - Caching strategies
7
+ * - Batching recommendations
8
+ * - Reserved capacity
9
+ * - Compression
10
+ * - CDN usage
11
+ */
12
+ import type { ServerlessPlatform } from './types.js';
13
+ import type { CostEstimationInput } from './cost-estimator.js';
14
+ /**
15
+ * Types of optimization recommendations
16
+ */
17
+ export type OptimizationType = 'memory' | 'caching' | 'batching' | 'reserved-capacity' | 'compression' | 'cdn';
18
+ /**
19
+ * Individual optimization recommendation
20
+ */
21
+ export interface OptimizationRecommendation {
22
+ type: OptimizationType;
23
+ description: string;
24
+ estimatedSavings: number;
25
+ implementationComplexity: 'low' | 'medium' | 'high';
26
+ priority: 'high' | 'medium' | 'low';
27
+ }
28
+ /**
29
+ * Complete cost optimization analysis result
30
+ */
31
+ export interface CostOptimizationResult {
32
+ currentCost: number;
33
+ optimizedCost: number;
34
+ potentialSavings: number;
35
+ recommendations: OptimizationRecommendation[];
36
+ }
37
+ /**
38
+ * Analyze usage and generate cost optimization recommendations
39
+ *
40
+ * @param platform - The serverless platform
41
+ * @param input - Current usage parameters
42
+ * @returns Optimization analysis with recommendations
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * const input = {
47
+ * requestsPerMonth: 5000000,
48
+ * avgExecutionTimeMs: 500,
49
+ * memoryMb: 1024,
50
+ * dataTransferGb: 50
51
+ * };
52
+ * const result = optimizeCost(platform, input);
53
+ * console.log(`Potential savings: $${result.potentialSavings}/month`);
54
+ * ```
55
+ */
56
+ export declare function optimizeCost(platform: ServerlessPlatform, input: CostEstimationInput): CostOptimizationResult;
57
+ //# sourceMappingURL=cost-optimizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-optimizer.d.ts","sourceRoot":"","sources":["../../../../src/core/serverless/cost-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAG/D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,UAAU,GACV,mBAAmB,GACnB,aAAa,GACb,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,wBAAwB,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,0BAA0B,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,kBAAkB,EAC5B,KAAK,EAAE,mBAAmB,GACzB,sBAAsB,CA+DxB"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * Serverless Cost Optimizer
3
+ *
4
+ * Analyzes usage patterns and provides optimization recommendations to reduce costs:
5
+ * - Memory right-sizing
6
+ * - Caching strategies
7
+ * - Batching recommendations
8
+ * - Reserved capacity
9
+ * - Compression
10
+ * - CDN usage
11
+ */
12
+ import { estimateCost } from './cost-estimator.js';
13
+ /**
14
+ * Analyze usage and generate cost optimization recommendations
15
+ *
16
+ * @param platform - The serverless platform
17
+ * @param input - Current usage parameters
18
+ * @returns Optimization analysis with recommendations
19
+ *
20
+ * @example
21
+ * ```typescript
22
+ * const input = {
23
+ * requestsPerMonth: 5000000,
24
+ * avgExecutionTimeMs: 500,
25
+ * memoryMb: 1024,
26
+ * dataTransferGb: 50
27
+ * };
28
+ * const result = optimizeCost(platform, input);
29
+ * console.log(`Potential savings: $${result.potentialSavings}/month`);
30
+ * ```
31
+ */
32
+ export function optimizeCost(platform, input) {
33
+ const currentEstimation = estimateCost(platform, input);
34
+ const currentCost = currentEstimation.monthlyEstimate;
35
+ const recommendations = [];
36
+ let optimizedCost = currentCost;
37
+ // 1. Memory right-sizing
38
+ const memoryOptimization = analyzeMemoryOptimization(platform, input, currentCost);
39
+ if (memoryOptimization) {
40
+ recommendations.push(memoryOptimization);
41
+ optimizedCost -= memoryOptimization.estimatedSavings;
42
+ }
43
+ // 2. Caching recommendations
44
+ const cachingOptimization = analyzeCachingOpportunity(input, currentCost);
45
+ if (cachingOptimization) {
46
+ recommendations.push(cachingOptimization);
47
+ optimizedCost -= cachingOptimization.estimatedSavings;
48
+ }
49
+ // 3. Batching recommendations
50
+ const batchingOptimization = analyzeBatchingOpportunity(input, currentCost);
51
+ if (batchingOptimization) {
52
+ recommendations.push(batchingOptimization);
53
+ optimizedCost -= batchingOptimization.estimatedSavings;
54
+ }
55
+ // 4. Reserved capacity
56
+ const reservedCapacityOptimization = analyzeReservedCapacity(input, currentCost);
57
+ if (reservedCapacityOptimization) {
58
+ recommendations.push(reservedCapacityOptimization);
59
+ optimizedCost -= reservedCapacityOptimization.estimatedSavings;
60
+ }
61
+ // 5. Compression
62
+ const compressionOptimization = analyzeCompression(input, currentCost);
63
+ if (compressionOptimization) {
64
+ recommendations.push(compressionOptimization);
65
+ optimizedCost -= compressionOptimization.estimatedSavings;
66
+ }
67
+ // 6. CDN recommendations
68
+ const cdnOptimization = analyzeCdnOpportunity(input, currentCost);
69
+ if (cdnOptimization) {
70
+ recommendations.push(cdnOptimization);
71
+ optimizedCost -= cdnOptimization.estimatedSavings;
72
+ }
73
+ // Sort recommendations by priority and savings
74
+ recommendations.sort((a, b) => {
75
+ const priorityOrder = { high: 3, medium: 2, low: 1 };
76
+ const priorityDiff = priorityOrder[b.priority] - priorityOrder[a.priority];
77
+ if (priorityDiff !== 0)
78
+ return priorityDiff;
79
+ return b.estimatedSavings - a.estimatedSavings;
80
+ });
81
+ return {
82
+ currentCost,
83
+ optimizedCost: Math.max(0, optimizedCost),
84
+ potentialSavings: currentCost - Math.max(0, optimizedCost),
85
+ recommendations,
86
+ };
87
+ }
88
+ /**
89
+ * Analyze memory right-sizing opportunities
90
+ */
91
+ function analyzeMemoryOptimization(platform, input, currentCost) {
92
+ // Test different memory configurations
93
+ const memoryOptions = [128, 256, 512, 1024, 2048];
94
+ const currentMemory = input.memoryMb;
95
+ // Only recommend if current memory is not already minimal
96
+ if (currentMemory <= 128) {
97
+ return null;
98
+ }
99
+ // Find optimal memory (assuming execution time might improve with more memory)
100
+ let bestMemory = currentMemory;
101
+ let bestCost = currentCost;
102
+ for (const memory of memoryOptions) {
103
+ if (memory >= currentMemory)
104
+ continue; // Only test smaller sizes
105
+ const testInput = { ...input, memoryMb: memory };
106
+ const estimation = estimateCost(platform, testInput);
107
+ if (estimation.monthlyEstimate < bestCost) {
108
+ bestCost = estimation.monthlyEstimate;
109
+ bestMemory = memory;
110
+ }
111
+ }
112
+ if (bestMemory < currentMemory) {
113
+ const savings = currentCost - bestCost;
114
+ const savingsPercent = ((savings / currentCost) * 100).toFixed(1);
115
+ return {
116
+ type: 'memory',
117
+ description: `Reduce memory from ${currentMemory}MB to ${bestMemory}MB. This could save ${savingsPercent}% on compute costs. Test thoroughly to ensure performance is acceptable.`,
118
+ estimatedSavings: savings,
119
+ implementationComplexity: 'low',
120
+ priority: savings > currentCost * 0.2 ? 'high' : 'medium',
121
+ };
122
+ }
123
+ return null;
124
+ }
125
+ /**
126
+ * Analyze caching opportunities
127
+ */
128
+ function analyzeCachingOpportunity(input, currentCost) {
129
+ // High request rate with potential for repetitive queries
130
+ const requestsPerSecond = input.requestsPerMonth / (30 * 24 * 60 * 60);
131
+ if (requestsPerSecond > 10) {
132
+ // Assume 30-50% of requests could be cached
133
+ const cacheHitRate = 0.4;
134
+ const estimatedSavings = currentCost * cacheHitRate * 0.9; // 90% reduction for cached requests
135
+ return {
136
+ type: 'caching',
137
+ description: `Implement caching (Redis, CloudFront, or API Gateway caching) to reduce function invocations. With ~${requestsPerSecond.toFixed(1)} requests/second, caching could eliminate 30-50% of function calls.`,
138
+ estimatedSavings,
139
+ implementationComplexity: 'medium',
140
+ priority: estimatedSavings > currentCost * 0.2 ? 'high' : 'medium',
141
+ };
142
+ }
143
+ return null;
144
+ }
145
+ /**
146
+ * Analyze batching opportunities
147
+ */
148
+ function analyzeBatchingOpportunity(input, currentCost) {
149
+ // Many small invocations that could be batched
150
+ if (input.requestsPerMonth > 1000000 && input.avgExecutionTimeMs < 100) {
151
+ // Batching could reduce invocations by 80%
152
+ const estimatedSavings = currentCost * 0.5; // Conservative 50% savings
153
+ return {
154
+ type: 'batching',
155
+ description: `Batch multiple operations together to reduce invocation count. With ${(input.requestsPerMonth / 1000000).toFixed(1)}M short invocations, batching could significantly reduce request costs.`,
156
+ estimatedSavings,
157
+ implementationComplexity: 'high',
158
+ priority: estimatedSavings > currentCost * 0.3 ? 'high' : 'medium',
159
+ };
160
+ }
161
+ return null;
162
+ }
163
+ /**
164
+ * Analyze reserved capacity opportunities
165
+ */
166
+ function analyzeReservedCapacity(input, currentCost) {
167
+ // High consistent traffic (AWS Lambda offers provisioned concurrency)
168
+ const requestsPerSecond = input.requestsPerMonth / (30 * 24 * 60 * 60);
169
+ if (requestsPerSecond > 100 && currentCost > 500) {
170
+ // Reserved capacity typically saves 20-40%
171
+ const estimatedSavings = currentCost * 0.3;
172
+ return {
173
+ type: 'reserved-capacity',
174
+ description: `Consider provisioned concurrency (AWS Lambda) or reserved capacity. With high consistent traffic (~${requestsPerSecond.toFixed(0)} req/s), reserved capacity could save 20-40% and eliminate cold starts.`,
175
+ estimatedSavings,
176
+ implementationComplexity: 'low',
177
+ priority: 'high',
178
+ };
179
+ }
180
+ return null;
181
+ }
182
+ /**
183
+ * Analyze compression opportunities
184
+ */
185
+ function analyzeCompression(input, currentCost) {
186
+ // High data transfer
187
+ if (input.dataTransferGb > 100) {
188
+ // Compression can reduce transfer by 60-80%
189
+ const compressionRatio = 0.7;
190
+ const dataTransferCostRatio = 0.2; // Assume ~20% of total cost is data transfer
191
+ const estimatedSavings = currentCost * dataTransferCostRatio * compressionRatio;
192
+ return {
193
+ type: 'compression',
194
+ description: `Enable response compression (gzip/brotli) to reduce data transfer costs. With ${input.dataTransferGb.toFixed(0)}GB/month, compression could reduce transfer by 60-80%.`,
195
+ estimatedSavings,
196
+ implementationComplexity: 'low',
197
+ priority: estimatedSavings > 50 ? 'high' : 'medium',
198
+ };
199
+ }
200
+ return null;
201
+ }
202
+ /**
203
+ * Analyze CDN opportunities
204
+ */
205
+ function analyzeCdnOpportunity(input, currentCost) {
206
+ // High read traffic that could benefit from edge caching
207
+ if (input.requestsPerMonth > 10000000 && input.dataTransferGb > 50) {
208
+ // CDN can reduce origin requests by 70-90%
209
+ const cdnCacheRate = 0.8;
210
+ const estimatedSavings = currentCost * cdnCacheRate * 0.6;
211
+ return {
212
+ type: 'cdn',
213
+ description: `Use a CDN (CloudFront, Cloudflare, Fastly) to cache static content and reduce origin requests. With ${(input.requestsPerMonth / 1000000).toFixed(1)}M requests, a CDN could cache 70-90% of traffic.`,
214
+ estimatedSavings,
215
+ implementationComplexity: 'medium',
216
+ priority: estimatedSavings > currentCost * 0.4 ? 'high' : 'medium',
217
+ };
218
+ }
219
+ return null;
220
+ }
221
+ //# sourceMappingURL=cost-optimizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cost-optimizer.js","sourceRoot":"","sources":["../../../../src/core/serverless/cost-optimizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAkCnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA4B,EAC5B,KAA0B;IAE1B,MAAM,iBAAiB,GAAG,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,iBAAiB,CAAC,eAAe,CAAC;IAEtD,MAAM,eAAe,GAAiC,EAAE,CAAC;IACzD,IAAI,aAAa,GAAG,WAAW,CAAC;IAEhC,yBAAyB;IACzB,MAAM,kBAAkB,GAAG,yBAAyB,CAAC,QAAQ,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;IACnF,IAAI,kBAAkB,EAAE,CAAC;QACvB,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACzC,aAAa,IAAI,kBAAkB,CAAC,gBAAgB,CAAC;IACvD,CAAC;IAED,6BAA6B;IAC7B,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC1E,IAAI,mBAAmB,EAAE,CAAC;QACxB,eAAe,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1C,aAAa,IAAI,mBAAmB,CAAC,gBAAgB,CAAC;IACxD,CAAC;IAED,8BAA8B;IAC9B,MAAM,oBAAoB,GAAG,0BAA0B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC5E,IAAI,oBAAoB,EAAE,CAAC;QACzB,eAAe,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC3C,aAAa,IAAI,oBAAoB,CAAC,gBAAgB,CAAC;IACzD,CAAC;IAED,uBAAuB;IACvB,MAAM,4BAA4B,GAAG,uBAAuB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACjF,IAAI,4BAA4B,EAAE,CAAC;QACjC,eAAe,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QACnD,aAAa,IAAI,4BAA4B,CAAC,gBAAgB,CAAC;IACjE,CAAC;IAED,iBAAiB;IACjB,MAAM,uBAAuB,GAAG,kBAAkB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IACvE,IAAI,uBAAuB,EAAE,CAAC;QAC5B,eAAe,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC9C,aAAa,IAAI,uBAAuB,CAAC,gBAAgB,CAAC;IAC5D,CAAC;IAED,yBAAyB;IACzB,MAAM,eAAe,GAAG,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,IAAI,eAAe,EAAE,CAAC;QACpB,eAAe,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtC,aAAa,IAAI,eAAe,CAAC,gBAAgB,CAAC;IACpD,CAAC;IAED,+CAA+C;IAC/C,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC5B,MAAM,aAAa,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC3E,IAAI,YAAY,KAAK,CAAC;YAAE,OAAO,YAAY,CAAC;QAC5C,OAAO,CAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,WAAW;QACX,aAAa,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;QACzC,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC;QAC1D,eAAe;KAChB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,QAA4B,EAC5B,KAA0B,EAC1B,WAAmB;IAEnB,uCAAuC;IACvC,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC;IAErC,0DAA0D;IAC1D,IAAI,aAAa,IAAI,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,+EAA+E;IAC/E,IAAI,UAAU,GAAG,aAAa,CAAC;IAC/B,IAAI,QAAQ,GAAG,WAAW,CAAC;IAE3B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,MAAM,IAAI,aAAa;YAAE,SAAS,CAAC,0BAA0B;QAEjE,MAAM,SAAS,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;QACjD,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAErD,IAAI,UAAU,CAAC,eAAe,GAAG,QAAQ,EAAE,CAAC;YAC1C,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC;YACtC,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC;QACvC,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAElE,OAAO;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,sBAAsB,aAAa,SAAS,UAAU,uBAAuB,cAAc,0EAA0E;YAClL,gBAAgB,EAAE,OAAO;YACzB,wBAAwB,EAAE,KAAK;YAC/B,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SAC1D,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,yBAAyB,CAChC,KAA0B,EAC1B,WAAmB;IAEnB,0DAA0D;IAC1D,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEvE,IAAI,iBAAiB,GAAG,EAAE,EAAE,CAAC;QAC3B,4CAA4C;QAC5C,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,CAAC,CAAC,oCAAoC;QAE/F,OAAO;YACL,IAAI,EAAE,SAAS;YACf,WAAW,EAAE,uGAAuG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,qEAAqE;YACrN,gBAAgB;YAChB,wBAAwB,EAAE,QAAQ;YAClC,QAAQ,EAAE,gBAAgB,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SACnE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,0BAA0B,CACjC,KAA0B,EAC1B,WAAmB;IAEnB,+CAA+C;IAC/C,IAAI,KAAK,CAAC,gBAAgB,GAAG,OAAS,IAAI,KAAK,CAAC,kBAAkB,GAAG,GAAG,EAAE,CAAC;QACzE,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,2BAA2B;QAEvE,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,WAAW,EAAE,uEAAuE,CAAC,KAAK,CAAC,gBAAgB,GAAG,OAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,yEAAyE;YAC5M,gBAAgB;YAChB,wBAAwB,EAAE,MAAM;YAChC,QAAQ,EAAE,gBAAgB,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SACnE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAC9B,KAA0B,EAC1B,WAAmB;IAEnB,sEAAsE;IACtE,MAAM,iBAAiB,GAAG,KAAK,CAAC,gBAAgB,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAEvE,IAAI,iBAAiB,GAAG,GAAG,IAAI,WAAW,GAAG,GAAG,EAAE,CAAC;QACjD,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,WAAW,GAAG,GAAG,CAAC;QAE3C,OAAO;YACL,IAAI,EAAE,mBAAmB;YACzB,WAAW,EAAE,sGAAsG,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,yEAAyE;YACxN,gBAAgB;YAChB,wBAAwB,EAAE,KAAK;YAC/B,QAAQ,EAAE,MAAM;SACjB,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,KAA0B,EAC1B,WAAmB;IAEnB,qBAAqB;IACrB,IAAI,KAAK,CAAC,cAAc,GAAG,GAAG,EAAE,CAAC;QAC/B,4CAA4C;QAC5C,MAAM,gBAAgB,GAAG,GAAG,CAAC;QAC7B,MAAM,qBAAqB,GAAG,GAAG,CAAC,CAAC,6CAA6C;QAChF,MAAM,gBAAgB,GAAG,WAAW,GAAG,qBAAqB,GAAG,gBAAgB,CAAC;QAEhF,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,iFAAiF,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,wDAAwD;YACrL,gBAAgB;YAChB,wBAAwB,EAAE,KAAK;YAC/B,QAAQ,EAAE,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SACpD,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAC5B,KAA0B,EAC1B,WAAmB;IAEnB,yDAAyD;IACzD,IAAI,KAAK,CAAC,gBAAgB,GAAG,QAAU,IAAI,KAAK,CAAC,cAAc,GAAG,EAAE,EAAE,CAAC;QACrE,2CAA2C;QAC3C,MAAM,YAAY,GAAG,GAAG,CAAC;QACzB,MAAM,gBAAgB,GAAG,WAAW,GAAG,YAAY,GAAG,GAAG,CAAC;QAE1D,OAAO;YACL,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,uGAAuG,CAAC,KAAK,CAAC,gBAAgB,GAAG,OAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,kDAAkD;YACrN,gBAAgB;YAChB,wBAAwB,EAAE,QAAQ;YAClC,QAAQ,EAAE,gBAAgB,GAAG,WAAW,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;SACnE,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Serverless Architecture Intelligence - Barrel Exports
3
+ *
4
+ * This module provides comprehensive serverless platform intelligence including:
5
+ * - Context detection (pet-project, startup, enterprise)
6
+ * - Workload suitability analysis
7
+ * - Platform selection and ranking
8
+ * - Cost estimation and optimization
9
+ * - Learning path recommendations
10
+ */
11
+ export * from './types.js';
12
+ export * from './platform-data-loader.js';
13
+ export * from './context-detector.js';
14
+ export * from './suitability-analyzer.js';
15
+ export * from './platform-selector.js';
16
+ export * from './cost-estimator.js';
17
+ export * from './cost-optimizer.js';
18
+ export * from './cost-comparison.js';
19
+ export * from './learning-path-recommender.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/serverless/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,2BAA2B,CAAC;AAG1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAG1C,cAAc,wBAAwB,CAAC;AAGvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Serverless Architecture Intelligence - Barrel Exports
3
+ *
4
+ * This module provides comprehensive serverless platform intelligence including:
5
+ * - Context detection (pet-project, startup, enterprise)
6
+ * - Workload suitability analysis
7
+ * - Platform selection and ranking
8
+ * - Cost estimation and optimization
9
+ * - Learning path recommendations
10
+ */
11
+ // Core types and interfaces
12
+ export * from './types.js';
13
+ // Platform data and loading
14
+ export * from './platform-data-loader.js';
15
+ // Context and suitability analysis
16
+ export * from './context-detector.js';
17
+ export * from './suitability-analyzer.js';
18
+ // Platform selection
19
+ export * from './platform-selector.js';
20
+ // Cost analysis modules
21
+ export * from './cost-estimator.js';
22
+ export * from './cost-optimizer.js';
23
+ export * from './cost-comparison.js';
24
+ // Learning and education
25
+ export * from './learning-path-recommender.js';
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/serverless/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,4BAA4B;AAC5B,cAAc,YAAY,CAAC;AAE3B,4BAA4B;AAC5B,cAAc,2BAA2B,CAAC;AAE1C,mCAAmC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAE1C,qBAAqB;AACrB,cAAc,wBAAwB,CAAC;AAEvC,wBAAwB;AACxB,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AAErC,yBAAyB;AACzB,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * Learning Path Recommender for Serverless Platforms
3
+ *
4
+ * Recommends curated learning resources based on skill level, platform,
5
+ * and best practices for serverless development.
6
+ */
7
+ /**
8
+ * User skill levels for serverless development
9
+ */
10
+ export type SkillLevel = 'beginner' | 'intermediate' | 'advanced';
11
+ /**
12
+ * Learning resource types
13
+ */
14
+ export type ResourceType = 'tutorial' | 'documentation' | 'video' | 'course' | 'sample-project' | 'blog-post' | 'webinar';
15
+ /**
16
+ * Complexity rating for sample projects
17
+ */
18
+ export type ProjectComplexity = 'basic' | 'intermediate' | 'advanced';
19
+ /**
20
+ * Best practice categories
21
+ */
22
+ export type BestPracticeCategory = 'performance' | 'security' | 'cost' | 'architecture' | 'monitoring' | 'testing';
23
+ /**
24
+ * Severity level for common pitfalls
25
+ */
26
+ export type PitfallSeverity = 'critical' | 'high' | 'medium' | 'low';
27
+ /**
28
+ * A single learning resource (tutorial, course, video, etc.)
29
+ */
30
+ export interface LearningResource {
31
+ id: string;
32
+ title: string;
33
+ url: string;
34
+ type: ResourceType;
35
+ skillLevel: SkillLevel;
36
+ estimatedTime?: string;
37
+ provider?: string;
38
+ description?: string;
39
+ tags?: string[];
40
+ prerequisite?: string;
41
+ lastVerified?: string;
42
+ }
43
+ /**
44
+ * A best practice guide for a specific category
45
+ */
46
+ export interface BestPractice {
47
+ id: string;
48
+ category: BestPracticeCategory;
49
+ title: string;
50
+ description: string;
51
+ priority: 'high' | 'medium' | 'low';
52
+ example?: string;
53
+ relatedResources?: string[];
54
+ }
55
+ /**
56
+ * A common pitfall with mitigation strategy
57
+ */
58
+ export interface CommonPitfall {
59
+ id: string;
60
+ title: string;
61
+ description: string;
62
+ mitigation: string;
63
+ severity: PitfallSeverity;
64
+ example?: string;
65
+ affectedSkillLevels?: SkillLevel[];
66
+ }
67
+ /**
68
+ * A sample project with complexity rating
69
+ */
70
+ export interface SampleProject extends LearningResource {
71
+ complexity: ProjectComplexity;
72
+ estimatedDuration?: string;
73
+ technologies?: string[];
74
+ sourceRepo?: string;
75
+ }
76
+ /**
77
+ * Data freshness information
78
+ */
79
+ export interface DataFreshness {
80
+ lastVerified: string;
81
+ isStale: boolean;
82
+ staleDays: number;
83
+ maxStaleDays: number;
84
+ }
85
+ /**
86
+ * Complete learning path recommendation result
87
+ */
88
+ export interface LearningPathResult {
89
+ platform: string;
90
+ platformId: string;
91
+ skillLevel: SkillLevel;
92
+ tutorials: LearningResource[];
93
+ documentation: LearningResource[];
94
+ videos: LearningResource[];
95
+ courses: LearningResource[];
96
+ sampleProjects: SampleProject[];
97
+ bestPractices: BestPractice[];
98
+ commonPitfalls: CommonPitfall[];
99
+ dataFreshness: DataFreshness;
100
+ nextSteps: string[];
101
+ estimatedLearningTime?: string;
102
+ }
103
+ /**
104
+ * Skill detection result with confidence
105
+ */
106
+ export interface SkillDetectionResult {
107
+ skillLevel: SkillLevel;
108
+ confidence: 'low' | 'medium' | 'high';
109
+ signals: string[];
110
+ justification: string;
111
+ }
112
+ /**
113
+ * Detect user skill level from natural language input
114
+ *
115
+ * Analyzes keywords and patterns to determine if user is beginner/intermediate/advanced
116
+ * @param userInput - User's description of their experience
117
+ * @returns SkillDetectionResult with detected level and confidence
118
+ */
119
+ export declare function detectSkillLevel(userInput: string): SkillDetectionResult;
120
+ /**
121
+ * Recommend learning path for a specific platform and skill level
122
+ *
123
+ * @param platformId - ID of the serverless platform
124
+ * @param skillLevel - Optional skill level (will default to 'beginner' if not provided)
125
+ * @returns Complete learning path recommendation
126
+ */
127
+ export declare function recommendLearningPath(platformId: string, skillLevel?: SkillLevel): LearningPathResult;
128
+ /**
129
+ * Get all available platform IDs
130
+ */
131
+ export declare function getAvailablePlatforms(): string[];
132
+ /**
133
+ * Get platforms with fresh data (not stale)
134
+ */
135
+ export declare function getFreshPlatforms(maxStaleDays?: number): string[];
136
+ /**
137
+ * Get stale platforms (data not verified within max days)
138
+ */
139
+ export declare function getStalePlatforms(maxStaleDays?: number): string[];
140
+ /**
141
+ * Get learning resources for a specific category and platform
142
+ */
143
+ export declare function getResourcesByType(platformId: string, resourceType: ResourceType, skillLevel?: SkillLevel): LearningResource[];
144
+ /**
145
+ * Validate learning path data integrity
146
+ */
147
+ export declare function validateLearningPathData(): {
148
+ isValid: boolean;
149
+ errors: string[];
150
+ warnings: string[];
151
+ };
152
+ //# sourceMappingURL=learning-path-recommender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-path-recommender.d.ts","sourceRoot":"","sources":["../../../../src/core/serverless/learning-path-recommender.ts"],"names":[],"mappings":"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"}