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,125 @@
1
+ /**
2
+ * Market Research Report Generator
3
+ *
4
+ * Generates markdown reports summarizing vision analysis results.
5
+ */
6
+ import fs from 'fs/promises';
7
+ import path from 'path';
8
+ /**
9
+ * ReportGenerator - Generates market research reports
10
+ *
11
+ * **Usage**:
12
+ * ```typescript
13
+ * await ReportGenerator.generate(insights);
14
+ * // Creates .specweave/reports/market-research.md
15
+ * ```
16
+ */
17
+ export class ReportGenerator {
18
+ /**
19
+ * Generate market research report
20
+ *
21
+ * @param insights - Vision insights to include in report
22
+ * @param reportPath - Optional custom report path
23
+ */
24
+ static async generate(insights, reportPath = ReportGenerator.REPORT_PATH) {
25
+ const markdown = ReportGenerator.createMarkdown(insights);
26
+ // Ensure reports directory exists
27
+ const dir = path.dirname(reportPath);
28
+ await fs.mkdir(dir, { recursive: true });
29
+ // Write report
30
+ await fs.writeFile(reportPath, markdown, 'utf-8');
31
+ }
32
+ /**
33
+ * Create markdown content from insights
34
+ *
35
+ * @param insights - Vision insights
36
+ * @returns Markdown string
37
+ */
38
+ static createMarkdown(insights) {
39
+ const timestamp = new Date().toISOString();
40
+ const date = new Date().toLocaleDateString('en-US', {
41
+ year: 'numeric',
42
+ month: 'long',
43
+ day: 'numeric'
44
+ });
45
+ const sections = [];
46
+ // Header
47
+ sections.push('# Market Research Report');
48
+ sections.push('');
49
+ sections.push(`**Generated**: ${date}`);
50
+ sections.push(`**Timestamp**: ${timestamp}`);
51
+ sections.push('');
52
+ sections.push('---');
53
+ sections.push('');
54
+ // Vision
55
+ sections.push('## Product Vision');
56
+ sections.push('');
57
+ sections.push(insights.rawVision);
58
+ sections.push('');
59
+ // Keywords
60
+ sections.push('## Keywords & Domain Focus');
61
+ sections.push('');
62
+ sections.push('**Extracted Keywords**:');
63
+ sections.push('');
64
+ insights.keywords.forEach(keyword => {
65
+ sections.push(`- ${keyword}`);
66
+ });
67
+ sections.push('');
68
+ // Market Category
69
+ sections.push('## Market Classification');
70
+ sections.push('');
71
+ sections.push(`**Category**: ${insights.market}`);
72
+ sections.push(`**Confidence**: ${(insights.confidence * 100).toFixed(0)}%`);
73
+ sections.push('');
74
+ // Opportunity Score
75
+ sections.push('## Opportunity Analysis');
76
+ sections.push('');
77
+ sections.push(`**Opportunity Score**: ${insights.opportunityScore}/10`);
78
+ sections.push(`**Viral Potential**: ${insights.viralPotential ? 'Yes' : 'No'}`);
79
+ sections.push('');
80
+ // Competitors
81
+ if (insights.competitors.length > 0) {
82
+ sections.push('## Competitive Landscape');
83
+ sections.push('');
84
+ sections.push('**Similar Products**:');
85
+ sections.push('');
86
+ sections.push('| Product | URL | Similarity | Strengths | Weaknesses |');
87
+ sections.push('|---------|-----|------------|-----------|------------|');
88
+ insights.competitors.forEach(comp => {
89
+ const similarity = 'N/A'; // Similarity scoring not yet implemented
90
+ const strengths = comp.strengths.join(', ') || 'N/A';
91
+ const weaknesses = comp.weaknesses.join(', ') || 'N/A';
92
+ sections.push(`| ${comp.name} | ${comp.url || 'N/A'} | ${similarity} | ${strengths} | ${weaknesses} |`);
93
+ });
94
+ sections.push('');
95
+ }
96
+ else {
97
+ sections.push('## Competitive Landscape');
98
+ sections.push('');
99
+ sections.push('No similar products identified.');
100
+ sections.push('');
101
+ }
102
+ // Follow-up Questions
103
+ if (insights.followUpQuestions.length > 0) {
104
+ sections.push('## Recommended Next Steps');
105
+ sections.push('');
106
+ sections.push('To refine your product strategy, consider these questions:');
107
+ sections.push('');
108
+ insights.followUpQuestions.forEach((q, idx) => {
109
+ sections.push(`${idx + 1}. **${q.question}**`);
110
+ sections.push('');
111
+ });
112
+ }
113
+ // Footer
114
+ sections.push('---');
115
+ sections.push('');
116
+ sections.push('*This report was generated by SpecWeave Strategic Init*');
117
+ sections.push('');
118
+ return sections.join('\n');
119
+ }
120
+ }
121
+ /**
122
+ * Default report path
123
+ */
124
+ ReportGenerator.REPORT_PATH = '.specweave/reports/market-research.md';
125
+ //# sourceMappingURL=ReportGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReportGenerator.js","sourceRoot":"","sources":["../../../../src/init/research/ReportGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Vision & Market Research Analyzer
3
+ *
4
+ * Analyzes product vision descriptions using AI to extract:
5
+ * - Keywords and domain focus
6
+ * - Market category classification
7
+ * - Competitor analysis
8
+ * - Opportunity scoring
9
+ * - Viral potential detection
10
+ * - Adaptive follow-up questions
11
+ *
12
+ * This is the foundation of SpecWeave's research-driven init flow.
13
+ */
14
+ import { VisionInsights } from './types.js';
15
+ /**
16
+ * Configuration for VisionAnalyzer
17
+ */
18
+ export interface VisionAnalyzerConfig {
19
+ /** Cache duration for analysis results (in milliseconds) */
20
+ cacheDuration?: number;
21
+ /** Maximum number of competitors to return */
22
+ maxCompetitors?: number;
23
+ /** Maximum number of follow-up questions */
24
+ maxFollowUpQuestions?: number;
25
+ /** Minimum keyword score threshold */
26
+ minKeywordScore?: number;
27
+ }
28
+ /**
29
+ * VisionAnalyzer - Main class for vision analysis
30
+ *
31
+ * **Usage**:
32
+ * ```typescript
33
+ * const analyzer = new VisionAnalyzer();
34
+ * const insights = await analyzer.analyze('A Figma-like design tool for remote teams');
35
+ * console.log(insights.market); // 'productivity-saas'
36
+ * console.log(insights.keywords); // ['design', 'collaboration', 'remote teams']
37
+ * console.log(insights.viralPotential); // true
38
+ * ```
39
+ */
40
+ export declare class VisionAnalyzer {
41
+ private config;
42
+ private cache;
43
+ /**
44
+ * Create a new VisionAnalyzer
45
+ *
46
+ * @param config - Optional configuration
47
+ */
48
+ constructor(config?: VisionAnalyzerConfig);
49
+ /**
50
+ * Analyze product vision and return insights
51
+ *
52
+ * This is the primary method that orchestrates the entire analysis:
53
+ * 1. Check cache
54
+ * 2. Extract keywords (LLM or rules)
55
+ * 3. Detect market category (LLM or rules)
56
+ * 4. Identify competitors (LLM or empty)
57
+ * 5. Calculate opportunity score
58
+ * 6. Detect viral potential
59
+ * 7. Generate follow-up questions
60
+ * 8. Validate and return results
61
+ *
62
+ * @param vision - User's product vision (1-3 sentences)
63
+ * @returns VisionInsights with validated data
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const insights = await analyzer.analyze(
68
+ * 'A project management tool for agile teams with real-time collaboration'
69
+ * );
70
+ * ```
71
+ */
72
+ analyze(vision: string): Promise<VisionInsights>;
73
+ /**
74
+ * Perform the actual analysis
75
+ *
76
+ * Implementation status:
77
+ * - ✅ T-002: Keyword extraction (pattern-based)
78
+ * - ✅ T-003: Market detection (rule-based classification)
79
+ * - ✅ T-004: Competitor analysis (keyword similarity)
80
+ * - ✅ T-005: Opportunity scoring (algorithmic)
81
+ * - ✅ T-006: Follow-up questions (adaptive)
82
+ *
83
+ * @param vision - Trimmed vision text
84
+ * @returns VisionInsights
85
+ */
86
+ private performAnalysis;
87
+ /**
88
+ * Get cached insights if available and not expired
89
+ *
90
+ * @param vision - Vision text (cache key)
91
+ * @returns Cached insights or undefined
92
+ */
93
+ private getCached;
94
+ /**
95
+ * Store insights in cache
96
+ *
97
+ * @param vision - Vision text (cache key)
98
+ * @param insights - Insights to cache
99
+ */
100
+ private setCached;
101
+ /**
102
+ * Clear cache (useful for testing)
103
+ */
104
+ clearCache(): void;
105
+ /**
106
+ * Get current configuration
107
+ */
108
+ getConfig(): Readonly<Required<VisionAnalyzerConfig>>;
109
+ /**
110
+ * Update configuration
111
+ *
112
+ * @param config - Partial config to merge
113
+ */
114
+ updateConfig(config: Partial<VisionAnalyzerConfig>): void;
115
+ /**
116
+ * Save vision insights to .specweave/config.json
117
+ *
118
+ * @param insights - Vision insights to save
119
+ * @param configPath - Optional custom config path
120
+ *
121
+ * @example
122
+ * ```typescript
123
+ * const insights = await analyzer.analyze(vision);
124
+ * await VisionAnalyzer.saveToConfig(insights);
125
+ * ```
126
+ */
127
+ static saveToConfig(insights: VisionInsights, configPath?: string): Promise<void>;
128
+ }
129
+ //# sourceMappingURL=VisionAnalyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisionAnalyzer.d.ts","sourceRoot":"","sources":["../../../../src/init/research/VisionAnalyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,cAAc,EAAwC,MAAM,YAAY,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B,sCAAsC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAYD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,KAAK,CAA+D;IAE5E;;;;OAIG;gBACS,MAAM,GAAE,oBAAyB;IAK7C;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IA2BtD;;;;;;;;;;;;OAYG;YACW,eAAe;IA2D7B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAmBjB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAOjB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAIrD;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI;IAIzD;;;;;;;;;;;OAWG;WACU,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAIxF"}
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Vision & Market Research Analyzer
3
+ *
4
+ * Analyzes product vision descriptions using AI to extract:
5
+ * - Keywords and domain focus
6
+ * - Market category classification
7
+ * - Competitor analysis
8
+ * - Opportunity scoring
9
+ * - Viral potential detection
10
+ * - Adaptive follow-up questions
11
+ *
12
+ * This is the foundation of SpecWeave's research-driven init flow.
13
+ */
14
+ import { VisionInsightsSchema } from './types.js';
15
+ import { extractKeywords } from './keyword-extractor.js';
16
+ /**
17
+ * Default configuration
18
+ */
19
+ const DEFAULT_CONFIG = {
20
+ cacheDuration: 24 * 60 * 60 * 1000, // 24 hours
21
+ maxCompetitors: 5,
22
+ maxFollowUpQuestions: 3,
23
+ minKeywordScore: 0.5
24
+ };
25
+ /**
26
+ * VisionAnalyzer - Main class for vision analysis
27
+ *
28
+ * **Usage**:
29
+ * ```typescript
30
+ * const analyzer = new VisionAnalyzer();
31
+ * const insights = await analyzer.analyze('A Figma-like design tool for remote teams');
32
+ * console.log(insights.market); // 'productivity-saas'
33
+ * console.log(insights.keywords); // ['design', 'collaboration', 'remote teams']
34
+ * console.log(insights.viralPotential); // true
35
+ * ```
36
+ */
37
+ export class VisionAnalyzer {
38
+ /**
39
+ * Create a new VisionAnalyzer
40
+ *
41
+ * @param config - Optional configuration
42
+ */
43
+ constructor(config = {}) {
44
+ this.config = { ...DEFAULT_CONFIG, ...config };
45
+ this.cache = new Map();
46
+ }
47
+ /**
48
+ * Analyze product vision and return insights
49
+ *
50
+ * This is the primary method that orchestrates the entire analysis:
51
+ * 1. Check cache
52
+ * 2. Extract keywords (LLM or rules)
53
+ * 3. Detect market category (LLM or rules)
54
+ * 4. Identify competitors (LLM or empty)
55
+ * 5. Calculate opportunity score
56
+ * 6. Detect viral potential
57
+ * 7. Generate follow-up questions
58
+ * 8. Validate and return results
59
+ *
60
+ * @param vision - User's product vision (1-3 sentences)
61
+ * @returns VisionInsights with validated data
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * const insights = await analyzer.analyze(
66
+ * 'A project management tool for agile teams with real-time collaboration'
67
+ * );
68
+ * ```
69
+ */
70
+ async analyze(vision) {
71
+ // Validate input
72
+ if (!vision || vision.trim().length === 0) {
73
+ throw new Error('Vision description cannot be empty');
74
+ }
75
+ const trimmedVision = vision.trim();
76
+ // Check cache
77
+ const cached = this.getCached(trimmedVision);
78
+ if (cached) {
79
+ return cached;
80
+ }
81
+ // Perform analysis (stub implementation for now)
82
+ // This will be implemented in subsequent tasks
83
+ const insights = await this.performAnalysis(trimmedVision);
84
+ // Validate results
85
+ const validated = VisionInsightsSchema.parse(insights);
86
+ // Cache results
87
+ this.setCached(trimmedVision, validated);
88
+ return validated;
89
+ }
90
+ /**
91
+ * Perform the actual analysis
92
+ *
93
+ * Implementation status:
94
+ * - ✅ T-002: Keyword extraction (pattern-based)
95
+ * - ✅ T-003: Market detection (rule-based classification)
96
+ * - ✅ T-004: Competitor analysis (keyword similarity)
97
+ * - ✅ T-005: Opportunity scoring (algorithmic)
98
+ * - ✅ T-006: Follow-up questions (adaptive)
99
+ *
100
+ * @param vision - Trimmed vision text
101
+ * @returns VisionInsights
102
+ */
103
+ async performAnalysis(vision) {
104
+ // Import needed modules
105
+ const { detectMarketCategory } = await import('./MarketDetector.js');
106
+ const { analyzeCompetitors } = await import('./CompetitorAnalyzer.js');
107
+ const { calculateOpportunityScore, estimateInnovationFactor } = await import('./OpportunityScorer.js');
108
+ const { generateFollowUpQuestions } = await import('./QuestionGenerator.js');
109
+ // ✅ T-002: Extract keywords using pattern matching
110
+ const keywords = extractKeywords(vision);
111
+ // ✅ T-003: Detect market category using rule-based classification
112
+ const marketClassification = detectMarketCategory(vision);
113
+ const market = marketClassification.category;
114
+ const confidence = marketClassification.confidence;
115
+ // ✅ T-004: Analyze competitors using keyword similarity
116
+ const competitors = analyzeCompetitors(keywords, this.config.maxCompetitors);
117
+ // ✅ T-005: Calculate opportunity score
118
+ const innovation = estimateInnovationFactor(keywords, competitors.length);
119
+ // Detect viral potential (simple heuristic)
120
+ const viralKeywords = ['viral', 'social', 'share', 'network', 'community', 'collaboration', 'real-time'];
121
+ const viralPotential = keywords.some(k => viralKeywords.some(vk => k.toLowerCase().includes(vk)));
122
+ const opportunityResult = calculateOpportunityScore(market, competitors.length, viralPotential, innovation);
123
+ // ✅ T-006: Generate adaptive follow-up questions
124
+ const followUpQuestions = generateFollowUpQuestions({
125
+ marketCategory: market,
126
+ viralPotential,
127
+ opportunityScore: opportunityResult.score,
128
+ keywords,
129
+ competitorCount: competitors.length
130
+ }, this.config.maxFollowUpQuestions);
131
+ const insights = {
132
+ keywords,
133
+ market,
134
+ competitors,
135
+ opportunityScore: opportunityResult.score,
136
+ viralPotential,
137
+ followUpQuestions,
138
+ confidence,
139
+ rawVision: vision
140
+ };
141
+ return insights;
142
+ }
143
+ /**
144
+ * Get cached insights if available and not expired
145
+ *
146
+ * @param vision - Vision text (cache key)
147
+ * @returns Cached insights or undefined
148
+ */
149
+ getCached(vision) {
150
+ const cached = this.cache.get(vision);
151
+ if (!cached) {
152
+ return undefined;
153
+ }
154
+ const now = Date.now();
155
+ const age = now - cached.timestamp;
156
+ if (age > this.config.cacheDuration) {
157
+ // Expired, remove from cache
158
+ this.cache.delete(vision);
159
+ return undefined;
160
+ }
161
+ return cached.insights;
162
+ }
163
+ /**
164
+ * Store insights in cache
165
+ *
166
+ * @param vision - Vision text (cache key)
167
+ * @param insights - Insights to cache
168
+ */
169
+ setCached(vision, insights) {
170
+ this.cache.set(vision, {
171
+ insights,
172
+ timestamp: Date.now()
173
+ });
174
+ }
175
+ /**
176
+ * Clear cache (useful for testing)
177
+ */
178
+ clearCache() {
179
+ this.cache.clear();
180
+ }
181
+ /**
182
+ * Get current configuration
183
+ */
184
+ getConfig() {
185
+ return { ...this.config };
186
+ }
187
+ /**
188
+ * Update configuration
189
+ *
190
+ * @param config - Partial config to merge
191
+ */
192
+ updateConfig(config) {
193
+ this.config = { ...this.config, ...config };
194
+ }
195
+ /**
196
+ * Save vision insights to .specweave/config.json
197
+ *
198
+ * @param insights - Vision insights to save
199
+ * @param configPath - Optional custom config path
200
+ *
201
+ * @example
202
+ * ```typescript
203
+ * const insights = await analyzer.analyze(vision);
204
+ * await VisionAnalyzer.saveToConfig(insights);
205
+ * ```
206
+ */
207
+ static async saveToConfig(insights, configPath) {
208
+ const { ConfigManager } = await import('../../config/ConfigManager.js');
209
+ await ConfigManager.updateResearch({ vision: insights }, configPath);
210
+ }
211
+ }
212
+ //# sourceMappingURL=VisionAnalyzer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VisionAnalyzer.js","sourceRoot":"","sources":["../../../../src/init/research/VisionAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Keyword Extractor - Pattern-Based Intelligence
3
+ *
4
+ * Extracts domain-specific keywords from product vision using intelligent
5
+ * pattern matching. No external LLM API calls - all intelligence is encoded
6
+ * at spec-time using domain knowledge.
7
+ *
8
+ * **Approach**:
9
+ * 1. Define domain patterns (design, collaboration, productivity, etc.)
10
+ * 2. Match vision text against patterns
11
+ * 3. Score and rank keywords by relevance
12
+ * 4. Deduplicate and return top 5-10 keywords
13
+ *
14
+ * **Benefits**:
15
+ * - Zero external dependencies
16
+ * - Instant execution (no API latency)
17
+ * - 100% deterministic and testable
18
+ * - Works offline
19
+ */
20
+ /**
21
+ * Domain pattern definitions
22
+ *
23
+ * Each pattern maps to a domain category and contains:
24
+ * - Regex pattern for matching
25
+ * - Weight (importance multiplier)
26
+ * - Related keywords
27
+ */
28
+ export interface DomainPattern {
29
+ /** Domain category name */
30
+ domain: string;
31
+ /** Regex pattern for matching */
32
+ pattern: RegExp;
33
+ /** Weight multiplier (1.0 = normal, 2.0 = high priority) */
34
+ weight: number;
35
+ /** Related keywords for this domain */
36
+ keywords: string[];
37
+ }
38
+ /**
39
+ * Keyword match result
40
+ */
41
+ export interface KeywordMatch {
42
+ /** Matched keyword */
43
+ keyword: string;
44
+ /** Domain category */
45
+ domain: string;
46
+ /** Relevance score (higher = more relevant) */
47
+ score: number;
48
+ /** Number of times this keyword appeared */
49
+ frequency: number;
50
+ }
51
+ /**
52
+ * Domain patterns encoded with intelligence from spec generation time
53
+ *
54
+ * This is where the AI intelligence lives - as smart patterns designed
55
+ * by Claude during spec generation, not as runtime LLM calls!
56
+ */
57
+ export declare const DOMAIN_PATTERNS: DomainPattern[];
58
+ /**
59
+ * Extract keywords from vision text using pattern matching
60
+ *
61
+ * @param vision - Product vision text (1-3 sentences)
62
+ * @returns Array of 5-10 keywords sorted by relevance score
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const keywords = extractKeywords('A Figma-like design tool for remote teams');
67
+ * // Returns: ['design', 'collaboration', 'creative', 'team', 'visual', ...]
68
+ * ```
69
+ */
70
+ export declare function extractKeywords(vision: string): string[];
71
+ /**
72
+ * Get detailed keyword analysis (useful for debugging/testing)
73
+ *
74
+ * @param vision - Product vision text
75
+ * @returns Array of KeywordMatch objects with scores and domains
76
+ */
77
+ export declare function analyzeKeywords(vision: string): KeywordMatch[];
78
+ //# sourceMappingURL=keyword-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyword-extractor.d.ts","sourceRoot":"","sources":["../../../../src/init/research/keyword-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC;IAEf,iCAAiC;IACjC,OAAO,EAAE,MAAM,CAAC;IAEhB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IAEf,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IAEf,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IAEd,4CAA4C;IAC5C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,aAAa,EAwG1C,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAyExD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAwC9D"}