specforge-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +257 -0
  3. package/dist/config/advanced-testing-tools.json +210 -0
  4. package/dist/config/agent-capabilities-catalog.json +30 -0
  5. package/dist/config/agent-platforms.json +268 -0
  6. package/dist/config/agent-spec-catalog.json +273 -0
  7. package/dist/config/agile-processes.json +111 -0
  8. package/dist/config/analytics-providers.json +171 -0
  9. package/dist/config/architecture-patterns-modern.json +118 -0
  10. package/dist/config/architecture-patterns.json +324 -0
  11. package/dist/config/automation-templates.json +29 -0
  12. package/dist/config/build-tools-catalog.json +250 -0
  13. package/dist/config/concurrency-models.json +142 -0
  14. package/dist/config/config-health-schemas.json +88 -0
  15. package/dist/config/db-engines.json +99 -0
  16. package/dist/config/deploy-platforms.json +94 -0
  17. package/dist/config/deprecation-patterns/browser.json +42 -0
  18. package/dist/config/deprecation-patterns/dotnet.json +62 -0
  19. package/dist/config/deprecation-patterns/go.json +82 -0
  20. package/dist/config/deprecation-patterns/java.json +82 -0
  21. package/dist/config/deprecation-patterns/nodejs.json +62 -0
  22. package/dist/config/deprecation-patterns/python.json +42 -0
  23. package/dist/config/deprecation-patterns/rust.json +62 -0
  24. package/dist/config/dev-lifecycle-catalog.json +619 -0
  25. package/dist/config/docs-registry.json +94 -0
  26. package/dist/config/edge-db-catalog.json +89 -0
  27. package/dist/config/env-patterns.json +164 -0
  28. package/dist/config/event-brokers.json +63 -0
  29. package/dist/config/hypermedia-tooling.json +189 -0
  30. package/dist/config/idp-tools.json +173 -0
  31. package/dist/config/linter-registry.json +451 -0
  32. package/dist/config/llm-guardrails-tooling.json +122 -0
  33. package/dist/config/local-first-tools.json +122 -0
  34. package/dist/config/mcp-catalog.json +104 -0
  35. package/dist/config/middleware-patterns.json +126 -0
  36. package/dist/config/migration-policies-catalog.json +271 -0
  37. package/dist/config/otel-tooling.json +131 -0
  38. package/dist/config/paradigm-registry.json +380 -0
  39. package/dist/config/pii-patterns.json +231 -0
  40. package/dist/config/pm-platforms.json +49 -0
  41. package/dist/config/quality-principles.json +230 -0
  42. package/dist/config/react-nextjs-catalog.json +200 -0
  43. package/dist/config/resilience-patterns.json +130 -0
  44. package/dist/config/saas-registry.json +183 -0
  45. package/dist/config/security-patterns.json +282 -0
  46. package/dist/config/spec-templates.json +125 -0
  47. package/dist/config/stack-signatures.json +793 -0
  48. package/dist/config/supply-chain-tools.json +107 -0
  49. package/dist/config/ui-frameworks.json +335 -0
  50. package/dist/config/ux-principles.json +190 -0
  51. package/dist/config/validation-libraries.json +152 -0
  52. package/dist/config/workflow-conventions-catalog.json +71 -0
  53. package/dist/engine/advanced-testing/accessibility-checker.d.ts +11 -0
  54. package/dist/engine/advanced-testing/accessibility-checker.d.ts.map +1 -0
  55. package/dist/engine/advanced-testing/accessibility-checker.js +171 -0
  56. package/dist/engine/advanced-testing/accessibility-checker.js.map +1 -0
  57. package/dist/engine/advanced-testing/chaos-generator.d.ts +16 -0
  58. package/dist/engine/advanced-testing/chaos-generator.d.ts.map +1 -0
  59. package/dist/engine/advanced-testing/chaos-generator.js +143 -0
  60. package/dist/engine/advanced-testing/chaos-generator.js.map +1 -0
  61. package/dist/engine/advanced-testing/index.d.ts +6 -0
  62. package/dist/engine/advanced-testing/index.d.ts.map +1 -0
  63. package/dist/engine/advanced-testing/index.js +8 -0
  64. package/dist/engine/advanced-testing/index.js.map +1 -0
  65. package/dist/engine/advanced-testing/mutation-advisor.d.ts +14 -0
  66. package/dist/engine/advanced-testing/mutation-advisor.d.ts.map +1 -0
  67. package/dist/engine/advanced-testing/mutation-advisor.js +226 -0
  68. package/dist/engine/advanced-testing/mutation-advisor.js.map +1 -0
  69. package/dist/engine/advanced-testing/property-based.d.ts +14 -0
  70. package/dist/engine/advanced-testing/property-based.d.ts.map +1 -0
  71. package/dist/engine/advanced-testing/property-based.js +192 -0
  72. package/dist/engine/advanced-testing/property-based.js.map +1 -0
  73. package/dist/engine/advanced-testing/test-data-advisor.d.ts +15 -0
  74. package/dist/engine/advanced-testing/test-data-advisor.d.ts.map +1 -0
  75. package/dist/engine/advanced-testing/test-data-advisor.js +163 -0
  76. package/dist/engine/advanced-testing/test-data-advisor.js.map +1 -0
  77. package/dist/engine/agent-generator/builders.d.ts +8 -0
  78. package/dist/engine/agent-generator/builders.d.ts.map +1 -0
  79. package/dist/engine/agent-generator/builders.js +141 -0
  80. package/dist/engine/agent-generator/builders.js.map +1 -0
  81. package/dist/engine/agent-generator/framework-files-helpers.d.ts +10 -0
  82. package/dist/engine/agent-generator/framework-files-helpers.d.ts.map +1 -0
  83. package/dist/engine/agent-generator/framework-files-helpers.js +54 -0
  84. package/dist/engine/agent-generator/framework-files-helpers.js.map +1 -0
  85. package/dist/engine/agent-generator/framework-files.d.ts +5 -0
  86. package/dist/engine/agent-generator/framework-files.d.ts.map +1 -0
  87. package/dist/engine/agent-generator/framework-files.js +259 -0
  88. package/dist/engine/agent-generator/framework-files.js.map +1 -0
  89. package/dist/engine/agent-generator.d.ts +18 -0
  90. package/dist/engine/agent-generator.d.ts.map +1 -0
  91. package/dist/engine/agent-generator.js +81 -0
  92. package/dist/engine/agent-generator.js.map +1 -0
  93. package/dist/engine/agent-generator.test.d.ts +2 -0
  94. package/dist/engine/agent-generator.test.d.ts.map +1 -0
  95. package/dist/engine/agent-generator.test.js +556 -0
  96. package/dist/engine/agent-generator.test.js.map +1 -0
  97. package/dist/engine/agent-spec-generator/catalog-loader.d.ts +3 -0
  98. package/dist/engine/agent-spec-generator/catalog-loader.d.ts.map +1 -0
  99. package/dist/engine/agent-spec-generator/catalog-loader.js +28 -0
  100. package/dist/engine/agent-spec-generator/catalog-loader.js.map +1 -0
  101. package/dist/engine/agent-spec-generator/constitution-builder.d.ts +7 -0
  102. package/dist/engine/agent-spec-generator/constitution-builder.d.ts.map +1 -0
  103. package/dist/engine/agent-spec-generator/constitution-builder.js +39 -0
  104. package/dist/engine/agent-spec-generator/constitution-builder.js.map +1 -0
  105. package/dist/engine/agent-spec-generator/contract-builder.d.ts +11 -0
  106. package/dist/engine/agent-spec-generator/contract-builder.d.ts.map +1 -0
  107. package/dist/engine/agent-spec-generator/contract-builder.js +78 -0
  108. package/dist/engine/agent-spec-generator/contract-builder.js.map +1 -0
  109. package/dist/engine/agent-spec-generator/execution-phases.d.ts +7 -0
  110. package/dist/engine/agent-spec-generator/execution-phases.d.ts.map +1 -0
  111. package/dist/engine/agent-spec-generator/execution-phases.js +119 -0
  112. package/dist/engine/agent-spec-generator/execution-phases.js.map +1 -0
  113. package/dist/engine/agent-spec-generator/project-detector.d.ts +22 -0
  114. package/dist/engine/agent-spec-generator/project-detector.d.ts.map +1 -0
  115. package/dist/engine/agent-spec-generator/project-detector.js +79 -0
  116. package/dist/engine/agent-spec-generator/project-detector.js.map +1 -0
  117. package/dist/engine/agent-spec-generator/schema-builder.d.ts +6 -0
  118. package/dist/engine/agent-spec-generator/schema-builder.d.ts.map +1 -0
  119. package/dist/engine/agent-spec-generator/schema-builder.js +46 -0
  120. package/dist/engine/agent-spec-generator/schema-builder.js.map +1 -0
  121. package/dist/engine/agent-spec-generator/schema-formatter.d.ts +5 -0
  122. package/dist/engine/agent-spec-generator/schema-formatter.d.ts.map +1 -0
  123. package/dist/engine/agent-spec-generator/schema-formatter.js +26 -0
  124. package/dist/engine/agent-spec-generator/schema-formatter.js.map +1 -0
  125. package/dist/engine/agent-spec-generator/tooling-recommendations.d.ts +7 -0
  126. package/dist/engine/agent-spec-generator/tooling-recommendations.d.ts.map +1 -0
  127. package/dist/engine/agent-spec-generator/tooling-recommendations.js +102 -0
  128. package/dist/engine/agent-spec-generator/tooling-recommendations.js.map +1 -0
  129. package/dist/engine/agent-spec-generator.d.ts +9 -0
  130. package/dist/engine/agent-spec-generator.d.ts.map +1 -0
  131. package/dist/engine/agent-spec-generator.js +11 -0
  132. package/dist/engine/agent-spec-generator.js.map +1 -0
  133. package/dist/engine/agile-config-builder.d.ts +25 -0
  134. package/dist/engine/agile-config-builder.d.ts.map +1 -0
  135. package/dist/engine/agile-config-builder.js +285 -0
  136. package/dist/engine/agile-config-builder.js.map +1 -0
  137. package/dist/engine/ambiguity-detector.d.ts +17 -0
  138. package/dist/engine/ambiguity-detector.d.ts.map +1 -0
  139. package/dist/engine/ambiguity-detector.js +241 -0
  140. package/dist/engine/ambiguity-detector.js.map +1 -0
  141. package/dist/engine/analytics-detector/events.d.ts +29 -0
  142. package/dist/engine/analytics-detector/events.d.ts.map +1 -0
  143. package/dist/engine/analytics-detector/events.js +237 -0
  144. package/dist/engine/analytics-detector/events.js.map +1 -0
  145. package/dist/engine/analytics-detector.d.ts +28 -0
  146. package/dist/engine/analytics-detector.d.ts.map +1 -0
  147. package/dist/engine/analytics-detector.js +243 -0
  148. package/dist/engine/analytics-detector.js.map +1 -0
  149. package/dist/engine/analyzer-db.d.ts +9 -0
  150. package/dist/engine/analyzer-db.d.ts.map +1 -0
  151. package/dist/engine/analyzer-db.js +137 -0
  152. package/dist/engine/analyzer-db.js.map +1 -0
  153. package/dist/engine/analyzer-detectors.d.ts +7 -0
  154. package/dist/engine/analyzer-detectors.d.ts.map +1 -0
  155. package/dist/engine/analyzer-detectors.js +232 -0
  156. package/dist/engine/analyzer-detectors.js.map +1 -0
  157. package/dist/engine/analyzer-env-scanner/env-example.d.ts +6 -0
  158. package/dist/engine/analyzer-env-scanner/env-example.d.ts.map +1 -0
  159. package/dist/engine/analyzer-env-scanner/env-example.js +212 -0
  160. package/dist/engine/analyzer-env-scanner/env-example.js.map +1 -0
  161. package/dist/engine/analyzer-env-scanner/scanner.d.ts +8 -0
  162. package/dist/engine/analyzer-env-scanner/scanner.d.ts.map +1 -0
  163. package/dist/engine/analyzer-env-scanner/scanner.js +117 -0
  164. package/dist/engine/analyzer-env-scanner/scanner.js.map +1 -0
  165. package/dist/engine/analyzer-env-scanner.d.ts +3 -0
  166. package/dist/engine/analyzer-env-scanner.d.ts.map +1 -0
  167. package/dist/engine/analyzer-env-scanner.js +5 -0
  168. package/dist/engine/analyzer-env-scanner.js.map +1 -0
  169. package/dist/engine/analyzer-env.d.ts +6 -0
  170. package/dist/engine/analyzer-env.d.ts.map +1 -0
  171. package/dist/engine/analyzer-env.js +174 -0
  172. package/dist/engine/analyzer-env.js.map +1 -0
  173. package/dist/engine/analyzer-linting/claude-md-extractor.d.ts +8 -0
  174. package/dist/engine/analyzer-linting/claude-md-extractor.d.ts.map +1 -0
  175. package/dist/engine/analyzer-linting/claude-md-extractor.js +75 -0
  176. package/dist/engine/analyzer-linting/claude-md-extractor.js.map +1 -0
  177. package/dist/engine/analyzer-linting/linter-checks.d.ts +3 -0
  178. package/dist/engine/analyzer-linting/linter-checks.d.ts.map +1 -0
  179. package/dist/engine/analyzer-linting/linter-checks.js +214 -0
  180. package/dist/engine/analyzer-linting/linter-checks.js.map +1 -0
  181. package/dist/engine/analyzer-linting/registry.d.ts +9 -0
  182. package/dist/engine/analyzer-linting/registry.d.ts.map +1 -0
  183. package/dist/engine/analyzer-linting/registry.js +73 -0
  184. package/dist/engine/analyzer-linting/registry.js.map +1 -0
  185. package/dist/engine/analyzer-linting.d.ts +4 -0
  186. package/dist/engine/analyzer-linting.d.ts.map +1 -0
  187. package/dist/engine/analyzer-linting.js +6 -0
  188. package/dist/engine/analyzer-linting.js.map +1 -0
  189. package/dist/engine/analyzer.d.ts +19 -0
  190. package/dist/engine/analyzer.d.ts.map +1 -0
  191. package/dist/engine/analyzer.js +173 -0
  192. package/dist/engine/analyzer.js.map +1 -0
  193. package/dist/engine/analyzer.test.d.ts +2 -0
  194. package/dist/engine/analyzer.test.d.ts.map +1 -0
  195. package/dist/engine/analyzer.test.js +1461 -0
  196. package/dist/engine/analyzer.test.js.map +1 -0
  197. package/dist/engine/architecture-detector.d.ts +26 -0
  198. package/dist/engine/architecture-detector.d.ts.map +1 -0
  199. package/dist/engine/architecture-detector.js +216 -0
  200. package/dist/engine/architecture-detector.js.map +1 -0
  201. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.d.ts +6 -0
  202. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.d.ts.map +1 -0
  203. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.js +160 -0
  204. package/dist/engine/architecture-pattern-detector/actor-temporal-detector.js.map +1 -0
  205. package/dist/engine/architecture-pattern-detector/cell-data-bff-detector.d.ts +8 -0
  206. package/dist/engine/architecture-pattern-detector/cell-data-bff-detector.d.ts.map +1 -0
  207. package/dist/engine/architecture-pattern-detector/cell-data-bff-detector.js +164 -0
  208. package/dist/engine/architecture-pattern-detector/cell-data-bff-detector.js.map +1 -0
  209. package/dist/engine/architecture-pattern-detector/ddd-detector.d.ts +4 -0
  210. package/dist/engine/architecture-pattern-detector/ddd-detector.d.ts.map +1 -0
  211. package/dist/engine/architecture-pattern-detector/ddd-detector.js +94 -0
  212. package/dist/engine/architecture-pattern-detector/ddd-detector.js.map +1 -0
  213. package/dist/engine/architecture-pattern-detector/monolith-composable-detector.d.ts +6 -0
  214. package/dist/engine/architecture-pattern-detector/monolith-composable-detector.d.ts.map +1 -0
  215. package/dist/engine/architecture-pattern-detector/monolith-composable-detector.js +118 -0
  216. package/dist/engine/architecture-pattern-detector/monolith-composable-detector.js.map +1 -0
  217. package/dist/engine/architecture-pattern-detector.d.ts +11 -0
  218. package/dist/engine/architecture-pattern-detector.d.ts.map +1 -0
  219. package/dist/engine/architecture-pattern-detector.js +48 -0
  220. package/dist/engine/architecture-pattern-detector.js.map +1 -0
  221. package/dist/engine/auditor-architecture.d.ts +4 -0
  222. package/dist/engine/auditor-architecture.d.ts.map +1 -0
  223. package/dist/engine/auditor-architecture.js +132 -0
  224. package/dist/engine/auditor-architecture.js.map +1 -0
  225. package/dist/engine/auditor-claude-md.d.ts +11 -0
  226. package/dist/engine/auditor-claude-md.d.ts.map +1 -0
  227. package/dist/engine/auditor-claude-md.js +139 -0
  228. package/dist/engine/auditor-claude-md.js.map +1 -0
  229. package/dist/engine/auditor-code-quality.d.ts +6 -0
  230. package/dist/engine/auditor-code-quality.d.ts.map +1 -0
  231. package/dist/engine/auditor-code-quality.js +261 -0
  232. package/dist/engine/auditor-code-quality.js.map +1 -0
  233. package/dist/engine/auditor-scoring.d.ts +7 -0
  234. package/dist/engine/auditor-scoring.d.ts.map +1 -0
  235. package/dist/engine/auditor-scoring.js +76 -0
  236. package/dist/engine/auditor-scoring.js.map +1 -0
  237. package/dist/engine/auditor-security/electron-checks.d.ts +7 -0
  238. package/dist/engine/auditor-security/electron-checks.d.ts.map +1 -0
  239. package/dist/engine/auditor-security/electron-checks.js +83 -0
  240. package/dist/engine/auditor-security/electron-checks.js.map +1 -0
  241. package/dist/engine/auditor-security/error-checks.d.ts +11 -0
  242. package/dist/engine/auditor-security/error-checks.d.ts.map +1 -0
  243. package/dist/engine/auditor-security/error-checks.js +104 -0
  244. package/dist/engine/auditor-security/error-checks.js.map +1 -0
  245. package/dist/engine/auditor-security/performance-checks.d.ts +3 -0
  246. package/dist/engine/auditor-security/performance-checks.d.ts.map +1 -0
  247. package/dist/engine/auditor-security/performance-checks.js +58 -0
  248. package/dist/engine/auditor-security/performance-checks.js.map +1 -0
  249. package/dist/engine/auditor-security/security-checks.d.ts +8 -0
  250. package/dist/engine/auditor-security/security-checks.d.ts.map +1 -0
  251. package/dist/engine/auditor-security/security-checks.js +127 -0
  252. package/dist/engine/auditor-security/security-checks.js.map +1 -0
  253. package/dist/engine/auditor-security/testing-checks.d.ts +3 -0
  254. package/dist/engine/auditor-security/testing-checks.d.ts.map +1 -0
  255. package/dist/engine/auditor-security/testing-checks.js +22 -0
  256. package/dist/engine/auditor-security/testing-checks.js.map +1 -0
  257. package/dist/engine/auditor-security.d.ts +6 -0
  258. package/dist/engine/auditor-security.d.ts.map +1 -0
  259. package/dist/engine/auditor-security.js +9 -0
  260. package/dist/engine/auditor-security.js.map +1 -0
  261. package/dist/engine/auditor.d.ts +15 -0
  262. package/dist/engine/auditor.d.ts.map +1 -0
  263. package/dist/engine/auditor.js +204 -0
  264. package/dist/engine/auditor.js.map +1 -0
  265. package/dist/engine/auditor.test.d.ts +2 -0
  266. package/dist/engine/auditor.test.d.ts.map +1 -0
  267. package/dist/engine/auditor.test.js +2075 -0
  268. package/dist/engine/auditor.test.js.map +1 -0
  269. package/dist/engine/build-tool-detector.d.ts +8 -0
  270. package/dist/engine/build-tool-detector.d.ts.map +1 -0
  271. package/dist/engine/build-tool-detector.js +235 -0
  272. package/dist/engine/build-tool-detector.js.map +1 -0
  273. package/dist/engine/calibrator.d.ts +34 -0
  274. package/dist/engine/calibrator.d.ts.map +1 -0
  275. package/dist/engine/calibrator.js +139 -0
  276. package/dist/engine/calibrator.js.map +1 -0
  277. package/dist/engine/chain-executor.d.ts +16 -0
  278. package/dist/engine/chain-executor.d.ts.map +1 -0
  279. package/dist/engine/chain-executor.js +88 -0
  280. package/dist/engine/chain-executor.js.map +1 -0
  281. package/dist/engine/clarify/contradictions.d.ts +8 -0
  282. package/dist/engine/clarify/contradictions.d.ts.map +1 -0
  283. package/dist/engine/clarify/contradictions.js +85 -0
  284. package/dist/engine/clarify/contradictions.js.map +1 -0
  285. package/dist/engine/clarify/index.d.ts +3 -0
  286. package/dist/engine/clarify/index.d.ts.map +1 -0
  287. package/dist/engine/clarify/index.js +4 -0
  288. package/dist/engine/clarify/index.js.map +1 -0
  289. package/dist/engine/clarify/questions.d.ts +16 -0
  290. package/dist/engine/clarify/questions.d.ts.map +1 -0
  291. package/dist/engine/clarify/questions.js +125 -0
  292. package/dist/engine/clarify/questions.js.map +1 -0
  293. package/dist/engine/config-health/build-tool-checker.d.ts +8 -0
  294. package/dist/engine/config-health/build-tool-checker.d.ts.map +1 -0
  295. package/dist/engine/config-health/build-tool-checker.js +158 -0
  296. package/dist/engine/config-health/build-tool-checker.js.map +1 -0
  297. package/dist/engine/config-health/ci-checker.d.ts +5 -0
  298. package/dist/engine/config-health/ci-checker.d.ts.map +1 -0
  299. package/dist/engine/config-health/ci-checker.js +170 -0
  300. package/dist/engine/config-health/ci-checker.js.map +1 -0
  301. package/dist/engine/config-health/ci-commands-collector.d.ts +10 -0
  302. package/dist/engine/config-health/ci-commands-collector.d.ts.map +1 -0
  303. package/dist/engine/config-health/ci-commands-collector.js +135 -0
  304. package/dist/engine/config-health/ci-commands-collector.js.map +1 -0
  305. package/dist/engine/config-health/ci-version-checker.d.ts +3 -0
  306. package/dist/engine/config-health/ci-version-checker.d.ts.map +1 -0
  307. package/dist/engine/config-health/ci-version-checker.js +131 -0
  308. package/dist/engine/config-health/ci-version-checker.js.map +1 -0
  309. package/dist/engine/config-health/go-checker.d.ts +16 -0
  310. package/dist/engine/config-health/go-checker.d.ts.map +1 -0
  311. package/dist/engine/config-health/go-checker.js +219 -0
  312. package/dist/engine/config-health/go-checker.js.map +1 -0
  313. package/dist/engine/config-health/index.d.ts +19 -0
  314. package/dist/engine/config-health/index.d.ts.map +1 -0
  315. package/dist/engine/config-health/index.js +82 -0
  316. package/dist/engine/config-health/index.js.map +1 -0
  317. package/dist/engine/config-health/otel-checker.d.ts +8 -0
  318. package/dist/engine/config-health/otel-checker.d.ts.map +1 -0
  319. package/dist/engine/config-health/otel-checker.js +76 -0
  320. package/dist/engine/config-health/otel-checker.js.map +1 -0
  321. package/dist/engine/config-health/python-checker.d.ts +20 -0
  322. package/dist/engine/config-health/python-checker.d.ts.map +1 -0
  323. package/dist/engine/config-health/python-checker.js +305 -0
  324. package/dist/engine/config-health/python-checker.js.map +1 -0
  325. package/dist/engine/config-health/rust-checker.d.ts +16 -0
  326. package/dist/engine/config-health/rust-checker.d.ts.map +1 -0
  327. package/dist/engine/config-health/rust-checker.js +228 -0
  328. package/dist/engine/config-health/rust-checker.js.map +1 -0
  329. package/dist/engine/config-health/ts-checker-scripts.d.ts +12 -0
  330. package/dist/engine/config-health/ts-checker-scripts.d.ts.map +1 -0
  331. package/dist/engine/config-health/ts-checker-scripts.js +141 -0
  332. package/dist/engine/config-health/ts-checker-scripts.js.map +1 -0
  333. package/dist/engine/config-health/ts-checker.d.ts +19 -0
  334. package/dist/engine/config-health/ts-checker.d.ts.map +1 -0
  335. package/dist/engine/config-health/ts-checker.js +203 -0
  336. package/dist/engine/config-health/ts-checker.js.map +1 -0
  337. package/dist/engine/context/health.d.ts +12 -0
  338. package/dist/engine/context/health.d.ts.map +1 -0
  339. package/dist/engine/context/health.js +62 -0
  340. package/dist/engine/context/health.js.map +1 -0
  341. package/dist/engine/context/index.d.ts +3 -0
  342. package/dist/engine/context/index.d.ts.map +1 -0
  343. package/dist/engine/context/index.js +4 -0
  344. package/dist/engine/context/index.js.map +1 -0
  345. package/dist/engine/context/tags.d.ts +21 -0
  346. package/dist/engine/context/tags.d.ts.map +1 -0
  347. package/dist/engine/context/tags.js +83 -0
  348. package/dist/engine/context/tags.js.map +1 -0
  349. package/dist/engine/context-merger.d.ts +23 -0
  350. package/dist/engine/context-merger.d.ts.map +1 -0
  351. package/dist/engine/context-merger.js +197 -0
  352. package/dist/engine/context-merger.js.map +1 -0
  353. package/dist/engine/contradiction-detector.d.ts +16 -0
  354. package/dist/engine/contradiction-detector.d.ts.map +1 -0
  355. package/dist/engine/contradiction-detector.js +158 -0
  356. package/dist/engine/contradiction-detector.js.map +1 -0
  357. package/dist/engine/decision-store.d.ts +17 -0
  358. package/dist/engine/decision-store.d.ts.map +1 -0
  359. package/dist/engine/decision-store.js +156 -0
  360. package/dist/engine/decision-store.js.map +1 -0
  361. package/dist/engine/dep-auditor/abandonment-data.d.ts +4 -0
  362. package/dist/engine/dep-auditor/abandonment-data.d.ts.map +1 -0
  363. package/dist/engine/dep-auditor/abandonment-data.js +37 -0
  364. package/dist/engine/dep-auditor/abandonment-data.js.map +1 -0
  365. package/dist/engine/dep-auditor/abandonment-registry.d.ts +26 -0
  366. package/dist/engine/dep-auditor/abandonment-registry.d.ts.map +1 -0
  367. package/dist/engine/dep-auditor/abandonment-registry.js +89 -0
  368. package/dist/engine/dep-auditor/abandonment-registry.js.map +1 -0
  369. package/dist/engine/dep-auditor/cve-fetcher.d.ts +24 -0
  370. package/dist/engine/dep-auditor/cve-fetcher.d.ts.map +1 -0
  371. package/dist/engine/dep-auditor/cve-fetcher.js +187 -0
  372. package/dist/engine/dep-auditor/cve-fetcher.js.map +1 -0
  373. package/dist/engine/dep-auditor/dep-duplicates-detector.d.ts +10 -0
  374. package/dist/engine/dep-auditor/dep-duplicates-detector.d.ts.map +1 -0
  375. package/dist/engine/dep-auditor/dep-duplicates-detector.js +81 -0
  376. package/dist/engine/dep-auditor/dep-duplicates-detector.js.map +1 -0
  377. package/dist/engine/dep-auditor/formatters.d.ts +11 -0
  378. package/dist/engine/dep-auditor/formatters.d.ts.map +1 -0
  379. package/dist/engine/dep-auditor/formatters.js +106 -0
  380. package/dist/engine/dep-auditor/formatters.js.map +1 -0
  381. package/dist/engine/dep-auditor/index.d.ts +9 -0
  382. package/dist/engine/dep-auditor/index.d.ts.map +1 -0
  383. package/dist/engine/dep-auditor/index.js +126 -0
  384. package/dist/engine/dep-auditor/index.js.map +1 -0
  385. package/dist/engine/dep-auditor/license-checker.d.ts +16 -0
  386. package/dist/engine/dep-auditor/license-checker.d.ts.map +1 -0
  387. package/dist/engine/dep-auditor/license-checker.js +131 -0
  388. package/dist/engine/dep-auditor/license-checker.js.map +1 -0
  389. package/dist/engine/dep-auditor/license-registry.d.ts +21 -0
  390. package/dist/engine/dep-auditor/license-registry.d.ts.map +1 -0
  391. package/dist/engine/dep-auditor/license-registry.js +86 -0
  392. package/dist/engine/dep-auditor/license-registry.js.map +1 -0
  393. package/dist/engine/dep-auditor/pre-spec-check.d.ts +9 -0
  394. package/dist/engine/dep-auditor/pre-spec-check.d.ts.map +1 -0
  395. package/dist/engine/dep-auditor/pre-spec-check.js +49 -0
  396. package/dist/engine/dep-auditor/pre-spec-check.js.map +1 -0
  397. package/dist/engine/dep-auditor/vuln-data.d.ts +4 -0
  398. package/dist/engine/dep-auditor/vuln-data.d.ts.map +1 -0
  399. package/dist/engine/dep-auditor/vuln-data.js +154 -0
  400. package/dist/engine/dep-auditor/vuln-data.js.map +1 -0
  401. package/dist/engine/deprecation-scanner/index.d.ts +10 -0
  402. package/dist/engine/deprecation-scanner/index.d.ts.map +1 -0
  403. package/dist/engine/deprecation-scanner/index.js +63 -0
  404. package/dist/engine/deprecation-scanner/index.js.map +1 -0
  405. package/dist/engine/deprecation-scanner/pattern-loader.d.ts +7 -0
  406. package/dist/engine/deprecation-scanner/pattern-loader.d.ts.map +1 -0
  407. package/dist/engine/deprecation-scanner/pattern-loader.js +33 -0
  408. package/dist/engine/deprecation-scanner/pattern-loader.js.map +1 -0
  409. package/dist/engine/deprecation-scanner/source-scanner.d.ts +6 -0
  410. package/dist/engine/deprecation-scanner/source-scanner.d.ts.map +1 -0
  411. package/dist/engine/deprecation-scanner/source-scanner.js +88 -0
  412. package/dist/engine/deprecation-scanner/source-scanner.js.map +1 -0
  413. package/dist/engine/desktop-detector.d.ts +24 -0
  414. package/dist/engine/desktop-detector.d.ts.map +1 -0
  415. package/dist/engine/desktop-detector.js +208 -0
  416. package/dist/engine/desktop-detector.js.map +1 -0
  417. package/dist/engine/detection-utils.d.ts +11 -0
  418. package/dist/engine/detection-utils.d.ts.map +1 -0
  419. package/dist/engine/detection-utils.js +226 -0
  420. package/dist/engine/detection-utils.js.map +1 -0
  421. package/dist/engine/detectors/advanced-framework-detector/css-state-detector.d.ts +5 -0
  422. package/dist/engine/detectors/advanced-framework-detector/css-state-detector.d.ts.map +1 -0
  423. package/dist/engine/detectors/advanced-framework-detector/css-state-detector.js +71 -0
  424. package/dist/engine/detectors/advanced-framework-detector/css-state-detector.js.map +1 -0
  425. package/dist/engine/detectors/advanced-framework-detector/enterprise-ds-detector.d.ts +3 -0
  426. package/dist/engine/detectors/advanced-framework-detector/enterprise-ds-detector.d.ts.map +1 -0
  427. package/dist/engine/detectors/advanced-framework-detector/enterprise-ds-detector.js +40 -0
  428. package/dist/engine/detectors/advanced-framework-detector/enterprise-ds-detector.js.map +1 -0
  429. package/dist/engine/detectors/advanced-framework-detector/helpers.d.ts +6 -0
  430. package/dist/engine/detectors/advanced-framework-detector/helpers.d.ts.map +1 -0
  431. package/dist/engine/detectors/advanced-framework-detector/helpers.js +37 -0
  432. package/dist/engine/detectors/advanced-framework-detector/helpers.js.map +1 -0
  433. package/dist/engine/detectors/advanced-framework-detector/index.d.ts +8 -0
  434. package/dist/engine/detectors/advanced-framework-detector/index.d.ts.map +1 -0
  435. package/dist/engine/detectors/advanced-framework-detector/index.js +79 -0
  436. package/dist/engine/detectors/advanced-framework-detector/index.js.map +1 -0
  437. package/dist/engine/detectors/advanced-framework-detector/legacy-detector.d.ts +4 -0
  438. package/dist/engine/detectors/advanced-framework-detector/legacy-detector.d.ts.map +1 -0
  439. package/dist/engine/detectors/advanced-framework-detector/legacy-detector.js +34 -0
  440. package/dist/engine/detectors/advanced-framework-detector/legacy-detector.js.map +1 -0
  441. package/dist/engine/detectors/advanced-framework-detector/micro-frontend-detector.d.ts +3 -0
  442. package/dist/engine/detectors/advanced-framework-detector/micro-frontend-detector.d.ts.map +1 -0
  443. package/dist/engine/detectors/advanced-framework-detector/micro-frontend-detector.js +25 -0
  444. package/dist/engine/detectors/advanced-framework-detector/micro-frontend-detector.js.map +1 -0
  445. package/dist/engine/detectors/advanced-framework-detector/modern-detector.d.ts +3 -0
  446. package/dist/engine/detectors/advanced-framework-detector/modern-detector.d.ts.map +1 -0
  447. package/dist/engine/detectors/advanced-framework-detector/modern-detector.js +48 -0
  448. package/dist/engine/detectors/advanced-framework-detector/modern-detector.js.map +1 -0
  449. package/dist/engine/detectors/advanced-framework-detector.d.ts +2 -0
  450. package/dist/engine/detectors/advanced-framework-detector.d.ts.map +1 -0
  451. package/dist/engine/detectors/advanced-framework-detector.js +4 -0
  452. package/dist/engine/detectors/advanced-framework-detector.js.map +1 -0
  453. package/dist/engine/detectors/advanced-framework-hints.d.ts +6 -0
  454. package/dist/engine/detectors/advanced-framework-hints.d.ts.map +1 -0
  455. package/dist/engine/detectors/advanced-framework-hints.js +152 -0
  456. package/dist/engine/detectors/advanced-framework-hints.js.map +1 -0
  457. package/dist/engine/detectors/agent-framework-detector.d.ts +24 -0
  458. package/dist/engine/detectors/agent-framework-detector.d.ts.map +1 -0
  459. package/dist/engine/detectors/agent-framework-detector.js +260 -0
  460. package/dist/engine/detectors/agent-framework-detector.js.map +1 -0
  461. package/dist/engine/detectors/agile-detector.d.ts +12 -0
  462. package/dist/engine/detectors/agile-detector.d.ts.map +1 -0
  463. package/dist/engine/detectors/agile-detector.js +169 -0
  464. package/dist/engine/detectors/agile-detector.js.map +1 -0
  465. package/dist/engine/detectors/ai-native-detector.d.ts +12 -0
  466. package/dist/engine/detectors/ai-native-detector.d.ts.map +1 -0
  467. package/dist/engine/detectors/ai-native-detector.js +244 -0
  468. package/dist/engine/detectors/ai-native-detector.js.map +1 -0
  469. package/dist/engine/detectors/cicd-detector.d.ts +7 -0
  470. package/dist/engine/detectors/cicd-detector.d.ts.map +1 -0
  471. package/dist/engine/detectors/cicd-detector.js +177 -0
  472. package/dist/engine/detectors/cicd-detector.js.map +1 -0
  473. package/dist/engine/detectors/css-framework-detector.d.ts +7 -0
  474. package/dist/engine/detectors/css-framework-detector.d.ts.map +1 -0
  475. package/dist/engine/detectors/css-framework-detector.js +187 -0
  476. package/dist/engine/detectors/css-framework-detector.js.map +1 -0
  477. package/dist/engine/detectors/deployment-detector.d.ts +6 -0
  478. package/dist/engine/detectors/deployment-detector.d.ts.map +1 -0
  479. package/dist/engine/detectors/deployment-detector.js +168 -0
  480. package/dist/engine/detectors/deployment-detector.js.map +1 -0
  481. package/dist/engine/detectors/dx-score.d.ts +7 -0
  482. package/dist/engine/detectors/dx-score.d.ts.map +1 -0
  483. package/dist/engine/detectors/dx-score.js +232 -0
  484. package/dist/engine/detectors/dx-score.js.map +1 -0
  485. package/dist/engine/detectors/finops-detector.d.ts +7 -0
  486. package/dist/engine/detectors/finops-detector.d.ts.map +1 -0
  487. package/dist/engine/detectors/finops-detector.js +177 -0
  488. package/dist/engine/detectors/finops-detector.js.map +1 -0
  489. package/dist/engine/detectors/frontend-perf-detector.d.ts +7 -0
  490. package/dist/engine/detectors/frontend-perf-detector.d.ts.map +1 -0
  491. package/dist/engine/detectors/frontend-perf-detector.js +143 -0
  492. package/dist/engine/detectors/frontend-perf-detector.js.map +1 -0
  493. package/dist/engine/detectors/gitops-detector.d.ts +12 -0
  494. package/dist/engine/detectors/gitops-detector.d.ts.map +1 -0
  495. package/dist/engine/detectors/gitops-detector.js +170 -0
  496. package/dist/engine/detectors/gitops-detector.js.map +1 -0
  497. package/dist/engine/detectors/hypermedia-detector.d.ts +7 -0
  498. package/dist/engine/detectors/hypermedia-detector.d.ts.map +1 -0
  499. package/dist/engine/detectors/hypermedia-detector.js +223 -0
  500. package/dist/engine/detectors/hypermedia-detector.js.map +1 -0
  501. package/dist/engine/detectors/idp-detector.d.ts +7 -0
  502. package/dist/engine/detectors/idp-detector.d.ts.map +1 -0
  503. package/dist/engine/detectors/idp-detector.js +126 -0
  504. package/dist/engine/detectors/idp-detector.js.map +1 -0
  505. package/dist/engine/detectors/js-runtime-detector.d.ts +8 -0
  506. package/dist/engine/detectors/js-runtime-detector.d.ts.map +1 -0
  507. package/dist/engine/detectors/js-runtime-detector.js +32 -0
  508. package/dist/engine/detectors/js-runtime-detector.js.map +1 -0
  509. package/dist/engine/detectors/k3s-detector.d.ts +9 -0
  510. package/dist/engine/detectors/k3s-detector.d.ts.map +1 -0
  511. package/dist/engine/detectors/k3s-detector.js +85 -0
  512. package/dist/engine/detectors/k3s-detector.js.map +1 -0
  513. package/dist/engine/detectors/library-detector-langs2.d.ts +39 -0
  514. package/dist/engine/detectors/library-detector-langs2.d.ts.map +1 -0
  515. package/dist/engine/detectors/library-detector-langs2.js +161 -0
  516. package/dist/engine/detectors/library-detector-langs2.js.map +1 -0
  517. package/dist/engine/detectors/library-detector-langs3a.d.ts +34 -0
  518. package/dist/engine/detectors/library-detector-langs3a.d.ts.map +1 -0
  519. package/dist/engine/detectors/library-detector-langs3a.js +242 -0
  520. package/dist/engine/detectors/library-detector-langs3a.js.map +1 -0
  521. package/dist/engine/detectors/library-detector-langs3b.d.ts +31 -0
  522. package/dist/engine/detectors/library-detector-langs3b.d.ts.map +1 -0
  523. package/dist/engine/detectors/library-detector-langs3b.js +206 -0
  524. package/dist/engine/detectors/library-detector-langs3b.js.map +1 -0
  525. package/dist/engine/detectors/library-detector-langs4.d.ts +42 -0
  526. package/dist/engine/detectors/library-detector-langs4.d.ts.map +1 -0
  527. package/dist/engine/detectors/library-detector-langs4.js +235 -0
  528. package/dist/engine/detectors/library-detector-langs4.js.map +1 -0
  529. package/dist/engine/detectors/library-detector-langs5.d.ts +38 -0
  530. package/dist/engine/detectors/library-detector-langs5.d.ts.map +1 -0
  531. package/dist/engine/detectors/library-detector-langs5.js +147 -0
  532. package/dist/engine/detectors/library-detector-langs5.js.map +1 -0
  533. package/dist/engine/detectors/library-detector-mainstream.d.ts +59 -0
  534. package/dist/engine/detectors/library-detector-mainstream.d.ts.map +1 -0
  535. package/dist/engine/detectors/library-detector-mainstream.js +82 -0
  536. package/dist/engine/detectors/library-detector-mainstream.js.map +1 -0
  537. package/dist/engine/detectors/library-detector-multilang-a.d.ts +12 -0
  538. package/dist/engine/detectors/library-detector-multilang-a.d.ts.map +1 -0
  539. package/dist/engine/detectors/library-detector-multilang-a.js +122 -0
  540. package/dist/engine/detectors/library-detector-multilang-a.js.map +1 -0
  541. package/dist/engine/detectors/library-detector-multilang-b.d.ts +12 -0
  542. package/dist/engine/detectors/library-detector-multilang-b.d.ts.map +1 -0
  543. package/dist/engine/detectors/library-detector-multilang-b.js +105 -0
  544. package/dist/engine/detectors/library-detector-multilang-b.js.map +1 -0
  545. package/dist/engine/detectors/library-detector-multilang-c.d.ts +12 -0
  546. package/dist/engine/detectors/library-detector-multilang-c.d.ts.map +1 -0
  547. package/dist/engine/detectors/library-detector-multilang-c.js +132 -0
  548. package/dist/engine/detectors/library-detector-multilang-c.js.map +1 -0
  549. package/dist/engine/detectors/library-detector-multilang.d.ts +4 -0
  550. package/dist/engine/detectors/library-detector-multilang.d.ts.map +1 -0
  551. package/dist/engine/detectors/library-detector-multilang.js +7 -0
  552. package/dist/engine/detectors/library-detector-multilang.js.map +1 -0
  553. package/dist/engine/detectors/library-detector-node.d.ts +8 -0
  554. package/dist/engine/detectors/library-detector-node.d.ts.map +1 -0
  555. package/dist/engine/detectors/library-detector-node.js +40 -0
  556. package/dist/engine/detectors/library-detector-node.js.map +1 -0
  557. package/dist/engine/detectors/library-detector-python.d.ts +11 -0
  558. package/dist/engine/detectors/library-detector-python.d.ts.map +1 -0
  559. package/dist/engine/detectors/library-detector-python.js +111 -0
  560. package/dist/engine/detectors/library-detector-python.js.map +1 -0
  561. package/dist/engine/detectors/library-detector.d.ts +18 -0
  562. package/dist/engine/detectors/library-detector.d.ts.map +1 -0
  563. package/dist/engine/detectors/library-detector.js +102 -0
  564. package/dist/engine/detectors/library-detector.js.map +1 -0
  565. package/dist/engine/detectors/llm-detector/detectors.d.ts +26 -0
  566. package/dist/engine/detectors/llm-detector/detectors.d.ts.map +1 -0
  567. package/dist/engine/detectors/llm-detector/detectors.js +174 -0
  568. package/dist/engine/detectors/llm-detector/detectors.js.map +1 -0
  569. package/dist/engine/detectors/llm-detector/eu-ai-detector.d.ts +7 -0
  570. package/dist/engine/detectors/llm-detector/eu-ai-detector.d.ts.map +1 -0
  571. package/dist/engine/detectors/llm-detector/eu-ai-detector.js +34 -0
  572. package/dist/engine/detectors/llm-detector/eu-ai-detector.js.map +1 -0
  573. package/dist/engine/detectors/llm-detector/file-readers.d.ts +7 -0
  574. package/dist/engine/detectors/llm-detector/file-readers.d.ts.map +1 -0
  575. package/dist/engine/detectors/llm-detector/file-readers.js +33 -0
  576. package/dist/engine/detectors/llm-detector/file-readers.js.map +1 -0
  577. package/dist/engine/detectors/llm-detector/index.d.ts +13 -0
  578. package/dist/engine/detectors/llm-detector/index.d.ts.map +1 -0
  579. package/dist/engine/detectors/llm-detector/index.js +74 -0
  580. package/dist/engine/detectors/llm-detector/index.js.map +1 -0
  581. package/dist/engine/detectors/llm-detector/provider-maps.d.ts +25 -0
  582. package/dist/engine/detectors/llm-detector/provider-maps.d.ts.map +1 -0
  583. package/dist/engine/detectors/llm-detector/provider-maps.js +112 -0
  584. package/dist/engine/detectors/llm-detector/provider-maps.js.map +1 -0
  585. package/dist/engine/detectors/llm-detector.d.ts +2 -0
  586. package/dist/engine/detectors/llm-detector.d.ts.map +1 -0
  587. package/dist/engine/detectors/llm-detector.js +4 -0
  588. package/dist/engine/detectors/llm-detector.js.map +1 -0
  589. package/dist/engine/detectors/mcp-server-detector.d.ts +20 -0
  590. package/dist/engine/detectors/mcp-server-detector.d.ts.map +1 -0
  591. package/dist/engine/detectors/mcp-server-detector.js +98 -0
  592. package/dist/engine/detectors/mcp-server-detector.js.map +1 -0
  593. package/dist/engine/detectors/mfe-detector.d.ts +9 -0
  594. package/dist/engine/detectors/mfe-detector.d.ts.map +1 -0
  595. package/dist/engine/detectors/mfe-detector.js +162 -0
  596. package/dist/engine/detectors/mfe-detector.js.map +1 -0
  597. package/dist/engine/detectors/monitoring-detector.d.ts +6 -0
  598. package/dist/engine/detectors/monitoring-detector.d.ts.map +1 -0
  599. package/dist/engine/detectors/monitoring-detector.js +268 -0
  600. package/dist/engine/detectors/monitoring-detector.js.map +1 -0
  601. package/dist/engine/detectors/monorepo-detector.d.ts +15 -0
  602. package/dist/engine/detectors/monorepo-detector.d.ts.map +1 -0
  603. package/dist/engine/detectors/monorepo-detector.js +56 -0
  604. package/dist/engine/detectors/monorepo-detector.js.map +1 -0
  605. package/dist/engine/detectors/nomad-detector.d.ts +11 -0
  606. package/dist/engine/detectors/nomad-detector.d.ts.map +1 -0
  607. package/dist/engine/detectors/nomad-detector.js +102 -0
  608. package/dist/engine/detectors/nomad-detector.js.map +1 -0
  609. package/dist/engine/detectors/otel-detector.d.ts +7 -0
  610. package/dist/engine/detectors/otel-detector.d.ts.map +1 -0
  611. package/dist/engine/detectors/otel-detector.js +240 -0
  612. package/dist/engine/detectors/otel-detector.js.map +1 -0
  613. package/dist/engine/detectors/otel-ecosystem-detectors.d.ts +28 -0
  614. package/dist/engine/detectors/otel-ecosystem-detectors.d.ts.map +1 -0
  615. package/dist/engine/detectors/otel-ecosystem-detectors.js +104 -0
  616. package/dist/engine/detectors/otel-ecosystem-detectors.js.map +1 -0
  617. package/dist/engine/detectors/platform-specialty-detector.d.ts +8 -0
  618. package/dist/engine/detectors/platform-specialty-detector.d.ts.map +1 -0
  619. package/dist/engine/detectors/platform-specialty-detector.js +262 -0
  620. package/dist/engine/detectors/platform-specialty-detector.js.map +1 -0
  621. package/dist/engine/detectors/python-pm-detector.d.ts +6 -0
  622. package/dist/engine/detectors/python-pm-detector.d.ts.map +1 -0
  623. package/dist/engine/detectors/python-pm-detector.js +42 -0
  624. package/dist/engine/detectors/python-pm-detector.js.map +1 -0
  625. package/dist/engine/detectors/supply-chain-detector.d.ts +7 -0
  626. package/dist/engine/detectors/supply-chain-detector.d.ts.map +1 -0
  627. package/dist/engine/detectors/supply-chain-detector.js +188 -0
  628. package/dist/engine/detectors/supply-chain-detector.js.map +1 -0
  629. package/dist/engine/detectors/template-engine-detector.d.ts +6 -0
  630. package/dist/engine/detectors/template-engine-detector.d.ts.map +1 -0
  631. package/dist/engine/detectors/template-engine-detector.js +172 -0
  632. package/dist/engine/detectors/template-engine-detector.js.map +1 -0
  633. package/dist/engine/detectors/wasm-detector.d.ts +26 -0
  634. package/dist/engine/detectors/wasm-detector.d.ts.map +1 -0
  635. package/dist/engine/detectors/wasm-detector.js +114 -0
  636. package/dist/engine/detectors/wasm-detector.js.map +1 -0
  637. package/dist/engine/doc-generator/arch-api-user-generators.d.ts +5 -0
  638. package/dist/engine/doc-generator/arch-api-user-generators.d.ts.map +1 -0
  639. package/dist/engine/doc-generator/arch-api-user-generators.js +195 -0
  640. package/dist/engine/doc-generator/arch-api-user-generators.js.map +1 -0
  641. package/dist/engine/doc-generator/builders.d.ts +17 -0
  642. package/dist/engine/doc-generator/builders.d.ts.map +1 -0
  643. package/dist/engine/doc-generator/builders.js +255 -0
  644. package/dist/engine/doc-generator/builders.js.map +1 -0
  645. package/dist/engine/doc-generator/deployment-generator.d.ts +3 -0
  646. package/dist/engine/doc-generator/deployment-generator.d.ts.map +1 -0
  647. package/dist/engine/doc-generator/deployment-generator.js +60 -0
  648. package/dist/engine/doc-generator/deployment-generator.js.map +1 -0
  649. package/dist/engine/doc-generator/diagrams.d.ts +10 -0
  650. package/dist/engine/doc-generator/diagrams.d.ts.map +1 -0
  651. package/dist/engine/doc-generator/diagrams.js +181 -0
  652. package/dist/engine/doc-generator/diagrams.js.map +1 -0
  653. package/dist/engine/doc-generator/guide-generators.d.ts +4 -0
  654. package/dist/engine/doc-generator/guide-generators.d.ts.map +1 -0
  655. package/dist/engine/doc-generator/guide-generators.js +9 -0
  656. package/dist/engine/doc-generator/guide-generators.js.map +1 -0
  657. package/dist/engine/doc-generator/mobile-distribution-android.d.ts +6 -0
  658. package/dist/engine/doc-generator/mobile-distribution-android.d.ts.map +1 -0
  659. package/dist/engine/doc-generator/mobile-distribution-android.js +47 -0
  660. package/dist/engine/doc-generator/mobile-distribution-android.js.map +1 -0
  661. package/dist/engine/doc-generator/mobile-distribution-guide.d.ts +7 -0
  662. package/dist/engine/doc-generator/mobile-distribution-guide.d.ts.map +1 -0
  663. package/dist/engine/doc-generator/mobile-distribution-guide.js +288 -0
  664. package/dist/engine/doc-generator/mobile-distribution-guide.js.map +1 -0
  665. package/dist/engine/doc-generator/mobile-distribution-ios.d.ts +6 -0
  666. package/dist/engine/doc-generator/mobile-distribution-ios.d.ts.map +1 -0
  667. package/dist/engine/doc-generator/mobile-distribution-ios.js +58 -0
  668. package/dist/engine/doc-generator/mobile-distribution-ios.js.map +1 -0
  669. package/dist/engine/doc-generator/ops-generators.d.ts +6 -0
  670. package/dist/engine/doc-generator/ops-generators.d.ts.map +1 -0
  671. package/dist/engine/doc-generator/ops-generators.js +188 -0
  672. package/dist/engine/doc-generator/ops-generators.js.map +1 -0
  673. package/dist/engine/doc-generator/readme-setup-generators.d.ts +4 -0
  674. package/dist/engine/doc-generator/readme-setup-generators.d.ts.map +1 -0
  675. package/dist/engine/doc-generator/readme-setup-generators.js +97 -0
  676. package/dist/engine/doc-generator/readme-setup-generators.js.map +1 -0
  677. package/dist/engine/doc-generator/support-generators.d.ts +17 -0
  678. package/dist/engine/doc-generator/support-generators.d.ts.map +1 -0
  679. package/dist/engine/doc-generator/support-generators.js +257 -0
  680. package/dist/engine/doc-generator/support-generators.js.map +1 -0
  681. package/dist/engine/doc-generator/team-generators.d.ts +12 -0
  682. package/dist/engine/doc-generator/team-generators.d.ts.map +1 -0
  683. package/dist/engine/doc-generator/team-generators.js +233 -0
  684. package/dist/engine/doc-generator/team-generators.js.map +1 -0
  685. package/dist/engine/doc-generator.d.ts +15 -0
  686. package/dist/engine/doc-generator.d.ts.map +1 -0
  687. package/dist/engine/doc-generator.js +89 -0
  688. package/dist/engine/doc-generator.js.map +1 -0
  689. package/dist/engine/doc-generator.test.d.ts +2 -0
  690. package/dist/engine/doc-generator.test.d.ts.map +1 -0
  691. package/dist/engine/doc-generator.test.js +961 -0
  692. package/dist/engine/doc-generator.test.js.map +1 -0
  693. package/dist/engine/dor-dod/dod.d.ts +16 -0
  694. package/dist/engine/dor-dod/dod.d.ts.map +1 -0
  695. package/dist/engine/dor-dod/dod.js +136 -0
  696. package/dist/engine/dor-dod/dod.js.map +1 -0
  697. package/dist/engine/dor-dod/dor.d.ts +20 -0
  698. package/dist/engine/dor-dod/dor.d.ts.map +1 -0
  699. package/dist/engine/dor-dod/dor.js +199 -0
  700. package/dist/engine/dor-dod/dor.js.map +1 -0
  701. package/dist/engine/dor-dod/index.d.ts +4 -0
  702. package/dist/engine/dor-dod/index.d.ts.map +1 -0
  703. package/dist/engine/dor-dod/index.js +5 -0
  704. package/dist/engine/dor-dod/index.js.map +1 -0
  705. package/dist/engine/dor-dod/plan.d.ts +8 -0
  706. package/dist/engine/dor-dod/plan.d.ts.map +1 -0
  707. package/dist/engine/dor-dod/plan.js +48 -0
  708. package/dist/engine/dor-dod/plan.js.map +1 -0
  709. package/dist/engine/dor-dod.d.ts +2 -0
  710. package/dist/engine/dor-dod.d.ts.map +1 -0
  711. package/dist/engine/dor-dod.js +4 -0
  712. package/dist/engine/dor-dod.js.map +1 -0
  713. package/dist/engine/dora-metrics/benchmarks.d.ts +39 -0
  714. package/dist/engine/dora-metrics/benchmarks.d.ts.map +1 -0
  715. package/dist/engine/dora-metrics/benchmarks.js +89 -0
  716. package/dist/engine/dora-metrics/benchmarks.js.map +1 -0
  717. package/dist/engine/dora-metrics/calculations.d.ts +26 -0
  718. package/dist/engine/dora-metrics/calculations.d.ts.map +1 -0
  719. package/dist/engine/dora-metrics/calculations.js +100 -0
  720. package/dist/engine/dora-metrics/calculations.js.map +1 -0
  721. package/dist/engine/dora-metrics/git-log.d.ts +11 -0
  722. package/dist/engine/dora-metrics/git-log.d.ts.map +1 -0
  723. package/dist/engine/dora-metrics/git-log.js +75 -0
  724. package/dist/engine/dora-metrics/git-log.js.map +1 -0
  725. package/dist/engine/dora-metrics.d.ts +4 -0
  726. package/dist/engine/dora-metrics.d.ts.map +1 -0
  727. package/dist/engine/dora-metrics.js +7 -0
  728. package/dist/engine/dora-metrics.js.map +1 -0
  729. package/dist/engine/dynamic-migration-detector/catalog-loader.d.ts +10 -0
  730. package/dist/engine/dynamic-migration-detector/catalog-loader.d.ts.map +1 -0
  731. package/dist/engine/dynamic-migration-detector/catalog-loader.js +72 -0
  732. package/dist/engine/dynamic-migration-detector/catalog-loader.js.map +1 -0
  733. package/dist/engine/dynamic-migration-detector/manifest-readers-extended.d.ts +10 -0
  734. package/dist/engine/dynamic-migration-detector/manifest-readers-extended.d.ts.map +1 -0
  735. package/dist/engine/dynamic-migration-detector/manifest-readers-extended.js +165 -0
  736. package/dist/engine/dynamic-migration-detector/manifest-readers-extended.js.map +1 -0
  737. package/dist/engine/dynamic-migration-detector/manifest-readers.d.ts +17 -0
  738. package/dist/engine/dynamic-migration-detector/manifest-readers.d.ts.map +1 -0
  739. package/dist/engine/dynamic-migration-detector/manifest-readers.js +290 -0
  740. package/dist/engine/dynamic-migration-detector/manifest-readers.js.map +1 -0
  741. package/dist/engine/dynamic-migration-detector/plan-generator.d.ts +4 -0
  742. package/dist/engine/dynamic-migration-detector/plan-generator.d.ts.map +1 -0
  743. package/dist/engine/dynamic-migration-detector/plan-generator.js +168 -0
  744. package/dist/engine/dynamic-migration-detector/plan-generator.js.map +1 -0
  745. package/dist/engine/dynamic-migration-detector/risk-assessor.d.ts +8 -0
  746. package/dist/engine/dynamic-migration-detector/risk-assessor.d.ts.map +1 -0
  747. package/dist/engine/dynamic-migration-detector/risk-assessor.js +91 -0
  748. package/dist/engine/dynamic-migration-detector/risk-assessor.js.map +1 -0
  749. package/dist/engine/dynamic-migration-detector.d.ts +9 -0
  750. package/dist/engine/dynamic-migration-detector.d.ts.map +1 -0
  751. package/dist/engine/dynamic-migration-detector.js +106 -0
  752. package/dist/engine/dynamic-migration-detector.js.map +1 -0
  753. package/dist/engine/edge-db-detector.d.ts +7 -0
  754. package/dist/engine/edge-db-detector.d.ts.map +1 -0
  755. package/dist/engine/edge-db-detector.js +150 -0
  756. package/dist/engine/edge-db-detector.js.map +1 -0
  757. package/dist/engine/estimator/calculations.d.ts +14 -0
  758. package/dist/engine/estimator/calculations.d.ts.map +1 -0
  759. package/dist/engine/estimator/calculations.js +107 -0
  760. package/dist/engine/estimator/calculations.js.map +1 -0
  761. package/dist/engine/estimator/constants.d.ts +33 -0
  762. package/dist/engine/estimator/constants.d.ts.map +1 -0
  763. package/dist/engine/estimator/constants.js +71 -0
  764. package/dist/engine/estimator/constants.js.map +1 -0
  765. package/dist/engine/estimator/history.d.ts +16 -0
  766. package/dist/engine/estimator/history.d.ts.map +1 -0
  767. package/dist/engine/estimator/history.js +135 -0
  768. package/dist/engine/estimator/history.js.map +1 -0
  769. package/dist/engine/estimator-helpers.d.ts +14 -0
  770. package/dist/engine/estimator-helpers.d.ts.map +1 -0
  771. package/dist/engine/estimator-helpers.js +58 -0
  772. package/dist/engine/estimator-helpers.js.map +1 -0
  773. package/dist/engine/estimator.d.ts +3 -0
  774. package/dist/engine/estimator.d.ts.map +1 -0
  775. package/dist/engine/estimator.js +6 -0
  776. package/dist/engine/estimator.js.map +1 -0
  777. package/dist/engine/estimator.test.d.ts +2 -0
  778. package/dist/engine/estimator.test.d.ts.map +1 -0
  779. package/dist/engine/estimator.test.js +334 -0
  780. package/dist/engine/estimator.test.js.map +1 -0
  781. package/dist/engine/event-detector.d.ts +33 -0
  782. package/dist/engine/event-detector.d.ts.map +1 -0
  783. package/dist/engine/event-detector.js +90 -0
  784. package/dist/engine/event-detector.js.map +1 -0
  785. package/dist/engine/event-schema-validator/change-classifier.d.ts +14 -0
  786. package/dist/engine/event-schema-validator/change-classifier.d.ts.map +1 -0
  787. package/dist/engine/event-schema-validator/change-classifier.js +58 -0
  788. package/dist/engine/event-schema-validator/change-classifier.js.map +1 -0
  789. package/dist/engine/event-schema-validator/drift-detector.d.ts +7 -0
  790. package/dist/engine/event-schema-validator/drift-detector.d.ts.map +1 -0
  791. package/dist/engine/event-schema-validator/drift-detector.js +77 -0
  792. package/dist/engine/event-schema-validator/drift-detector.js.map +1 -0
  793. package/dist/engine/event-schema-validator/helpers.d.ts +5 -0
  794. package/dist/engine/event-schema-validator/helpers.d.ts.map +1 -0
  795. package/dist/engine/event-schema-validator/helpers.js +33 -0
  796. package/dist/engine/event-schema-validator/helpers.js.map +1 -0
  797. package/dist/engine/event-schema-validator/payload-validator.d.ts +11 -0
  798. package/dist/engine/event-schema-validator/payload-validator.d.ts.map +1 -0
  799. package/dist/engine/event-schema-validator/payload-validator.js +58 -0
  800. package/dist/engine/event-schema-validator/payload-validator.js.map +1 -0
  801. package/dist/engine/event-schema-validator/version-utils.d.ts +27 -0
  802. package/dist/engine/event-schema-validator/version-utils.d.ts.map +1 -0
  803. package/dist/engine/event-schema-validator/version-utils.js +61 -0
  804. package/dist/engine/event-schema-validator/version-utils.js.map +1 -0
  805. package/dist/engine/event-schema-validator.d.ts +5 -0
  806. package/dist/engine/event-schema-validator.d.ts.map +1 -0
  807. package/dist/engine/event-schema-validator.js +8 -0
  808. package/dist/engine/event-schema-validator.js.map +1 -0
  809. package/dist/engine/execution-plan/agent-execution-plan.d.ts +14 -0
  810. package/dist/engine/execution-plan/agent-execution-plan.d.ts.map +1 -0
  811. package/dist/engine/execution-plan/agent-execution-plan.js +47 -0
  812. package/dist/engine/execution-plan/agent-execution-plan.js.map +1 -0
  813. package/dist/engine/execution-plan/desktop-distribution.d.ts +11 -0
  814. package/dist/engine/execution-plan/desktop-distribution.d.ts.map +1 -0
  815. package/dist/engine/execution-plan/desktop-distribution.js +182 -0
  816. package/dist/engine/execution-plan/desktop-distribution.js.map +1 -0
  817. package/dist/engine/execution-plan/mobile-dist/expo-steps.d.ts +3 -0
  818. package/dist/engine/execution-plan/mobile-dist/expo-steps.d.ts.map +1 -0
  819. package/dist/engine/execution-plan/mobile-dist/expo-steps.js +118 -0
  820. package/dist/engine/execution-plan/mobile-dist/expo-steps.js.map +1 -0
  821. package/dist/engine/execution-plan/mobile-dist/flutter-steps.d.ts +3 -0
  822. package/dist/engine/execution-plan/mobile-dist/flutter-steps.d.ts.map +1 -0
  823. package/dist/engine/execution-plan/mobile-dist/flutter-steps.js +119 -0
  824. package/dist/engine/execution-plan/mobile-dist/flutter-steps.js.map +1 -0
  825. package/dist/engine/execution-plan/mobile-dist/native-steps.d.ts +3 -0
  826. package/dist/engine/execution-plan/mobile-dist/native-steps.d.ts.map +1 -0
  827. package/dist/engine/execution-plan/mobile-dist/native-steps.js +107 -0
  828. package/dist/engine/execution-plan/mobile-dist/native-steps.js.map +1 -0
  829. package/dist/engine/execution-plan/mobile-dist/rn-steps.d.ts +3 -0
  830. package/dist/engine/execution-plan/mobile-dist/rn-steps.d.ts.map +1 -0
  831. package/dist/engine/execution-plan/mobile-dist/rn-steps.js +118 -0
  832. package/dist/engine/execution-plan/mobile-dist/rn-steps.js.map +1 -0
  833. package/dist/engine/execution-plan/mobile-distribution.d.ts +17 -0
  834. package/dist/engine/execution-plan/mobile-distribution.d.ts.map +1 -0
  835. package/dist/engine/execution-plan/mobile-distribution.js +56 -0
  836. package/dist/engine/execution-plan/mobile-distribution.js.map +1 -0
  837. package/dist/engine/execution-plan/phases-b.d.ts +4 -0
  838. package/dist/engine/execution-plan/phases-b.d.ts.map +1 -0
  839. package/dist/engine/execution-plan/phases-b.js +88 -0
  840. package/dist/engine/execution-plan/phases-b.js.map +1 -0
  841. package/dist/engine/execution-plan/phases.d.ts +7 -0
  842. package/dist/engine/execution-plan/phases.d.ts.map +1 -0
  843. package/dist/engine/execution-plan/phases.js +217 -0
  844. package/dist/engine/execution-plan/phases.js.map +1 -0
  845. package/dist/engine/execution-plan/plan-utils.d.ts +10 -0
  846. package/dist/engine/execution-plan/plan-utils.d.ts.map +1 -0
  847. package/dist/engine/execution-plan/plan-utils.js +86 -0
  848. package/dist/engine/execution-plan/plan-utils.js.map +1 -0
  849. package/dist/engine/feasibility-validator.d.ts +7 -0
  850. package/dist/engine/feasibility-validator.d.ts.map +1 -0
  851. package/dist/engine/feasibility-validator.js +219 -0
  852. package/dist/engine/feasibility-validator.js.map +1 -0
  853. package/dist/engine/focus-tracker.d.ts +33 -0
  854. package/dist/engine/focus-tracker.d.ts.map +1 -0
  855. package/dist/engine/focus-tracker.js +124 -0
  856. package/dist/engine/focus-tracker.js.map +1 -0
  857. package/dist/engine/framework-detector.d.ts +34 -0
  858. package/dist/engine/framework-detector.d.ts.map +1 -0
  859. package/dist/engine/framework-detector.js +220 -0
  860. package/dist/engine/framework-detector.js.map +1 -0
  861. package/dist/engine/handoff-packager.d.ts +3 -0
  862. package/dist/engine/handoff-packager.d.ts.map +1 -0
  863. package/dist/engine/handoff-packager.js +175 -0
  864. package/dist/engine/handoff-packager.js.map +1 -0
  865. package/dist/engine/intent-mapper.d.ts +14 -0
  866. package/dist/engine/intent-mapper.d.ts.map +1 -0
  867. package/dist/engine/intent-mapper.js +91 -0
  868. package/dist/engine/intent-mapper.js.map +1 -0
  869. package/dist/engine/journey-guidance.d.ts +7 -0
  870. package/dist/engine/journey-guidance.d.ts.map +1 -0
  871. package/dist/engine/journey-guidance.js +168 -0
  872. package/dist/engine/journey-guidance.js.map +1 -0
  873. package/dist/engine/language-detector.d.ts +14 -0
  874. package/dist/engine/language-detector.d.ts.map +1 -0
  875. package/dist/engine/language-detector.js +251 -0
  876. package/dist/engine/language-detector.js.map +1 -0
  877. package/dist/engine/learning-router.d.ts +8 -0
  878. package/dist/engine/learning-router.d.ts.map +1 -0
  879. package/dist/engine/learning-router.js +157 -0
  880. package/dist/engine/learning-router.js.map +1 -0
  881. package/dist/engine/llm-security/eu-ai-act-checker.d.ts +14 -0
  882. package/dist/engine/llm-security/eu-ai-act-checker.d.ts.map +1 -0
  883. package/dist/engine/llm-security/eu-ai-act-checker.js +98 -0
  884. package/dist/engine/llm-security/eu-ai-act-checker.js.map +1 -0
  885. package/dist/engine/llm-security/index.d.ts +4 -0
  886. package/dist/engine/llm-security/index.d.ts.map +1 -0
  887. package/dist/engine/llm-security/index.js +6 -0
  888. package/dist/engine/llm-security/index.js.map +1 -0
  889. package/dist/engine/llm-security/mlops-requirements.d.ts +11 -0
  890. package/dist/engine/llm-security/mlops-requirements.d.ts.map +1 -0
  891. package/dist/engine/llm-security/mlops-requirements.js +80 -0
  892. package/dist/engine/llm-security/mlops-requirements.js.map +1 -0
  893. package/dist/engine/llm-security/owasp-llm-requirements.d.ts +36 -0
  894. package/dist/engine/llm-security/owasp-llm-requirements.d.ts.map +1 -0
  895. package/dist/engine/llm-security/owasp-llm-requirements.js +179 -0
  896. package/dist/engine/llm-security/owasp-llm-requirements.js.map +1 -0
  897. package/dist/engine/local-first/crdt-generator.d.ts +10 -0
  898. package/dist/engine/local-first/crdt-generator.d.ts.map +1 -0
  899. package/dist/engine/local-first/crdt-generator.js +77 -0
  900. package/dist/engine/local-first/crdt-generator.js.map +1 -0
  901. package/dist/engine/local-first/detector.d.ts +7 -0
  902. package/dist/engine/local-first/detector.d.ts.map +1 -0
  903. package/dist/engine/local-first/detector.js +233 -0
  904. package/dist/engine/local-first/detector.js.map +1 -0
  905. package/dist/engine/local-first/index.d.ts +8 -0
  906. package/dist/engine/local-first/index.d.ts.map +1 -0
  907. package/dist/engine/local-first/index.js +6 -0
  908. package/dist/engine/local-first/index.js.map +1 -0
  909. package/dist/engine/local-first/storage-advisor.d.ts +15 -0
  910. package/dist/engine/local-first/storage-advisor.d.ts.map +1 -0
  911. package/dist/engine/local-first/storage-advisor.js +107 -0
  912. package/dist/engine/local-first/storage-advisor.js.map +1 -0
  913. package/dist/engine/local-first/sync-generator.d.ts +10 -0
  914. package/dist/engine/local-first/sync-generator.d.ts.map +1 -0
  915. package/dist/engine/local-first/sync-generator.js +77 -0
  916. package/dist/engine/local-first/sync-generator.js.map +1 -0
  917. package/dist/engine/mermaid-generator.d.ts +38 -0
  918. package/dist/engine/mermaid-generator.d.ts.map +1 -0
  919. package/dist/engine/mermaid-generator.js +255 -0
  920. package/dist/engine/mermaid-generator.js.map +1 -0
  921. package/dist/engine/migration/db-migrator.d.ts +15 -0
  922. package/dist/engine/migration/db-migrator.d.ts.map +1 -0
  923. package/dist/engine/migration/db-migrator.js +234 -0
  924. package/dist/engine/migration/db-migrator.js.map +1 -0
  925. package/dist/engine/migration/equivalence-mapper.d.ts +4 -0
  926. package/dist/engine/migration/equivalence-mapper.d.ts.map +1 -0
  927. package/dist/engine/migration/equivalence-mapper.js +191 -0
  928. package/dist/engine/migration/equivalence-mapper.js.map +1 -0
  929. package/dist/engine/migration/feature-flag-generator.d.ts +8 -0
  930. package/dist/engine/migration/feature-flag-generator.d.ts.map +1 -0
  931. package/dist/engine/migration/feature-flag-generator.js +153 -0
  932. package/dist/engine/migration/feature-flag-generator.js.map +1 -0
  933. package/dist/engine/migration/index.d.ts +11 -0
  934. package/dist/engine/migration/index.d.ts.map +1 -0
  935. package/dist/engine/migration/index.js +14 -0
  936. package/dist/engine/migration/index.js.map +1 -0
  937. package/dist/engine/migration/migration-tracker.d.ts +11 -0
  938. package/dist/engine/migration/migration-tracker.d.ts.map +1 -0
  939. package/dist/engine/migration/migration-tracker.js +108 -0
  940. package/dist/engine/migration/migration-tracker.js.map +1 -0
  941. package/dist/engine/migration/parity-validator.d.ts +7 -0
  942. package/dist/engine/migration/parity-validator.d.ts.map +1 -0
  943. package/dist/engine/migration/parity-validator.js +91 -0
  944. package/dist/engine/migration/parity-validator.js.map +1 -0
  945. package/dist/engine/migration/plan-generator.d.ts +8 -0
  946. package/dist/engine/migration/plan-generator.d.ts.map +1 -0
  947. package/dist/engine/migration/plan-generator.js +159 -0
  948. package/dist/engine/migration/plan-generator.js.map +1 -0
  949. package/dist/engine/migration/rollback-planner.d.ts +18 -0
  950. package/dist/engine/migration/rollback-planner.d.ts.map +1 -0
  951. package/dist/engine/migration/rollback-planner.js +185 -0
  952. package/dist/engine/migration/rollback-planner.js.map +1 -0
  953. package/dist/engine/migration/service-catalogs.d.ts +5 -0
  954. package/dist/engine/migration/service-catalogs.d.ts.map +1 -0
  955. package/dist/engine/migration/service-catalogs.js +302 -0
  956. package/dist/engine/migration/service-catalogs.js.map +1 -0
  957. package/dist/engine/migration/service-migrator-catalogs.d.ts +5 -0
  958. package/dist/engine/migration/service-migrator-catalogs.d.ts.map +1 -0
  959. package/dist/engine/migration/service-migrator-catalogs.js +302 -0
  960. package/dist/engine/migration/service-migrator-catalogs.js.map +1 -0
  961. package/dist/engine/migration/service-migrator-planner.d.ts +4 -0
  962. package/dist/engine/migration/service-migrator-planner.d.ts.map +1 -0
  963. package/dist/engine/migration/service-migrator-planner.js +70 -0
  964. package/dist/engine/migration/service-migrator-planner.js.map +1 -0
  965. package/dist/engine/migration/service-migrator.d.ts +8 -0
  966. package/dist/engine/migration/service-migrator.d.ts.map +1 -0
  967. package/dist/engine/migration/service-migrator.js +94 -0
  968. package/dist/engine/migration/service-migrator.js.map +1 -0
  969. package/dist/engine/migration/stack-analyzer.d.ts +23 -0
  970. package/dist/engine/migration/stack-analyzer.d.ts.map +1 -0
  971. package/dist/engine/migration/stack-analyzer.js +111 -0
  972. package/dist/engine/migration/stack-analyzer.js.map +1 -0
  973. package/dist/engine/migration/strategy-advisor.d.ts +3 -0
  974. package/dist/engine/migration/strategy-advisor.d.ts.map +1 -0
  975. package/dist/engine/migration/strategy-advisor.js +92 -0
  976. package/dist/engine/migration/strategy-advisor.js.map +1 -0
  977. package/dist/engine/mobile-detector-android.d.ts +5 -0
  978. package/dist/engine/mobile-detector-android.d.ts.map +1 -0
  979. package/dist/engine/mobile-detector-android.js +172 -0
  980. package/dist/engine/mobile-detector-android.js.map +1 -0
  981. package/dist/engine/mobile-detector-ios.d.ts +4 -0
  982. package/dist/engine/mobile-detector-ios.d.ts.map +1 -0
  983. package/dist/engine/mobile-detector-ios.js +258 -0
  984. package/dist/engine/mobile-detector-ios.js.map +1 -0
  985. package/dist/engine/mobile-detector-shared.d.ts +4 -0
  986. package/dist/engine/mobile-detector-shared.d.ts.map +1 -0
  987. package/dist/engine/mobile-detector-shared.js +42 -0
  988. package/dist/engine/mobile-detector-shared.js.map +1 -0
  989. package/dist/engine/mobile-detector.d.ts +6 -0
  990. package/dist/engine/mobile-detector.d.ts.map +1 -0
  991. package/dist/engine/mobile-detector.js +41 -0
  992. package/dist/engine/mobile-detector.js.map +1 -0
  993. package/dist/engine/multi-agent/capability-registry.d.ts +38 -0
  994. package/dist/engine/multi-agent/capability-registry.d.ts.map +1 -0
  995. package/dist/engine/multi-agent/capability-registry.js +79 -0
  996. package/dist/engine/multi-agent/capability-registry.js.map +1 -0
  997. package/dist/engine/multi-agent/conflict-detector.d.ts +28 -0
  998. package/dist/engine/multi-agent/conflict-detector.d.ts.map +1 -0
  999. package/dist/engine/multi-agent/conflict-detector.js +167 -0
  1000. package/dist/engine/multi-agent/conflict-detector.js.map +1 -0
  1001. package/dist/engine/multi-agent/handoff-generator.d.ts +19 -0
  1002. package/dist/engine/multi-agent/handoff-generator.d.ts.map +1 -0
  1003. package/dist/engine/multi-agent/handoff-generator.js +68 -0
  1004. package/dist/engine/multi-agent/handoff-generator.js.map +1 -0
  1005. package/dist/engine/multi-agent/index.d.ts +6 -0
  1006. package/dist/engine/multi-agent/index.d.ts.map +1 -0
  1007. package/dist/engine/multi-agent/index.js +6 -0
  1008. package/dist/engine/multi-agent/index.js.map +1 -0
  1009. package/dist/engine/multi-agent/task-router.d.ts +8 -0
  1010. package/dist/engine/multi-agent/task-router.d.ts.map +1 -0
  1011. package/dist/engine/multi-agent/task-router.js +167 -0
  1012. package/dist/engine/multi-agent/task-router.js.map +1 -0
  1013. package/dist/engine/multi-app-detector/app-type.d.ts +9 -0
  1014. package/dist/engine/multi-app-detector/app-type.d.ts.map +1 -0
  1015. package/dist/engine/multi-app-detector/app-type.js +74 -0
  1016. package/dist/engine/multi-app-detector/app-type.js.map +1 -0
  1017. package/dist/engine/multi-app-detector/core.d.ts +46 -0
  1018. package/dist/engine/multi-app-detector/core.d.ts.map +1 -0
  1019. package/dist/engine/multi-app-detector/core.js +218 -0
  1020. package/dist/engine/multi-app-detector/core.js.map +1 -0
  1021. package/dist/engine/multi-app-detector.d.ts +3 -0
  1022. package/dist/engine/multi-app-detector.d.ts.map +1 -0
  1023. package/dist/engine/multi-app-detector.js +4 -0
  1024. package/dist/engine/multi-app-detector.js.map +1 -0
  1025. package/dist/engine/multi-tenancy-detector.d.ts +17 -0
  1026. package/dist/engine/multi-tenancy-detector.d.ts.map +1 -0
  1027. package/dist/engine/multi-tenancy-detector.js +126 -0
  1028. package/dist/engine/multi-tenancy-detector.js.map +1 -0
  1029. package/dist/engine/nfr-profile-detector.d.ts +20 -0
  1030. package/dist/engine/nfr-profile-detector.d.ts.map +1 -0
  1031. package/dist/engine/nfr-profile-detector.js +212 -0
  1032. package/dist/engine/nfr-profile-detector.js.map +1 -0
  1033. package/dist/engine/nli-context.d.ts +34 -0
  1034. package/dist/engine/nli-context.d.ts.map +1 -0
  1035. package/dist/engine/nli-context.js +176 -0
  1036. package/dist/engine/nli-context.js.map +1 -0
  1037. package/dist/engine/nli-keywords.d.ts +7 -0
  1038. package/dist/engine/nli-keywords.d.ts.map +1 -0
  1039. package/dist/engine/nli-keywords.js +246 -0
  1040. package/dist/engine/nli-keywords.js.map +1 -0
  1041. package/dist/engine/nli-resolver.d.ts +20 -0
  1042. package/dist/engine/nli-resolver.d.ts.map +1 -0
  1043. package/dist/engine/nli-resolver.js +230 -0
  1044. package/dist/engine/nli-resolver.js.map +1 -0
  1045. package/dist/engine/otel-requirements/index.d.ts +4 -0
  1046. package/dist/engine/otel-requirements/index.d.ts.map +1 -0
  1047. package/dist/engine/otel-requirements/index.js +7 -0
  1048. package/dist/engine/otel-requirements/index.js.map +1 -0
  1049. package/dist/engine/otel-requirements/metrics-requirements.d.ts +31 -0
  1050. package/dist/engine/otel-requirements/metrics-requirements.d.ts.map +1 -0
  1051. package/dist/engine/otel-requirements/metrics-requirements.js +98 -0
  1052. package/dist/engine/otel-requirements/metrics-requirements.js.map +1 -0
  1053. package/dist/engine/otel-requirements/slo-requirements.d.ts +33 -0
  1054. package/dist/engine/otel-requirements/slo-requirements.d.ts.map +1 -0
  1055. package/dist/engine/otel-requirements/slo-requirements.js +87 -0
  1056. package/dist/engine/otel-requirements/slo-requirements.js.map +1 -0
  1057. package/dist/engine/otel-requirements/trace-requirements.d.ts +22 -0
  1058. package/dist/engine/otel-requirements/trace-requirements.d.ts.map +1 -0
  1059. package/dist/engine/otel-requirements/trace-requirements.js +59 -0
  1060. package/dist/engine/otel-requirements/trace-requirements.js.map +1 -0
  1061. package/dist/engine/package-registry.d.ts +10 -0
  1062. package/dist/engine/package-registry.d.ts.map +1 -0
  1063. package/dist/engine/package-registry.js +258 -0
  1064. package/dist/engine/package-registry.js.map +1 -0
  1065. package/dist/engine/paradigm-advisor/recommendations.d.ts +23 -0
  1066. package/dist/engine/paradigm-advisor/recommendations.d.ts.map +1 -0
  1067. package/dist/engine/paradigm-advisor/recommendations.js +136 -0
  1068. package/dist/engine/paradigm-advisor/recommendations.js.map +1 -0
  1069. package/dist/engine/paradigm-advisor/tables.d.ts +18 -0
  1070. package/dist/engine/paradigm-advisor/tables.d.ts.map +1 -0
  1071. package/dist/engine/paradigm-advisor/tables.js +176 -0
  1072. package/dist/engine/paradigm-advisor/tables.js.map +1 -0
  1073. package/dist/engine/paradigm-advisor.d.ts +2 -0
  1074. package/dist/engine/paradigm-advisor.d.ts.map +1 -0
  1075. package/dist/engine/paradigm-advisor.js +5 -0
  1076. package/dist/engine/paradigm-advisor.js.map +1 -0
  1077. package/dist/engine/paradigm-detector.d.ts +12 -0
  1078. package/dist/engine/paradigm-detector.d.ts.map +1 -0
  1079. package/dist/engine/paradigm-detector.js +236 -0
  1080. package/dist/engine/paradigm-detector.js.map +1 -0
  1081. package/dist/engine/paradigm-drift-detector.d.ts +13 -0
  1082. package/dist/engine/paradigm-drift-detector.d.ts.map +1 -0
  1083. package/dist/engine/paradigm-drift-detector.js +20 -0
  1084. package/dist/engine/paradigm-drift-detector.js.map +1 -0
  1085. package/dist/engine/paradigm-registry.d.ts +20 -0
  1086. package/dist/engine/paradigm-registry.d.ts.map +1 -0
  1087. package/dist/engine/paradigm-registry.js +44 -0
  1088. package/dist/engine/paradigm-registry.js.map +1 -0
  1089. package/dist/engine/phase-tracker.d.ts +41 -0
  1090. package/dist/engine/phase-tracker.d.ts.map +1 -0
  1091. package/dist/engine/phase-tracker.js +89 -0
  1092. package/dist/engine/phase-tracker.js.map +1 -0
  1093. package/dist/engine/pii-detector/core.d.ts +10 -0
  1094. package/dist/engine/pii-detector/core.d.ts.map +1 -0
  1095. package/dist/engine/pii-detector/core.js +148 -0
  1096. package/dist/engine/pii-detector/core.js.map +1 -0
  1097. package/dist/engine/pii-detector/formatters.d.ts +20 -0
  1098. package/dist/engine/pii-detector/formatters.d.ts.map +1 -0
  1099. package/dist/engine/pii-detector/formatters.js +119 -0
  1100. package/dist/engine/pii-detector/formatters.js.map +1 -0
  1101. package/dist/engine/pii-detector/index.d.ts +4 -0
  1102. package/dist/engine/pii-detector/index.d.ts.map +1 -0
  1103. package/dist/engine/pii-detector/index.js +6 -0
  1104. package/dist/engine/pii-detector/index.js.map +1 -0
  1105. package/dist/engine/pii-detector/legal-framework.d.ts +16 -0
  1106. package/dist/engine/pii-detector/legal-framework.d.ts.map +1 -0
  1107. package/dist/engine/pii-detector/legal-framework.js +70 -0
  1108. package/dist/engine/pii-detector/legal-framework.js.map +1 -0
  1109. package/dist/engine/pii-detector.d.ts +2 -0
  1110. package/dist/engine/pii-detector.d.ts.map +1 -0
  1111. package/dist/engine/pii-detector.js +4 -0
  1112. package/dist/engine/pii-detector.js.map +1 -0
  1113. package/dist/engine/platform-detector/desktop.d.ts +15 -0
  1114. package/dist/engine/platform-detector/desktop.d.ts.map +1 -0
  1115. package/dist/engine/platform-detector/desktop.js +60 -0
  1116. package/dist/engine/platform-detector/desktop.js.map +1 -0
  1117. package/dist/engine/platform-detector/extensions.d.ts +11 -0
  1118. package/dist/engine/platform-detector/extensions.d.ts.map +1 -0
  1119. package/dist/engine/platform-detector/extensions.js +76 -0
  1120. package/dist/engine/platform-detector/extensions.js.map +1 -0
  1121. package/dist/engine/platform-detector/games.d.ts +16 -0
  1122. package/dist/engine/platform-detector/games.d.ts.map +1 -0
  1123. package/dist/engine/platform-detector/games.js +68 -0
  1124. package/dist/engine/platform-detector/games.js.map +1 -0
  1125. package/dist/engine/platform-detector.d.ts +13 -0
  1126. package/dist/engine/platform-detector.d.ts.map +1 -0
  1127. package/dist/engine/platform-detector.js +66 -0
  1128. package/dist/engine/platform-detector.js.map +1 -0
  1129. package/dist/engine/platform-engineering/dora-advisor.d.ts +23 -0
  1130. package/dist/engine/platform-engineering/dora-advisor.d.ts.map +1 -0
  1131. package/dist/engine/platform-engineering/dora-advisor.js +94 -0
  1132. package/dist/engine/platform-engineering/dora-advisor.js.map +1 -0
  1133. package/dist/engine/platform-engineering/dx-analyzer.d.ts +12 -0
  1134. package/dist/engine/platform-engineering/dx-analyzer.d.ts.map +1 -0
  1135. package/dist/engine/platform-engineering/dx-analyzer.js +180 -0
  1136. package/dist/engine/platform-engineering/dx-analyzer.js.map +1 -0
  1137. package/dist/engine/platform-engineering/golden-path-generator.d.ts +19 -0
  1138. package/dist/engine/platform-engineering/golden-path-generator.d.ts.map +1 -0
  1139. package/dist/engine/platform-engineering/golden-path-generator.js +125 -0
  1140. package/dist/engine/platform-engineering/golden-path-generator.js.map +1 -0
  1141. package/dist/engine/platform-engineering/idp-detector.d.ts +11 -0
  1142. package/dist/engine/platform-engineering/idp-detector.d.ts.map +1 -0
  1143. package/dist/engine/platform-engineering/idp-detector.js +265 -0
  1144. package/dist/engine/platform-engineering/idp-detector.js.map +1 -0
  1145. package/dist/engine/pm-integrator.d.ts +24 -0
  1146. package/dist/engine/pm-integrator.d.ts.map +1 -0
  1147. package/dist/engine/pm-integrator.js +179 -0
  1148. package/dist/engine/pm-integrator.js.map +1 -0
  1149. package/dist/engine/pm-platform-creators.d.ts +35 -0
  1150. package/dist/engine/pm-platform-creators.d.ts.map +1 -0
  1151. package/dist/engine/pm-platform-creators.js +269 -0
  1152. package/dist/engine/pm-platform-creators.js.map +1 -0
  1153. package/dist/engine/react-detector.d.ts +10 -0
  1154. package/dist/engine/react-detector.d.ts.map +1 -0
  1155. package/dist/engine/react-detector.js +174 -0
  1156. package/dist/engine/react-detector.js.map +1 -0
  1157. package/dist/engine/readiness-checker.d.ts +3 -0
  1158. package/dist/engine/readiness-checker.d.ts.map +1 -0
  1159. package/dist/engine/readiness-checker.js +182 -0
  1160. package/dist/engine/readiness-checker.js.map +1 -0
  1161. package/dist/engine/registry-extender.d.ts +25 -0
  1162. package/dist/engine/registry-extender.d.ts.map +1 -0
  1163. package/dist/engine/registry-extender.js +60 -0
  1164. package/dist/engine/registry-extender.js.map +1 -0
  1165. package/dist/engine/registry-updater.d.ts +11 -0
  1166. package/dist/engine/registry-updater.d.ts.map +1 -0
  1167. package/dist/engine/registry-updater.js +137 -0
  1168. package/dist/engine/registry-updater.js.map +1 -0
  1169. package/dist/engine/resilience-detector/concurrency-detector.d.ts +15 -0
  1170. package/dist/engine/resilience-detector/concurrency-detector.d.ts.map +1 -0
  1171. package/dist/engine/resilience-detector/concurrency-detector.js +165 -0
  1172. package/dist/engine/resilience-detector/concurrency-detector.js.map +1 -0
  1173. package/dist/engine/resilience-detector/helpers.d.ts +5 -0
  1174. package/dist/engine/resilience-detector/helpers.d.ts.map +1 -0
  1175. package/dist/engine/resilience-detector/helpers.js +62 -0
  1176. package/dist/engine/resilience-detector/helpers.js.map +1 -0
  1177. package/dist/engine/resilience-detector/microservice-detector.d.ts +7 -0
  1178. package/dist/engine/resilience-detector/microservice-detector.d.ts.map +1 -0
  1179. package/dist/engine/resilience-detector/microservice-detector.js +80 -0
  1180. package/dist/engine/resilience-detector/microservice-detector.js.map +1 -0
  1181. package/dist/engine/resilience-detector/middleware-detector.d.ts +8 -0
  1182. package/dist/engine/resilience-detector/middleware-detector.d.ts.map +1 -0
  1183. package/dist/engine/resilience-detector/middleware-detector.js +96 -0
  1184. package/dist/engine/resilience-detector/middleware-detector.js.map +1 -0
  1185. package/dist/engine/resilience-detector/ratelimit-detector.d.ts +10 -0
  1186. package/dist/engine/resilience-detector/ratelimit-detector.d.ts.map +1 -0
  1187. package/dist/engine/resilience-detector/ratelimit-detector.js +55 -0
  1188. package/dist/engine/resilience-detector/ratelimit-detector.js.map +1 -0
  1189. package/dist/engine/resilience-detector/validation-detector.d.ts +9 -0
  1190. package/dist/engine/resilience-detector/validation-detector.d.ts.map +1 -0
  1191. package/dist/engine/resilience-detector/validation-detector.js +30 -0
  1192. package/dist/engine/resilience-detector/validation-detector.js.map +1 -0
  1193. package/dist/engine/resilience-detector.d.ts +12 -0
  1194. package/dist/engine/resilience-detector.d.ts.map +1 -0
  1195. package/dist/engine/resilience-detector.js +36 -0
  1196. package/dist/engine/resilience-detector.js.map +1 -0
  1197. package/dist/engine/scope-filter.d.ts +26 -0
  1198. package/dist/engine/scope-filter.d.ts.map +1 -0
  1199. package/dist/engine/scope-filter.js +109 -0
  1200. package/dist/engine/scope-filter.js.map +1 -0
  1201. package/dist/engine/scope-guardian.d.ts +15 -0
  1202. package/dist/engine/scope-guardian.d.ts.map +1 -0
  1203. package/dist/engine/scope-guardian.js +115 -0
  1204. package/dist/engine/scope-guardian.js.map +1 -0
  1205. package/dist/engine/security-analyzer/config-loader.d.ts +3 -0
  1206. package/dist/engine/security-analyzer/config-loader.d.ts.map +1 -0
  1207. package/dist/engine/security-analyzer/config-loader.js +14 -0
  1208. package/dist/engine/security-analyzer/config-loader.js.map +1 -0
  1209. package/dist/engine/security-analyzer/criteria-generator.d.ts +6 -0
  1210. package/dist/engine/security-analyzer/criteria-generator.d.ts.map +1 -0
  1211. package/dist/engine/security-analyzer/criteria-generator.js +77 -0
  1212. package/dist/engine/security-analyzer/criteria-generator.js.map +1 -0
  1213. package/dist/engine/security-analyzer/profile-detector.d.ts +4 -0
  1214. package/dist/engine/security-analyzer/profile-detector.d.ts.map +1 -0
  1215. package/dist/engine/security-analyzer/profile-detector.js +54 -0
  1216. package/dist/engine/security-analyzer/profile-detector.js.map +1 -0
  1217. package/dist/engine/security-analyzer/report-builder.d.ts +3 -0
  1218. package/dist/engine/security-analyzer/report-builder.d.ts.map +1 -0
  1219. package/dist/engine/security-analyzer/report-builder.js +39 -0
  1220. package/dist/engine/security-analyzer/report-builder.js.map +1 -0
  1221. package/dist/engine/security-analyzer/scoring.d.ts +5 -0
  1222. package/dist/engine/security-analyzer/scoring.d.ts.map +1 -0
  1223. package/dist/engine/security-analyzer/scoring.js +106 -0
  1224. package/dist/engine/security-analyzer/scoring.js.map +1 -0
  1225. package/dist/engine/security-analyzer.d.ts +6 -0
  1226. package/dist/engine/security-analyzer.d.ts.map +1 -0
  1227. package/dist/engine/security-analyzer.js +9 -0
  1228. package/dist/engine/security-analyzer.js.map +1 -0
  1229. package/dist/engine/self-improver.d.ts +8 -0
  1230. package/dist/engine/self-improver.d.ts.map +1 -0
  1231. package/dist/engine/self-improver.js +135 -0
  1232. package/dist/engine/self-improver.js.map +1 -0
  1233. package/dist/engine/session-journal.d.ts +20 -0
  1234. package/dist/engine/session-journal.d.ts.map +1 -0
  1235. package/dist/engine/session-journal.js +152 -0
  1236. package/dist/engine/session-journal.js.map +1 -0
  1237. package/dist/engine/skill-generator/detect.d.ts +24 -0
  1238. package/dist/engine/skill-generator/detect.d.ts.map +1 -0
  1239. package/dist/engine/skill-generator/detect.js +113 -0
  1240. package/dist/engine/skill-generator/detect.js.map +1 -0
  1241. package/dist/engine/skill-generator/format.d.ts +8 -0
  1242. package/dist/engine/skill-generator/format.d.ts.map +1 -0
  1243. package/dist/engine/skill-generator/format.js +74 -0
  1244. package/dist/engine/skill-generator/format.js.map +1 -0
  1245. package/dist/engine/skill-generator/sections-knowledge.d.ts +8 -0
  1246. package/dist/engine/skill-generator/sections-knowledge.d.ts.map +1 -0
  1247. package/dist/engine/skill-generator/sections-knowledge.js +135 -0
  1248. package/dist/engine/skill-generator/sections-knowledge.js.map +1 -0
  1249. package/dist/engine/skill-generator/sections-platform.d.ts +7 -0
  1250. package/dist/engine/skill-generator/sections-platform.d.ts.map +1 -0
  1251. package/dist/engine/skill-generator/sections-platform.js +197 -0
  1252. package/dist/engine/skill-generator/sections-platform.js.map +1 -0
  1253. package/dist/engine/skill-generator/sections.d.ts +3 -0
  1254. package/dist/engine/skill-generator/sections.d.ts.map +1 -0
  1255. package/dist/engine/skill-generator/sections.js +4 -0
  1256. package/dist/engine/skill-generator/sections.js.map +1 -0
  1257. package/dist/engine/skill-generator/skills-content.d.ts +8 -0
  1258. package/dist/engine/skill-generator/skills-content.d.ts.map +1 -0
  1259. package/dist/engine/skill-generator/skills-content.js +177 -0
  1260. package/dist/engine/skill-generator/skills-content.js.map +1 -0
  1261. package/dist/engine/skill-generator/skills-orchestration.d.ts +3 -0
  1262. package/dist/engine/skill-generator/skills-orchestration.d.ts.map +1 -0
  1263. package/dist/engine/skill-generator/skills-orchestration.js +174 -0
  1264. package/dist/engine/skill-generator/skills-orchestration.js.map +1 -0
  1265. package/dist/engine/skill-generator/skills.d.ts +3 -0
  1266. package/dist/engine/skill-generator/skills.d.ts.map +1 -0
  1267. package/dist/engine/skill-generator/skills.js +5 -0
  1268. package/dist/engine/skill-generator/skills.js.map +1 -0
  1269. package/dist/engine/skill-generator.d.ts +19 -0
  1270. package/dist/engine/skill-generator.d.ts.map +1 -0
  1271. package/dist/engine/skill-generator.js +135 -0
  1272. package/dist/engine/skill-generator.js.map +1 -0
  1273. package/dist/engine/skill-generator.test.d.ts +2 -0
  1274. package/dist/engine/skill-generator.test.d.ts.map +1 -0
  1275. package/dist/engine/skill-generator.test.js +742 -0
  1276. package/dist/engine/skill-generator.test.js.map +1 -0
  1277. package/dist/engine/solidity-auditor.d.ts +7 -0
  1278. package/dist/engine/solidity-auditor.d.ts.map +1 -0
  1279. package/dist/engine/solidity-auditor.js +182 -0
  1280. package/dist/engine/solidity-auditor.js.map +1 -0
  1281. package/dist/engine/spec-splitter.d.ts +15 -0
  1282. package/dist/engine/spec-splitter.d.ts.map +1 -0
  1283. package/dist/engine/spec-splitter.js +201 -0
  1284. package/dist/engine/spec-splitter.js.map +1 -0
  1285. package/dist/engine/spec-versioner.d.ts +28 -0
  1286. package/dist/engine/spec-versioner.d.ts.map +1 -0
  1287. package/dist/engine/spec-versioner.js +92 -0
  1288. package/dist/engine/spec-versioner.js.map +1 -0
  1289. package/dist/engine/stack-auditor/build-tool-auditor.d.ts +8 -0
  1290. package/dist/engine/stack-auditor/build-tool-auditor.d.ts.map +1 -0
  1291. package/dist/engine/stack-auditor/build-tool-auditor.js +125 -0
  1292. package/dist/engine/stack-auditor/build-tool-auditor.js.map +1 -0
  1293. package/dist/engine/stack-auditor/health-scorer.d.ts +26 -0
  1294. package/dist/engine/stack-auditor/health-scorer.d.ts.map +1 -0
  1295. package/dist/engine/stack-auditor/health-scorer.js +122 -0
  1296. package/dist/engine/stack-auditor/health-scorer.js.map +1 -0
  1297. package/dist/engine/stack-auditor/index.d.ts +6 -0
  1298. package/dist/engine/stack-auditor/index.d.ts.map +1 -0
  1299. package/dist/engine/stack-auditor/index.js +89 -0
  1300. package/dist/engine/stack-auditor/index.js.map +1 -0
  1301. package/dist/engine/stack-auditor/manifest-reader.d.ts +14 -0
  1302. package/dist/engine/stack-auditor/manifest-reader.d.ts.map +1 -0
  1303. package/dist/engine/stack-auditor/manifest-reader.js +219 -0
  1304. package/dist/engine/stack-auditor/manifest-reader.js.map +1 -0
  1305. package/dist/engine/stack-auditor/vulnerability-scanner.d.ts +10 -0
  1306. package/dist/engine/stack-auditor/vulnerability-scanner.d.ts.map +1 -0
  1307. package/dist/engine/stack-auditor/vulnerability-scanner.js +107 -0
  1308. package/dist/engine/stack-auditor/vulnerability-scanner.js.map +1 -0
  1309. package/dist/engine/supply-chain/build-checker.d.ts +10 -0
  1310. package/dist/engine/supply-chain/build-checker.d.ts.map +1 -0
  1311. package/dist/engine/supply-chain/build-checker.js +153 -0
  1312. package/dist/engine/supply-chain/build-checker.js.map +1 -0
  1313. package/dist/engine/supply-chain/dependency-checker.d.ts +10 -0
  1314. package/dist/engine/supply-chain/dependency-checker.d.ts.map +1 -0
  1315. package/dist/engine/supply-chain/dependency-checker.js +161 -0
  1316. package/dist/engine/supply-chain/dependency-checker.js.map +1 -0
  1317. package/dist/engine/supply-chain/index.d.ts +12 -0
  1318. package/dist/engine/supply-chain/index.d.ts.map +1 -0
  1319. package/dist/engine/supply-chain/index.js +38 -0
  1320. package/dist/engine/supply-chain/index.js.map +1 -0
  1321. package/dist/engine/supply-chain/sbom-checker.d.ts +11 -0
  1322. package/dist/engine/supply-chain/sbom-checker.d.ts.map +1 -0
  1323. package/dist/engine/supply-chain/sbom-checker.js +171 -0
  1324. package/dist/engine/supply-chain/sbom-checker.js.map +1 -0
  1325. package/dist/engine/supply-chain/slsa-checker.d.ts +30 -0
  1326. package/dist/engine/supply-chain/slsa-checker.d.ts.map +1 -0
  1327. package/dist/engine/supply-chain/slsa-checker.js +245 -0
  1328. package/dist/engine/supply-chain/slsa-checker.js.map +1 -0
  1329. package/dist/engine/test-contract-generator.d.ts +18 -0
  1330. package/dist/engine/test-contract-generator.d.ts.map +1 -0
  1331. package/dist/engine/test-contract-generator.js +178 -0
  1332. package/dist/engine/test-contract-generator.js.map +1 -0
  1333. package/dist/engine/test-framework-detector/detectors.d.ts +10 -0
  1334. package/dist/engine/test-framework-detector/detectors.d.ts.map +1 -0
  1335. package/dist/engine/test-framework-detector/detectors.js +246 -0
  1336. package/dist/engine/test-framework-detector/detectors.js.map +1 -0
  1337. package/dist/engine/test-framework-detector/strategy.d.ts +10 -0
  1338. package/dist/engine/test-framework-detector/strategy.d.ts.map +1 -0
  1339. package/dist/engine/test-framework-detector/strategy.js +40 -0
  1340. package/dist/engine/test-framework-detector/strategy.js.map +1 -0
  1341. package/dist/engine/test-framework-detector.d.ts +3 -0
  1342. package/dist/engine/test-framework-detector.d.ts.map +1 -0
  1343. package/dist/engine/test-framework-detector.js +5 -0
  1344. package/dist/engine/test-framework-detector.js.map +1 -0
  1345. package/dist/engine/test-generators/agent-test-pytest.d.ts +2 -0
  1346. package/dist/engine/test-generators/agent-test-pytest.d.ts.map +1 -0
  1347. package/dist/engine/test-generators/agent-test-pytest.js +93 -0
  1348. package/dist/engine/test-generators/agent-test-pytest.js.map +1 -0
  1349. package/dist/engine/test-generators/agent-test-templates.d.ts +15 -0
  1350. package/dist/engine/test-generators/agent-test-templates.d.ts.map +1 -0
  1351. package/dist/engine/test-generators/agent-test-templates.js +247 -0
  1352. package/dist/engine/test-generators/agent-test-templates.js.map +1 -0
  1353. package/dist/engine/test-generators/contract-test-generator.d.ts +24 -0
  1354. package/dist/engine/test-generators/contract-test-generator.d.ts.map +1 -0
  1355. package/dist/engine/test-generators/contract-test-generator.js +287 -0
  1356. package/dist/engine/test-generators/contract-test-generator.js.map +1 -0
  1357. package/dist/engine/test-generators/mock-generator.d.ts +18 -0
  1358. package/dist/engine/test-generators/mock-generator.d.ts.map +1 -0
  1359. package/dist/engine/test-generators/mock-generator.js +203 -0
  1360. package/dist/engine/test-generators/mock-generator.js.map +1 -0
  1361. package/dist/engine/test-generators/platform-test-templates-b.d.ts +10 -0
  1362. package/dist/engine/test-generators/platform-test-templates-b.d.ts.map +1 -0
  1363. package/dist/engine/test-generators/platform-test-templates-b.js +188 -0
  1364. package/dist/engine/test-generators/platform-test-templates-b.js.map +1 -0
  1365. package/dist/engine/test-generators/platform-test-templates-ml.d.ts +3 -0
  1366. package/dist/engine/test-generators/platform-test-templates-ml.d.ts.map +1 -0
  1367. package/dist/engine/test-generators/platform-test-templates-ml.js +119 -0
  1368. package/dist/engine/test-generators/platform-test-templates-ml.js.map +1 -0
  1369. package/dist/engine/test-generators/platform-test-templates.d.ts +28 -0
  1370. package/dist/engine/test-generators/platform-test-templates.d.ts.map +1 -0
  1371. package/dist/engine/test-generators/platform-test-templates.js +263 -0
  1372. package/dist/engine/test-generators/platform-test-templates.js.map +1 -0
  1373. package/dist/engine/test-mocks-generator/mock-templates-b.d.ts +4 -0
  1374. package/dist/engine/test-mocks-generator/mock-templates-b.d.ts.map +1 -0
  1375. package/dist/engine/test-mocks-generator/mock-templates-b.js +196 -0
  1376. package/dist/engine/test-mocks-generator/mock-templates-b.js.map +1 -0
  1377. package/dist/engine/test-mocks-generator/mock-templates.d.ts +4 -0
  1378. package/dist/engine/test-mocks-generator/mock-templates.d.ts.map +1 -0
  1379. package/dist/engine/test-mocks-generator/mock-templates.js +114 -0
  1380. package/dist/engine/test-mocks-generator/mock-templates.js.map +1 -0
  1381. package/dist/engine/test-mocks-generator.d.ts +15 -0
  1382. package/dist/engine/test-mocks-generator.d.ts.map +1 -0
  1383. package/dist/engine/test-mocks-generator.js +52 -0
  1384. package/dist/engine/test-mocks-generator.js.map +1 -0
  1385. package/dist/engine/test-scaffold-generator/advanced-scaffold.d.ts +18 -0
  1386. package/dist/engine/test-scaffold-generator/advanced-scaffold.d.ts.map +1 -0
  1387. package/dist/engine/test-scaffold-generator/advanced-scaffold.js +227 -0
  1388. package/dist/engine/test-scaffold-generator/advanced-scaffold.js.map +1 -0
  1389. package/dist/engine/test-scaffold-generator/helpers.d.ts +6 -0
  1390. package/dist/engine/test-scaffold-generator/helpers.d.ts.map +1 -0
  1391. package/dist/engine/test-scaffold-generator/helpers.js +36 -0
  1392. package/dist/engine/test-scaffold-generator/helpers.js.map +1 -0
  1393. package/dist/engine/test-scaffold-generator/unit-scaffold.d.ts +10 -0
  1394. package/dist/engine/test-scaffold-generator/unit-scaffold.d.ts.map +1 -0
  1395. package/dist/engine/test-scaffold-generator/unit-scaffold.js +87 -0
  1396. package/dist/engine/test-scaffold-generator/unit-scaffold.js.map +1 -0
  1397. package/dist/engine/test-scaffold-generator.d.ts +4 -0
  1398. package/dist/engine/test-scaffold-generator.d.ts.map +1 -0
  1399. package/dist/engine/test-scaffold-generator.js +8 -0
  1400. package/dist/engine/test-scaffold-generator.js.map +1 -0
  1401. package/dist/engine/token-tracker.d.ts +11 -0
  1402. package/dist/engine/token-tracker.d.ts.map +1 -0
  1403. package/dist/engine/token-tracker.js +176 -0
  1404. package/dist/engine/token-tracker.js.map +1 -0
  1405. package/dist/engine/upgrade-planner/breaking-change-parser.d.ts +6 -0
  1406. package/dist/engine/upgrade-planner/breaking-change-parser.d.ts.map +1 -0
  1407. package/dist/engine/upgrade-planner/breaking-change-parser.js +101 -0
  1408. package/dist/engine/upgrade-planner/breaking-change-parser.js.map +1 -0
  1409. package/dist/engine/upgrade-planner/impact-analyzer.d.ts +7 -0
  1410. package/dist/engine/upgrade-planner/impact-analyzer.d.ts.map +1 -0
  1411. package/dist/engine/upgrade-planner/impact-analyzer.js +65 -0
  1412. package/dist/engine/upgrade-planner/impact-analyzer.js.map +1 -0
  1413. package/dist/engine/upgrade-planner/index.d.ts +11 -0
  1414. package/dist/engine/upgrade-planner/index.d.ts.map +1 -0
  1415. package/dist/engine/upgrade-planner/index.js +102 -0
  1416. package/dist/engine/upgrade-planner/index.js.map +1 -0
  1417. package/dist/engine/validator/analyzer.d.ts +22 -0
  1418. package/dist/engine/validator/analyzer.d.ts.map +1 -0
  1419. package/dist/engine/validator/analyzer.js +224 -0
  1420. package/dist/engine/validator/analyzer.js.map +1 -0
  1421. package/dist/engine/validator/checklist.d.ts +10 -0
  1422. package/dist/engine/validator/checklist.d.ts.map +1 -0
  1423. package/dist/engine/validator/checklist.js +147 -0
  1424. package/dist/engine/validator/checklist.js.map +1 -0
  1425. package/dist/engine/validator/dor-dod.d.ts +10 -0
  1426. package/dist/engine/validator/dor-dod.d.ts.map +1 -0
  1427. package/dist/engine/validator/dor-dod.js +199 -0
  1428. package/dist/engine/validator/dor-dod.js.map +1 -0
  1429. package/dist/engine/validator/extractors.d.ts +14 -0
  1430. package/dist/engine/validator/extractors.d.ts.map +1 -0
  1431. package/dist/engine/validator/extractors.js +108 -0
  1432. package/dist/engine/validator/extractors.js.map +1 -0
  1433. package/dist/engine/validator.d.ts +15 -0
  1434. package/dist/engine/validator.d.ts.map +1 -0
  1435. package/dist/engine/validator.js +96 -0
  1436. package/dist/engine/validator.js.map +1 -0
  1437. package/dist/engine/validator.test.d.ts +2 -0
  1438. package/dist/engine/validator.test.d.ts.map +1 -0
  1439. package/dist/engine/validator.test.js +2371 -0
  1440. package/dist/engine/validator.test.js.map +1 -0
  1441. package/dist/engine/web-fetcher/cache.d.ts +6 -0
  1442. package/dist/engine/web-fetcher/cache.d.ts.map +1 -0
  1443. package/dist/engine/web-fetcher/cache.js +27 -0
  1444. package/dist/engine/web-fetcher/cache.js.map +1 -0
  1445. package/dist/engine/web-fetcher/content-extractor.d.ts +8 -0
  1446. package/dist/engine/web-fetcher/content-extractor.d.ts.map +1 -0
  1447. package/dist/engine/web-fetcher/content-extractor.js +81 -0
  1448. package/dist/engine/web-fetcher/content-extractor.js.map +1 -0
  1449. package/dist/engine/web-fetcher/docs-fetcher.d.ts +3 -0
  1450. package/dist/engine/web-fetcher/docs-fetcher.d.ts.map +1 -0
  1451. package/dist/engine/web-fetcher/docs-fetcher.js +60 -0
  1452. package/dist/engine/web-fetcher/docs-fetcher.js.map +1 -0
  1453. package/dist/engine/web-fetcher/http-client.d.ts +7 -0
  1454. package/dist/engine/web-fetcher/http-client.d.ts.map +1 -0
  1455. package/dist/engine/web-fetcher/http-client.js +38 -0
  1456. package/dist/engine/web-fetcher/http-client.js.map +1 -0
  1457. package/dist/engine/web-fetcher/registry-loader.d.ts +10 -0
  1458. package/dist/engine/web-fetcher/registry-loader.d.ts.map +1 -0
  1459. package/dist/engine/web-fetcher/registry-loader.js +60 -0
  1460. package/dist/engine/web-fetcher/registry-loader.js.map +1 -0
  1461. package/dist/engine/web-fetcher/stack-advisor.d.ts +15 -0
  1462. package/dist/engine/web-fetcher/stack-advisor.d.ts.map +1 -0
  1463. package/dist/engine/web-fetcher/stack-advisor.js +290 -0
  1464. package/dist/engine/web-fetcher/stack-advisor.js.map +1 -0
  1465. package/dist/engine/web-fetcher/version-checker.d.ts +4 -0
  1466. package/dist/engine/web-fetcher/version-checker.d.ts.map +1 -0
  1467. package/dist/engine/web-fetcher/version-checker.js +30 -0
  1468. package/dist/engine/web-fetcher/version-checker.js.map +1 -0
  1469. package/dist/engine/web-fetcher.d.ts +9 -0
  1470. package/dist/engine/web-fetcher.d.ts.map +1 -0
  1471. package/dist/engine/web-fetcher.js +40 -0
  1472. package/dist/engine/web-fetcher.js.map +1 -0
  1473. package/dist/engine/web-fetcher.test.d.ts +2 -0
  1474. package/dist/engine/web-fetcher.test.d.ts.map +1 -0
  1475. package/dist/engine/web-fetcher.test.js +360 -0
  1476. package/dist/engine/web-fetcher.test.js.map +1 -0
  1477. package/dist/engine/workflow-validator/git-flow.d.ts +3 -0
  1478. package/dist/engine/workflow-validator/git-flow.d.ts.map +1 -0
  1479. package/dist/engine/workflow-validator/git-flow.js +119 -0
  1480. package/dist/engine/workflow-validator/git-flow.js.map +1 -0
  1481. package/dist/engine/workflow-validator/mcp-conventions.d.ts +3 -0
  1482. package/dist/engine/workflow-validator/mcp-conventions.d.ts.map +1 -0
  1483. package/dist/engine/workflow-validator/mcp-conventions.js +142 -0
  1484. package/dist/engine/workflow-validator/mcp-conventions.js.map +1 -0
  1485. package/dist/engine/workflow-validator/model-selector.d.ts +9 -0
  1486. package/dist/engine/workflow-validator/model-selector.d.ts.map +1 -0
  1487. package/dist/engine/workflow-validator/model-selector.js +127 -0
  1488. package/dist/engine/workflow-validator/model-selector.js.map +1 -0
  1489. package/dist/engine/workflow-validator/worktree-protocol.d.ts +4 -0
  1490. package/dist/engine/workflow-validator/worktree-protocol.d.ts.map +1 -0
  1491. package/dist/engine/workflow-validator/worktree-protocol.js +92 -0
  1492. package/dist/engine/workflow-validator/worktree-protocol.js.map +1 -0
  1493. package/dist/engine/workflow-validator.d.ts +5 -0
  1494. package/dist/engine/workflow-validator.d.ts.map +1 -0
  1495. package/dist/engine/workflow-validator.js +8 -0
  1496. package/dist/engine/workflow-validator.js.map +1 -0
  1497. package/dist/i18n/index.d.ts +43 -0
  1498. package/dist/i18n/index.d.ts.map +1 -0
  1499. package/dist/i18n/index.js +283 -0
  1500. package/dist/i18n/index.js.map +1 -0
  1501. package/dist/i18n/index.test.d.ts +2 -0
  1502. package/dist/i18n/index.test.d.ts.map +1 -0
  1503. package/dist/i18n/index.test.js +375 -0
  1504. package/dist/i18n/index.test.js.map +1 -0
  1505. package/dist/index.d.ts +3 -0
  1506. package/dist/index.d.ts.map +1 -0
  1507. package/dist/index.js +69 -0
  1508. package/dist/index.js.map +1 -0
  1509. package/dist/index.test.d.ts +2 -0
  1510. package/dist/index.test.d.ts.map +1 -0
  1511. package/dist/index.test.js +124 -0
  1512. package/dist/index.test.js.map +1 -0
  1513. package/dist/resources/patterns.d.ts +11 -0
  1514. package/dist/resources/patterns.d.ts.map +1 -0
  1515. package/dist/resources/patterns.js +69 -0
  1516. package/dist/resources/patterns.js.map +1 -0
  1517. package/dist/resources/patterns.test.d.ts +2 -0
  1518. package/dist/resources/patterns.test.d.ts.map +1 -0
  1519. package/dist/resources/patterns.test.js +142 -0
  1520. package/dist/resources/patterns.test.js.map +1 -0
  1521. package/dist/resources/process.d.ts +11 -0
  1522. package/dist/resources/process.d.ts.map +1 -0
  1523. package/dist/resources/process.js +117 -0
  1524. package/dist/resources/process.js.map +1 -0
  1525. package/dist/resources/process.test.d.ts +2 -0
  1526. package/dist/resources/process.test.d.ts.map +1 -0
  1527. package/dist/resources/process.test.js +48 -0
  1528. package/dist/resources/process.test.js.map +1 -0
  1529. package/dist/resources/registry.d.ts +6 -0
  1530. package/dist/resources/registry.d.ts.map +1 -0
  1531. package/dist/resources/registry.js +43 -0
  1532. package/dist/resources/registry.js.map +1 -0
  1533. package/dist/resources/registry.test.d.ts +2 -0
  1534. package/dist/resources/registry.test.d.ts.map +1 -0
  1535. package/dist/resources/registry.test.js +138 -0
  1536. package/dist/resources/registry.test.js.map +1 -0
  1537. package/dist/resources/specs.d.ts +11 -0
  1538. package/dist/resources/specs.d.ts.map +1 -0
  1539. package/dist/resources/specs.js +70 -0
  1540. package/dist/resources/specs.js.map +1 -0
  1541. package/dist/resources/specs.test.d.ts +2 -0
  1542. package/dist/resources/specs.test.d.ts.map +1 -0
  1543. package/dist/resources/specs.test.js +130 -0
  1544. package/dist/resources/specs.test.js.map +1 -0
  1545. package/dist/resources/templates.d.ts +11 -0
  1546. package/dist/resources/templates.d.ts.map +1 -0
  1547. package/dist/resources/templates.js +128 -0
  1548. package/dist/resources/templates.js.map +1 -0
  1549. package/dist/resources/templates.test.d.ts +2 -0
  1550. package/dist/resources/templates.test.d.ts.map +1 -0
  1551. package/dist/resources/templates.test.js +119 -0
  1552. package/dist/resources/templates.test.js.map +1 -0
  1553. package/dist/smoke.test.d.ts +2 -0
  1554. package/dist/smoke.test.d.ts.map +1 -0
  1555. package/dist/smoke.test.js +229 -0
  1556. package/dist/smoke.test.js.map +1 -0
  1557. package/dist/storage/base-store.d.ts +24 -0
  1558. package/dist/storage/base-store.d.ts.map +1 -0
  1559. package/dist/storage/base-store.js +70 -0
  1560. package/dist/storage/base-store.js.map +1 -0
  1561. package/dist/storage/base-store.test.d.ts +2 -0
  1562. package/dist/storage/base-store.test.d.ts.map +1 -0
  1563. package/dist/storage/base-store.test.js +180 -0
  1564. package/dist/storage/base-store.test.js.map +1 -0
  1565. package/dist/storage/decision-store.d.ts +22 -0
  1566. package/dist/storage/decision-store.d.ts.map +1 -0
  1567. package/dist/storage/decision-store.js +75 -0
  1568. package/dist/storage/decision-store.js.map +1 -0
  1569. package/dist/storage/global-store.d.ts +89 -0
  1570. package/dist/storage/global-store.d.ts.map +1 -0
  1571. package/dist/storage/global-store.js +246 -0
  1572. package/dist/storage/global-store.js.map +1 -0
  1573. package/dist/storage/global-store.test.d.ts +2 -0
  1574. package/dist/storage/global-store.test.d.ts.map +1 -0
  1575. package/dist/storage/global-store.test.js +327 -0
  1576. package/dist/storage/global-store.test.js.map +1 -0
  1577. package/dist/storage/index.d.ts +8 -0
  1578. package/dist/storage/index.d.ts.map +1 -0
  1579. package/dist/storage/index.js +9 -0
  1580. package/dist/storage/index.js.map +1 -0
  1581. package/dist/storage/index.test.d.ts +2 -0
  1582. package/dist/storage/index.test.d.ts.map +1 -0
  1583. package/dist/storage/index.test.js +56 -0
  1584. package/dist/storage/index.test.js.map +1 -0
  1585. package/dist/storage/knowledge-store/knowledge.d.ts +20 -0
  1586. package/dist/storage/knowledge-store/knowledge.d.ts.map +1 -0
  1587. package/dist/storage/knowledge-store/knowledge.js +47 -0
  1588. package/dist/storage/knowledge-store/knowledge.js.map +1 -0
  1589. package/dist/storage/knowledge-store/sessions.d.ts +20 -0
  1590. package/dist/storage/knowledge-store/sessions.d.ts.map +1 -0
  1591. package/dist/storage/knowledge-store/sessions.js +168 -0
  1592. package/dist/storage/knowledge-store/sessions.js.map +1 -0
  1593. package/dist/storage/knowledge-store.d.ts +3 -0
  1594. package/dist/storage/knowledge-store.d.ts.map +1 -0
  1595. package/dist/storage/knowledge-store.js +8 -0
  1596. package/dist/storage/knowledge-store.js.map +1 -0
  1597. package/dist/storage/knowledge-store.test.d.ts +2 -0
  1598. package/dist/storage/knowledge-store.test.d.ts.map +1 -0
  1599. package/dist/storage/knowledge-store.test.js +368 -0
  1600. package/dist/storage/knowledge-store.test.js.map +1 -0
  1601. package/dist/storage/metrics-store.d.ts +40 -0
  1602. package/dist/storage/metrics-store.d.ts.map +1 -0
  1603. package/dist/storage/metrics-store.js +100 -0
  1604. package/dist/storage/metrics-store.js.map +1 -0
  1605. package/dist/storage/metrics-store.test.d.ts +2 -0
  1606. package/dist/storage/metrics-store.test.d.ts.map +1 -0
  1607. package/dist/storage/metrics-store.test.js +212 -0
  1608. package/dist/storage/metrics-store.test.js.map +1 -0
  1609. package/dist/storage/pattern-store.d.ts +38 -0
  1610. package/dist/storage/pattern-store.d.ts.map +1 -0
  1611. package/dist/storage/pattern-store.js +114 -0
  1612. package/dist/storage/pattern-store.js.map +1 -0
  1613. package/dist/storage/pattern-store.test.d.ts +2 -0
  1614. package/dist/storage/pattern-store.test.d.ts.map +1 -0
  1615. package/dist/storage/pattern-store.test.js +224 -0
  1616. package/dist/storage/pattern-store.test.js.map +1 -0
  1617. package/dist/storage/session-journal-store.d.ts +8 -0
  1618. package/dist/storage/session-journal-store.d.ts.map +1 -0
  1619. package/dist/storage/session-journal-store.js +21 -0
  1620. package/dist/storage/session-journal-store.js.map +1 -0
  1621. package/dist/storage/spec-store.d.ts +70 -0
  1622. package/dist/storage/spec-store.d.ts.map +1 -0
  1623. package/dist/storage/spec-store.js +172 -0
  1624. package/dist/storage/spec-store.js.map +1 -0
  1625. package/dist/storage/spec-store.test.d.ts +2 -0
  1626. package/dist/storage/spec-store.test.d.ts.map +1 -0
  1627. package/dist/storage/spec-store.test.js +227 -0
  1628. package/dist/storage/spec-store.test.js.map +1 -0
  1629. package/dist/storage/stack-audit-store.d.ts +8 -0
  1630. package/dist/storage/stack-audit-store.d.ts.map +1 -0
  1631. package/dist/storage/stack-audit-store.js +28 -0
  1632. package/dist/storage/stack-audit-store.js.map +1 -0
  1633. package/dist/tools/audit-stack.d.ts +3 -0
  1634. package/dist/tools/audit-stack.d.ts.map +1 -0
  1635. package/dist/tools/audit-stack.js +135 -0
  1636. package/dist/tools/audit-stack.js.map +1 -0
  1637. package/dist/tools/audit.d.ts +3 -0
  1638. package/dist/tools/audit.d.ts.map +1 -0
  1639. package/dist/tools/audit.js +161 -0
  1640. package/dist/tools/audit.js.map +1 -0
  1641. package/dist/tools/audit.test.d.ts +2 -0
  1642. package/dist/tools/audit.test.d.ts.map +1 -0
  1643. package/dist/tools/audit.test.js +169 -0
  1644. package/dist/tools/audit.test.js.map +1 -0
  1645. package/dist/tools/capture-learning.d.ts +3 -0
  1646. package/dist/tools/capture-learning.d.ts.map +1 -0
  1647. package/dist/tools/capture-learning.js +188 -0
  1648. package/dist/tools/capture-learning.js.map +1 -0
  1649. package/dist/tools/challenge-spec/agent-challenge-scenarios.d.ts +12 -0
  1650. package/dist/tools/challenge-spec/agent-challenge-scenarios.d.ts.map +1 -0
  1651. package/dist/tools/challenge-spec/agent-challenge-scenarios.js +107 -0
  1652. package/dist/tools/challenge-spec/agent-challenge-scenarios.js.map +1 -0
  1653. package/dist/tools/challenge-spec/architecture-challenge-scenarios.d.ts +12 -0
  1654. package/dist/tools/challenge-spec/architecture-challenge-scenarios.d.ts.map +1 -0
  1655. package/dist/tools/challenge-spec/architecture-challenge-scenarios.js +113 -0
  1656. package/dist/tools/challenge-spec/architecture-challenge-scenarios.js.map +1 -0
  1657. package/dist/tools/challenge-spec/event-challenge-scenarios.d.ts +14 -0
  1658. package/dist/tools/challenge-spec/event-challenge-scenarios.d.ts.map +1 -0
  1659. package/dist/tools/challenge-spec/event-challenge-scenarios.js +84 -0
  1660. package/dist/tools/challenge-spec/event-challenge-scenarios.js.map +1 -0
  1661. package/dist/tools/challenge-spec/platform-challenge-scenarios-b.d.ts +7 -0
  1662. package/dist/tools/challenge-spec/platform-challenge-scenarios-b.d.ts.map +1 -0
  1663. package/dist/tools/challenge-spec/platform-challenge-scenarios-b.js +45 -0
  1664. package/dist/tools/challenge-spec/platform-challenge-scenarios-b.js.map +1 -0
  1665. package/dist/tools/challenge-spec/platform-challenge-scenarios-b1.d.ts +4 -0
  1666. package/dist/tools/challenge-spec/platform-challenge-scenarios-b1.d.ts.map +1 -0
  1667. package/dist/tools/challenge-spec/platform-challenge-scenarios-b1.js +111 -0
  1668. package/dist/tools/challenge-spec/platform-challenge-scenarios-b1.js.map +1 -0
  1669. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.d.ts +5 -0
  1670. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.d.ts.map +1 -0
  1671. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js +188 -0
  1672. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js.map +1 -0
  1673. package/dist/tools/challenge-spec/platform-challenge-scenarios.d.ts +7 -0
  1674. package/dist/tools/challenge-spec/platform-challenge-scenarios.d.ts.map +1 -0
  1675. package/dist/tools/challenge-spec/platform-challenge-scenarios.js +227 -0
  1676. package/dist/tools/challenge-spec/platform-challenge-scenarios.js.map +1 -0
  1677. package/dist/tools/challenge-spec/privacy-challenge-scenarios.d.ts +11 -0
  1678. package/dist/tools/challenge-spec/privacy-challenge-scenarios.d.ts.map +1 -0
  1679. package/dist/tools/challenge-spec/privacy-challenge-scenarios.js +75 -0
  1680. package/dist/tools/challenge-spec/privacy-challenge-scenarios.js.map +1 -0
  1681. package/dist/tools/challenge-spec/resilience-challenge-scenarios-a.d.ts +35 -0
  1682. package/dist/tools/challenge-spec/resilience-challenge-scenarios-a.d.ts.map +1 -0
  1683. package/dist/tools/challenge-spec/resilience-challenge-scenarios-a.js +199 -0
  1684. package/dist/tools/challenge-spec/resilience-challenge-scenarios-a.js.map +1 -0
  1685. package/dist/tools/challenge-spec/resilience-challenge-scenarios-b.d.ts +14 -0
  1686. package/dist/tools/challenge-spec/resilience-challenge-scenarios-b.d.ts.map +1 -0
  1687. package/dist/tools/challenge-spec/resilience-challenge-scenarios-b.js +149 -0
  1688. package/dist/tools/challenge-spec/resilience-challenge-scenarios-b.js.map +1 -0
  1689. package/dist/tools/challenge-spec/resilience-challenge-scenarios.d.ts +8 -0
  1690. package/dist/tools/challenge-spec/resilience-challenge-scenarios.d.ts.map +1 -0
  1691. package/dist/tools/challenge-spec/resilience-challenge-scenarios.js +32 -0
  1692. package/dist/tools/challenge-spec/resilience-challenge-scenarios.js.map +1 -0
  1693. package/dist/tools/challenge-spec/scenarios-data.d.ts +3 -0
  1694. package/dist/tools/challenge-spec/scenarios-data.d.ts.map +1 -0
  1695. package/dist/tools/challenge-spec/scenarios-data.js +52 -0
  1696. package/dist/tools/challenge-spec/scenarios-data.js.map +1 -0
  1697. package/dist/tools/challenge-spec/scenarios-desktop.d.ts +7 -0
  1698. package/dist/tools/challenge-spec/scenarios-desktop.d.ts.map +1 -0
  1699. package/dist/tools/challenge-spec/scenarios-desktop.js +86 -0
  1700. package/dist/tools/challenge-spec/scenarios-desktop.js.map +1 -0
  1701. package/dist/tools/challenge-spec/scenarios-failure.d.ts +3 -0
  1702. package/dist/tools/challenge-spec/scenarios-failure.d.ts.map +1 -0
  1703. package/dist/tools/challenge-spec/scenarios-failure.js +103 -0
  1704. package/dist/tools/challenge-spec/scenarios-failure.js.map +1 -0
  1705. package/dist/tools/challenge-spec/scenarios-game.d.ts +6 -0
  1706. package/dist/tools/challenge-spec/scenarios-game.d.ts.map +1 -0
  1707. package/dist/tools/challenge-spec/scenarios-game.js +71 -0
  1708. package/dist/tools/challenge-spec/scenarios-game.js.map +1 -0
  1709. package/dist/tools/challenge-spec/scenarios-scale.d.ts +3 -0
  1710. package/dist/tools/challenge-spec/scenarios-scale.d.ts.map +1 -0
  1711. package/dist/tools/challenge-spec/scenarios-scale.js +38 -0
  1712. package/dist/tools/challenge-spec/scenarios-scale.js.map +1 -0
  1713. package/dist/tools/challenge-spec/scenarios-security.d.ts +3 -0
  1714. package/dist/tools/challenge-spec/scenarios-security.d.ts.map +1 -0
  1715. package/dist/tools/challenge-spec/scenarios-security.js +56 -0
  1716. package/dist/tools/challenge-spec/scenarios-security.js.map +1 -0
  1717. package/dist/tools/challenge-spec/scenarios-utils.d.ts +6 -0
  1718. package/dist/tools/challenge-spec/scenarios-utils.d.ts.map +1 -0
  1719. package/dist/tools/challenge-spec/scenarios-utils.js +9 -0
  1720. package/dist/tools/challenge-spec/scenarios-utils.js.map +1 -0
  1721. package/dist/tools/challenge-spec/security-challenge-scenarios.d.ts +12 -0
  1722. package/dist/tools/challenge-spec/security-challenge-scenarios.d.ts.map +1 -0
  1723. package/dist/tools/challenge-spec/security-challenge-scenarios.js +138 -0
  1724. package/dist/tools/challenge-spec/security-challenge-scenarios.js.map +1 -0
  1725. package/dist/tools/challenge-spec-helpers.d.ts +6 -0
  1726. package/dist/tools/challenge-spec-helpers.d.ts.map +1 -0
  1727. package/dist/tools/challenge-spec-helpers.js +109 -0
  1728. package/dist/tools/challenge-spec-helpers.js.map +1 -0
  1729. package/dist/tools/challenge-spec-scenarios.d.ts +8 -0
  1730. package/dist/tools/challenge-spec-scenarios.d.ts.map +1 -0
  1731. package/dist/tools/challenge-spec-scenarios.js +10 -0
  1732. package/dist/tools/challenge-spec-scenarios.js.map +1 -0
  1733. package/dist/tools/challenge-spec.d.ts +3 -0
  1734. package/dist/tools/challenge-spec.d.ts.map +1 -0
  1735. package/dist/tools/challenge-spec.js +150 -0
  1736. package/dist/tools/challenge-spec.js.map +1 -0
  1737. package/dist/tools/challenge-spec.test.d.ts +2 -0
  1738. package/dist/tools/challenge-spec.test.d.ts.map +1 -0
  1739. package/dist/tools/challenge-spec.test.js +782 -0
  1740. package/dist/tools/challenge-spec.test.js.map +1 -0
  1741. package/dist/tools/check-config-health.d.ts +9 -0
  1742. package/dist/tools/check-config-health.d.ts.map +1 -0
  1743. package/dist/tools/check-config-health.js +90 -0
  1744. package/dist/tools/check-config-health.js.map +1 -0
  1745. package/dist/tools/check-readiness.d.ts +3 -0
  1746. package/dist/tools/check-readiness.d.ts.map +1 -0
  1747. package/dist/tools/check-readiness.js +100 -0
  1748. package/dist/tools/check-readiness.js.map +1 -0
  1749. package/dist/tools/check-versions.d.ts +3 -0
  1750. package/dist/tools/check-versions.d.ts.map +1 -0
  1751. package/dist/tools/check-versions.js +77 -0
  1752. package/dist/tools/check-versions.js.map +1 -0
  1753. package/dist/tools/check-versions.test.d.ts +2 -0
  1754. package/dist/tools/check-versions.test.d.ts.map +1 -0
  1755. package/dist/tools/check-versions.test.js +214 -0
  1756. package/dist/tools/check-versions.test.js.map +1 -0
  1757. package/dist/tools/clarify-requirements/questions-context.d.ts +8 -0
  1758. package/dist/tools/clarify-requirements/questions-context.d.ts.map +1 -0
  1759. package/dist/tools/clarify-requirements/questions-context.js +185 -0
  1760. package/dist/tools/clarify-requirements/questions-context.js.map +1 -0
  1761. package/dist/tools/clarify-requirements/questions.d.ts +16 -0
  1762. package/dist/tools/clarify-requirements/questions.d.ts.map +1 -0
  1763. package/dist/tools/clarify-requirements/questions.js +116 -0
  1764. package/dist/tools/clarify-requirements/questions.js.map +1 -0
  1765. package/dist/tools/clarify-requirements.d.ts +3 -0
  1766. package/dist/tools/clarify-requirements.d.ts.map +1 -0
  1767. package/dist/tools/clarify-requirements.js +151 -0
  1768. package/dist/tools/clarify-requirements.js.map +1 -0
  1769. package/dist/tools/clarify-requirements.test.d.ts +2 -0
  1770. package/dist/tools/clarify-requirements.test.d.ts.map +1 -0
  1771. package/dist/tools/clarify-requirements.test.js +161 -0
  1772. package/dist/tools/clarify-requirements.test.js.map +1 -0
  1773. package/dist/tools/consult-docs.d.ts +3 -0
  1774. package/dist/tools/consult-docs.d.ts.map +1 -0
  1775. package/dist/tools/consult-docs.js +74 -0
  1776. package/dist/tools/consult-docs.js.map +1 -0
  1777. package/dist/tools/consult-docs.test.d.ts +2 -0
  1778. package/dist/tools/consult-docs.test.d.ts.map +1 -0
  1779. package/dist/tools/consult-docs.test.js +140 -0
  1780. package/dist/tools/consult-docs.test.js.map +1 -0
  1781. package/dist/tools/contribute-context.d.ts +13 -0
  1782. package/dist/tools/contribute-context.d.ts.map +1 -0
  1783. package/dist/tools/contribute-context.js +100 -0
  1784. package/dist/tools/contribute-context.js.map +1 -0
  1785. package/dist/tools/create-spec/agent-spec-adapter-b.d.ts +6 -0
  1786. package/dist/tools/create-spec/agent-spec-adapter-b.d.ts.map +1 -0
  1787. package/dist/tools/create-spec/agent-spec-adapter-b.js +119 -0
  1788. package/dist/tools/create-spec/agent-spec-adapter-b.js.map +1 -0
  1789. package/dist/tools/create-spec/agent-spec-adapter.d.ts +15 -0
  1790. package/dist/tools/create-spec/agent-spec-adapter.d.ts.map +1 -0
  1791. package/dist/tools/create-spec/agent-spec-adapter.js +189 -0
  1792. package/dist/tools/create-spec/agent-spec-adapter.js.map +1 -0
  1793. package/dist/tools/create-spec/analytics-spec-adapter.d.ts +21 -0
  1794. package/dist/tools/create-spec/analytics-spec-adapter.d.ts.map +1 -0
  1795. package/dist/tools/create-spec/analytics-spec-adapter.js +155 -0
  1796. package/dist/tools/create-spec/analytics-spec-adapter.js.map +1 -0
  1797. package/dist/tools/create-spec/event-spec-adapter.d.ts +14 -0
  1798. package/dist/tools/create-spec/event-spec-adapter.d.ts.map +1 -0
  1799. package/dist/tools/create-spec/event-spec-adapter.js +47 -0
  1800. package/dist/tools/create-spec/event-spec-adapter.js.map +1 -0
  1801. package/dist/tools/create-spec/mcp-spec-adapter.d.ts +7 -0
  1802. package/dist/tools/create-spec/mcp-spec-adapter.d.ts.map +1 -0
  1803. package/dist/tools/create-spec/mcp-spec-adapter.js +238 -0
  1804. package/dist/tools/create-spec/mcp-spec-adapter.js.map +1 -0
  1805. package/dist/tools/create-spec/mcp-tool-contract.d.ts +13 -0
  1806. package/dist/tools/create-spec/mcp-tool-contract.d.ts.map +1 -0
  1807. package/dist/tools/create-spec/mcp-tool-contract.js +141 -0
  1808. package/dist/tools/create-spec/mcp-tool-contract.js.map +1 -0
  1809. package/dist/tools/create-spec/platform-spec-adapter.d.ts +7 -0
  1810. package/dist/tools/create-spec/platform-spec-adapter.d.ts.map +1 -0
  1811. package/dist/tools/create-spec/platform-spec-adapter.js +189 -0
  1812. package/dist/tools/create-spec/platform-spec-adapter.js.map +1 -0
  1813. package/dist/tools/create-spec/privacy-spec-adapter.d.ts +7 -0
  1814. package/dist/tools/create-spec/privacy-spec-adapter.d.ts.map +1 -0
  1815. package/dist/tools/create-spec/privacy-spec-adapter.js +22 -0
  1816. package/dist/tools/create-spec/privacy-spec-adapter.js.map +1 -0
  1817. package/dist/tools/create-spec/security-spec-adapter.d.ts +7 -0
  1818. package/dist/tools/create-spec/security-spec-adapter.d.ts.map +1 -0
  1819. package/dist/tools/create-spec/security-spec-adapter.js +226 -0
  1820. package/dist/tools/create-spec/security-spec-adapter.js.map +1 -0
  1821. package/dist/tools/create-spec-hu/advanced-testing-hu-adapter.d.ts +8 -0
  1822. package/dist/tools/create-spec-hu/advanced-testing-hu-adapter.d.ts.map +1 -0
  1823. package/dist/tools/create-spec-hu/advanced-testing-hu-adapter.js +46 -0
  1824. package/dist/tools/create-spec-hu/advanced-testing-hu-adapter.js.map +1 -0
  1825. package/dist/tools/create-spec-hu/ai-native-hu-adapter.d.ts +9 -0
  1826. package/dist/tools/create-spec-hu/ai-native-hu-adapter.d.ts.map +1 -0
  1827. package/dist/tools/create-spec-hu/ai-native-hu-adapter.js +43 -0
  1828. package/dist/tools/create-spec-hu/ai-native-hu-adapter.js.map +1 -0
  1829. package/dist/tools/create-spec-hu/ai-testing-governance-adapter.d.ts +8 -0
  1830. package/dist/tools/create-spec-hu/ai-testing-governance-adapter.d.ts.map +1 -0
  1831. package/dist/tools/create-spec-hu/ai-testing-governance-adapter.js +70 -0
  1832. package/dist/tools/create-spec-hu/ai-testing-governance-adapter.js.map +1 -0
  1833. package/dist/tools/create-spec-hu/build-tool-hu-adapter.d.ts +10 -0
  1834. package/dist/tools/create-spec-hu/build-tool-hu-adapter.d.ts.map +1 -0
  1835. package/dist/tools/create-spec-hu/build-tool-hu-adapter.js +28 -0
  1836. package/dist/tools/create-spec-hu/build-tool-hu-adapter.js.map +1 -0
  1837. package/dist/tools/create-spec-hu/frontend-perf-hu-adapter.d.ts +9 -0
  1838. package/dist/tools/create-spec-hu/frontend-perf-hu-adapter.d.ts.map +1 -0
  1839. package/dist/tools/create-spec-hu/frontend-perf-hu-adapter.js +196 -0
  1840. package/dist/tools/create-spec-hu/frontend-perf-hu-adapter.js.map +1 -0
  1841. package/dist/tools/create-spec-hu/hu-body-generators.d.ts +13 -0
  1842. package/dist/tools/create-spec-hu/hu-body-generators.d.ts.map +1 -0
  1843. package/dist/tools/create-spec-hu/hu-body-generators.js +251 -0
  1844. package/dist/tools/create-spec-hu/hu-body-generators.js.map +1 -0
  1845. package/dist/tools/create-spec-hu/llm-security-hu-adapter.d.ts +8 -0
  1846. package/dist/tools/create-spec-hu/llm-security-hu-adapter.d.ts.map +1 -0
  1847. package/dist/tools/create-spec-hu/llm-security-hu-adapter.js +36 -0
  1848. package/dist/tools/create-spec-hu/llm-security-hu-adapter.js.map +1 -0
  1849. package/dist/tools/create-spec-hu/local-first-hu-adapter.d.ts +8 -0
  1850. package/dist/tools/create-spec-hu/local-first-hu-adapter.d.ts.map +1 -0
  1851. package/dist/tools/create-spec-hu/local-first-hu-adapter.js +28 -0
  1852. package/dist/tools/create-spec-hu/local-first-hu-adapter.js.map +1 -0
  1853. package/dist/tools/create-spec-hu/otel-hu-adapter.d.ts +8 -0
  1854. package/dist/tools/create-spec-hu/otel-hu-adapter.d.ts.map +1 -0
  1855. package/dist/tools/create-spec-hu/otel-hu-adapter.js +43 -0
  1856. package/dist/tools/create-spec-hu/otel-hu-adapter.js.map +1 -0
  1857. package/dist/tools/create-spec-hu/quality-helpers.d.ts +14 -0
  1858. package/dist/tools/create-spec-hu/quality-helpers.d.ts.map +1 -0
  1859. package/dist/tools/create-spec-hu/quality-helpers.js +188 -0
  1860. package/dist/tools/create-spec-hu/quality-helpers.js.map +1 -0
  1861. package/dist/tools/create-spec-hu/supply-chain-hu-adapter.d.ts +7 -0
  1862. package/dist/tools/create-spec-hu/supply-chain-hu-adapter.d.ts.map +1 -0
  1863. package/dist/tools/create-spec-hu/supply-chain-hu-adapter.js +78 -0
  1864. package/dist/tools/create-spec-hu/supply-chain-hu-adapter.js.map +1 -0
  1865. package/dist/tools/create-spec-hu/swift-android-hu-adapter.d.ts +8 -0
  1866. package/dist/tools/create-spec-hu/swift-android-hu-adapter.d.ts.map +1 -0
  1867. package/dist/tools/create-spec-hu/swift-android-hu-adapter.js +37 -0
  1868. package/dist/tools/create-spec-hu/swift-android-hu-adapter.js.map +1 -0
  1869. package/dist/tools/create-spec-hu.d.ts +13 -0
  1870. package/dist/tools/create-spec-hu.d.ts.map +1 -0
  1871. package/dist/tools/create-spec-hu.js +196 -0
  1872. package/dist/tools/create-spec-hu.js.map +1 -0
  1873. package/dist/tools/create-spec-tech/constitution.d.ts +7 -0
  1874. package/dist/tools/create-spec-tech/constitution.d.ts.map +1 -0
  1875. package/dist/tools/create-spec-tech/constitution.js +60 -0
  1876. package/dist/tools/create-spec-tech/constitution.js.map +1 -0
  1877. package/dist/tools/create-spec-tech/ficha-arch.d.ts +11 -0
  1878. package/dist/tools/create-spec-tech/ficha-arch.d.ts.map +1 -0
  1879. package/dist/tools/create-spec-tech/ficha-arch.js +102 -0
  1880. package/dist/tools/create-spec-tech/ficha-arch.js.map +1 -0
  1881. package/dist/tools/create-spec-tech/ficha-content.d.ts +20 -0
  1882. package/dist/tools/create-spec-tech/ficha-content.d.ts.map +1 -0
  1883. package/dist/tools/create-spec-tech/ficha-content.js +185 -0
  1884. package/dist/tools/create-spec-tech/ficha-content.js.map +1 -0
  1885. package/dist/tools/create-spec-tech/ficha-generator.d.ts +3 -0
  1886. package/dist/tools/create-spec-tech/ficha-generator.d.ts.map +1 -0
  1887. package/dist/tools/create-spec-tech/ficha-generator.js +4 -0
  1888. package/dist/tools/create-spec-tech/ficha-generator.js.map +1 -0
  1889. package/dist/tools/create-spec-tech/section-builders.d.ts +11 -0
  1890. package/dist/tools/create-spec-tech/section-builders.d.ts.map +1 -0
  1891. package/dist/tools/create-spec-tech/section-builders.js +163 -0
  1892. package/dist/tools/create-spec-tech/section-builders.js.map +1 -0
  1893. package/dist/tools/create-spec-tech.d.ts +3 -0
  1894. package/dist/tools/create-spec-tech.d.ts.map +1 -0
  1895. package/dist/tools/create-spec-tech.js +5 -0
  1896. package/dist/tools/create-spec-tech.js.map +1 -0
  1897. package/dist/tools/create-spec.d.ts +3 -0
  1898. package/dist/tools/create-spec.d.ts.map +1 -0
  1899. package/dist/tools/create-spec.js +261 -0
  1900. package/dist/tools/create-spec.js.map +1 -0
  1901. package/dist/tools/create-spec.test.d.ts +2 -0
  1902. package/dist/tools/create-spec.test.d.ts.map +1 -0
  1903. package/dist/tools/create-spec.test.js +233 -0
  1904. package/dist/tools/create-spec.test.js.map +1 -0
  1905. package/dist/tools/data-governance/audit-handler.d.ts +10 -0
  1906. package/dist/tools/data-governance/audit-handler.d.ts.map +1 -0
  1907. package/dist/tools/data-governance/audit-handler.js +161 -0
  1908. package/dist/tools/data-governance/audit-handler.js.map +1 -0
  1909. package/dist/tools/data-governance/detect-handler.d.ts +6 -0
  1910. package/dist/tools/data-governance/detect-handler.d.ts.map +1 -0
  1911. package/dist/tools/data-governance/detect-handler.js +138 -0
  1912. package/dist/tools/data-governance/detect-handler.js.map +1 -0
  1913. package/dist/tools/data-governance.d.ts +3 -0
  1914. package/dist/tools/data-governance.d.ts.map +1 -0
  1915. package/dist/tools/data-governance.js +43 -0
  1916. package/dist/tools/data-governance.js.map +1 -0
  1917. package/dist/tools/define-ui-contract/a11y-contract.d.ts +15 -0
  1918. package/dist/tools/define-ui-contract/a11y-contract.d.ts.map +1 -0
  1919. package/dist/tools/define-ui-contract/a11y-contract.js +199 -0
  1920. package/dist/tools/define-ui-contract/a11y-contract.js.map +1 -0
  1921. package/dist/tools/define-ui-contract/agent-interaction-contract.d.ts +14 -0
  1922. package/dist/tools/define-ui-contract/agent-interaction-contract.d.ts.map +1 -0
  1923. package/dist/tools/define-ui-contract/agent-interaction-contract.js +56 -0
  1924. package/dist/tools/define-ui-contract/agent-interaction-contract.js.map +1 -0
  1925. package/dist/tools/define-ui-contract/css-styling-contract.d.ts +21 -0
  1926. package/dist/tools/define-ui-contract/css-styling-contract.d.ts.map +1 -0
  1927. package/dist/tools/define-ui-contract/css-styling-contract.js +227 -0
  1928. package/dist/tools/define-ui-contract/css-styling-contract.js.map +1 -0
  1929. package/dist/tools/define-ui-contract-desktop/desktop-contract.d.ts +10 -0
  1930. package/dist/tools/define-ui-contract-desktop/desktop-contract.d.ts.map +1 -0
  1931. package/dist/tools/define-ui-contract-desktop/desktop-contract.js +192 -0
  1932. package/dist/tools/define-ui-contract-desktop/desktop-contract.js.map +1 -0
  1933. package/dist/tools/define-ui-contract-desktop/native-contract.d.ts +18 -0
  1934. package/dist/tools/define-ui-contract-desktop/native-contract.d.ts.map +1 -0
  1935. package/dist/tools/define-ui-contract-desktop/native-contract.js +160 -0
  1936. package/dist/tools/define-ui-contract-desktop/native-contract.js.map +1 -0
  1937. package/dist/tools/define-ui-contract-desktop.d.ts +3 -0
  1938. package/dist/tools/define-ui-contract-desktop.d.ts.map +1 -0
  1939. package/dist/tools/define-ui-contract-desktop.js +5 -0
  1940. package/dist/tools/define-ui-contract-desktop.js.map +1 -0
  1941. package/dist/tools/define-ui-contract-extensions.d.ts +10 -0
  1942. package/dist/tools/define-ui-contract-extensions.d.ts.map +1 -0
  1943. package/dist/tools/define-ui-contract-extensions.js +261 -0
  1944. package/dist/tools/define-ui-contract-extensions.js.map +1 -0
  1945. package/dist/tools/define-ui-contract-games.d.ts +10 -0
  1946. package/dist/tools/define-ui-contract-games.d.ts.map +1 -0
  1947. package/dist/tools/define-ui-contract-games.js +183 -0
  1948. package/dist/tools/define-ui-contract-games.js.map +1 -0
  1949. package/dist/tools/define-ui-contract-mobile.d.ts +5 -0
  1950. package/dist/tools/define-ui-contract-mobile.d.ts.map +1 -0
  1951. package/dist/tools/define-ui-contract-mobile.js +115 -0
  1952. package/dist/tools/define-ui-contract-mobile.js.map +1 -0
  1953. package/dist/tools/define-ui-contract-web/component-tree.d.ts +4 -0
  1954. package/dist/tools/define-ui-contract-web/component-tree.d.ts.map +1 -0
  1955. package/dist/tools/define-ui-contract-web/component-tree.js +240 -0
  1956. package/dist/tools/define-ui-contract-web/component-tree.js.map +1 -0
  1957. package/dist/tools/define-ui-contract-web/index.d.ts +3 -0
  1958. package/dist/tools/define-ui-contract-web/index.d.ts.map +1 -0
  1959. package/dist/tools/define-ui-contract-web/index.js +4 -0
  1960. package/dist/tools/define-ui-contract-web/index.js.map +1 -0
  1961. package/dist/tools/define-ui-contract-web/states.d.ts +5 -0
  1962. package/dist/tools/define-ui-contract-web/states.d.ts.map +1 -0
  1963. package/dist/tools/define-ui-contract-web/states.js +127 -0
  1964. package/dist/tools/define-ui-contract-web/states.js.map +1 -0
  1965. package/dist/tools/define-ui-contract-web.d.ts +3 -0
  1966. package/dist/tools/define-ui-contract-web.d.ts.map +1 -0
  1967. package/dist/tools/define-ui-contract-web.js +5 -0
  1968. package/dist/tools/define-ui-contract-web.js.map +1 -0
  1969. package/dist/tools/define-ui-contract.d.ts +3 -0
  1970. package/dist/tools/define-ui-contract.d.ts.map +1 -0
  1971. package/dist/tools/define-ui-contract.js +258 -0
  1972. package/dist/tools/define-ui-contract.js.map +1 -0
  1973. package/dist/tools/define-ui-contract.test.d.ts +2 -0
  1974. package/dist/tools/define-ui-contract.test.d.ts.map +1 -0
  1975. package/dist/tools/define-ui-contract.test.js +479 -0
  1976. package/dist/tools/define-ui-contract.test.js.map +1 -0
  1977. package/dist/tools/design-schema/agent-schema.d.ts +11 -0
  1978. package/dist/tools/design-schema/agent-schema.d.ts.map +1 -0
  1979. package/dist/tools/design-schema/agent-schema.js +47 -0
  1980. package/dist/tools/design-schema/agent-schema.js.map +1 -0
  1981. package/dist/tools/design-schema/entity-extractor.d.ts +3 -0
  1982. package/dist/tools/design-schema/entity-extractor.d.ts.map +1 -0
  1983. package/dist/tools/design-schema/entity-extractor.js +130 -0
  1984. package/dist/tools/design-schema/entity-extractor.js.map +1 -0
  1985. package/dist/tools/design-schema/index.d.ts +6 -0
  1986. package/dist/tools/design-schema/index.d.ts.map +1 -0
  1987. package/dist/tools/design-schema/index.js +7 -0
  1988. package/dist/tools/design-schema/index.js.map +1 -0
  1989. package/dist/tools/design-schema/mcp-schema.d.ts +4 -0
  1990. package/dist/tools/design-schema/mcp-schema.d.ts.map +1 -0
  1991. package/dist/tools/design-schema/mcp-schema.js +145 -0
  1992. package/dist/tools/design-schema/mcp-schema.js.map +1 -0
  1993. package/dist/tools/design-schema/platform-schemas-b.d.ts +15 -0
  1994. package/dist/tools/design-schema/platform-schemas-b.d.ts.map +1 -0
  1995. package/dist/tools/design-schema/platform-schemas-b.js +175 -0
  1996. package/dist/tools/design-schema/platform-schemas-b.js.map +1 -0
  1997. package/dist/tools/design-schema/platform-schemas.d.ts +15 -0
  1998. package/dist/tools/design-schema/platform-schemas.d.ts.map +1 -0
  1999. package/dist/tools/design-schema/platform-schemas.js +107 -0
  2000. package/dist/tools/design-schema/platform-schemas.js.map +1 -0
  2001. package/dist/tools/design-schema/privacy-audit.d.ts +8 -0
  2002. package/dist/tools/design-schema/privacy-audit.d.ts.map +1 -0
  2003. package/dist/tools/design-schema/privacy-audit.js +40 -0
  2004. package/dist/tools/design-schema/privacy-audit.js.map +1 -0
  2005. package/dist/tools/design-schema-games.d.ts +10 -0
  2006. package/dist/tools/design-schema-games.d.ts.map +1 -0
  2007. package/dist/tools/design-schema-games.js +177 -0
  2008. package/dist/tools/design-schema-games.js.map +1 -0
  2009. package/dist/tools/design-schema-mobile.d.ts +19 -0
  2010. package/dist/tools/design-schema-mobile.d.ts.map +1 -0
  2011. package/dist/tools/design-schema-mobile.js +88 -0
  2012. package/dist/tools/design-schema-mobile.js.map +1 -0
  2013. package/dist/tools/design-schema-sql/migrations.d.ts +5 -0
  2014. package/dist/tools/design-schema-sql/migrations.d.ts.map +1 -0
  2015. package/dist/tools/design-schema-sql/migrations.js +106 -0
  2016. package/dist/tools/design-schema-sql/migrations.js.map +1 -0
  2017. package/dist/tools/design-schema-sql/tables.d.ts +5 -0
  2018. package/dist/tools/design-schema-sql/tables.d.ts.map +1 -0
  2019. package/dist/tools/design-schema-sql/tables.js +215 -0
  2020. package/dist/tools/design-schema-sql/tables.js.map +1 -0
  2021. package/dist/tools/design-schema-sql.d.ts +3 -0
  2022. package/dist/tools/design-schema-sql.d.ts.map +1 -0
  2023. package/dist/tools/design-schema-sql.js +5 -0
  2024. package/dist/tools/design-schema-sql.js.map +1 -0
  2025. package/dist/tools/design-schema.d.ts +4 -0
  2026. package/dist/tools/design-schema.d.ts.map +1 -0
  2027. package/dist/tools/design-schema.js +219 -0
  2028. package/dist/tools/design-schema.js.map +1 -0
  2029. package/dist/tools/design-schema.test.d.ts +2 -0
  2030. package/dist/tools/design-schema.test.d.ts.map +1 -0
  2031. package/dist/tools/design-schema.test.js +301 -0
  2032. package/dist/tools/design-schema.test.js.map +1 -0
  2033. package/dist/tools/detect-agent.d.ts +3 -0
  2034. package/dist/tools/detect-agent.d.ts.map +1 -0
  2035. package/dist/tools/detect-agent.js +78 -0
  2036. package/dist/tools/detect-agent.js.map +1 -0
  2037. package/dist/tools/detect-agent.test.d.ts +2 -0
  2038. package/dist/tools/detect-agent.test.d.ts.map +1 -0
  2039. package/dist/tools/detect-agent.test.js +133 -0
  2040. package/dist/tools/detect-agent.test.js.map +1 -0
  2041. package/dist/tools/detect-contradictions.d.ts +3 -0
  2042. package/dist/tools/detect-contradictions.d.ts.map +1 -0
  2043. package/dist/tools/detect-contradictions.js +85 -0
  2044. package/dist/tools/detect-contradictions.js.map +1 -0
  2045. package/dist/tools/detect-deprecations.d.ts +3 -0
  2046. package/dist/tools/detect-deprecations.d.ts.map +1 -0
  2047. package/dist/tools/detect-deprecations.js +49 -0
  2048. package/dist/tools/detect-deprecations.js.map +1 -0
  2049. package/dist/tools/detect-drift-event.d.ts +15 -0
  2050. package/dist/tools/detect-drift-event.d.ts.map +1 -0
  2051. package/dist/tools/detect-drift-event.js +67 -0
  2052. package/dist/tools/detect-drift-event.js.map +1 -0
  2053. package/dist/tools/detect-drift.d.ts +3 -0
  2054. package/dist/tools/detect-drift.d.ts.map +1 -0
  2055. package/dist/tools/detect-drift.js +275 -0
  2056. package/dist/tools/detect-drift.js.map +1 -0
  2057. package/dist/tools/detect-drift.test.d.ts +2 -0
  2058. package/dist/tools/detect-drift.test.d.ts.map +1 -0
  2059. package/dist/tools/detect-drift.test.js +312 -0
  2060. package/dist/tools/detect-drift.test.js.map +1 -0
  2061. package/dist/tools/discover-mcps.d.ts +3 -0
  2062. package/dist/tools/discover-mcps.d.ts.map +1 -0
  2063. package/dist/tools/discover-mcps.js +249 -0
  2064. package/dist/tools/discover-mcps.js.map +1 -0
  2065. package/dist/tools/discover-mcps.test.d.ts +2 -0
  2066. package/dist/tools/discover-mcps.test.d.ts.map +1 -0
  2067. package/dist/tools/discover-mcps.test.js +345 -0
  2068. package/dist/tools/discover-mcps.test.js.map +1 -0
  2069. package/dist/tools/estimate.d.ts +3 -0
  2070. package/dist/tools/estimate.d.ts.map +1 -0
  2071. package/dist/tools/estimate.js +84 -0
  2072. package/dist/tools/estimate.js.map +1 -0
  2073. package/dist/tools/estimate.test.d.ts +2 -0
  2074. package/dist/tools/estimate.test.d.ts.map +1 -0
  2075. package/dist/tools/estimate.test.js +137 -0
  2076. package/dist/tools/estimate.test.js.map +1 -0
  2077. package/dist/tools/event-contracts/handlers.d.ts +6 -0
  2078. package/dist/tools/event-contracts/handlers.d.ts.map +1 -0
  2079. package/dist/tools/event-contracts/handlers.js +209 -0
  2080. package/dist/tools/event-contracts/handlers.js.map +1 -0
  2081. package/dist/tools/event-contracts/index.d.ts +3 -0
  2082. package/dist/tools/event-contracts/index.d.ts.map +1 -0
  2083. package/dist/tools/event-contracts/index.js +4 -0
  2084. package/dist/tools/event-contracts/index.js.map +1 -0
  2085. package/dist/tools/event-contracts/schema-helpers.d.ts +15 -0
  2086. package/dist/tools/event-contracts/schema-helpers.d.ts.map +1 -0
  2087. package/dist/tools/event-contracts/schema-helpers.js +69 -0
  2088. package/dist/tools/event-contracts/schema-helpers.js.map +1 -0
  2089. package/dist/tools/event-contracts.d.ts +3 -0
  2090. package/dist/tools/event-contracts.d.ts.map +1 -0
  2091. package/dist/tools/event-contracts.js +28 -0
  2092. package/dist/tools/event-contracts.js.map +1 -0
  2093. package/dist/tools/facilitate.d.ts +8 -0
  2094. package/dist/tools/facilitate.d.ts.map +1 -0
  2095. package/dist/tools/facilitate.js +264 -0
  2096. package/dist/tools/facilitate.js.map +1 -0
  2097. package/dist/tools/generate-adr/decisions.d.ts +3 -0
  2098. package/dist/tools/generate-adr/decisions.d.ts.map +1 -0
  2099. package/dist/tools/generate-adr/decisions.js +275 -0
  2100. package/dist/tools/generate-adr/decisions.js.map +1 -0
  2101. package/dist/tools/generate-adr/helpers.d.ts +5 -0
  2102. package/dist/tools/generate-adr/helpers.d.ts.map +1 -0
  2103. package/dist/tools/generate-adr/helpers.js +39 -0
  2104. package/dist/tools/generate-adr/helpers.js.map +1 -0
  2105. package/dist/tools/generate-adr/index.d.ts +3 -0
  2106. package/dist/tools/generate-adr/index.d.ts.map +1 -0
  2107. package/dist/tools/generate-adr/index.js +4 -0
  2108. package/dist/tools/generate-adr/index.js.map +1 -0
  2109. package/dist/tools/generate-adr.d.ts +3 -0
  2110. package/dist/tools/generate-adr.d.ts.map +1 -0
  2111. package/dist/tools/generate-adr.js +46 -0
  2112. package/dist/tools/generate-adr.js.map +1 -0
  2113. package/dist/tools/generate-adr.test.d.ts +2 -0
  2114. package/dist/tools/generate-adr.test.d.ts.map +1 -0
  2115. package/dist/tools/generate-adr.test.js +206 -0
  2116. package/dist/tools/generate-adr.test.js.map +1 -0
  2117. package/dist/tools/generate-checklist.d.ts +3 -0
  2118. package/dist/tools/generate-checklist.d.ts.map +1 -0
  2119. package/dist/tools/generate-checklist.js +166 -0
  2120. package/dist/tools/generate-checklist.js.map +1 -0
  2121. package/dist/tools/generate-checklist.test.d.ts +2 -0
  2122. package/dist/tools/generate-checklist.test.d.ts.map +1 -0
  2123. package/dist/tools/generate-checklist.test.js +201 -0
  2124. package/dist/tools/generate-checklist.test.js.map +1 -0
  2125. package/dist/tools/generate-docs/agent-docs-generator.d.ts +7 -0
  2126. package/dist/tools/generate-docs/agent-docs-generator.d.ts.map +1 -0
  2127. package/dist/tools/generate-docs/agent-docs-generator.js +213 -0
  2128. package/dist/tools/generate-docs/agent-docs-generator.js.map +1 -0
  2129. package/dist/tools/generate-docs/bounded-context-map-generator.d.ts +4 -0
  2130. package/dist/tools/generate-docs/bounded-context-map-generator.d.ts.map +1 -0
  2131. package/dist/tools/generate-docs/bounded-context-map-generator.js +104 -0
  2132. package/dist/tools/generate-docs/bounded-context-map-generator.js.map +1 -0
  2133. package/dist/tools/generate-docs/mobile-installation-guide.d.ts +8 -0
  2134. package/dist/tools/generate-docs/mobile-installation-guide.d.ts.map +1 -0
  2135. package/dist/tools/generate-docs/mobile-installation-guide.js +136 -0
  2136. package/dist/tools/generate-docs/mobile-installation-guide.js.map +1 -0
  2137. package/dist/tools/generate-docs.d.ts +3 -0
  2138. package/dist/tools/generate-docs.d.ts.map +1 -0
  2139. package/dist/tools/generate-docs.js +138 -0
  2140. package/dist/tools/generate-docs.js.map +1 -0
  2141. package/dist/tools/generate-docs.test.d.ts +2 -0
  2142. package/dist/tools/generate-docs.test.d.ts.map +1 -0
  2143. package/dist/tools/generate-docs.test.js +183 -0
  2144. package/dist/tools/generate-docs.test.js.map +1 -0
  2145. package/dist/tools/generate-execution-plan.d.ts +3 -0
  2146. package/dist/tools/generate-execution-plan.d.ts.map +1 -0
  2147. package/dist/tools/generate-execution-plan.js +130 -0
  2148. package/dist/tools/generate-execution-plan.js.map +1 -0
  2149. package/dist/tools/generate-execution-plan.test.d.ts +2 -0
  2150. package/dist/tools/generate-execution-plan.test.d.ts.map +1 -0
  2151. package/dist/tools/generate-execution-plan.test.js +643 -0
  2152. package/dist/tools/generate-execution-plan.test.js.map +1 -0
  2153. package/dist/tools/generate-orchestration-script.d.ts +3 -0
  2154. package/dist/tools/generate-orchestration-script.d.ts.map +1 -0
  2155. package/dist/tools/generate-orchestration-script.js +50 -0
  2156. package/dist/tools/generate-orchestration-script.js.map +1 -0
  2157. package/dist/tools/generate-rules.d.ts +3 -0
  2158. package/dist/tools/generate-rules.d.ts.map +1 -0
  2159. package/dist/tools/generate-rules.js +71 -0
  2160. package/dist/tools/generate-rules.js.map +1 -0
  2161. package/dist/tools/generate-rules.test.d.ts +2 -0
  2162. package/dist/tools/generate-rules.test.d.ts.map +1 -0
  2163. package/dist/tools/generate-rules.test.js +148 -0
  2164. package/dist/tools/generate-rules.test.js.map +1 -0
  2165. package/dist/tools/generate-skill.d.ts +3 -0
  2166. package/dist/tools/generate-skill.d.ts.map +1 -0
  2167. package/dist/tools/generate-skill.js +57 -0
  2168. package/dist/tools/generate-skill.js.map +1 -0
  2169. package/dist/tools/generate-skill.test.d.ts +2 -0
  2170. package/dist/tools/generate-skill.test.d.ts.map +1 -0
  2171. package/dist/tools/generate-skill.test.js +138 -0
  2172. package/dist/tools/generate-skill.test.js.map +1 -0
  2173. package/dist/tools/generate-sub-agent.d.ts +3 -0
  2174. package/dist/tools/generate-sub-agent.d.ts.map +1 -0
  2175. package/dist/tools/generate-sub-agent.js +82 -0
  2176. package/dist/tools/generate-sub-agent.js.map +1 -0
  2177. package/dist/tools/generate-sub-agent.test.d.ts +2 -0
  2178. package/dist/tools/generate-sub-agent.test.d.ts.map +1 -0
  2179. package/dist/tools/generate-sub-agent.test.js +162 -0
  2180. package/dist/tools/generate-sub-agent.test.js.map +1 -0
  2181. package/dist/tools/generate-tests/adapters/contract-testing-adapter.d.ts +16 -0
  2182. package/dist/tools/generate-tests/adapters/contract-testing-adapter.d.ts.map +1 -0
  2183. package/dist/tools/generate-tests/adapters/contract-testing-adapter.js +67 -0
  2184. package/dist/tools/generate-tests/adapters/contract-testing-adapter.js.map +1 -0
  2185. package/dist/tools/generate-tests/generators/a11y-tests-generator.d.ts +4 -0
  2186. package/dist/tools/generate-tests/generators/a11y-tests-generator.d.ts.map +1 -0
  2187. package/dist/tools/generate-tests/generators/a11y-tests-generator.js +93 -0
  2188. package/dist/tools/generate-tests/generators/a11y-tests-generator.js.map +1 -0
  2189. package/dist/tools/generate-tests/generators/advanced-testing-generator.d.ts +16 -0
  2190. package/dist/tools/generate-tests/generators/advanced-testing-generator.d.ts.map +1 -0
  2191. package/dist/tools/generate-tests/generators/advanced-testing-generator.js +146 -0
  2192. package/dist/tools/generate-tests/generators/advanced-testing-generator.js.map +1 -0
  2193. package/dist/tools/generate-tests/generators/concurrency-test-generator/go-templates.d.ts +2 -0
  2194. package/dist/tools/generate-tests/generators/concurrency-test-generator/go-templates.d.ts.map +1 -0
  2195. package/dist/tools/generate-tests/generators/concurrency-test-generator/go-templates.js +62 -0
  2196. package/dist/tools/generate-tests/generators/concurrency-test-generator/go-templates.js.map +1 -0
  2197. package/dist/tools/generate-tests/generators/concurrency-test-generator/java-templates.d.ts +3 -0
  2198. package/dist/tools/generate-tests/generators/concurrency-test-generator/java-templates.d.ts.map +1 -0
  2199. package/dist/tools/generate-tests/generators/concurrency-test-generator/java-templates.js +94 -0
  2200. package/dist/tools/generate-tests/generators/concurrency-test-generator/java-templates.js.map +1 -0
  2201. package/dist/tools/generate-tests/generators/concurrency-test-generator/js-templates.d.ts +3 -0
  2202. package/dist/tools/generate-tests/generators/concurrency-test-generator/js-templates.d.ts.map +1 -0
  2203. package/dist/tools/generate-tests/generators/concurrency-test-generator/js-templates.js +98 -0
  2204. package/dist/tools/generate-tests/generators/concurrency-test-generator/js-templates.js.map +1 -0
  2205. package/dist/tools/generate-tests/generators/concurrency-test-generator/python-rust-templates.d.ts +4 -0
  2206. package/dist/tools/generate-tests/generators/concurrency-test-generator/python-rust-templates.d.ts.map +1 -0
  2207. package/dist/tools/generate-tests/generators/concurrency-test-generator/python-rust-templates.js +129 -0
  2208. package/dist/tools/generate-tests/generators/concurrency-test-generator/python-rust-templates.js.map +1 -0
  2209. package/dist/tools/generate-tests/generators/concurrency-test-generator/utils.d.ts +6 -0
  2210. package/dist/tools/generate-tests/generators/concurrency-test-generator/utils.d.ts.map +1 -0
  2211. package/dist/tools/generate-tests/generators/concurrency-test-generator/utils.js +43 -0
  2212. package/dist/tools/generate-tests/generators/concurrency-test-generator/utils.js.map +1 -0
  2213. package/dist/tools/generate-tests/generators/concurrency-test-generator.d.ts +26 -0
  2214. package/dist/tools/generate-tests/generators/concurrency-test-generator.d.ts.map +1 -0
  2215. package/dist/tools/generate-tests/generators/concurrency-test-generator.js +128 -0
  2216. package/dist/tools/generate-tests/generators/concurrency-test-generator.js.map +1 -0
  2217. package/dist/tools/generate-tests/generators/event-test-generator.d.ts +17 -0
  2218. package/dist/tools/generate-tests/generators/event-test-generator.d.ts.map +1 -0
  2219. package/dist/tools/generate-tests/generators/event-test-generator.js +144 -0
  2220. package/dist/tools/generate-tests/generators/event-test-generator.js.map +1 -0
  2221. package/dist/tools/generate-tests/generators/game-tests-generator.d.ts +16 -0
  2222. package/dist/tools/generate-tests/generators/game-tests-generator.d.ts.map +1 -0
  2223. package/dist/tools/generate-tests/generators/game-tests-generator.js +166 -0
  2224. package/dist/tools/generate-tests/generators/game-tests-generator.js.map +1 -0
  2225. package/dist/tools/generate-tests/generators/hypermedia-generator-b.d.ts +9 -0
  2226. package/dist/tools/generate-tests/generators/hypermedia-generator-b.d.ts.map +1 -0
  2227. package/dist/tools/generate-tests/generators/hypermedia-generator-b.js +321 -0
  2228. package/dist/tools/generate-tests/generators/hypermedia-generator-b.js.map +1 -0
  2229. package/dist/tools/generate-tests/generators/hypermedia-generator.d.ts +11 -0
  2230. package/dist/tools/generate-tests/generators/hypermedia-generator.d.ts.map +1 -0
  2231. package/dist/tools/generate-tests/generators/hypermedia-generator.js +53 -0
  2232. package/dist/tools/generate-tests/generators/hypermedia-generator.js.map +1 -0
  2233. package/dist/tools/generate-tests/generators/llm-security-test-generator.d.ts +14 -0
  2234. package/dist/tools/generate-tests/generators/llm-security-test-generator.d.ts.map +1 -0
  2235. package/dist/tools/generate-tests/generators/llm-security-test-generator.js +213 -0
  2236. package/dist/tools/generate-tests/generators/llm-security-test-generator.js.map +1 -0
  2237. package/dist/tools/generate-tests/generators/local-first-test-generator.d.ts +14 -0
  2238. package/dist/tools/generate-tests/generators/local-first-test-generator.d.ts.map +1 -0
  2239. package/dist/tools/generate-tests/generators/local-first-test-generator.js +310 -0
  2240. package/dist/tools/generate-tests/generators/local-first-test-generator.js.map +1 -0
  2241. package/dist/tools/generate-tests/generators/mcp-tests-generator.d.ts +5 -0
  2242. package/dist/tools/generate-tests/generators/mcp-tests-generator.d.ts.map +1 -0
  2243. package/dist/tools/generate-tests/generators/mcp-tests-generator.js +237 -0
  2244. package/dist/tools/generate-tests/generators/mcp-tests-generator.js.map +1 -0
  2245. package/dist/tools/generate-tests/generators/otel-test-generator.d.ts +14 -0
  2246. package/dist/tools/generate-tests/generators/otel-test-generator.d.ts.map +1 -0
  2247. package/dist/tools/generate-tests/generators/otel-test-generator.js +272 -0
  2248. package/dist/tools/generate-tests/generators/otel-test-generator.js.map +1 -0
  2249. package/dist/tools/generate-tests/generators/supply-chain-test-generator.d.ts +15 -0
  2250. package/dist/tools/generate-tests/generators/supply-chain-test-generator.d.ts.map +1 -0
  2251. package/dist/tools/generate-tests/generators/supply-chain-test-generator.js +154 -0
  2252. package/dist/tools/generate-tests/generators/supply-chain-test-generator.js.map +1 -0
  2253. package/dist/tools/generate-tests/spec-dispatcher.d.ts +18 -0
  2254. package/dist/tools/generate-tests/spec-dispatcher.d.ts.map +1 -0
  2255. package/dist/tools/generate-tests/spec-dispatcher.js +129 -0
  2256. package/dist/tools/generate-tests/spec-dispatcher.js.map +1 -0
  2257. package/dist/tools/generate-tests-content.d.ts +5 -0
  2258. package/dist/tools/generate-tests-content.d.ts.map +1 -0
  2259. package/dist/tools/generate-tests-content.js +196 -0
  2260. package/dist/tools/generate-tests-content.js.map +1 -0
  2261. package/dist/tools/generate-tests-mobile.d.ts +3 -0
  2262. package/dist/tools/generate-tests-mobile.d.ts.map +1 -0
  2263. package/dist/tools/generate-tests-mobile.js +300 -0
  2264. package/dist/tools/generate-tests-mobile.js.map +1 -0
  2265. package/dist/tools/generate-tests.d.ts +3 -0
  2266. package/dist/tools/generate-tests.d.ts.map +1 -0
  2267. package/dist/tools/generate-tests.js +285 -0
  2268. package/dist/tools/generate-tests.js.map +1 -0
  2269. package/dist/tools/generate-tests.test.d.ts +2 -0
  2270. package/dist/tools/generate-tests.test.d.ts.map +1 -0
  2271. package/dist/tools/generate-tests.test.js +222 -0
  2272. package/dist/tools/generate-tests.test.js.map +1 -0
  2273. package/dist/tools/git/branch-ops.d.ts +4 -0
  2274. package/dist/tools/git/branch-ops.d.ts.map +1 -0
  2275. package/dist/tools/git/branch-ops.js +106 -0
  2276. package/dist/tools/git/branch-ops.js.map +1 -0
  2277. package/dist/tools/git/breaking-ops.d.ts +5 -0
  2278. package/dist/tools/git/breaking-ops.d.ts.map +1 -0
  2279. package/dist/tools/git/breaking-ops.js +181 -0
  2280. package/dist/tools/git/breaking-ops.js.map +1 -0
  2281. package/dist/tools/git/changelog-ops.d.ts +3 -0
  2282. package/dist/tools/git/changelog-ops.d.ts.map +1 -0
  2283. package/dist/tools/git/changelog-ops.js +128 -0
  2284. package/dist/tools/git/changelog-ops.js.map +1 -0
  2285. package/dist/tools/git/commit-ops.d.ts +4 -0
  2286. package/dist/tools/git/commit-ops.d.ts.map +1 -0
  2287. package/dist/tools/git/commit-ops.js +189 -0
  2288. package/dist/tools/git/commit-ops.js.map +1 -0
  2289. package/dist/tools/git/git-helpers.d.ts +27 -0
  2290. package/dist/tools/git/git-helpers.d.ts.map +1 -0
  2291. package/dist/tools/git/git-helpers.js +112 -0
  2292. package/dist/tools/git/git-helpers.js.map +1 -0
  2293. package/dist/tools/git/hook-ops.d.ts +3 -0
  2294. package/dist/tools/git/hook-ops.d.ts.map +1 -0
  2295. package/dist/tools/git/hook-ops.js +194 -0
  2296. package/dist/tools/git/hook-ops.js.map +1 -0
  2297. package/dist/tools/git/pr-ops.d.ts +3 -0
  2298. package/dist/tools/git/pr-ops.d.ts.map +1 -0
  2299. package/dist/tools/git/pr-ops.js +161 -0
  2300. package/dist/tools/git/pr-ops.js.map +1 -0
  2301. package/dist/tools/git/release-ops.d.ts +5 -0
  2302. package/dist/tools/git/release-ops.d.ts.map +1 -0
  2303. package/dist/tools/git/release-ops.js +209 -0
  2304. package/dist/tools/git/release-ops.js.map +1 -0
  2305. package/dist/tools/git/sync-ops.d.ts +5 -0
  2306. package/dist/tools/git/sync-ops.d.ts.map +1 -0
  2307. package/dist/tools/git/sync-ops.js +196 -0
  2308. package/dist/tools/git/sync-ops.js.map +1 -0
  2309. package/dist/tools/init-constitution/handler.d.ts +3 -0
  2310. package/dist/tools/init-constitution/handler.d.ts.map +1 -0
  2311. package/dist/tools/init-constitution/handler.js +109 -0
  2312. package/dist/tools/init-constitution/handler.js.map +1 -0
  2313. package/dist/tools/init-constitution/platform-principles.d.ts +5 -0
  2314. package/dist/tools/init-constitution/platform-principles.d.ts.map +1 -0
  2315. package/dist/tools/init-constitution/platform-principles.js +95 -0
  2316. package/dist/tools/init-constitution/platform-principles.js.map +1 -0
  2317. package/dist/tools/init-constitution/principle-detector.d.ts +13 -0
  2318. package/dist/tools/init-constitution/principle-detector.d.ts.map +1 -0
  2319. package/dist/tools/init-constitution/principle-detector.js +203 -0
  2320. package/dist/tools/init-constitution/principle-detector.js.map +1 -0
  2321. package/dist/tools/init-constitution.d.ts +3 -0
  2322. package/dist/tools/init-constitution.d.ts.map +1 -0
  2323. package/dist/tools/init-constitution.js +5 -0
  2324. package/dist/tools/init-constitution.js.map +1 -0
  2325. package/dist/tools/init-constitution.test.d.ts +2 -0
  2326. package/dist/tools/init-constitution.test.d.ts.map +1 -0
  2327. package/dist/tools/init-constitution.test.js +398 -0
  2328. package/dist/tools/init-constitution.test.js.map +1 -0
  2329. package/dist/tools/init-project/handler.d.ts +3 -0
  2330. package/dist/tools/init-project/handler.d.ts.map +1 -0
  2331. package/dist/tools/init-project/handler.js +221 -0
  2332. package/dist/tools/init-project/handler.js.map +1 -0
  2333. package/dist/tools/init-project/helpers.d.ts +31 -0
  2334. package/dist/tools/init-project/helpers.d.ts.map +1 -0
  2335. package/dist/tools/init-project/helpers.js +201 -0
  2336. package/dist/tools/init-project/helpers.js.map +1 -0
  2337. package/dist/tools/init-project.d.ts +2 -0
  2338. package/dist/tools/init-project.d.ts.map +1 -0
  2339. package/dist/tools/init-project.js +4 -0
  2340. package/dist/tools/init-project.js.map +1 -0
  2341. package/dist/tools/init-project.test.d.ts +2 -0
  2342. package/dist/tools/init-project.test.d.ts.map +1 -0
  2343. package/dist/tools/init-project.test.js +158 -0
  2344. package/dist/tools/init-project.test.js.map +1 -0
  2345. package/dist/tools/integrate-pm.d.ts +3 -0
  2346. package/dist/tools/integrate-pm.d.ts.map +1 -0
  2347. package/dist/tools/integrate-pm.js +255 -0
  2348. package/dist/tools/integrate-pm.js.map +1 -0
  2349. package/dist/tools/integrate-pm.test.d.ts +2 -0
  2350. package/dist/tools/integrate-pm.test.d.ts.map +1 -0
  2351. package/dist/tools/integrate-pm.test.js +558 -0
  2352. package/dist/tools/integrate-pm.test.js.map +1 -0
  2353. package/dist/tools/learn.d.ts +8 -0
  2354. package/dist/tools/learn.d.ts.map +1 -0
  2355. package/dist/tools/learn.js +98 -0
  2356. package/dist/tools/learn.js.map +1 -0
  2357. package/dist/tools/learn.test.d.ts +2 -0
  2358. package/dist/tools/learn.test.d.ts.map +1 -0
  2359. package/dist/tools/learn.test.js +123 -0
  2360. package/dist/tools/learn.test.js.map +1 -0
  2361. package/dist/tools/list-specs.d.ts +3 -0
  2362. package/dist/tools/list-specs.d.ts.map +1 -0
  2363. package/dist/tools/list-specs.js +82 -0
  2364. package/dist/tools/list-specs.js.map +1 -0
  2365. package/dist/tools/list-specs.test.d.ts +2 -0
  2366. package/dist/tools/list-specs.test.d.ts.map +1 -0
  2367. package/dist/tools/list-specs.test.js +110 -0
  2368. package/dist/tools/list-specs.test.js.map +1 -0
  2369. package/dist/tools/log-decision.d.ts +3 -0
  2370. package/dist/tools/log-decision.d.ts.map +1 -0
  2371. package/dist/tools/log-decision.js +138 -0
  2372. package/dist/tools/log-decision.js.map +1 -0
  2373. package/dist/tools/manage-context/crud-handlers.d.ts +7 -0
  2374. package/dist/tools/manage-context/crud-handlers.d.ts.map +1 -0
  2375. package/dist/tools/manage-context/crud-handlers.js +150 -0
  2376. package/dist/tools/manage-context/crud-handlers.js.map +1 -0
  2377. package/dist/tools/manage-context/handlers.d.ts +4 -0
  2378. package/dist/tools/manage-context/handlers.d.ts.map +1 -0
  2379. package/dist/tools/manage-context/handlers.js +8 -0
  2380. package/dist/tools/manage-context/handlers.js.map +1 -0
  2381. package/dist/tools/manage-context/note-health-handlers.d.ts +7 -0
  2382. package/dist/tools/manage-context/note-health-handlers.d.ts.map +1 -0
  2383. package/dist/tools/manage-context/note-health-handlers.js +210 -0
  2384. package/dist/tools/manage-context/note-health-handlers.js.map +1 -0
  2385. package/dist/tools/manage-context/store.d.ts +36 -0
  2386. package/dist/tools/manage-context/store.d.ts.map +1 -0
  2387. package/dist/tools/manage-context/store.js +178 -0
  2388. package/dist/tools/manage-context/store.js.map +1 -0
  2389. package/dist/tools/manage-context.d.ts +3 -0
  2390. package/dist/tools/manage-context.d.ts.map +1 -0
  2391. package/dist/tools/manage-context.js +106 -0
  2392. package/dist/tools/manage-context.js.map +1 -0
  2393. package/dist/tools/manage-context.test.d.ts +2 -0
  2394. package/dist/tools/manage-context.test.d.ts.map +1 -0
  2395. package/dist/tools/manage-context.test.js +359 -0
  2396. package/dist/tools/manage-context.test.js.map +1 -0
  2397. package/dist/tools/manage-git.d.ts +3 -0
  2398. package/dist/tools/manage-git.d.ts.map +1 -0
  2399. package/dist/tools/manage-git.js +61 -0
  2400. package/dist/tools/manage-git.js.map +1 -0
  2401. package/dist/tools/manage-git.test.d.ts +2 -0
  2402. package/dist/tools/manage-git.test.d.ts.map +1 -0
  2403. package/dist/tools/manage-git.test.js +882 -0
  2404. package/dist/tools/manage-git.test.js.map +1 -0
  2405. package/dist/tools/manage-scope.d.ts +3 -0
  2406. package/dist/tools/manage-scope.d.ts.map +1 -0
  2407. package/dist/tools/manage-scope.js +202 -0
  2408. package/dist/tools/manage-scope.js.map +1 -0
  2409. package/dist/tools/migrate-tech/advanced-handlers.d.ts +7 -0
  2410. package/dist/tools/migrate-tech/advanced-handlers.d.ts.map +1 -0
  2411. package/dist/tools/migrate-tech/advanced-handlers.js +216 -0
  2412. package/dist/tools/migrate-tech/advanced-handlers.js.map +1 -0
  2413. package/dist/tools/migrate-tech/build-tool-handlers.d.ts +6 -0
  2414. package/dist/tools/migrate-tech/build-tool-handlers.d.ts.map +1 -0
  2415. package/dist/tools/migrate-tech/build-tool-handlers.js +92 -0
  2416. package/dist/tools/migrate-tech/build-tool-handlers.js.map +1 -0
  2417. package/dist/tools/migrate-tech/core-handlers.d.ts +7 -0
  2418. package/dist/tools/migrate-tech/core-handlers.d.ts.map +1 -0
  2419. package/dist/tools/migrate-tech/core-handlers.js +145 -0
  2420. package/dist/tools/migrate-tech/core-handlers.js.map +1 -0
  2421. package/dist/tools/migrate-tech/data-handlers.d.ts +9 -0
  2422. package/dist/tools/migrate-tech/data-handlers.d.ts.map +1 -0
  2423. package/dist/tools/migrate-tech/data-handlers.js +137 -0
  2424. package/dist/tools/migrate-tech/data-handlers.js.map +1 -0
  2425. package/dist/tools/migrate-tech/detect-pending-handler.d.ts +3 -0
  2426. package/dist/tools/migrate-tech/detect-pending-handler.d.ts.map +1 -0
  2427. package/dist/tools/migrate-tech/detect-pending-handler.js +31 -0
  2428. package/dist/tools/migrate-tech/detect-pending-handler.js.map +1 -0
  2429. package/dist/tools/migrate-tech-advanced/rollback-handlers.d.ts +7 -0
  2430. package/dist/tools/migrate-tech-advanced/rollback-handlers.d.ts.map +1 -0
  2431. package/dist/tools/migrate-tech-advanced/rollback-handlers.js +214 -0
  2432. package/dist/tools/migrate-tech-advanced/rollback-handlers.js.map +1 -0
  2433. package/dist/tools/migrate-tech-advanced/service-handlers.d.ts +6 -0
  2434. package/dist/tools/migrate-tech-advanced/service-handlers.d.ts.map +1 -0
  2435. package/dist/tools/migrate-tech-advanced/service-handlers.js +79 -0
  2436. package/dist/tools/migrate-tech-advanced/service-handlers.js.map +1 -0
  2437. package/dist/tools/migrate-tech-advanced.d.ts +3 -0
  2438. package/dist/tools/migrate-tech-advanced.d.ts.map +1 -0
  2439. package/dist/tools/migrate-tech-advanced.js +5 -0
  2440. package/dist/tools/migrate-tech-advanced.js.map +1 -0
  2441. package/dist/tools/migrate-tech.d.ts +3 -0
  2442. package/dist/tools/migrate-tech.d.ts.map +1 -0
  2443. package/dist/tools/migrate-tech.js +77 -0
  2444. package/dist/tools/migrate-tech.js.map +1 -0
  2445. package/dist/tools/orchestrate/journal-brief-handlers.d.ts +4 -0
  2446. package/dist/tools/orchestrate/journal-brief-handlers.d.ts.map +1 -0
  2447. package/dist/tools/orchestrate/journal-brief-handlers.js +63 -0
  2448. package/dist/tools/orchestrate/journal-brief-handlers.js.map +1 -0
  2449. package/dist/tools/orchestrate/session-handlers.d.ts +8 -0
  2450. package/dist/tools/orchestrate/session-handlers.d.ts.map +1 -0
  2451. package/dist/tools/orchestrate/session-handlers.js +193 -0
  2452. package/dist/tools/orchestrate/session-handlers.js.map +1 -0
  2453. package/dist/tools/orchestrate/state.d.ts +9 -0
  2454. package/dist/tools/orchestrate/state.d.ts.map +1 -0
  2455. package/dist/tools/orchestrate/state.js +31 -0
  2456. package/dist/tools/orchestrate/state.js.map +1 -0
  2457. package/dist/tools/orchestrate/utils.d.ts +3 -0
  2458. package/dist/tools/orchestrate/utils.d.ts.map +1 -0
  2459. package/dist/tools/orchestrate/utils.js +4 -0
  2460. package/dist/tools/orchestrate/utils.js.map +1 -0
  2461. package/dist/tools/orchestrate-agents.d.ts +3 -0
  2462. package/dist/tools/orchestrate-agents.d.ts.map +1 -0
  2463. package/dist/tools/orchestrate-agents.js +82 -0
  2464. package/dist/tools/orchestrate-agents.js.map +1 -0
  2465. package/dist/tools/orchestrate-distribution.d.ts +11 -0
  2466. package/dist/tools/orchestrate-distribution.d.ts.map +1 -0
  2467. package/dist/tools/orchestrate-distribution.js +210 -0
  2468. package/dist/tools/orchestrate-distribution.js.map +1 -0
  2469. package/dist/tools/orchestrate-locking.d.ts +35 -0
  2470. package/dist/tools/orchestrate-locking.d.ts.map +1 -0
  2471. package/dist/tools/orchestrate-locking.js +202 -0
  2472. package/dist/tools/orchestrate-locking.js.map +1 -0
  2473. package/dist/tools/orchestrate.d.ts +3 -0
  2474. package/dist/tools/orchestrate.d.ts.map +1 -0
  2475. package/dist/tools/orchestrate.js +70 -0
  2476. package/dist/tools/orchestrate.js.map +1 -0
  2477. package/dist/tools/orchestrate.test.d.ts +2 -0
  2478. package/dist/tools/orchestrate.test.d.ts.map +1 -0
  2479. package/dist/tools/orchestrate.test.js +1117 -0
  2480. package/dist/tools/orchestrate.test.js.map +1 -0
  2481. package/dist/tools/package-handoff.d.ts +3 -0
  2482. package/dist/tools/package-handoff.d.ts.map +1 -0
  2483. package/dist/tools/package-handoff.js +139 -0
  2484. package/dist/tools/package-handoff.js.map +1 -0
  2485. package/dist/tools/paradigm-report.d.ts +7 -0
  2486. package/dist/tools/paradigm-report.d.ts.map +1 -0
  2487. package/dist/tools/paradigm-report.js +84 -0
  2488. package/dist/tools/paradigm-report.js.map +1 -0
  2489. package/dist/tools/plan-upgrade.d.ts +3 -0
  2490. package/dist/tools/plan-upgrade.d.ts.map +1 -0
  2491. package/dist/tools/plan-upgrade.js +38 -0
  2492. package/dist/tools/plan-upgrade.js.map +1 -0
  2493. package/dist/tools/reality-check.d.ts +3 -0
  2494. package/dist/tools/reality-check.d.ts.map +1 -0
  2495. package/dist/tools/reality-check.js +70 -0
  2496. package/dist/tools/reality-check.js.map +1 -0
  2497. package/dist/tools/reconcile-spec.d.ts +3 -0
  2498. package/dist/tools/reconcile-spec.d.ts.map +1 -0
  2499. package/dist/tools/reconcile-spec.js +247 -0
  2500. package/dist/tools/reconcile-spec.js.map +1 -0
  2501. package/dist/tools/reconcile-spec.test.d.ts +2 -0
  2502. package/dist/tools/reconcile-spec.test.d.ts.map +1 -0
  2503. package/dist/tools/reconcile-spec.test.js +259 -0
  2504. package/dist/tools/reconcile-spec.test.js.map +1 -0
  2505. package/dist/tools/register-agent-tools.d.ts +3 -0
  2506. package/dist/tools/register-agent-tools.d.ts.map +1 -0
  2507. package/dist/tools/register-agent-tools.js +87 -0
  2508. package/dist/tools/register-agent-tools.js.map +1 -0
  2509. package/dist/tools/register-context-tools.d.ts +3 -0
  2510. package/dist/tools/register-context-tools.d.ts.map +1 -0
  2511. package/dist/tools/register-context-tools.js +83 -0
  2512. package/dist/tools/register-context-tools.js.map +1 -0
  2513. package/dist/tools/register-event-tools.d.ts +3 -0
  2514. package/dist/tools/register-event-tools.d.ts.map +1 -0
  2515. package/dist/tools/register-event-tools.js +109 -0
  2516. package/dist/tools/register-event-tools.js.map +1 -0
  2517. package/dist/tools/register-facilitator-tools.d.ts +6 -0
  2518. package/dist/tools/register-facilitator-tools.d.ts.map +1 -0
  2519. package/dist/tools/register-facilitator-tools.js +56 -0
  2520. package/dist/tools/register-facilitator-tools.js.map +1 -0
  2521. package/dist/tools/register-governance-tools.d.ts +3 -0
  2522. package/dist/tools/register-governance-tools.d.ts.map +1 -0
  2523. package/dist/tools/register-governance-tools.js +31 -0
  2524. package/dist/tools/register-governance-tools.js.map +1 -0
  2525. package/dist/tools/register-learning-tools.d.ts +3 -0
  2526. package/dist/tools/register-learning-tools.d.ts.map +1 -0
  2527. package/dist/tools/register-learning-tools.js +37 -0
  2528. package/dist/tools/register-learning-tools.js.map +1 -0
  2529. package/dist/tools/register-memory-tools.d.ts +3 -0
  2530. package/dist/tools/register-memory-tools.d.ts.map +1 -0
  2531. package/dist/tools/register-memory-tools.js +71 -0
  2532. package/dist/tools/register-memory-tools.js.map +1 -0
  2533. package/dist/tools/register-migration-tools.d.ts +3 -0
  2534. package/dist/tools/register-migration-tools.d.ts.map +1 -0
  2535. package/dist/tools/register-migration-tools.js +68 -0
  2536. package/dist/tools/register-migration-tools.js.map +1 -0
  2537. package/dist/tools/register-platform-tools/design-stack-tools.d.ts +6 -0
  2538. package/dist/tools/register-platform-tools/design-stack-tools.d.ts.map +1 -0
  2539. package/dist/tools/register-platform-tools/design-stack-tools.js +161 -0
  2540. package/dist/tools/register-platform-tools/design-stack-tools.js.map +1 -0
  2541. package/dist/tools/register-platform-tools/lifecycle-infra-tools.d.ts +6 -0
  2542. package/dist/tools/register-platform-tools/lifecycle-infra-tools.d.ts.map +1 -0
  2543. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js +155 -0
  2544. package/dist/tools/register-platform-tools/lifecycle-infra-tools.js.map +1 -0
  2545. package/dist/tools/register-platform-tools.d.ts +6 -0
  2546. package/dist/tools/register-platform-tools.d.ts.map +1 -0
  2547. package/dist/tools/register-platform-tools.js +12 -0
  2548. package/dist/tools/register-platform-tools.js.map +1 -0
  2549. package/dist/tools/register-platform-tools.test.d.ts +2 -0
  2550. package/dist/tools/register-platform-tools.test.d.ts.map +1 -0
  2551. package/dist/tools/register-platform-tools.test.js +404 -0
  2552. package/dist/tools/register-platform-tools.test.js.map +1 -0
  2553. package/dist/tools/register-readiness-tools.d.ts +3 -0
  2554. package/dist/tools/register-readiness-tools.d.ts.map +1 -0
  2555. package/dist/tools/register-readiness-tools.js +28 -0
  2556. package/dist/tools/register-readiness-tools.js.map +1 -0
  2557. package/dist/tools/register-scope-tools.d.ts +6 -0
  2558. package/dist/tools/register-scope-tools.d.ts.map +1 -0
  2559. package/dist/tools/register-scope-tools.js +64 -0
  2560. package/dist/tools/register-scope-tools.js.map +1 -0
  2561. package/dist/tools/register-security-tools.d.ts +3 -0
  2562. package/dist/tools/register-security-tools.d.ts.map +1 -0
  2563. package/dist/tools/register-security-tools.js +24 -0
  2564. package/dist/tools/register-security-tools.js.map +1 -0
  2565. package/dist/tools/register-spec-tools/analysis-tools.d.ts +6 -0
  2566. package/dist/tools/register-spec-tools/analysis-tools.d.ts.map +1 -0
  2567. package/dist/tools/register-spec-tools/analysis-tools.js +129 -0
  2568. package/dist/tools/register-spec-tools/analysis-tools.js.map +1 -0
  2569. package/dist/tools/register-spec-tools/core-spec-tools.d.ts +6 -0
  2570. package/dist/tools/register-spec-tools/core-spec-tools.d.ts.map +1 -0
  2571. package/dist/tools/register-spec-tools/core-spec-tools.js +159 -0
  2572. package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -0
  2573. package/dist/tools/register-spec-tools.d.ts +6 -0
  2574. package/dist/tools/register-spec-tools.d.ts.map +1 -0
  2575. package/dist/tools/register-spec-tools.js +12 -0
  2576. package/dist/tools/register-spec-tools.js.map +1 -0
  2577. package/dist/tools/register-spec-tools.test.d.ts +2 -0
  2578. package/dist/tools/register-spec-tools.test.d.ts.map +1 -0
  2579. package/dist/tools/register-spec-tools.test.js +407 -0
  2580. package/dist/tools/register-spec-tools.test.js.map +1 -0
  2581. package/dist/tools/register-stack-tools.d.ts +3 -0
  2582. package/dist/tools/register-stack-tools.d.ts.map +1 -0
  2583. package/dist/tools/register-stack-tools.js +60 -0
  2584. package/dist/tools/register-stack-tools.js.map +1 -0
  2585. package/dist/tools/register-workflow-tools.d.ts +3 -0
  2586. package/dist/tools/register-workflow-tools.d.ts.map +1 -0
  2587. package/dist/tools/register-workflow-tools.js +36 -0
  2588. package/dist/tools/register-workflow-tools.js.map +1 -0
  2589. package/dist/tools/reverse-engineer/analyzer.d.ts +14 -0
  2590. package/dist/tools/reverse-engineer/analyzer.d.ts.map +1 -0
  2591. package/dist/tools/reverse-engineer/analyzer.js +180 -0
  2592. package/dist/tools/reverse-engineer/analyzer.js.map +1 -0
  2593. package/dist/tools/reverse-engineer/handler.d.ts +3 -0
  2594. package/dist/tools/reverse-engineer/handler.d.ts.map +1 -0
  2595. package/dist/tools/reverse-engineer/handler.js +239 -0
  2596. package/dist/tools/reverse-engineer/handler.js.map +1 -0
  2597. package/dist/tools/reverse-engineer.d.ts +3 -0
  2598. package/dist/tools/reverse-engineer.d.ts.map +1 -0
  2599. package/dist/tools/reverse-engineer.js +5 -0
  2600. package/dist/tools/reverse-engineer.js.map +1 -0
  2601. package/dist/tools/reverse-engineer.test.d.ts +2 -0
  2602. package/dist/tools/reverse-engineer.test.d.ts.map +1 -0
  2603. package/dist/tools/reverse-engineer.test.js +206 -0
  2604. package/dist/tools/reverse-engineer.test.js.map +1 -0
  2605. package/dist/tools/safe-handler.d.ts +10 -0
  2606. package/dist/tools/safe-handler.d.ts.map +1 -0
  2607. package/dist/tools/safe-handler.js +25 -0
  2608. package/dist/tools/safe-handler.js.map +1 -0
  2609. package/dist/tools/schemas/agents.d.ts +21 -0
  2610. package/dist/tools/schemas/agents.d.ts.map +1 -0
  2611. package/dist/tools/schemas/agents.js +22 -0
  2612. package/dist/tools/schemas/agents.js.map +1 -0
  2613. package/dist/tools/schemas/analysis.d.ts +28 -0
  2614. package/dist/tools/schemas/analysis.d.ts.map +1 -0
  2615. package/dist/tools/schemas/analysis.js +29 -0
  2616. package/dist/tools/schemas/analysis.js.map +1 -0
  2617. package/dist/tools/schemas/index.d.ts +6 -0
  2618. package/dist/tools/schemas/index.d.ts.map +1 -0
  2619. package/dist/tools/schemas/index.js +7 -0
  2620. package/dist/tools/schemas/index.js.map +1 -0
  2621. package/dist/tools/schemas/infra.d.ts +22 -0
  2622. package/dist/tools/schemas/infra.d.ts.map +1 -0
  2623. package/dist/tools/schemas/infra.js +17 -0
  2624. package/dist/tools/schemas/infra.js.map +1 -0
  2625. package/dist/tools/schemas/lifecycle.d.ts +72 -0
  2626. package/dist/tools/schemas/lifecycle.d.ts.map +1 -0
  2627. package/dist/tools/schemas/lifecycle.js +68 -0
  2628. package/dist/tools/schemas/lifecycle.js.map +1 -0
  2629. package/dist/tools/schemas/spec.d.ts +45 -0
  2630. package/dist/tools/schemas/spec.d.ts.map +1 -0
  2631. package/dist/tools/schemas/spec.js +28 -0
  2632. package/dist/tools/schemas/spec.js.map +1 -0
  2633. package/dist/tools/schemas.d.ts +20 -0
  2634. package/dist/tools/schemas.d.ts.map +1 -0
  2635. package/dist/tools/schemas.js +133 -0
  2636. package/dist/tools/schemas.js.map +1 -0
  2637. package/dist/tools/schemas.test.d.ts +2 -0
  2638. package/dist/tools/schemas.test.d.ts.map +1 -0
  2639. package/dist/tools/schemas.test.js +245 -0
  2640. package/dist/tools/schemas.test.js.map +1 -0
  2641. package/dist/tools/security-check.d.ts +3 -0
  2642. package/dist/tools/security-check.d.ts.map +1 -0
  2643. package/dist/tools/security-check.js +135 -0
  2644. package/dist/tools/security-check.js.map +1 -0
  2645. package/dist/tools/set-locale.d.ts +3 -0
  2646. package/dist/tools/set-locale.d.ts.map +1 -0
  2647. package/dist/tools/set-locale.js +34 -0
  2648. package/dist/tools/set-locale.js.map +1 -0
  2649. package/dist/tools/set-locale.test.d.ts +2 -0
  2650. package/dist/tools/set-locale.test.d.ts.map +1 -0
  2651. package/dist/tools/set-locale.test.js +74 -0
  2652. package/dist/tools/set-locale.test.js.map +1 -0
  2653. package/dist/tools/suggest-mcps.d.ts +13 -0
  2654. package/dist/tools/suggest-mcps.d.ts.map +1 -0
  2655. package/dist/tools/suggest-mcps.js +219 -0
  2656. package/dist/tools/suggest-mcps.js.map +1 -0
  2657. package/dist/tools/suggest-mcps.test.d.ts +2 -0
  2658. package/dist/tools/suggest-mcps.test.d.ts.map +1 -0
  2659. package/dist/tools/suggest-mcps.test.js +198 -0
  2660. package/dist/tools/suggest-mcps.test.js.map +1 -0
  2661. package/dist/tools/suggest-stack.d.ts +3 -0
  2662. package/dist/tools/suggest-stack.d.ts.map +1 -0
  2663. package/dist/tools/suggest-stack.js +103 -0
  2664. package/dist/tools/suggest-stack.js.map +1 -0
  2665. package/dist/tools/suggest-stack.test.d.ts +2 -0
  2666. package/dist/tools/suggest-stack.test.d.ts.map +1 -0
  2667. package/dist/tools/suggest-stack.test.js +181 -0
  2668. package/dist/tools/suggest-stack.test.js.map +1 -0
  2669. package/dist/tools/suggest-tooling/advanced-testing-catalog.d.ts +7 -0
  2670. package/dist/tools/suggest-tooling/advanced-testing-catalog.d.ts.map +1 -0
  2671. package/dist/tools/suggest-tooling/advanced-testing-catalog.js +197 -0
  2672. package/dist/tools/suggest-tooling/advanced-testing-catalog.js.map +1 -0
  2673. package/dist/tools/suggest-tooling/ai-native-catalog.d.ts +8 -0
  2674. package/dist/tools/suggest-tooling/ai-native-catalog.d.ts.map +1 -0
  2675. package/dist/tools/suggest-tooling/ai-native-catalog.js +110 -0
  2676. package/dist/tools/suggest-tooling/ai-native-catalog.js.map +1 -0
  2677. package/dist/tools/suggest-tooling/build-tool-catalog.d.ts +11 -0
  2678. package/dist/tools/suggest-tooling/build-tool-catalog.d.ts.map +1 -0
  2679. package/dist/tools/suggest-tooling/build-tool-catalog.js +196 -0
  2680. package/dist/tools/suggest-tooling/build-tool-catalog.js.map +1 -0
  2681. package/dist/tools/suggest-tooling/catalog-loader.d.ts +3 -0
  2682. package/dist/tools/suggest-tooling/catalog-loader.d.ts.map +1 -0
  2683. package/dist/tools/suggest-tooling/catalog-loader.js +21 -0
  2684. package/dist/tools/suggest-tooling/catalog-loader.js.map +1 -0
  2685. package/dist/tools/suggest-tooling/css-framework-catalog.d.ts +7 -0
  2686. package/dist/tools/suggest-tooling/css-framework-catalog.d.ts.map +1 -0
  2687. package/dist/tools/suggest-tooling/css-framework-catalog.js +52 -0
  2688. package/dist/tools/suggest-tooling/css-framework-catalog.js.map +1 -0
  2689. package/dist/tools/suggest-tooling/dagger-catalog.d.ts +9 -0
  2690. package/dist/tools/suggest-tooling/dagger-catalog.d.ts.map +1 -0
  2691. package/dist/tools/suggest-tooling/dagger-catalog.js +116 -0
  2692. package/dist/tools/suggest-tooling/dagger-catalog.js.map +1 -0
  2693. package/dist/tools/suggest-tooling/dep-audit-catalog.d.ts +22 -0
  2694. package/dist/tools/suggest-tooling/dep-audit-catalog.d.ts.map +1 -0
  2695. package/dist/tools/suggest-tooling/dep-audit-catalog.js +45 -0
  2696. package/dist/tools/suggest-tooling/dep-audit-catalog.js.map +1 -0
  2697. package/dist/tools/suggest-tooling/dora-output.d.ts +6 -0
  2698. package/dist/tools/suggest-tooling/dora-output.d.ts.map +1 -0
  2699. package/dist/tools/suggest-tooling/dora-output.js +35 -0
  2700. package/dist/tools/suggest-tooling/dora-output.js.map +1 -0
  2701. package/dist/tools/suggest-tooling/framework-catalog.d.ts +4 -0
  2702. package/dist/tools/suggest-tooling/framework-catalog.d.ts.map +1 -0
  2703. package/dist/tools/suggest-tooling/framework-catalog.js +137 -0
  2704. package/dist/tools/suggest-tooling/framework-catalog.js.map +1 -0
  2705. package/dist/tools/suggest-tooling/frontend-perf-catalog.d.ts +7 -0
  2706. package/dist/tools/suggest-tooling/frontend-perf-catalog.d.ts.map +1 -0
  2707. package/dist/tools/suggest-tooling/frontend-perf-catalog.js +132 -0
  2708. package/dist/tools/suggest-tooling/frontend-perf-catalog.js.map +1 -0
  2709. package/dist/tools/suggest-tooling/handler.d.ts +3 -0
  2710. package/dist/tools/suggest-tooling/handler.d.ts.map +1 -0
  2711. package/dist/tools/suggest-tooling/handler.js +252 -0
  2712. package/dist/tools/suggest-tooling/handler.js.map +1 -0
  2713. package/dist/tools/suggest-tooling/hypermedia-catalog.d.ts +10 -0
  2714. package/dist/tools/suggest-tooling/hypermedia-catalog.d.ts.map +1 -0
  2715. package/dist/tools/suggest-tooling/hypermedia-catalog.js +93 -0
  2716. package/dist/tools/suggest-tooling/hypermedia-catalog.js.map +1 -0
  2717. package/dist/tools/suggest-tooling/idp-catalog.d.ts +7 -0
  2718. package/dist/tools/suggest-tooling/idp-catalog.d.ts.map +1 -0
  2719. package/dist/tools/suggest-tooling/idp-catalog.js +38 -0
  2720. package/dist/tools/suggest-tooling/idp-catalog.js.map +1 -0
  2721. package/dist/tools/suggest-tooling/linting-catalog-core.d.ts +3 -0
  2722. package/dist/tools/suggest-tooling/linting-catalog-core.d.ts.map +1 -0
  2723. package/dist/tools/suggest-tooling/linting-catalog-core.js +271 -0
  2724. package/dist/tools/suggest-tooling/linting-catalog-core.js.map +1 -0
  2725. package/dist/tools/suggest-tooling/linting-catalog-extended.d.ts +3 -0
  2726. package/dist/tools/suggest-tooling/linting-catalog-extended.d.ts.map +1 -0
  2727. package/dist/tools/suggest-tooling/linting-catalog-extended.js +216 -0
  2728. package/dist/tools/suggest-tooling/linting-catalog-extended.js.map +1 -0
  2729. package/dist/tools/suggest-tooling/linting-catalog.d.ts +3 -0
  2730. package/dist/tools/suggest-tooling/linting-catalog.d.ts.map +1 -0
  2731. package/dist/tools/suggest-tooling/linting-catalog.js +97 -0
  2732. package/dist/tools/suggest-tooling/linting-catalog.js.map +1 -0
  2733. package/dist/tools/suggest-tooling/llm-security-catalog.d.ts +9 -0
  2734. package/dist/tools/suggest-tooling/llm-security-catalog.d.ts.map +1 -0
  2735. package/dist/tools/suggest-tooling/llm-security-catalog.js +83 -0
  2736. package/dist/tools/suggest-tooling/llm-security-catalog.js.map +1 -0
  2737. package/dist/tools/suggest-tooling/local-first-catalog.d.ts +9 -0
  2738. package/dist/tools/suggest-tooling/local-first-catalog.d.ts.map +1 -0
  2739. package/dist/tools/suggest-tooling/local-first-catalog.js +103 -0
  2740. package/dist/tools/suggest-tooling/local-first-catalog.js.map +1 -0
  2741. package/dist/tools/suggest-tooling/observability-catalog.d.ts +21 -0
  2742. package/dist/tools/suggest-tooling/observability-catalog.d.ts.map +1 -0
  2743. package/dist/tools/suggest-tooling/observability-catalog.js +228 -0
  2744. package/dist/tools/suggest-tooling/observability-catalog.js.map +1 -0
  2745. package/dist/tools/suggest-tooling/orchestration-generator.d.ts +12 -0
  2746. package/dist/tools/suggest-tooling/orchestration-generator.d.ts.map +1 -0
  2747. package/dist/tools/suggest-tooling/orchestration-generator.js +106 -0
  2748. package/dist/tools/suggest-tooling/orchestration-generator.js.map +1 -0
  2749. package/dist/tools/suggest-tooling/otel-catalog.d.ts +9 -0
  2750. package/dist/tools/suggest-tooling/otel-catalog.d.ts.map +1 -0
  2751. package/dist/tools/suggest-tooling/otel-catalog.js +113 -0
  2752. package/dist/tools/suggest-tooling/otel-catalog.js.map +1 -0
  2753. package/dist/tools/suggest-tooling/output-formatter-catalog.d.ts +11 -0
  2754. package/dist/tools/suggest-tooling/output-formatter-catalog.d.ts.map +1 -0
  2755. package/dist/tools/suggest-tooling/output-formatter-catalog.js +75 -0
  2756. package/dist/tools/suggest-tooling/output-formatter-catalog.js.map +1 -0
  2757. package/dist/tools/suggest-tooling/platform-tooling-catalog.d.ts +7 -0
  2758. package/dist/tools/suggest-tooling/platform-tooling-catalog.d.ts.map +1 -0
  2759. package/dist/tools/suggest-tooling/platform-tooling-catalog.js +141 -0
  2760. package/dist/tools/suggest-tooling/platform-tooling-catalog.js.map +1 -0
  2761. package/dist/tools/suggest-tooling/resilience-catalog.d.ts +18 -0
  2762. package/dist/tools/suggest-tooling/resilience-catalog.d.ts.map +1 -0
  2763. package/dist/tools/suggest-tooling/resilience-catalog.js +136 -0
  2764. package/dist/tools/suggest-tooling/resilience-catalog.js.map +1 -0
  2765. package/dist/tools/suggest-tooling/skills-catalog.d.ts +14 -0
  2766. package/dist/tools/suggest-tooling/skills-catalog.d.ts.map +1 -0
  2767. package/dist/tools/suggest-tooling/skills-catalog.js +275 -0
  2768. package/dist/tools/suggest-tooling/skills-catalog.js.map +1 -0
  2769. package/dist/tools/suggest-tooling/skills-fetcher.d.ts +4 -0
  2770. package/dist/tools/suggest-tooling/skills-fetcher.d.ts.map +1 -0
  2771. package/dist/tools/suggest-tooling/skills-fetcher.js +102 -0
  2772. package/dist/tools/suggest-tooling/skills-fetcher.js.map +1 -0
  2773. package/dist/tools/suggest-tooling/supply-chain-catalog.d.ts +14 -0
  2774. package/dist/tools/suggest-tooling/supply-chain-catalog.d.ts.map +1 -0
  2775. package/dist/tools/suggest-tooling/supply-chain-catalog.js +106 -0
  2776. package/dist/tools/suggest-tooling/supply-chain-catalog.js.map +1 -0
  2777. package/dist/tools/suggest-tooling.d.ts +5 -0
  2778. package/dist/tools/suggest-tooling.d.ts.map +1 -0
  2779. package/dist/tools/suggest-tooling.js +7 -0
  2780. package/dist/tools/suggest-tooling.js.map +1 -0
  2781. package/dist/tools/suggest-tooling.test.d.ts +2 -0
  2782. package/dist/tools/suggest-tooling.test.d.ts.map +1 -0
  2783. package/dist/tools/suggest-tooling.test.js +213 -0
  2784. package/dist/tools/suggest-tooling.test.js.map +1 -0
  2785. package/dist/tools/summarize-spec.d.ts +3 -0
  2786. package/dist/tools/summarize-spec.d.ts.map +1 -0
  2787. package/dist/tools/summarize-spec.js +247 -0
  2788. package/dist/tools/summarize-spec.js.map +1 -0
  2789. package/dist/tools/summarize-spec.test.d.ts +2 -0
  2790. package/dist/tools/summarize-spec.test.d.ts.map +1 -0
  2791. package/dist/tools/summarize-spec.test.js +180 -0
  2792. package/dist/tools/summarize-spec.test.js.map +1 -0
  2793. package/dist/tools/update-status.d.ts +3 -0
  2794. package/dist/tools/update-status.d.ts.map +1 -0
  2795. package/dist/tools/update-status.js +189 -0
  2796. package/dist/tools/update-status.js.map +1 -0
  2797. package/dist/tools/update-status.test.d.ts +2 -0
  2798. package/dist/tools/update-status.test.d.ts.map +1 -0
  2799. package/dist/tools/update-status.test.js +142 -0
  2800. package/dist/tools/update-status.test.js.map +1 -0
  2801. package/dist/tools/validate-workflow.d.ts +3 -0
  2802. package/dist/tools/validate-workflow.d.ts.map +1 -0
  2803. package/dist/tools/validate-workflow.js +77 -0
  2804. package/dist/tools/validate-workflow.js.map +1 -0
  2805. package/dist/tools/validate.d.ts +6 -0
  2806. package/dist/tools/validate.d.ts.map +1 -0
  2807. package/dist/tools/validate.js +135 -0
  2808. package/dist/tools/validate.js.map +1 -0
  2809. package/dist/tools/validate.test.d.ts +2 -0
  2810. package/dist/tools/validate.test.d.ts.map +1 -0
  2811. package/dist/tools/validate.test.js +137 -0
  2812. package/dist/tools/validate.test.js.map +1 -0
  2813. package/dist/types/ai-native.d.ts +15 -0
  2814. package/dist/types/ai-native.d.ts.map +1 -0
  2815. package/dist/types/ai-native.js +3 -0
  2816. package/dist/types/ai-native.js.map +1 -0
  2817. package/dist/types/analysis-detection.d.ts +86 -0
  2818. package/dist/types/analysis-detection.d.ts.map +1 -0
  2819. package/dist/types/analysis-detection.js +4 -0
  2820. package/dist/types/analysis-detection.js.map +1 -0
  2821. package/dist/types/analysis-frontend.d.ts +27 -0
  2822. package/dist/types/analysis-frontend.d.ts.map +1 -0
  2823. package/dist/types/analysis-frontend.js +4 -0
  2824. package/dist/types/analysis-frontend.js.map +1 -0
  2825. package/dist/types/analysis.d.ts +166 -0
  2826. package/dist/types/analysis.d.ts.map +1 -0
  2827. package/dist/types/analysis.js +2 -0
  2828. package/dist/types/analysis.js.map +1 -0
  2829. package/dist/types/analytics.d.ts +199 -0
  2830. package/dist/types/analytics.d.ts.map +1 -0
  2831. package/dist/types/analytics.js +4 -0
  2832. package/dist/types/analytics.js.map +1 -0
  2833. package/dist/types/architecture.d.ts +172 -0
  2834. package/dist/types/architecture.d.ts.map +1 -0
  2835. package/dist/types/architecture.js +4 -0
  2836. package/dist/types/architecture.js.map +1 -0
  2837. package/dist/types/common/context.d.ts +29 -0
  2838. package/dist/types/common/context.d.ts.map +1 -0
  2839. package/dist/types/common/context.js +3 -0
  2840. package/dist/types/common/context.js.map +1 -0
  2841. package/dist/types/common/learning.d.ts +113 -0
  2842. package/dist/types/common/learning.d.ts.map +1 -0
  2843. package/dist/types/common/learning.js +2 -0
  2844. package/dist/types/common/learning.js.map +1 -0
  2845. package/dist/types/common/primitives.d.ts +25 -0
  2846. package/dist/types/common/primitives.d.ts.map +1 -0
  2847. package/dist/types/common/primitives.js +2 -0
  2848. package/dist/types/common/primitives.js.map +1 -0
  2849. package/dist/types/common/tech-enums.d.ts +11 -0
  2850. package/dist/types/common/tech-enums.d.ts.map +1 -0
  2851. package/dist/types/common/tech-enums.js +2 -0
  2852. package/dist/types/common/tech-enums.js.map +1 -0
  2853. package/dist/types/common.d.ts +5 -0
  2854. package/dist/types/common.d.ts.map +1 -0
  2855. package/dist/types/common.js +7 -0
  2856. package/dist/types/common.js.map +1 -0
  2857. package/dist/types/concurrency.d.ts +198 -0
  2858. package/dist/types/concurrency.d.ts.map +1 -0
  2859. package/dist/types/concurrency.js +3 -0
  2860. package/dist/types/concurrency.js.map +1 -0
  2861. package/dist/types/context.d.ts +66 -0
  2862. package/dist/types/context.d.ts.map +1 -0
  2863. package/dist/types/context.js +4 -0
  2864. package/dist/types/context.js.map +1 -0
  2865. package/dist/types/decisions.d.ts +58 -0
  2866. package/dist/types/decisions.d.ts.map +1 -0
  2867. package/dist/types/decisions.js +3 -0
  2868. package/dist/types/decisions.js.map +1 -0
  2869. package/dist/types/docs.d.ts +64 -0
  2870. package/dist/types/docs.d.ts.map +1 -0
  2871. package/dist/types/docs.js +2 -0
  2872. package/dist/types/docs.js.map +1 -0
  2873. package/dist/types/dynamic-migration.d.ts +68 -0
  2874. package/dist/types/dynamic-migration.d.ts.map +1 -0
  2875. package/dist/types/dynamic-migration.js +3 -0
  2876. package/dist/types/dynamic-migration.js.map +1 -0
  2877. package/dist/types/edge-db.d.ts +55 -0
  2878. package/dist/types/edge-db.d.ts.map +1 -0
  2879. package/dist/types/edge-db.js +3 -0
  2880. package/dist/types/edge-db.js.map +1 -0
  2881. package/dist/types/env.d.ts +195 -0
  2882. package/dist/types/env.d.ts.map +1 -0
  2883. package/dist/types/env.js +2 -0
  2884. package/dist/types/env.js.map +1 -0
  2885. package/dist/types/estimation.d.ts +80 -0
  2886. package/dist/types/estimation.d.ts.map +1 -0
  2887. package/dist/types/estimation.js +2 -0
  2888. package/dist/types/estimation.js.map +1 -0
  2889. package/dist/types/events.d.ts +203 -0
  2890. package/dist/types/events.d.ts.map +1 -0
  2891. package/dist/types/events.js +4 -0
  2892. package/dist/types/events.js.map +1 -0
  2893. package/dist/types/execution.d.ts +92 -0
  2894. package/dist/types/execution.d.ts.map +1 -0
  2895. package/dist/types/execution.js +2 -0
  2896. package/dist/types/execution.js.map +1 -0
  2897. package/dist/types/facilitator.d.ts +85 -0
  2898. package/dist/types/facilitator.d.ts.map +1 -0
  2899. package/dist/types/facilitator.js +2 -0
  2900. package/dist/types/facilitator.js.map +1 -0
  2901. package/dist/types/git.d.ts +125 -0
  2902. package/dist/types/git.d.ts.map +1 -0
  2903. package/dist/types/git.js +2 -0
  2904. package/dist/types/git.js.map +1 -0
  2905. package/dist/types/index.d.ts +43 -0
  2906. package/dist/types/index.d.ts.map +1 -0
  2907. package/dist/types/index.js +44 -0
  2908. package/dist/types/index.js.map +1 -0
  2909. package/dist/types/lifecycle.d.ts +111 -0
  2910. package/dist/types/lifecycle.d.ts.map +1 -0
  2911. package/dist/types/lifecycle.js +4 -0
  2912. package/dist/types/lifecycle.js.map +1 -0
  2913. package/dist/types/llm-security.d.ts +56 -0
  2914. package/dist/types/llm-security.d.ts.map +1 -0
  2915. package/dist/types/llm-security.js +3 -0
  2916. package/dist/types/llm-security.js.map +1 -0
  2917. package/dist/types/local-first.d.ts +65 -0
  2918. package/dist/types/local-first.d.ts.map +1 -0
  2919. package/dist/types/local-first.js +3 -0
  2920. package/dist/types/local-first.js.map +1 -0
  2921. package/dist/types/mcp.d.ts +167 -0
  2922. package/dist/types/mcp.d.ts.map +1 -0
  2923. package/dist/types/mcp.js +2 -0
  2924. package/dist/types/mcp.js.map +1 -0
  2925. package/dist/types/migration/analysis.d.ts +79 -0
  2926. package/dist/types/migration/analysis.d.ts.map +1 -0
  2927. package/dist/types/migration/analysis.js +3 -0
  2928. package/dist/types/migration/analysis.js.map +1 -0
  2929. package/dist/types/migration/database.d.ts +70 -0
  2930. package/dist/types/migration/database.d.ts.map +1 -0
  2931. package/dist/types/migration/database.js +3 -0
  2932. package/dist/types/migration/database.js.map +1 -0
  2933. package/dist/types/migration/index.d.ts +5 -0
  2934. package/dist/types/migration/index.d.ts.map +1 -0
  2935. package/dist/types/migration/index.js +3 -0
  2936. package/dist/types/migration/index.js.map +1 -0
  2937. package/dist/types/migration/io.d.ts +29 -0
  2938. package/dist/types/migration/io.d.ts.map +1 -0
  2939. package/dist/types/migration/io.js +3 -0
  2940. package/dist/types/migration/io.js.map +1 -0
  2941. package/dist/types/migration/planning.d.ts +104 -0
  2942. package/dist/types/migration/planning.d.ts.map +1 -0
  2943. package/dist/types/migration/planning.js +3 -0
  2944. package/dist/types/migration/planning.js.map +1 -0
  2945. package/dist/types/migration-advanced.d.ts +235 -0
  2946. package/dist/types/migration-advanced.d.ts.map +1 -0
  2947. package/dist/types/migration-advanced.js +4 -0
  2948. package/dist/types/migration-advanced.js.map +1 -0
  2949. package/dist/types/migration.d.ts +4 -0
  2950. package/dist/types/migration.d.ts.map +1 -0
  2951. package/dist/types/migration.js +5 -0
  2952. package/dist/types/migration.js.map +1 -0
  2953. package/dist/types/multi-agent.d.ts +168 -0
  2954. package/dist/types/multi-agent.d.ts.map +1 -0
  2955. package/dist/types/multi-agent.js +3 -0
  2956. package/dist/types/multi-agent.js.map +1 -0
  2957. package/dist/types/orchestration/index.d.ts +4 -0
  2958. package/dist/types/orchestration/index.d.ts.map +1 -0
  2959. package/dist/types/orchestration/index.js +3 -0
  2960. package/dist/types/orchestration/index.js.map +1 -0
  2961. package/dist/types/orchestration/nli.d.ts +98 -0
  2962. package/dist/types/orchestration/nli.d.ts.map +1 -0
  2963. package/dist/types/orchestration/nli.js +2 -0
  2964. package/dist/types/orchestration/nli.js.map +1 -0
  2965. package/dist/types/orchestration/pm.d.ts +71 -0
  2966. package/dist/types/orchestration/pm.d.ts.map +1 -0
  2967. package/dist/types/orchestration/pm.js +3 -0
  2968. package/dist/types/orchestration/pm.js.map +1 -0
  2969. package/dist/types/orchestration/session.d.ts +152 -0
  2970. package/dist/types/orchestration/session.d.ts.map +1 -0
  2971. package/dist/types/orchestration/session.js +2 -0
  2972. package/dist/types/orchestration/session.js.map +1 -0
  2973. package/dist/types/orchestration.d.ts +2 -0
  2974. package/dist/types/orchestration.d.ts.map +1 -0
  2975. package/dist/types/orchestration.js +4 -0
  2976. package/dist/types/orchestration.js.map +1 -0
  2977. package/dist/types/paradigm.d.ts +143 -0
  2978. package/dist/types/paradigm.d.ts.map +1 -0
  2979. package/dist/types/paradigm.js +3 -0
  2980. package/dist/types/paradigm.js.map +1 -0
  2981. package/dist/types/platform-engineering.d.ts +21 -0
  2982. package/dist/types/platform-engineering.d.ts.map +1 -0
  2983. package/dist/types/platform-engineering.js +3 -0
  2984. package/dist/types/platform-engineering.js.map +1 -0
  2985. package/dist/types/privacy.d.ts +142 -0
  2986. package/dist/types/privacy.d.ts.map +1 -0
  2987. package/dist/types/privacy.js +3 -0
  2988. package/dist/types/privacy.js.map +1 -0
  2989. package/dist/types/project/core.d.ts +225 -0
  2990. package/dist/types/project/core.d.ts.map +1 -0
  2991. package/dist/types/project/core.js +2 -0
  2992. package/dist/types/project/core.js.map +1 -0
  2993. package/dist/types/project/inputs.d.ts +60 -0
  2994. package/dist/types/project/inputs.d.ts.map +1 -0
  2995. package/dist/types/project/inputs.js +2 -0
  2996. package/dist/types/project/inputs.js.map +1 -0
  2997. package/dist/types/project/library-groups.d.ts +118 -0
  2998. package/dist/types/project/library-groups.d.ts.map +1 -0
  2999. package/dist/types/project/library-groups.js +4 -0
  3000. package/dist/types/project/library-groups.js.map +1 -0
  3001. package/dist/types/project/platform-exotic.d.ts +112 -0
  3002. package/dist/types/project/platform-exotic.d.ts.map +1 -0
  3003. package/dist/types/project/platform-exotic.js +3 -0
  3004. package/dist/types/project/platform-exotic.js.map +1 -0
  3005. package/dist/types/project/platform-mobile.d.ts +33 -0
  3006. package/dist/types/project/platform-mobile.d.ts.map +1 -0
  3007. package/dist/types/project/platform-mobile.js +3 -0
  3008. package/dist/types/project/platform-mobile.js.map +1 -0
  3009. package/dist/types/project/platform-specialty.d.ts +55 -0
  3010. package/dist/types/project/platform-specialty.d.ts.map +1 -0
  3011. package/dist/types/project/platform-specialty.js +3 -0
  3012. package/dist/types/project/platform-specialty.js.map +1 -0
  3013. package/dist/types/project.d.ts +7 -0
  3014. package/dist/types/project.d.ts.map +1 -0
  3015. package/dist/types/project.js +9 -0
  3016. package/dist/types/project.js.map +1 -0
  3017. package/dist/types/readiness.d.ts +48 -0
  3018. package/dist/types/readiness.d.ts.map +1 -0
  3019. package/dist/types/readiness.js +3 -0
  3020. package/dist/types/readiness.js.map +1 -0
  3021. package/dist/types/schema.d.ts +119 -0
  3022. package/dist/types/schema.d.ts.map +1 -0
  3023. package/dist/types/schema.js +2 -0
  3024. package/dist/types/schema.js.map +1 -0
  3025. package/dist/types/scope.d.ts +129 -0
  3026. package/dist/types/scope.d.ts.map +1 -0
  3027. package/dist/types/scope.js +3 -0
  3028. package/dist/types/scope.js.map +1 -0
  3029. package/dist/types/security.d.ts +99 -0
  3030. package/dist/types/security.d.ts.map +1 -0
  3031. package/dist/types/security.js +4 -0
  3032. package/dist/types/security.js.map +1 -0
  3033. package/dist/types/spec/agent.d.ts +111 -0
  3034. package/dist/types/spec/agent.d.ts.map +1 -0
  3035. package/dist/types/spec/agent.js +3 -0
  3036. package/dist/types/spec/agent.js.map +1 -0
  3037. package/dist/types/spec/clarification.d.ts +85 -0
  3038. package/dist/types/spec/clarification.d.ts.map +1 -0
  3039. package/dist/types/spec/clarification.js +2 -0
  3040. package/dist/types/spec/clarification.js.map +1 -0
  3041. package/dist/types/spec/core.d.ts +141 -0
  3042. package/dist/types/spec/core.d.ts.map +1 -0
  3043. package/dist/types/spec/core.js +2 -0
  3044. package/dist/types/spec/core.js.map +1 -0
  3045. package/dist/types/spec/inputs.d.ts +106 -0
  3046. package/dist/types/spec/inputs.d.ts.map +1 -0
  3047. package/dist/types/spec/inputs.js +2 -0
  3048. package/dist/types/spec/inputs.js.map +1 -0
  3049. package/dist/types/spec.d.ts +5 -0
  3050. package/dist/types/spec.d.ts.map +1 -0
  3051. package/dist/types/spec.js +7 -0
  3052. package/dist/types/spec.js.map +1 -0
  3053. package/dist/types/stack/audit.d.ts +100 -0
  3054. package/dist/types/stack/audit.d.ts.map +1 -0
  3055. package/dist/types/stack/audit.js +3 -0
  3056. package/dist/types/stack/audit.js.map +1 -0
  3057. package/dist/types/stack/build-tool.d.ts +24 -0
  3058. package/dist/types/stack/build-tool.d.ts.map +1 -0
  3059. package/dist/types/stack/build-tool.js +3 -0
  3060. package/dist/types/stack/build-tool.js.map +1 -0
  3061. package/dist/types/stack/deprecation.d.ts +38 -0
  3062. package/dist/types/stack/deprecation.d.ts.map +1 -0
  3063. package/dist/types/stack/deprecation.js +3 -0
  3064. package/dist/types/stack/deprecation.js.map +1 -0
  3065. package/dist/types/stack/hypermedia.d.ts +23 -0
  3066. package/dist/types/stack/hypermedia.d.ts.map +1 -0
  3067. package/dist/types/stack/hypermedia.js +3 -0
  3068. package/dist/types/stack/hypermedia.js.map +1 -0
  3069. package/dist/types/stack/index.d.ts +7 -0
  3070. package/dist/types/stack/index.d.ts.map +1 -0
  3071. package/dist/types/stack/index.js +4 -0
  3072. package/dist/types/stack/index.js.map +1 -0
  3073. package/dist/types/stack/react.d.ts +11 -0
  3074. package/dist/types/stack/react.d.ts.map +1 -0
  3075. package/dist/types/stack/react.js +3 -0
  3076. package/dist/types/stack/react.js.map +1 -0
  3077. package/dist/types/stack/recommend.d.ts +205 -0
  3078. package/dist/types/stack/recommend.d.ts.map +1 -0
  3079. package/dist/types/stack/recommend.js +2 -0
  3080. package/dist/types/stack/recommend.js.map +1 -0
  3081. package/dist/types/stack.d.ts +2 -0
  3082. package/dist/types/stack.d.ts.map +1 -0
  3083. package/dist/types/stack.js +4 -0
  3084. package/dist/types/stack.js.map +1 -0
  3085. package/dist/types/supply-chain.d.ts +92 -0
  3086. package/dist/types/supply-chain.d.ts.map +1 -0
  3087. package/dist/types/supply-chain.js +4 -0
  3088. package/dist/types/supply-chain.js.map +1 -0
  3089. package/dist/types/testing.d.ts +153 -0
  3090. package/dist/types/testing.d.ts.map +1 -0
  3091. package/dist/types/testing.js +2 -0
  3092. package/dist/types/testing.js.map +1 -0
  3093. package/dist/types/tooling/assessment.d.ts +87 -0
  3094. package/dist/types/tooling/assessment.d.ts.map +1 -0
  3095. package/dist/types/tooling/assessment.js +2 -0
  3096. package/dist/types/tooling/assessment.js.map +1 -0
  3097. package/dist/types/tooling/audit.d.ts +78 -0
  3098. package/dist/types/tooling/audit.d.ts.map +1 -0
  3099. package/dist/types/tooling/audit.js +3 -0
  3100. package/dist/types/tooling/audit.js.map +1 -0
  3101. package/dist/types/tooling/catalog.d.ts +134 -0
  3102. package/dist/types/tooling/catalog.d.ts.map +1 -0
  3103. package/dist/types/tooling/catalog.js +3 -0
  3104. package/dist/types/tooling/catalog.js.map +1 -0
  3105. package/dist/types/tooling/database.d.ts +73 -0
  3106. package/dist/types/tooling/database.d.ts.map +1 -0
  3107. package/dist/types/tooling/database.js +3 -0
  3108. package/dist/types/tooling/database.js.map +1 -0
  3109. package/dist/types/tooling/index.d.ts +5 -0
  3110. package/dist/types/tooling/index.d.ts.map +1 -0
  3111. package/dist/types/tooling/index.js +3 -0
  3112. package/dist/types/tooling/index.js.map +1 -0
  3113. package/dist/types/tooling.d.ts +2 -0
  3114. package/dist/types/tooling.d.ts.map +1 -0
  3115. package/dist/types/tooling.js +4 -0
  3116. package/dist/types/tooling.js.map +1 -0
  3117. package/dist/types/ui.d.ts +204 -0
  3118. package/dist/types/ui.d.ts.map +1 -0
  3119. package/dist/types/ui.js +2 -0
  3120. package/dist/types/ui.js.map +1 -0
  3121. package/dist/types/workflow.d.ts +71 -0
  3122. package/dist/types/workflow.d.ts.map +1 -0
  3123. package/dist/types/workflow.js +4 -0
  3124. package/dist/types/workflow.js.map +1 -0
  3125. package/package.json +83 -0
  3126. package/src/config/advanced-testing-tools.json +210 -0
  3127. package/src/config/agent-capabilities-catalog.json +30 -0
  3128. package/src/config/agent-platforms.json +268 -0
  3129. package/src/config/agent-spec-catalog.json +273 -0
  3130. package/src/config/agile-processes.json +111 -0
  3131. package/src/config/analytics-providers.json +171 -0
  3132. package/src/config/architecture-patterns-modern.json +118 -0
  3133. package/src/config/architecture-patterns.json +324 -0
  3134. package/src/config/automation-templates.json +29 -0
  3135. package/src/config/build-tools-catalog.json +250 -0
  3136. package/src/config/concurrency-models.json +142 -0
  3137. package/src/config/config-health-schemas.json +88 -0
  3138. package/src/config/db-engines.json +99 -0
  3139. package/src/config/deploy-platforms.json +94 -0
  3140. package/src/config/deprecation-patterns/browser.json +42 -0
  3141. package/src/config/deprecation-patterns/dotnet.json +62 -0
  3142. package/src/config/deprecation-patterns/go.json +82 -0
  3143. package/src/config/deprecation-patterns/java.json +82 -0
  3144. package/src/config/deprecation-patterns/nodejs.json +62 -0
  3145. package/src/config/deprecation-patterns/python.json +42 -0
  3146. package/src/config/deprecation-patterns/rust.json +62 -0
  3147. package/src/config/dev-lifecycle-catalog.json +619 -0
  3148. package/src/config/docs-registry.json +94 -0
  3149. package/src/config/edge-db-catalog.json +89 -0
  3150. package/src/config/env-patterns.json +164 -0
  3151. package/src/config/event-brokers.json +63 -0
  3152. package/src/config/hypermedia-tooling.json +189 -0
  3153. package/src/config/idp-tools.json +173 -0
  3154. package/src/config/linter-registry.json +451 -0
  3155. package/src/config/llm-guardrails-tooling.json +122 -0
  3156. package/src/config/local-first-tools.json +122 -0
  3157. package/src/config/mcp-catalog.json +104 -0
  3158. package/src/config/middleware-patterns.json +126 -0
  3159. package/src/config/migration-policies-catalog.json +271 -0
  3160. package/src/config/otel-tooling.json +131 -0
  3161. package/src/config/paradigm-registry.json +380 -0
  3162. package/src/config/pii-patterns.json +231 -0
  3163. package/src/config/pm-platforms.json +49 -0
  3164. package/src/config/quality-principles.json +230 -0
  3165. package/src/config/react-nextjs-catalog.json +200 -0
  3166. package/src/config/resilience-patterns.json +130 -0
  3167. package/src/config/saas-registry.json +183 -0
  3168. package/src/config/security-patterns.json +282 -0
  3169. package/src/config/spec-templates.json +125 -0
  3170. package/src/config/stack-signatures.json +793 -0
  3171. package/src/config/supply-chain-tools.json +107 -0
  3172. package/src/config/ui-frameworks.json +335 -0
  3173. package/src/config/ux-principles.json +190 -0
  3174. package/src/config/validation-libraries.json +152 -0
  3175. package/src/config/workflow-conventions-catalog.json +71 -0
@@ -0,0 +1,2371 @@
1
+ // SpecForge — Validator Engine Tests (comprehensive, 98%+ coverage)
2
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
3
+ // === Mock modules ===
4
+ vi.mock('node:fs/promises', () => ({
5
+ readFile: vi.fn(),
6
+ stat: vi.fn(),
7
+ }));
8
+ vi.mock('glob', () => ({
9
+ glob: vi.fn(),
10
+ }));
11
+ // Import mocked modules so we can control them
12
+ import { readFile, stat } from 'node:fs/promises';
13
+ import { glob } from 'glob';
14
+ // Import the functions under test AFTER mocking
15
+ import { validateSpec, detectDrift, generateChecklist, generateDoR, generateDoD, } from './validator.js';
16
+ // Cast mocked functions for type-safe usage
17
+ const mockReadFile = vi.mocked(readFile);
18
+ const mockStat = vi.mocked(stat);
19
+ const mockGlob = vi.mocked(glob);
20
+ // === Helpers ===
21
+ function makeEstimation(overrides = {}) {
22
+ return {
23
+ devHours: 8,
24
+ reviewHours: 1.6,
25
+ recommendedModel: 'mixed',
26
+ tokensOpus: 10000,
27
+ tokensSonnet: 20000,
28
+ apiCostUsd: 0.21,
29
+ hourlyRate: 65,
30
+ humanCostUsd: 624,
31
+ totalCostUsd: 624.21,
32
+ tokenOptimization: {
33
+ mode: 'local',
34
+ reasoning: 'test',
35
+ estimatedTokens: 15000,
36
+ savings: '~50%',
37
+ },
38
+ ...overrides,
39
+ };
40
+ }
41
+ function makeSpec(overrides = {}) {
42
+ return {
43
+ id: 'SPEC-001',
44
+ title: 'Test Spec Title',
45
+ slug: 'test-spec-title',
46
+ type: 'feature',
47
+ scope: 'feature',
48
+ status: 'draft',
49
+ difficulty: 3,
50
+ risk: 'medium',
51
+ projectId: 'proj-1',
52
+ createdAt: '2025-01-01T00:00:00Z',
53
+ updatedAt: '2025-01-01T00:00:00Z',
54
+ huPath: '/tmp/HU.md',
55
+ fichaTecnicaPath: '/tmp/FICHA-TECNICA.md',
56
+ estimation: makeEstimation(),
57
+ actuals: null,
58
+ target: 'backend',
59
+ tags: [],
60
+ dependencies: [],
61
+ blockedBy: [],
62
+ gitBranch: '',
63
+ impactAnalysis: null,
64
+ ...overrides,
65
+ };
66
+ }
67
+ // === Setup ===
68
+ beforeEach(() => {
69
+ vi.clearAllMocks();
70
+ // Default: readFile throws (file not found)
71
+ mockReadFile.mockRejectedValue(new Error('ENOENT'));
72
+ // Default: stat throws (file not found)
73
+ mockStat.mockRejectedValue(new Error('ENOENT'));
74
+ // Default: glob returns no files
75
+ mockGlob.mockResolvedValue([]);
76
+ });
77
+ // ============================================================
78
+ // generateDoR
79
+ // ============================================================
80
+ describe('generateDoR', () => {
81
+ it('should generate all 10 DoR items with the correct specId', () => {
82
+ const spec = makeSpec();
83
+ const result = generateDoR(spec);
84
+ expect(result.items).toHaveLength(10);
85
+ expect(result.specId).toBe('SPEC-001');
86
+ });
87
+ it('should pass title check when title > 3 chars', () => {
88
+ const result = generateDoR(makeSpec({ title: 'Valid Title' }));
89
+ expect(result.items.find((i) => i.id === 'dor-1')?.status).toBe('passed');
90
+ });
91
+ it('should fail title check when title <= 3 chars', () => {
92
+ const result = generateDoR(makeSpec({ title: 'AB' }));
93
+ expect(result.items.find((i) => i.id === 'dor-1')?.status).toBe('failed');
94
+ });
95
+ it('should fail title check for exactly 3 chars', () => {
96
+ const result = generateDoR(makeSpec({ title: 'ABC' }));
97
+ expect(result.items.find((i) => i.id === 'dor-1')?.status).toBe('failed');
98
+ });
99
+ it('should pass type+scope check when both are non-empty', () => {
100
+ const result = generateDoR(makeSpec({ type: 'feature', scope: 'feature' }));
101
+ expect(result.items.find((i) => i.id === 'dor-2')?.status).toBe('passed');
102
+ });
103
+ it('should fail type+scope check when type is empty', () => {
104
+ const result = generateDoR(makeSpec({ type: '' }));
105
+ expect(result.items.find((i) => i.id === 'dor-2')?.status).toBe('failed');
106
+ });
107
+ it('should fail type+scope check when scope is empty', () => {
108
+ const result = generateDoR(makeSpec({ scope: '' }));
109
+ expect(result.items.find((i) => i.id === 'dor-2')?.status).toBe('failed');
110
+ });
111
+ it('should pass difficulty check for values 1-5', () => {
112
+ for (const d of [1, 2, 3, 4, 5]) {
113
+ const result = generateDoR(makeSpec({ difficulty: d }));
114
+ expect(result.items.find((i) => i.id === 'dor-3')?.status).toBe('passed');
115
+ }
116
+ });
117
+ it('should fail difficulty check for out-of-range values', () => {
118
+ const result = generateDoR(makeSpec({ difficulty: 0 }));
119
+ expect(result.items.find((i) => i.id === 'dor-3')?.status).toBe('failed');
120
+ });
121
+ it('should fail difficulty check for value above 5', () => {
122
+ const result = generateDoR(makeSpec({ difficulty: 6 }));
123
+ expect(result.items.find((i) => i.id === 'dor-3')?.status).toBe('failed');
124
+ });
125
+ it('should pass estimation check when devHours > 0', () => {
126
+ const result = generateDoR(makeSpec({ estimation: makeEstimation({ devHours: 5 }) }));
127
+ expect(result.items.find((i) => i.id === 'dor-4')?.status).toBe('passed');
128
+ });
129
+ it('should fail estimation check when devHours is 0', () => {
130
+ const result = generateDoR(makeSpec({ estimation: makeEstimation({ devHours: 0 }) }));
131
+ expect(result.items.find((i) => i.id === 'dor-4')?.status).toBe('failed');
132
+ });
133
+ it('should pass HU check when huPath is set', () => {
134
+ const result = generateDoR(makeSpec({ huPath: '/some/HU.md' }));
135
+ expect(result.items.find((i) => i.id === 'dor-5')?.status).toBe('passed');
136
+ });
137
+ it('should fail HU check when huPath is empty', () => {
138
+ const result = generateDoR(makeSpec({ huPath: '' }));
139
+ expect(result.items.find((i) => i.id === 'dor-5')?.status).toBe('failed');
140
+ });
141
+ it('should pass ficha check when fichaTecnicaPath is set', () => {
142
+ const result = generateDoR(makeSpec({ fichaTecnicaPath: '/some/FICHA.md' }));
143
+ expect(result.items.find((i) => i.id === 'dor-6')?.status).toBe('passed');
144
+ });
145
+ it('should fail ficha check when fichaTecnicaPath is empty', () => {
146
+ const result = generateDoR(makeSpec({ fichaTecnicaPath: '' }));
147
+ expect(result.items.find((i) => i.id === 'dor-6')?.status).toBe('failed');
148
+ });
149
+ it('should always pass dor-7 (dependencies identified)', () => {
150
+ const result = generateDoR(makeSpec());
151
+ expect(result.items.find((i) => i.id === 'dor-7')?.status).toBe('passed');
152
+ });
153
+ it('should pass blockedBy check when empty', () => {
154
+ const result = generateDoR(makeSpec({ blockedBy: [] }));
155
+ expect(result.items.find((i) => i.id === 'dor-8')?.status).toBe('passed');
156
+ });
157
+ it('should fail blockedBy check when non-empty', () => {
158
+ const result = generateDoR(makeSpec({ blockedBy: ['SPEC-002'] }));
159
+ expect(result.items.find((i) => i.id === 'dor-8')?.status).toBe('failed');
160
+ });
161
+ it('should pass risk check when risk is non-empty', () => {
162
+ const result = generateDoR(makeSpec({ risk: 'high' }));
163
+ expect(result.items.find((i) => i.id === 'dor-9')?.status).toBe('passed');
164
+ });
165
+ it('should fail risk check when risk is empty', () => {
166
+ const result = generateDoR(makeSpec({ risk: '' }));
167
+ expect(result.items.find((i) => i.id === 'dor-9')?.status).toBe('failed');
168
+ });
169
+ it('should pass target check when target is non-empty', () => {
170
+ const result = generateDoR(makeSpec({ target: 'frontend' }));
171
+ expect(result.items.find((i) => i.id === 'dor-10')?.status).toBe('passed');
172
+ });
173
+ it('should fail target check when target is empty', () => {
174
+ const result = generateDoR(makeSpec({ target: '' }));
175
+ expect(result.items.find((i) => i.id === 'dor-10')?.status).toBe('failed');
176
+ });
177
+ it('should mark isReady=true when all required items pass', () => {
178
+ const result = generateDoR(makeSpec());
179
+ expect(result.isReady).toBe(true);
180
+ });
181
+ it('should mark isReady=false when any required item fails', () => {
182
+ const result = generateDoR(makeSpec({ huPath: '' }));
183
+ expect(result.isReady).toBe(false);
184
+ });
185
+ it('should calculate passedCount from items', () => {
186
+ const result = generateDoR(makeSpec());
187
+ const expected = result.items.filter((i) => i.status === 'passed').length;
188
+ expect(result.passedCount).toBe(expected);
189
+ });
190
+ it('should calculate requiredCount from required items', () => {
191
+ const result = generateDoR(makeSpec());
192
+ const expected = result.items.filter((i) => i.required).length;
193
+ expect(result.requiredCount).toBe(expected);
194
+ });
195
+ it('should include a valid generatedAt ISO timestamp', () => {
196
+ const result = generateDoR(makeSpec());
197
+ expect(result.generatedAt).toBeDefined();
198
+ expect(new Date(result.generatedAt).toISOString()).toBe(result.generatedAt);
199
+ });
200
+ });
201
+ // ============================================================
202
+ // generateDoD
203
+ // ============================================================
204
+ describe('generateDoD', () => {
205
+ it('should generate all 8 DoD items', () => {
206
+ const result = generateDoD(makeSpec());
207
+ expect(result.items).toHaveLength(8);
208
+ expect(result.specId).toBe('SPEC-001');
209
+ });
210
+ it('should mark acceptance criteria passed when score is 100', () => {
211
+ const validation = {
212
+ matches: ['a'],
213
+ missing: [],
214
+ extra: [],
215
+ fieldsImplemented: 1,
216
+ fieldsTotal: 1,
217
+ score: 100,
218
+ qualityIssues: [],
219
+ };
220
+ const result = generateDoD(makeSpec(), validation);
221
+ expect(result.items.find((i) => i.id === 'dod-1')?.status).toBe('passed');
222
+ });
223
+ it('should mark acceptance criteria failed when score > 0 but < 100', () => {
224
+ const validation = {
225
+ matches: ['a'],
226
+ missing: ['b'],
227
+ extra: [],
228
+ fieldsImplemented: 1,
229
+ fieldsTotal: 2,
230
+ score: 50,
231
+ qualityIssues: [],
232
+ };
233
+ const result = generateDoD(makeSpec(), validation);
234
+ expect(result.items.find((i) => i.id === 'dod-1')?.status).toBe('failed');
235
+ });
236
+ it('should mark acceptance criteria pending when score is 0', () => {
237
+ const validation = {
238
+ matches: [],
239
+ missing: ['a'],
240
+ extra: [],
241
+ fieldsImplemented: 0,
242
+ fieldsTotal: 1,
243
+ score: 0,
244
+ qualityIssues: [],
245
+ };
246
+ const result = generateDoD(makeSpec(), validation);
247
+ expect(result.items.find((i) => i.id === 'dod-1')?.status).toBe('pending');
248
+ });
249
+ it('should mark acceptance criteria pending when no validation provided', () => {
250
+ const result = generateDoD(makeSpec());
251
+ expect(result.items.find((i) => i.id === 'dod-1')?.status).toBe('pending');
252
+ });
253
+ it('should pass quality check when no quality issues', () => {
254
+ const validation = {
255
+ matches: [],
256
+ missing: [],
257
+ extra: [],
258
+ fieldsImplemented: 0,
259
+ fieldsTotal: 0,
260
+ score: 0,
261
+ qualityIssues: [],
262
+ };
263
+ const result = generateDoD(makeSpec(), validation);
264
+ expect(result.items.find((i) => i.id === 'dod-2')?.status).toBe('passed');
265
+ });
266
+ it('should fail quality check when quality issues exist', () => {
267
+ const validation = {
268
+ matches: [],
269
+ missing: [],
270
+ extra: [],
271
+ fieldsImplemented: 0,
272
+ fieldsTotal: 0,
273
+ score: 0,
274
+ qualityIssues: [
275
+ {
276
+ file: 'x.ts',
277
+ category: 'clean-code',
278
+ severity: 'warning',
279
+ rule: 'test',
280
+ message: 'msg',
281
+ suggestion: 'fix',
282
+ },
283
+ ],
284
+ };
285
+ const result = generateDoD(makeSpec(), validation);
286
+ expect(result.items.find((i) => i.id === 'dod-2')?.status).toBe('failed');
287
+ });
288
+ it('should pass quality check when no validation (defaults to 0 issues)', () => {
289
+ const result = generateDoD(makeSpec());
290
+ expect(result.items.find((i) => i.id === 'dod-2')?.status).toBe('passed');
291
+ });
292
+ it('should mark dod-3 (unit tests) as pending always', () => {
293
+ const result = generateDoD(makeSpec());
294
+ expect(result.items.find((i) => i.id === 'dod-3')?.status).toBe('pending');
295
+ });
296
+ it('should mark dod-4 (code reviewed) as pending always', () => {
297
+ const result = generateDoD(makeSpec());
298
+ expect(result.items.find((i) => i.id === 'dod-4')?.status).toBe('pending');
299
+ });
300
+ it('should mark dod-5 (documentation) as pending always', () => {
301
+ const result = generateDoD(makeSpec());
302
+ expect(result.items.find((i) => i.id === 'dod-5')?.status).toBe('pending');
303
+ });
304
+ it('should mark dod-6 (no regressions) as pending always', () => {
305
+ const result = generateDoD(makeSpec());
306
+ expect(result.items.find((i) => i.id === 'dod-6')?.status).toBe('pending');
307
+ });
308
+ it('should pass spec status check when status is done', () => {
309
+ const result = generateDoD(makeSpec({ status: 'done' }));
310
+ expect(result.items.find((i) => i.id === 'dod-7')?.status).toBe('passed');
311
+ });
312
+ it('should mark spec status as pending when status is not done', () => {
313
+ const result = generateDoD(makeSpec({ status: 'implementing' }));
314
+ expect(result.items.find((i) => i.id === 'dod-7')?.status).toBe('pending');
315
+ });
316
+ it('should pass actuals check when actuals exist', () => {
317
+ const result = generateDoD(makeSpec({
318
+ actuals: {
319
+ devHours: 8,
320
+ reviewHours: 2,
321
+ tokensOpus: 10000,
322
+ tokensSonnet: 20000,
323
+ apiCostUsd: 0.21,
324
+ humanCostUsd: 650,
325
+ totalCostUsd: 650.21,
326
+ completedAt: '2025-01-01T00:00:00Z',
327
+ notes: 'done',
328
+ },
329
+ }));
330
+ expect(result.items.find((i) => i.id === 'dod-8')?.status).toBe('passed');
331
+ });
332
+ it('should mark actuals as pending when actuals is null', () => {
333
+ const result = generateDoD(makeSpec({ actuals: null }));
334
+ expect(result.items.find((i) => i.id === 'dod-8')?.status).toBe('pending');
335
+ });
336
+ it('should set isDone=false when not all required items are passed', () => {
337
+ const result = generateDoD(makeSpec({ status: 'draft' }));
338
+ expect(result.isDone).toBe(false);
339
+ });
340
+ it('should set completedAt=null when isDone is false', () => {
341
+ const result = generateDoD(makeSpec({ status: 'draft' }));
342
+ expect(result.completedAt).toBeNull();
343
+ });
344
+ it('should set isDone=true and completedAt when all required items pass', () => {
345
+ const validation = {
346
+ matches: ['a'],
347
+ missing: [],
348
+ extra: [],
349
+ fieldsImplemented: 1,
350
+ fieldsTotal: 1,
351
+ score: 100,
352
+ qualityIssues: [],
353
+ };
354
+ const spec = makeSpec({
355
+ status: 'done',
356
+ actuals: {
357
+ devHours: 8,
358
+ reviewHours: 2,
359
+ tokensOpus: 10000,
360
+ tokensSonnet: 20000,
361
+ apiCostUsd: 0.21,
362
+ humanCostUsd: 650,
363
+ totalCostUsd: 650.21,
364
+ completedAt: '2025-01-01T00:00:00Z',
365
+ notes: 'done',
366
+ },
367
+ });
368
+ const result = generateDoD(spec, validation);
369
+ // dod-3 (unit tests), dod-4 (code reviewed), dod-6 (no regressions) are still pending
370
+ // so isDone will be false unless they are passed
371
+ // Actually those are required + pending => isDone = false
372
+ expect(result.isDone).toBe(false);
373
+ expect(result.completedAt).toBeNull();
374
+ });
375
+ it('should calculate passedCount correctly', () => {
376
+ const result = generateDoD(makeSpec());
377
+ const expected = result.items.filter((i) => i.status === 'passed').length;
378
+ expect(result.passedCount).toBe(expected);
379
+ });
380
+ it('should calculate requiredCount correctly', () => {
381
+ const result = generateDoD(makeSpec());
382
+ const expected = result.items.filter((i) => i.required).length;
383
+ expect(result.requiredCount).toBe(expected);
384
+ });
385
+ });
386
+ // ============================================================
387
+ // generateChecklist
388
+ // ============================================================
389
+ describe('generateChecklist', () => {
390
+ it('should generate checklist items for a backend spec', () => {
391
+ const result = generateChecklist(makeSpec({ target: 'backend' }));
392
+ expect(result.items.length).toBeGreaterThan(0);
393
+ expect(result.specId).toBe('SPEC-001');
394
+ });
395
+ it('should include UX items for frontend specs', () => {
396
+ const result = generateChecklist(makeSpec({ target: 'frontend' }));
397
+ const uxItems = result.items.filter((i) => i.category === 'ux');
398
+ expect(uxItems.length).toBe(2);
399
+ });
400
+ it('should include UX items for fullstack specs', () => {
401
+ const result = generateChecklist(makeSpec({ target: 'fullstack' }));
402
+ const uxItems = result.items.filter((i) => i.category === 'ux');
403
+ expect(uxItems.length).toBe(2);
404
+ });
405
+ it('should NOT include UX items for backend-only specs', () => {
406
+ const result = generateChecklist(makeSpec({ target: 'backend' }));
407
+ const uxItems = result.items.filter((i) => i.category === 'ux');
408
+ expect(uxItems).toHaveLength(0);
409
+ });
410
+ it('should NOT include UX items for infrastructure specs', () => {
411
+ const result = generateChecklist(makeSpec({ target: 'infrastructure' }));
412
+ const uxItems = result.items.filter((i) => i.category === 'ux');
413
+ expect(uxItems).toHaveLength(0);
414
+ });
415
+ it('should filter by focus categories when provided', () => {
416
+ const result = generateChecklist(makeSpec({ target: 'fullstack' }), ['security']);
417
+ expect(result.items.every((i) => i.category === 'security')).toBe(true);
418
+ expect(result.items.length).toBeGreaterThan(0);
419
+ });
420
+ it('should filter by multiple focus categories', () => {
421
+ const result = generateChecklist(makeSpec({ target: 'frontend' }), ['security', 'ux']);
422
+ const categories = new Set(result.items.map((i) => i.category));
423
+ for (const cat of categories) {
424
+ expect(['security', 'ux']).toContain(cat);
425
+ }
426
+ });
427
+ it('should return all categories when focus is empty array', () => {
428
+ const result = generateChecklist(makeSpec({ target: 'frontend' }), []);
429
+ const categories = new Set(result.items.map((i) => i.category));
430
+ expect(categories.size).toBeGreaterThan(1);
431
+ });
432
+ it('should return all categories when no focus provided', () => {
433
+ const result = generateChecklist(makeSpec({ target: 'frontend' }));
434
+ const categories = new Set(result.items.map((i) => i.category));
435
+ expect(categories.size).toBeGreaterThan(1);
436
+ });
437
+ it('should return empty items if focus matches nothing', () => {
438
+ // 'ux' items only exist for frontend/fullstack; backend spec + ux filter => empty
439
+ // Actually 'ux' won't exist for backend. Let's use a nonexistent category approach:
440
+ // focus requires items that don't exist
441
+ const result = generateChecklist(makeSpec({ target: 'backend' }), ['ux']);
442
+ expect(result.items).toHaveLength(0);
443
+ expect(result.score).toBe(0);
444
+ });
445
+ // validateScopeDifficulty coverage
446
+ it('should validate trivial scope with difficulty 1 (yes)', () => {
447
+ const result = generateChecklist(makeSpec({ scope: 'trivial', difficulty: 1 }));
448
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
449
+ });
450
+ it('should validate trivial scope with difficulty 2 (yes)', () => {
451
+ const result = generateChecklist(makeSpec({ scope: 'trivial', difficulty: 2 }));
452
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
453
+ });
454
+ it('should flag trivial scope with difficulty 3 (no)', () => {
455
+ const result = generateChecklist(makeSpec({ scope: 'trivial', difficulty: 3 }));
456
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('no');
457
+ });
458
+ it('should validate feature scope with difficulty 1-3 (yes)', () => {
459
+ for (const d of [1, 2, 3]) {
460
+ const result = generateChecklist(makeSpec({ scope: 'feature', difficulty: d }));
461
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
462
+ }
463
+ });
464
+ it('should flag feature scope with difficulty 4 (no)', () => {
465
+ const result = generateChecklist(makeSpec({ scope: 'feature', difficulty: 4 }));
466
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('no');
467
+ });
468
+ it('should validate cross-module scope with difficulty 2-4 (yes)', () => {
469
+ for (const d of [2, 3, 4]) {
470
+ const result = generateChecklist(makeSpec({ scope: 'cross-module', difficulty: d }));
471
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
472
+ }
473
+ });
474
+ it('should flag cross-module scope with difficulty 1 (no)', () => {
475
+ const result = generateChecklist(makeSpec({ scope: 'cross-module', difficulty: 1 }));
476
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('no');
477
+ });
478
+ it('should flag cross-module scope with difficulty 5 (no)', () => {
479
+ const result = generateChecklist(makeSpec({ scope: 'cross-module', difficulty: 5 }));
480
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('no');
481
+ });
482
+ it('should validate architectural scope with difficulty 3-5 (yes)', () => {
483
+ for (const d of [3, 4, 5]) {
484
+ const result = generateChecklist(makeSpec({ scope: 'architectural', difficulty: d }));
485
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
486
+ }
487
+ });
488
+ it('should flag architectural scope with difficulty 1 (no)', () => {
489
+ const result = generateChecklist(makeSpec({ scope: 'architectural', difficulty: 1 }));
490
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('no');
491
+ });
492
+ it('should return yes for unknown scope (always valid)', () => {
493
+ const result = generateChecklist(makeSpec({ scope: 'unknown-scope' }));
494
+ expect(result.items.find((i) => i.id === 'cl-cons-1')?.answer).toBe('yes');
495
+ });
496
+ // Completeness checks for huPath / fichaTecnicaPath
497
+ it('should mark cl-comp-1 as pending when huPath exists', () => {
498
+ const result = generateChecklist(makeSpec({ huPath: '/some/HU.md' }));
499
+ expect(result.items.find((i) => i.id === 'cl-comp-1')?.answer).toBe('pending');
500
+ });
501
+ it('should mark cl-comp-1 as no when huPath is empty', () => {
502
+ const result = generateChecklist(makeSpec({ huPath: '' }));
503
+ expect(result.items.find((i) => i.id === 'cl-comp-1')?.answer).toBe('no');
504
+ });
505
+ it('should mark cl-comp-2 as pending when fichaTecnicaPath exists', () => {
506
+ const result = generateChecklist(makeSpec({ fichaTecnicaPath: '/some/FICHA.md' }));
507
+ expect(result.items.find((i) => i.id === 'cl-comp-2')?.answer).toBe('pending');
508
+ });
509
+ it('should mark cl-comp-2 as no when fichaTecnicaPath is empty', () => {
510
+ const result = generateChecklist(makeSpec({ fichaTecnicaPath: '' }));
511
+ expect(result.items.find((i) => i.id === 'cl-comp-2')?.answer).toBe('no');
512
+ });
513
+ // Feasibility blocker check
514
+ it('should mark cl-feas-2 as yes when no blockers', () => {
515
+ const result = generateChecklist(makeSpec({ blockedBy: [] }));
516
+ expect(result.items.find((i) => i.id === 'cl-feas-2')?.answer).toBe('yes');
517
+ });
518
+ it('should mark cl-feas-2 as no when blockers exist', () => {
519
+ const result = generateChecklist(makeSpec({ blockedBy: ['SPEC-X'] }));
520
+ expect(result.items.find((i) => i.id === 'cl-feas-2')?.answer).toBe('no');
521
+ });
522
+ // Score calculation
523
+ it('should calculate score correctly', () => {
524
+ const result = generateChecklist(makeSpec({ scope: 'feature', difficulty: 2, blockedBy: [] }));
525
+ const passedCount = result.items.filter((i) => i.answer === 'yes').length;
526
+ const expectedScore = Math.round((passedCount / result.items.length) * 100);
527
+ expect(result.passedCount).toBe(passedCount);
528
+ expect(result.score).toBe(expectedScore);
529
+ });
530
+ it('should return score 0 when no yes answers', () => {
531
+ const result = generateChecklist(makeSpec({
532
+ huPath: '',
533
+ fichaTecnicaPath: '',
534
+ blockedBy: ['x'],
535
+ scope: 'architectural',
536
+ difficulty: 1,
537
+ target: 'backend',
538
+ }));
539
+ const yesCount = result.items.filter((i) => i.answer === 'yes').length;
540
+ expect(yesCount).toBe(0);
541
+ expect(result.score).toBe(0);
542
+ });
543
+ it('should include generatedAt ISO timestamp', () => {
544
+ const result = generateChecklist(makeSpec());
545
+ expect(result.generatedAt).toBeDefined();
546
+ expect(new Date(result.generatedAt).toISOString()).toBe(result.generatedAt);
547
+ });
548
+ });
549
+ // ============================================================
550
+ // validateSpec
551
+ // ============================================================
552
+ describe('validateSpec', () => {
553
+ const projectPath = '/test/project';
554
+ it('should return score 0 when no criteria match (no files, HU+ficha unreadable)', async () => {
555
+ // Both readFile calls will fail (default mock), glob returns nothing
556
+ const spec = makeSpec({ target: 'backend' });
557
+ const result = await validateSpec(spec, projectPath);
558
+ // extractCriteria falls back to metadata-based criteria
559
+ // checkCriterion won't find anything because no files, no fileContents
560
+ expect(result.score).toBe(0);
561
+ expect(result.fieldsTotal).toBeGreaterThan(0);
562
+ expect(result.missing.length).toBeGreaterThan(0);
563
+ });
564
+ it('should return fieldsTotal 0 and score 0 for empty criteria dedup edge', async () => {
565
+ // Prove that when criteria are generated, we get something
566
+ const spec = makeSpec({ target: 'backend' });
567
+ const result = await validateSpec(spec, projectPath);
568
+ // Default criteria: '"Feature ..." is implemented', 'API endpoints respond correctly', 'No regression in existing tests'
569
+ expect(result.fieldsTotal).toBe(3);
570
+ });
571
+ it('should generate frontend criteria when target is frontend', async () => {
572
+ const spec = makeSpec({ target: 'frontend' });
573
+ const result = await validateSpec(spec, projectPath);
574
+ // criteria: Feature implemented, UI components render correctly, No regression
575
+ expect(result.fieldsTotal).toBe(3);
576
+ expect(result.missing).toContain('UI components render correctly');
577
+ });
578
+ it('should generate fullstack criteria for both UI and API', async () => {
579
+ const spec = makeSpec({ target: 'fullstack' });
580
+ const result = await validateSpec(spec, projectPath);
581
+ // Feature implemented, UI components render correctly, API endpoints respond correctly, No regression
582
+ expect(result.fieldsTotal).toBe(4);
583
+ });
584
+ it('should generate shared target criteria (only base + regression)', async () => {
585
+ const spec = makeSpec({ target: 'shared' });
586
+ const result = await validateSpec(spec, projectPath);
587
+ // Feature implemented, No regression
588
+ expect(result.fieldsTotal).toBe(2);
589
+ });
590
+ // extractCriteria: extract from HU.md acceptance criteria section
591
+ it('should extract acceptance criteria from HU.md', async () => {
592
+ const huContent = [
593
+ '# User Story',
594
+ '## Acceptance Criteria',
595
+ '- The user can log in successfully',
596
+ '- The user sees a dashboard after login',
597
+ '## Other Section',
598
+ 'Some text',
599
+ ].join('\n');
600
+ mockReadFile.mockImplementation(((path) => {
601
+ if (String(path).includes('HU')) {
602
+ return huContent;
603
+ }
604
+ throw new Error('ENOENT');
605
+ }));
606
+ const spec = makeSpec();
607
+ const result = await validateSpec(spec, projectPath);
608
+ // Extracted: "The user can log in successfully", "The user sees a dashboard after login"
609
+ expect(result.fieldsTotal).toBe(2);
610
+ });
611
+ it('should extract acceptance criteria using Spanish heading', async () => {
612
+ const huContent = [
613
+ '# Historia de Usuario',
614
+ '## Criterios de Aceptaci\u00f3n',
615
+ '- El usuario puede iniciar sesion correctamente',
616
+ '## Otra Seccion',
617
+ ].join('\n');
618
+ mockReadFile.mockImplementation(((path) => {
619
+ if (String(path).includes('HU')) {
620
+ return huContent;
621
+ }
622
+ throw new Error('ENOENT');
623
+ }));
624
+ const result = await validateSpec(makeSpec(), projectPath);
625
+ expect(result.fieldsTotal).toBe(1);
626
+ expect(result.missing[0] ?? result.matches[0]).toContain('El usuario puede iniciar sesion correctamente');
627
+ });
628
+ it('should extract Given/When/Then patterns from HU.md', async () => {
629
+ const huContent = [
630
+ '# User Story',
631
+ 'Given the user is logged in',
632
+ 'When they click the button',
633
+ 'Then they see a confirmation',
634
+ ].join('\n');
635
+ mockReadFile.mockImplementation(((path) => {
636
+ if (String(path).includes('HU')) {
637
+ return huContent;
638
+ }
639
+ throw new Error('ENOENT');
640
+ }));
641
+ const result = await validateSpec(makeSpec(), projectPath);
642
+ // 3 GWT matches
643
+ expect(result.fieldsTotal).toBe(3);
644
+ });
645
+ it('should extract Spanish GWT patterns (Dado/Cuando/Entonces)', async () => {
646
+ const huContent = [
647
+ 'Dado que el usuario tiene permisos de admin',
648
+ 'Cuando accede al panel de control exitosamente',
649
+ 'Entonces ve las opciones de administracion completas',
650
+ ].join('\n');
651
+ mockReadFile.mockImplementation(((path) => {
652
+ if (String(path).includes('HU')) {
653
+ return huContent;
654
+ }
655
+ throw new Error('ENOENT');
656
+ }));
657
+ const result = await validateSpec(makeSpec(), projectPath);
658
+ expect(result.fieldsTotal).toBe(3);
659
+ });
660
+ it('should extract technical requirements from FICHA-TECNICA.md', async () => {
661
+ const fichaContent = [
662
+ '# Technical Design',
663
+ '## Requirements',
664
+ '- Database schema must support multi-tenancy',
665
+ '- API must handle 1000 requests per second',
666
+ '## Implementation',
667
+ 'Details here',
668
+ ].join('\n');
669
+ mockReadFile.mockImplementation(((path) => {
670
+ if (String(path).includes('FICHA')) {
671
+ return fichaContent;
672
+ }
673
+ throw new Error('ENOENT');
674
+ }));
675
+ const result = await validateSpec(makeSpec(), projectPath);
676
+ expect(result.fieldsTotal).toBe(2);
677
+ });
678
+ it('should extract from FICHA-TECNICA with "requisitos" heading', async () => {
679
+ const fichaContent = [
680
+ '# Ficha Tecnica',
681
+ '## Requisitos',
682
+ '- Soporte para multiples idiomas nativo',
683
+ '## Otro',
684
+ ].join('\n');
685
+ mockReadFile.mockImplementation(((path) => {
686
+ if (String(path).includes('FICHA')) {
687
+ return fichaContent;
688
+ }
689
+ throw new Error('ENOENT');
690
+ }));
691
+ const result = await validateSpec(makeSpec(), projectPath);
692
+ expect(result.fieldsTotal).toBe(1);
693
+ });
694
+ it('should extract from FICHA-TECNICA with "technical" heading', async () => {
695
+ const fichaContent = [
696
+ '# Spec',
697
+ '## Technical Details',
698
+ '- Must use PostgreSQL for persistence layer',
699
+ '## End',
700
+ ].join('\n');
701
+ mockReadFile.mockImplementation(((path) => {
702
+ if (String(path).includes('FICHA')) {
703
+ return fichaContent;
704
+ }
705
+ throw new Error('ENOENT');
706
+ }));
707
+ const result = await validateSpec(makeSpec(), projectPath);
708
+ expect(result.fieldsTotal).toBe(1);
709
+ });
710
+ it('should extract from FICHA-TECNICA with "implementation" heading', async () => {
711
+ const fichaContent = [
712
+ '# Spec',
713
+ '## Implementation Notes',
714
+ '1. Create the service layer for authentication',
715
+ '## End',
716
+ ].join('\n');
717
+ mockReadFile.mockImplementation(((path) => {
718
+ if (String(path).includes('FICHA')) {
719
+ return fichaContent;
720
+ }
721
+ throw new Error('ENOENT');
722
+ }));
723
+ const result = await validateSpec(makeSpec(), projectPath);
724
+ expect(result.fieldsTotal).toBe(1);
725
+ });
726
+ it('should deduplicate criteria from both files', async () => {
727
+ const huContent = [
728
+ '# Story',
729
+ '## Acceptance Criteria',
730
+ '- Must implement logging service correctly',
731
+ ].join('\n');
732
+ const fichaContent = [
733
+ '# Tech',
734
+ '## Requirements',
735
+ '- Must implement logging service correctly',
736
+ ].join('\n');
737
+ mockReadFile.mockImplementation(((path) => {
738
+ const p = String(path);
739
+ if (p.includes('HU')) {
740
+ return huContent;
741
+ }
742
+ if (p.includes('FICHA')) {
743
+ return fichaContent;
744
+ }
745
+ throw new Error('ENOENT');
746
+ }));
747
+ const result = await validateSpec(makeSpec(), projectPath);
748
+ // Deduplicated: only 1 criterion
749
+ expect(result.fieldsTotal).toBe(1);
750
+ });
751
+ it('should merge criteria from both HU and FICHA', async () => {
752
+ const huContent = [
753
+ '# Story',
754
+ '## Acceptance Criteria',
755
+ '- Feature A must work correctly in production',
756
+ ].join('\n');
757
+ const fichaContent = [
758
+ '# Tech',
759
+ '## Requirements',
760
+ '- Feature B must be implemented with tests',
761
+ ].join('\n');
762
+ mockReadFile.mockImplementation(((path) => {
763
+ const p = String(path);
764
+ if (p.includes('HU')) {
765
+ return huContent;
766
+ }
767
+ if (p.includes('FICHA')) {
768
+ return fichaContent;
769
+ }
770
+ throw new Error('ENOENT');
771
+ }));
772
+ const result = await validateSpec(makeSpec(), projectPath);
773
+ expect(result.fieldsTotal).toBe(2);
774
+ });
775
+ // extractSection: sub-heading within captured section (deeper level does NOT break)
776
+ it('should include sub-heading content within captured section', async () => {
777
+ const huContent = [
778
+ '## Acceptance Criteria',
779
+ '- Top level criterion is long enough',
780
+ '### Sub-section Details',
781
+ '- Sub-section criterion is long enough',
782
+ '## Next Section At Same Level',
783
+ '- Should not be captured at all here',
784
+ ].join('\n');
785
+ mockReadFile.mockImplementation(((path) => {
786
+ if (String(path).includes('HU')) {
787
+ return huContent;
788
+ }
789
+ throw new Error('ENOENT');
790
+ }));
791
+ const result = await validateSpec(makeSpec(), projectPath);
792
+ // Both top-level and sub-section criteria should be captured (sub-heading is deeper)
793
+ expect(result.fieldsTotal).toBe(2);
794
+ });
795
+ // extractSection: heading match that is already capturing but hits deeper heading
796
+ it('should not break on a deeper heading when already capturing', async () => {
797
+ const huContent = [
798
+ '## Acceptance Criteria',
799
+ '- First criterion is definitely long enough',
800
+ '#### Very Deep Sub-heading',
801
+ '- Deep criterion is also long enough here',
802
+ '# Top Level Heading Stops Capture',
803
+ '- This should not be captured anymore',
804
+ ].join('\n');
805
+ mockReadFile.mockImplementation(((path) => {
806
+ if (String(path).includes('HU')) {
807
+ return huContent;
808
+ }
809
+ throw new Error('ENOENT');
810
+ }));
811
+ const result = await validateSpec(makeSpec(), projectPath);
812
+ expect(result.fieldsTotal).toBe(2);
813
+ });
814
+ // extractListItems: numbered lists
815
+ it('should extract numbered list items from spec files', async () => {
816
+ const huContent = [
817
+ '# Story',
818
+ '## Acceptance Criteria',
819
+ '1. The system must validate user input data',
820
+ '2) The system must log all access attempts',
821
+ ].join('\n');
822
+ mockReadFile.mockImplementation(((path) => {
823
+ if (String(path).includes('HU')) {
824
+ return huContent;
825
+ }
826
+ throw new Error('ENOENT');
827
+ }));
828
+ const result = await validateSpec(makeSpec(), projectPath);
829
+ expect(result.fieldsTotal).toBe(2);
830
+ });
831
+ // extractListItems: checkbox lists
832
+ it('should extract checkbox list items from spec files', async () => {
833
+ const huContent = [
834
+ '# Story',
835
+ '## Acceptance Criteria',
836
+ '- [x] Completed criterion that already works',
837
+ '- [ ] Pending criterion that needs implementation',
838
+ '- [X] Another completed criterion that works',
839
+ ].join('\n');
840
+ mockReadFile.mockImplementation(((path) => {
841
+ if (String(path).includes('HU')) {
842
+ return huContent;
843
+ }
844
+ throw new Error('ENOENT');
845
+ }));
846
+ const result = await validateSpec(makeSpec(), projectPath);
847
+ expect(result.fieldsTotal).toBe(3);
848
+ });
849
+ // extractListItems: skip short items (<=5 chars)
850
+ it('should skip trivially short list items (<=5 chars)', async () => {
851
+ const huContent = [
852
+ '# Story',
853
+ '## Acceptance Criteria',
854
+ '- Yes',
855
+ '- No',
856
+ '- A valid criterion that is long enough',
857
+ '1. Abc',
858
+ '2. Another valid numbered criterion here',
859
+ ].join('\n');
860
+ mockReadFile.mockImplementation(((path) => {
861
+ if (String(path).includes('HU')) {
862
+ return huContent;
863
+ }
864
+ throw new Error('ENOENT');
865
+ }));
866
+ const result = await validateSpec(makeSpec(), projectPath);
867
+ // "Yes" (3 chars), "No" (2 chars), "Abc" (3 chars) are skipped
868
+ expect(result.fieldsTotal).toBe(2);
869
+ });
870
+ // extractListItems: different bullet styles
871
+ it('should extract items with * and + bullet styles', async () => {
872
+ const huContent = [
873
+ '# Story',
874
+ '## Acceptance Criteria',
875
+ '* Star bullet criterion that is long',
876
+ '+ Plus bullet criterion that is long',
877
+ ].join('\n');
878
+ mockReadFile.mockImplementation(((path) => {
879
+ if (String(path).includes('HU')) {
880
+ return huContent;
881
+ }
882
+ throw new Error('ENOENT');
883
+ }));
884
+ const result = await validateSpec(makeSpec(), projectPath);
885
+ expect(result.fieldsTotal).toBe(2);
886
+ });
887
+ // extractSection: heading level boundary
888
+ it('should stop section extraction when a same-level heading is encountered', async () => {
889
+ const huContent = [
890
+ '## Acceptance Criteria',
891
+ '- Criterion one is valid here',
892
+ '## Another Section At Same Level',
893
+ '- This should NOT be extracted',
894
+ ].join('\n');
895
+ mockReadFile.mockImplementation(((path) => {
896
+ if (String(path).includes('HU')) {
897
+ return huContent;
898
+ }
899
+ throw new Error('ENOENT');
900
+ }));
901
+ const result = await validateSpec(makeSpec(), projectPath);
902
+ expect(result.fieldsTotal).toBe(1);
903
+ expect(result.missing[0] ?? result.matches[0]).toContain('Criterion one is valid here');
904
+ });
905
+ // extractSection: higher-level heading stops extraction
906
+ it('should stop section extraction when a higher-level heading is encountered', async () => {
907
+ const huContent = [
908
+ '### Acceptance Criteria',
909
+ '- Criterion in subsection is valid',
910
+ '## Higher Level Heading Here',
911
+ '- Should not be captured here',
912
+ ].join('\n');
913
+ mockReadFile.mockImplementation(((path) => {
914
+ if (String(path).includes('HU')) {
915
+ return huContent;
916
+ }
917
+ throw new Error('ENOENT');
918
+ }));
919
+ const result = await validateSpec(makeSpec(), projectPath);
920
+ expect(result.fieldsTotal).toBe(1);
921
+ });
922
+ // extractSection: returns null when no matching heading
923
+ it('should fallback to metadata criteria when no matching section heading', async () => {
924
+ const huContent = ['# Some Heading', '## Not Related', '- Some item here'].join('\n');
925
+ mockReadFile.mockImplementation(((path) => {
926
+ if (String(path).includes('HU')) {
927
+ return huContent;
928
+ }
929
+ throw new Error('ENOENT');
930
+ }));
931
+ const result = await validateSpec(makeSpec({ target: 'backend' }), projectPath);
932
+ // No section match, no GWT => fallback to metadata criteria
933
+ expect(result.fieldsTotal).toBe(3); // Feature + API + No regression
934
+ });
935
+ // extractSection: empty section (heading exists but no content before next heading)
936
+ it('should return null for section with no content lines', async () => {
937
+ const huContent = [
938
+ '## Acceptance Criteria',
939
+ '## Next Section Immediately',
940
+ '- Content in next section here',
941
+ ].join('\n');
942
+ mockReadFile.mockImplementation(((path) => {
943
+ if (String(path).includes('HU')) {
944
+ return huContent;
945
+ }
946
+ throw new Error('ENOENT');
947
+ }));
948
+ const result = await validateSpec(makeSpec({ target: 'backend' }), projectPath);
949
+ // Empty AC section => no criteria from it, fallback to metadata
950
+ expect(result.fieldsTotal).toBe(3);
951
+ });
952
+ // scanCodeForSpec: impactAnalysis with affectedFiles
953
+ it('should scan affected files from impactAnalysis', async () => {
954
+ const spec = makeSpec({
955
+ impactAnalysis: {
956
+ affectedModules: ['engine'],
957
+ affectedFiles: ['src/engine/validator.ts'],
958
+ breakingChanges: false,
959
+ requiresMigration: false,
960
+ migrationReversible: false,
961
+ requiresFeatureFlag: false,
962
+ rollbackPlan: '',
963
+ testingStrategy: {
964
+ unitTests: [],
965
+ integrationTests: [],
966
+ e2eTests: [],
967
+ manualTests: [],
968
+ },
969
+ environments: [],
970
+ },
971
+ });
972
+ mockReadFile.mockImplementation(((path) => {
973
+ const p = String(path);
974
+ if (p.includes('validator.ts')) {
975
+ return 'export function validateSpec() {}';
976
+ }
977
+ throw new Error('ENOENT');
978
+ }));
979
+ const result = await validateSpec(spec, projectPath);
980
+ // With affected files and content available, optimistic check passes
981
+ expect(result.fieldsTotal).toBeGreaterThan(0);
982
+ });
983
+ it('should handle impactAnalysis file that doesnt exist', async () => {
984
+ const spec = makeSpec({
985
+ impactAnalysis: {
986
+ affectedModules: ['engine'],
987
+ affectedFiles: ['src/nonexistent.ts'],
988
+ breakingChanges: false,
989
+ requiresMigration: false,
990
+ migrationReversible: false,
991
+ requiresFeatureFlag: false,
992
+ rollbackPlan: '',
993
+ testingStrategy: {
994
+ unitTests: [],
995
+ integrationTests: [],
996
+ e2eTests: [],
997
+ manualTests: [],
998
+ },
999
+ environments: [],
1000
+ },
1001
+ });
1002
+ // readFile always throws (default)
1003
+ const result = await validateSpec(spec, projectPath);
1004
+ // File doesn't exist, so affectedFiles is empty
1005
+ expect(result.fieldsTotal).toBeGreaterThan(0);
1006
+ });
1007
+ // scanCodeForSpec: gitBranch set (no-op but covers the branch)
1008
+ it('should cover the gitBranch code path', async () => {
1009
+ const spec = makeSpec({ gitBranch: 'feature/test-branch' });
1010
+ const result = await validateSpec(spec, projectPath);
1011
+ expect(result).toBeDefined();
1012
+ });
1013
+ // scanCodeForSpec: glob finds matching files
1014
+ it('should detect unexpected files matching the slug', async () => {
1015
+ mockGlob.mockResolvedValue(['src/test-spec-title.ts']);
1016
+ const spec = makeSpec({ slug: 'test-spec-title' });
1017
+ const result = await validateSpec(spec, projectPath);
1018
+ // The file is unexpected (not in affectedFiles)
1019
+ expect(result.extra).toContain('Unexpected file: src/test-spec-title.ts');
1020
+ });
1021
+ it('should not mark file as unexpected if it is in affectedFiles', async () => {
1022
+ const spec = makeSpec({
1023
+ slug: 'test-spec-title',
1024
+ impactAnalysis: {
1025
+ affectedModules: [],
1026
+ affectedFiles: ['src/test-spec-title.ts'],
1027
+ breakingChanges: false,
1028
+ requiresMigration: false,
1029
+ migrationReversible: false,
1030
+ requiresFeatureFlag: false,
1031
+ rollbackPlan: '',
1032
+ testingStrategy: {
1033
+ unitTests: [],
1034
+ integrationTests: [],
1035
+ e2eTests: [],
1036
+ manualTests: [],
1037
+ },
1038
+ environments: [],
1039
+ },
1040
+ });
1041
+ mockReadFile.mockImplementation(((path) => {
1042
+ const p = String(path);
1043
+ if (p.includes('test-spec-title')) {
1044
+ return 'export const x = 1;';
1045
+ }
1046
+ throw new Error('ENOENT');
1047
+ }));
1048
+ mockGlob.mockResolvedValue(['src/test-spec-title.ts']);
1049
+ const result = await validateSpec(spec, projectPath);
1050
+ expect(result.extra).not.toContain('Unexpected file: src/test-spec-title.ts');
1051
+ });
1052
+ // scanCodeForSpec: glob error
1053
+ it('should handle glob errors gracefully in scanCodeForSpec', async () => {
1054
+ mockGlob.mockRejectedValue(new Error('glob failure'));
1055
+ const result = await validateSpec(makeSpec(), projectPath);
1056
+ expect(result).toBeDefined();
1057
+ expect(result.extra).toHaveLength(0);
1058
+ });
1059
+ // checkCriterion: file existence criteria
1060
+ it('should check file existence for "create file" criterion', async () => {
1061
+ const huContent = [
1062
+ '## Acceptance Criteria',
1063
+ '- Create file "src/utils.ts" for utilities',
1064
+ ].join('\n');
1065
+ mockReadFile.mockImplementation(((path) => {
1066
+ if (String(path).includes('HU')) {
1067
+ return huContent;
1068
+ }
1069
+ throw new Error('ENOENT');
1070
+ }));
1071
+ mockStat.mockResolvedValue({});
1072
+ const result = await validateSpec(makeSpec(), projectPath);
1073
+ expect(result.matches).toContain('Create file "src/utils.ts" for utilities');
1074
+ });
1075
+ it('should mark file criterion as missing when file does not exist', async () => {
1076
+ const huContent = [
1077
+ '## Acceptance Criteria',
1078
+ '- Add file src/missing.ts for new module',
1079
+ ].join('\n');
1080
+ mockReadFile.mockImplementation(((path) => {
1081
+ if (String(path).includes('HU')) {
1082
+ return huContent;
1083
+ }
1084
+ throw new Error('ENOENT');
1085
+ }));
1086
+ // stat throws by default
1087
+ const result = await validateSpec(makeSpec(), projectPath);
1088
+ expect(result.missing).toContain('Add file src/missing.ts for new module');
1089
+ });
1090
+ it('should detect "implement file" pattern for file check', async () => {
1091
+ const huContent = [
1092
+ '## Acceptance Criteria',
1093
+ '- Implement file config.json for settings',
1094
+ ].join('\n');
1095
+ mockReadFile.mockImplementation(((path) => {
1096
+ if (String(path).includes('HU')) {
1097
+ return huContent;
1098
+ }
1099
+ throw new Error('ENOENT');
1100
+ }));
1101
+ mockStat.mockResolvedValue({});
1102
+ const result = await validateSpec(makeSpec(), projectPath);
1103
+ expect(result.matches.length).toBe(1);
1104
+ });
1105
+ // checkCriterion: component/function search in fileContents
1106
+ it('should find component name in affected file contents', async () => {
1107
+ const huContent = [
1108
+ '## Acceptance Criteria',
1109
+ '- Component UserDashboard must render correctly',
1110
+ ].join('\n');
1111
+ const spec = makeSpec({
1112
+ impactAnalysis: {
1113
+ affectedModules: [],
1114
+ affectedFiles: ['src/components/dashboard.tsx'],
1115
+ breakingChanges: false,
1116
+ requiresMigration: false,
1117
+ migrationReversible: false,
1118
+ requiresFeatureFlag: false,
1119
+ rollbackPlan: '',
1120
+ testingStrategy: {
1121
+ unitTests: [],
1122
+ integrationTests: [],
1123
+ e2eTests: [],
1124
+ manualTests: [],
1125
+ },
1126
+ environments: [],
1127
+ },
1128
+ });
1129
+ mockReadFile.mockImplementation(((path) => {
1130
+ const p = String(path);
1131
+ if (p.includes('HU')) {
1132
+ return huContent;
1133
+ }
1134
+ if (p.includes('dashboard.tsx')) {
1135
+ return 'export function UserDashboard() { return <div/>; }';
1136
+ }
1137
+ throw new Error('ENOENT');
1138
+ }));
1139
+ const result = await validateSpec(spec, projectPath);
1140
+ expect(result.matches).toContain('Component UserDashboard must render correctly');
1141
+ });
1142
+ // checkCriterion: component/function search via glob broader search
1143
+ it('should find component via broader glob search when not in fileContents', async () => {
1144
+ const huContent = [
1145
+ '## Acceptance Criteria',
1146
+ '- Function calculateTotal must work correctly',
1147
+ ].join('\n');
1148
+ mockReadFile.mockImplementation(((path) => {
1149
+ const p = String(path);
1150
+ if (p.includes('HU')) {
1151
+ return huContent;
1152
+ }
1153
+ if (p.includes('math.ts')) {
1154
+ return 'export function calculateTotal() { return 42; }';
1155
+ }
1156
+ throw new Error('ENOENT');
1157
+ }));
1158
+ // First glob call for scanCodeForSpec slug match, second for component search
1159
+ let callCount = 0;
1160
+ mockGlob.mockImplementation((() => {
1161
+ callCount++;
1162
+ if (callCount === 1) {
1163
+ return [];
1164
+ } // slug match
1165
+ return ['src/math.ts']; // component search
1166
+ }));
1167
+ const result = await validateSpec(makeSpec(), projectPath);
1168
+ expect(result.matches).toContain('Function calculateTotal must work correctly');
1169
+ });
1170
+ // checkCriterion: component found via broader search but readFile fails
1171
+ it('should handle unreadable files during broader component search', async () => {
1172
+ const huContent = [
1173
+ '## Acceptance Criteria',
1174
+ '- Class AuthService must be implemented fully',
1175
+ ].join('\n');
1176
+ mockReadFile.mockImplementation(((path) => {
1177
+ const p = String(path);
1178
+ if (p.includes('HU')) {
1179
+ return huContent;
1180
+ }
1181
+ throw new Error('ENOENT');
1182
+ }));
1183
+ let callCount = 0;
1184
+ mockGlob.mockImplementation((() => {
1185
+ callCount++;
1186
+ if (callCount === 1) {
1187
+ return [];
1188
+ }
1189
+ return ['src/auth.ts'];
1190
+ }));
1191
+ const result = await validateSpec(makeSpec(), projectPath);
1192
+ // auth.ts can't be read, so AuthService not found
1193
+ expect(result.missing).toContain('Class AuthService must be implemented fully');
1194
+ });
1195
+ // checkCriterion: glob error during broader search
1196
+ it('should handle glob error during broader component search', async () => {
1197
+ const huContent = [
1198
+ '## Acceptance Criteria',
1199
+ '- Module PaymentService must handle transactions',
1200
+ ].join('\n');
1201
+ mockReadFile.mockImplementation(((path) => {
1202
+ if (String(path).includes('HU')) {
1203
+ return huContent;
1204
+ }
1205
+ throw new Error('ENOENT');
1206
+ }));
1207
+ let callCount = 0;
1208
+ mockGlob.mockImplementation((() => {
1209
+ callCount++;
1210
+ if (callCount === 1) {
1211
+ return [];
1212
+ }
1213
+ throw new Error('glob error');
1214
+ }));
1215
+ const result = await validateSpec(makeSpec(), projectPath);
1216
+ expect(result.missing).toContain('Module PaymentService must handle transactions');
1217
+ });
1218
+ // checkCriterion: component search limits to 50 files
1219
+ it('should limit broader search to first 50 files', async () => {
1220
+ const huContent = [
1221
+ '## Acceptance Criteria',
1222
+ '- Service TargetService must exist in codebase',
1223
+ ].join('\n');
1224
+ const files = Array.from({ length: 60 }, (_, i) => `src/file${i}.ts`);
1225
+ mockReadFile.mockImplementation(((path) => {
1226
+ const p = String(path);
1227
+ if (p.includes('HU')) {
1228
+ return huContent;
1229
+ }
1230
+ // Only file59.ts contains "TargetService" (index 59, which is beyond 50 limit)
1231
+ if (p.includes('file59.ts')) {
1232
+ return 'export class TargetService {}';
1233
+ }
1234
+ return 'export const noop = true;';
1235
+ }));
1236
+ let callCount = 0;
1237
+ mockGlob.mockImplementation((() => {
1238
+ callCount++;
1239
+ if (callCount === 1) {
1240
+ return [];
1241
+ }
1242
+ return files;
1243
+ }));
1244
+ const result = await validateSpec(makeSpec(), projectPath);
1245
+ // file59 is at index 59, slice(0,50) excludes it
1246
+ expect(result.missing).toContain('Service TargetService must exist in codebase');
1247
+ });
1248
+ // checkCriterion: service name patterns
1249
+ it('should detect "service" keyword in criterion', async () => {
1250
+ const huContent = [
1251
+ '## Acceptance Criteria',
1252
+ '- Service EmailHandler must send notifications',
1253
+ ].join('\n');
1254
+ mockReadFile.mockImplementation(((path) => {
1255
+ const p = String(path);
1256
+ if (p.includes('HU')) {
1257
+ return huContent;
1258
+ }
1259
+ if (p.includes('email.ts')) {
1260
+ return 'class EmailHandler {}';
1261
+ }
1262
+ throw new Error('ENOENT');
1263
+ }));
1264
+ let callCount = 0;
1265
+ mockGlob.mockImplementation((() => {
1266
+ callCount++;
1267
+ if (callCount === 1) {
1268
+ return [];
1269
+ }
1270
+ return ['src/email.ts'];
1271
+ }));
1272
+ const result = await validateSpec(makeSpec(), projectPath);
1273
+ expect(result.matches).toContain('Service EmailHandler must send notifications');
1274
+ });
1275
+ // checkCriterion: API endpoint criteria
1276
+ it('should find API endpoint criterion in file contents', async () => {
1277
+ const huContent = [
1278
+ '## Acceptance Criteria',
1279
+ '- Endpoint for users must return user list',
1280
+ ].join('\n');
1281
+ const spec = makeSpec({
1282
+ impactAnalysis: {
1283
+ affectedModules: [],
1284
+ affectedFiles: ['src/routes.ts'],
1285
+ breakingChanges: false,
1286
+ requiresMigration: false,
1287
+ migrationReversible: false,
1288
+ requiresFeatureFlag: false,
1289
+ rollbackPlan: '',
1290
+ testingStrategy: {
1291
+ unitTests: [],
1292
+ integrationTests: [],
1293
+ e2eTests: [],
1294
+ manualTests: [],
1295
+ },
1296
+ environments: [],
1297
+ },
1298
+ });
1299
+ mockReadFile.mockImplementation(((path) => {
1300
+ const p = String(path);
1301
+ if (p.includes('HU')) {
1302
+ return huContent;
1303
+ }
1304
+ if (p.includes('routes.ts')) {
1305
+ return 'app.get("/users", handler);';
1306
+ }
1307
+ throw new Error('ENOENT');
1308
+ }));
1309
+ const result = await validateSpec(spec, projectPath);
1310
+ expect(result.matches).toContain('Endpoint for users must return user list');
1311
+ });
1312
+ it('should handle endpoint not found in file contents', async () => {
1313
+ const huContent = [
1314
+ '## Acceptance Criteria',
1315
+ '- Route for payments must process transactions',
1316
+ ].join('\n');
1317
+ mockReadFile.mockImplementation(((path) => {
1318
+ if (String(path).includes('HU')) {
1319
+ return huContent;
1320
+ }
1321
+ throw new Error('ENOENT');
1322
+ }));
1323
+ const result = await validateSpec(makeSpec(), projectPath);
1324
+ expect(result.missing).toContain('Route for payments must process transactions');
1325
+ });
1326
+ it('should detect "api" keyword for endpoint criterion', async () => {
1327
+ const huContent = [
1328
+ '## Acceptance Criteria',
1329
+ '- API products should list all products correctly',
1330
+ ].join('\n');
1331
+ const spec = makeSpec({
1332
+ impactAnalysis: {
1333
+ affectedModules: [],
1334
+ affectedFiles: ['src/api.ts'],
1335
+ breakingChanges: false,
1336
+ requiresMigration: false,
1337
+ migrationReversible: false,
1338
+ requiresFeatureFlag: false,
1339
+ rollbackPlan: '',
1340
+ testingStrategy: {
1341
+ unitTests: [],
1342
+ integrationTests: [],
1343
+ e2eTests: [],
1344
+ manualTests: [],
1345
+ },
1346
+ environments: [],
1347
+ },
1348
+ });
1349
+ mockReadFile.mockImplementation(((path) => {
1350
+ const p = String(path);
1351
+ if (p.includes('HU')) {
1352
+ return huContent;
1353
+ }
1354
+ if (p.includes('api.ts')) {
1355
+ return 'router.get("/products", listProducts);';
1356
+ }
1357
+ throw new Error('ENOENT');
1358
+ }));
1359
+ const result = await validateSpec(spec, projectPath);
1360
+ expect(result.matches).toContain('API products should list all products correctly');
1361
+ });
1362
+ // checkCriterion: endpoint matched but not in fileContents, falls through to optimistic check
1363
+ it('should pass endpoint criterion via optimistic fallback when affected files exist', async () => {
1364
+ const huContent = [
1365
+ '## Acceptance Criteria',
1366
+ '- Endpoint for orders must handle all requests',
1367
+ ].join('\n');
1368
+ const spec = makeSpec({
1369
+ impactAnalysis: {
1370
+ affectedModules: [],
1371
+ affectedFiles: ['src/handler.ts'],
1372
+ breakingChanges: false,
1373
+ requiresMigration: false,
1374
+ migrationReversible: false,
1375
+ requiresFeatureFlag: false,
1376
+ rollbackPlan: '',
1377
+ testingStrategy: {
1378
+ unitTests: [],
1379
+ integrationTests: [],
1380
+ e2eTests: [],
1381
+ manualTests: [],
1382
+ },
1383
+ environments: [],
1384
+ },
1385
+ });
1386
+ mockReadFile.mockImplementation(((path) => {
1387
+ const p = String(path);
1388
+ if (p.includes('HU')) {
1389
+ return huContent;
1390
+ }
1391
+ // handler.ts does NOT contain "orders" - endpoint not found in content
1392
+ if (p.includes('handler.ts')) {
1393
+ return 'export function handleRequest() {}';
1394
+ }
1395
+ throw new Error('ENOENT');
1396
+ }));
1397
+ const result = await validateSpec(spec, projectPath);
1398
+ // Endpoint "orders" not found in fileContents, but affectedFiles.length > 0 => optimistic pass
1399
+ expect(result.matches).toContain('Endpoint for orders must handle all requests');
1400
+ });
1401
+ // checkCriterion: fallback optimistic check when affectedFiles > 0
1402
+ it('should optimistically pass criteria when affected files exist', async () => {
1403
+ const huContent = [
1404
+ '## Acceptance Criteria',
1405
+ '- Some general criterion without specific keywords',
1406
+ ].join('\n');
1407
+ const spec = makeSpec({
1408
+ impactAnalysis: {
1409
+ affectedModules: [],
1410
+ affectedFiles: ['src/feature.ts'],
1411
+ breakingChanges: false,
1412
+ requiresMigration: false,
1413
+ migrationReversible: false,
1414
+ requiresFeatureFlag: false,
1415
+ rollbackPlan: '',
1416
+ testingStrategy: {
1417
+ unitTests: [],
1418
+ integrationTests: [],
1419
+ e2eTests: [],
1420
+ manualTests: [],
1421
+ },
1422
+ environments: [],
1423
+ },
1424
+ });
1425
+ mockReadFile.mockImplementation(((path) => {
1426
+ const p = String(path);
1427
+ if (p.includes('HU')) {
1428
+ return huContent;
1429
+ }
1430
+ if (p.includes('feature.ts')) {
1431
+ return 'export const feature = true;';
1432
+ }
1433
+ throw new Error('ENOENT');
1434
+ }));
1435
+ const result = await validateSpec(spec, projectPath);
1436
+ // criterion doesn't match file/component/endpoint patterns but affectedFiles > 0
1437
+ expect(result.matches).toContain('Some general criterion without specific keywords');
1438
+ });
1439
+ // checkCriterion: returns false when nothing matches
1440
+ it('should return false for criterion that matches nothing and no affected files', async () => {
1441
+ const huContent = [
1442
+ '## Acceptance Criteria',
1443
+ '- Some general criterion without specific patterns',
1444
+ ].join('\n');
1445
+ mockReadFile.mockImplementation(((path) => {
1446
+ if (String(path).includes('HU')) {
1447
+ return huContent;
1448
+ }
1449
+ throw new Error('ENOENT');
1450
+ }));
1451
+ const result = await validateSpec(makeSpec(), projectPath);
1452
+ expect(result.missing).toContain('Some general criterion without specific patterns');
1453
+ });
1454
+ // quickQualityCheck: non-code extension skipped
1455
+ it('should not produce quality issues for non-code files', async () => {
1456
+ const spec = makeSpec({
1457
+ impactAnalysis: {
1458
+ affectedModules: [],
1459
+ affectedFiles: ['README.md'],
1460
+ breakingChanges: false,
1461
+ requiresMigration: false,
1462
+ migrationReversible: false,
1463
+ requiresFeatureFlag: false,
1464
+ rollbackPlan: '',
1465
+ testingStrategy: {
1466
+ unitTests: [],
1467
+ integrationTests: [],
1468
+ e2eTests: [],
1469
+ manualTests: [],
1470
+ },
1471
+ environments: [],
1472
+ },
1473
+ });
1474
+ mockReadFile.mockImplementation(((path) => {
1475
+ const p = String(path);
1476
+ if (p.includes('README.md')) {
1477
+ return '# Readme\nSome content\nconsole.log("test")';
1478
+ }
1479
+ throw new Error('ENOENT');
1480
+ }));
1481
+ const result = await validateSpec(spec, projectPath);
1482
+ expect(result.qualityIssues).toHaveLength(0);
1483
+ });
1484
+ // quickQualityCheck: file length > 500
1485
+ it('should flag files with more than 500 lines', async () => {
1486
+ const longContent = Array.from({ length: 501 }, (_, i) => `line ${i}`).join('\n');
1487
+ const spec = makeSpec({
1488
+ impactAnalysis: {
1489
+ affectedModules: [],
1490
+ affectedFiles: ['src/big.ts'],
1491
+ breakingChanges: false,
1492
+ requiresMigration: false,
1493
+ migrationReversible: false,
1494
+ requiresFeatureFlag: false,
1495
+ rollbackPlan: '',
1496
+ testingStrategy: {
1497
+ unitTests: [],
1498
+ integrationTests: [],
1499
+ e2eTests: [],
1500
+ manualTests: [],
1501
+ },
1502
+ environments: [],
1503
+ },
1504
+ });
1505
+ mockReadFile.mockImplementation(((path) => {
1506
+ const p = String(path);
1507
+ if (p.includes('big.ts')) {
1508
+ return longContent;
1509
+ }
1510
+ throw new Error('ENOENT');
1511
+ }));
1512
+ const result = await validateSpec(spec, projectPath);
1513
+ const fileLengthIssue = result.qualityIssues.find((i) => i.rule === 'file-length');
1514
+ expect(fileLengthIssue).toBeDefined();
1515
+ expect(fileLengthIssue?.severity).toBe('warning');
1516
+ expect(fileLengthIssue?.message).toContain('501 lines');
1517
+ });
1518
+ // quickQualityCheck: file length exactly 500 (no issue)
1519
+ it('should NOT flag files with exactly 500 lines', async () => {
1520
+ const content = Array.from({ length: 500 }, (_, i) => `line ${i}`).join('\n');
1521
+ const spec = makeSpec({
1522
+ impactAnalysis: {
1523
+ affectedModules: [],
1524
+ affectedFiles: ['src/ok.ts'],
1525
+ breakingChanges: false,
1526
+ requiresMigration: false,
1527
+ migrationReversible: false,
1528
+ requiresFeatureFlag: false,
1529
+ rollbackPlan: '',
1530
+ testingStrategy: {
1531
+ unitTests: [],
1532
+ integrationTests: [],
1533
+ e2eTests: [],
1534
+ manualTests: [],
1535
+ },
1536
+ environments: [],
1537
+ },
1538
+ });
1539
+ mockReadFile.mockImplementation(((path) => {
1540
+ const p = String(path);
1541
+ if (p.includes('ok.ts')) {
1542
+ return content;
1543
+ }
1544
+ throw new Error('ENOENT');
1545
+ }));
1546
+ const result = await validateSpec(spec, projectPath);
1547
+ const fileLengthIssue = result.qualityIssues.find((i) => i.rule === 'file-length');
1548
+ expect(fileLengthIssue).toBeUndefined();
1549
+ });
1550
+ // quickQualityCheck: TODO/FIXME/HACK/XXX
1551
+ it('should flag TODO/FIXME/HACK/XXX markers', async () => {
1552
+ const content = [
1553
+ 'const x = 1;',
1554
+ '// TODO: fix this later',
1555
+ '// FIXME: broken logic',
1556
+ '// HACK: workaround',
1557
+ '// XXX: needs review',
1558
+ 'const y = 2;',
1559
+ ].join('\n');
1560
+ const spec = makeSpec({
1561
+ impactAnalysis: {
1562
+ affectedModules: [],
1563
+ affectedFiles: ['src/dirty.ts'],
1564
+ breakingChanges: false,
1565
+ requiresMigration: false,
1566
+ migrationReversible: false,
1567
+ requiresFeatureFlag: false,
1568
+ rollbackPlan: '',
1569
+ testingStrategy: {
1570
+ unitTests: [],
1571
+ integrationTests: [],
1572
+ e2eTests: [],
1573
+ manualTests: [],
1574
+ },
1575
+ environments: [],
1576
+ },
1577
+ });
1578
+ mockReadFile.mockImplementation(((path) => {
1579
+ const p = String(path);
1580
+ if (p.includes('dirty.ts')) {
1581
+ return content;
1582
+ }
1583
+ throw new Error('ENOENT');
1584
+ }));
1585
+ const result = await validateSpec(spec, projectPath);
1586
+ const pendingWork = result.qualityIssues.filter((i) => i.rule === 'pending-work');
1587
+ expect(pendingWork.length).toBe(4);
1588
+ expect(pendingWork[0]?.severity).toBe('info');
1589
+ });
1590
+ // quickQualityCheck: console.log detection (non-test file)
1591
+ it('should flag console statements in non-test files', async () => {
1592
+ const content = [
1593
+ 'function doSomething() {',
1594
+ ' console.log("debug");',
1595
+ ' console.debug("details");',
1596
+ ' console.info("info");',
1597
+ '}',
1598
+ ].join('\n');
1599
+ const spec = makeSpec({
1600
+ impactAnalysis: {
1601
+ affectedModules: [],
1602
+ affectedFiles: ['src/service.ts'],
1603
+ breakingChanges: false,
1604
+ requiresMigration: false,
1605
+ migrationReversible: false,
1606
+ requiresFeatureFlag: false,
1607
+ rollbackPlan: '',
1608
+ testingStrategy: {
1609
+ unitTests: [],
1610
+ integrationTests: [],
1611
+ e2eTests: [],
1612
+ manualTests: [],
1613
+ },
1614
+ environments: [],
1615
+ },
1616
+ });
1617
+ mockReadFile.mockImplementation(((path) => {
1618
+ const p = String(path);
1619
+ if (p.includes('service.ts')) {
1620
+ return content;
1621
+ }
1622
+ throw new Error('ENOENT');
1623
+ }));
1624
+ const result = await validateSpec(spec, projectPath);
1625
+ const consoleIssues = result.qualityIssues.filter((i) => i.rule === 'no-console');
1626
+ expect(consoleIssues.length).toBe(3);
1627
+ expect(consoleIssues[0]?.severity).toBe('warning');
1628
+ });
1629
+ // quickQualityCheck: console.log NOT flagged in test files
1630
+ it('should NOT flag console statements in test files', async () => {
1631
+ const content = 'console.log("test output");';
1632
+ const spec = makeSpec({
1633
+ impactAnalysis: {
1634
+ affectedModules: [],
1635
+ affectedFiles: ['src/service.test.ts'],
1636
+ breakingChanges: false,
1637
+ requiresMigration: false,
1638
+ migrationReversible: false,
1639
+ requiresFeatureFlag: false,
1640
+ rollbackPlan: '',
1641
+ testingStrategy: {
1642
+ unitTests: [],
1643
+ integrationTests: [],
1644
+ e2eTests: [],
1645
+ manualTests: [],
1646
+ },
1647
+ environments: [],
1648
+ },
1649
+ });
1650
+ mockReadFile.mockImplementation(((path) => {
1651
+ const p = String(path);
1652
+ if (p.includes('service.test.ts')) {
1653
+ return content;
1654
+ }
1655
+ throw new Error('ENOENT');
1656
+ }));
1657
+ const result = await validateSpec(spec, projectPath);
1658
+ const consoleIssues = result.qualityIssues.filter((i) => i.rule === 'no-console');
1659
+ expect(consoleIssues).toHaveLength(0);
1660
+ });
1661
+ // quickQualityCheck: console.log NOT flagged in spec files
1662
+ it('should NOT flag console statements in spec files', async () => {
1663
+ const content = 'console.log("spec output");';
1664
+ const spec = makeSpec({
1665
+ impactAnalysis: {
1666
+ affectedModules: [],
1667
+ affectedFiles: ['src/feature.spec.ts'],
1668
+ breakingChanges: false,
1669
+ requiresMigration: false,
1670
+ migrationReversible: false,
1671
+ requiresFeatureFlag: false,
1672
+ rollbackPlan: '',
1673
+ testingStrategy: {
1674
+ unitTests: [],
1675
+ integrationTests: [],
1676
+ e2eTests: [],
1677
+ manualTests: [],
1678
+ },
1679
+ environments: [],
1680
+ },
1681
+ });
1682
+ mockReadFile.mockImplementation(((path) => {
1683
+ const p = String(path);
1684
+ if (p.includes('feature.spec.ts')) {
1685
+ return content;
1686
+ }
1687
+ throw new Error('ENOENT');
1688
+ }));
1689
+ const result = await validateSpec(spec, projectPath);
1690
+ const consoleIssues = result.qualityIssues.filter((i) => i.rule === 'no-console');
1691
+ expect(consoleIssues).toHaveLength(0);
1692
+ });
1693
+ // quickQualityCheck: readFile error
1694
+ it('should handle readFile errors in quickQualityCheck gracefully', async () => {
1695
+ const spec = makeSpec({
1696
+ impactAnalysis: {
1697
+ affectedModules: [],
1698
+ affectedFiles: ['src/unreadable.ts'],
1699
+ breakingChanges: false,
1700
+ requiresMigration: false,
1701
+ migrationReversible: false,
1702
+ requiresFeatureFlag: false,
1703
+ rollbackPlan: '',
1704
+ testingStrategy: {
1705
+ unitTests: [],
1706
+ integrationTests: [],
1707
+ e2eTests: [],
1708
+ manualTests: [],
1709
+ },
1710
+ environments: [],
1711
+ },
1712
+ });
1713
+ // readFile always throws (default behavior)
1714
+ // BUT for scanCodeForSpec, reading impactAnalysis files also throws,
1715
+ // so affectedFiles stays empty. We need a special setup:
1716
+ // scanCodeForSpec reads the file for impactAnalysis => should succeed for that
1717
+ // quickQualityCheck reads the same file => should fail
1718
+ let readCount = 0;
1719
+ mockReadFile.mockImplementation(((path) => {
1720
+ readCount++;
1721
+ const p = String(path);
1722
+ if (p.includes('unreadable.ts')) {
1723
+ if (readCount <= 1) {
1724
+ return 'const x = 1;';
1725
+ } // scanCodeForSpec succeeds
1726
+ throw new Error('EACCES'); // quickQualityCheck fails
1727
+ }
1728
+ throw new Error('ENOENT');
1729
+ }));
1730
+ const result = await validateSpec(spec, projectPath);
1731
+ // Should not crash, just no quality issues
1732
+ expect(result.qualityIssues).toHaveLength(0);
1733
+ });
1734
+ // quickQualityCheck: various code extensions
1735
+ it('should run quality check on various code extensions', async () => {
1736
+ const extensions = ['.tsx', '.js', '.jsx', '.py', '.go', '.rs', '.java', '.kt', '.rb', '.php'];
1737
+ for (const ext of extensions) {
1738
+ vi.clearAllMocks();
1739
+ mockGlob.mockResolvedValue([]);
1740
+ const filename = `src/file${ext}`;
1741
+ const spec = makeSpec({
1742
+ impactAnalysis: {
1743
+ affectedModules: [],
1744
+ affectedFiles: [filename],
1745
+ breakingChanges: false,
1746
+ requiresMigration: false,
1747
+ migrationReversible: false,
1748
+ requiresFeatureFlag: false,
1749
+ rollbackPlan: '',
1750
+ testingStrategy: {
1751
+ unitTests: [],
1752
+ integrationTests: [],
1753
+ e2eTests: [],
1754
+ manualTests: [],
1755
+ },
1756
+ environments: [],
1757
+ },
1758
+ });
1759
+ mockReadFile.mockImplementation(((path) => {
1760
+ const p = String(path);
1761
+ if (p.includes(`file${ext}`)) {
1762
+ return '// TODO: implement this feature\nconst x = 1;';
1763
+ }
1764
+ throw new Error('ENOENT');
1765
+ }));
1766
+ const result = await validateSpec(spec, projectPath);
1767
+ const todoIssues = result.qualityIssues.filter((i) => i.rule === 'pending-work');
1768
+ expect(todoIssues.length).toBeGreaterThanOrEqual(1);
1769
+ }
1770
+ });
1771
+ // Score calculation
1772
+ it('should calculate score as 100 when all criteria match', async () => {
1773
+ const huContent = [
1774
+ '## Acceptance Criteria',
1775
+ '- Create file "src/new.ts" for the new feature',
1776
+ ].join('\n');
1777
+ mockReadFile.mockImplementation(((path) => {
1778
+ if (String(path).includes('HU')) {
1779
+ return huContent;
1780
+ }
1781
+ throw new Error('ENOENT');
1782
+ }));
1783
+ mockStat.mockResolvedValue({});
1784
+ const result = await validateSpec(makeSpec(), projectPath);
1785
+ expect(result.score).toBe(100);
1786
+ expect(result.fieldsImplemented).toBe(1);
1787
+ expect(result.fieldsTotal).toBe(1);
1788
+ });
1789
+ it('should calculate partial score correctly', async () => {
1790
+ const huContent = [
1791
+ '## Acceptance Criteria',
1792
+ '- Create file "src/exists.ts" for first feature',
1793
+ '- Create file "src/missing.ts" for second feature',
1794
+ ].join('\n');
1795
+ mockReadFile.mockImplementation(((path) => {
1796
+ if (String(path).includes('HU')) {
1797
+ return huContent;
1798
+ }
1799
+ throw new Error('ENOENT');
1800
+ }));
1801
+ mockStat.mockImplementation(((path) => {
1802
+ if (String(path).includes('exists.ts')) {
1803
+ return {};
1804
+ }
1805
+ throw new Error('ENOENT');
1806
+ }));
1807
+ const result = await validateSpec(makeSpec(), projectPath);
1808
+ expect(result.score).toBe(50);
1809
+ expect(result.fieldsImplemented).toBe(1);
1810
+ expect(result.fieldsTotal).toBe(2);
1811
+ });
1812
+ // slug with dashes transforms to pattern
1813
+ it('should transform slug dashes to [-_] pattern for glob', async () => {
1814
+ const spec = makeSpec({ slug: 'my-cool-feature' });
1815
+ mockGlob.mockResolvedValue([]);
1816
+ await validateSpec(spec, projectPath);
1817
+ // Check that glob was called with the pattern transformation
1818
+ expect(mockGlob).toHaveBeenCalledWith(expect.stringContaining('my[-_]cool[-_]feature'), expect.objectContaining({
1819
+ cwd: projectPath,
1820
+ nodir: true,
1821
+ ignore: ['node_modules/**', 'dist/**', 'build/**', '.git/**'],
1822
+ maxDepth: 6,
1823
+ }));
1824
+ });
1825
+ });
1826
+ // ============================================================
1827
+ // detectDrift
1828
+ // ============================================================
1829
+ describe('detectDrift', () => {
1830
+ const projectPath = '/test/project';
1831
+ it('should return a DriftReport with specId, checkType, and lastChecked', async () => {
1832
+ const result = await detectDrift(makeSpec(), projectPath);
1833
+ expect(result.specId).toBe('SPEC-001');
1834
+ expect(result.checkType).toBe('on-demand');
1835
+ expect(result.lastChecked).toBeDefined();
1836
+ expect(new Date(result.lastChecked).toISOString()).toBe(result.lastChecked);
1837
+ });
1838
+ it('should create drift items from missing criteria', async () => {
1839
+ const result = await detectDrift(makeSpec({ target: 'backend' }), projectPath);
1840
+ // Default spec with no files => all criteria are missing
1841
+ expect(result.drifts.length).toBeGreaterThan(0);
1842
+ for (const drift of result.drifts) {
1843
+ expect(drift.expected).toBe('Implemented');
1844
+ expect(drift.actual).toBe('Missing');
1845
+ expect(drift.autoFixable).toBe(false);
1846
+ }
1847
+ });
1848
+ it('should classify security drift as critical severity', async () => {
1849
+ const huContent = [
1850
+ '## Acceptance Criteria',
1851
+ '- Security authentication must be enforced properly',
1852
+ ].join('\n');
1853
+ mockReadFile.mockImplementation(((path) => {
1854
+ if (String(path).includes('HU')) {
1855
+ return huContent;
1856
+ }
1857
+ throw new Error('ENOENT');
1858
+ }));
1859
+ const result = await detectDrift(makeSpec(), projectPath);
1860
+ const secDrift = result.drifts.find((d) => d.specCriterion.includes('Security'));
1861
+ expect(secDrift?.severity).toBe('critical');
1862
+ });
1863
+ it('should classify auth criterion as critical severity', async () => {
1864
+ const huContent = [
1865
+ '## Acceptance Criteria',
1866
+ '- Auth token validation must work correctly',
1867
+ ].join('\n');
1868
+ mockReadFile.mockImplementation(((path) => {
1869
+ if (String(path).includes('HU')) {
1870
+ return huContent;
1871
+ }
1872
+ throw new Error('ENOENT');
1873
+ }));
1874
+ const result = await detectDrift(makeSpec(), projectPath);
1875
+ const authDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('auth'));
1876
+ expect(authDrift?.severity).toBe('critical');
1877
+ });
1878
+ it('should classify permission criterion as critical severity', async () => {
1879
+ const huContent = [
1880
+ '## Acceptance Criteria',
1881
+ '- Permission checks must prevent unauthorized access',
1882
+ ].join('\n');
1883
+ mockReadFile.mockImplementation(((path) => {
1884
+ if (String(path).includes('HU')) {
1885
+ return huContent;
1886
+ }
1887
+ throw new Error('ENOENT');
1888
+ }));
1889
+ const result = await detectDrift(makeSpec(), projectPath);
1890
+ const permDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('permission'));
1891
+ expect(permDrift?.severity).toBe('critical');
1892
+ });
1893
+ it('should classify error criterion as high severity', async () => {
1894
+ const huContent = [
1895
+ '## Acceptance Criteria',
1896
+ '- Error handling must be comprehensive everywhere',
1897
+ ].join('\n');
1898
+ mockReadFile.mockImplementation(((path) => {
1899
+ if (String(path).includes('HU')) {
1900
+ return huContent;
1901
+ }
1902
+ throw new Error('ENOENT');
1903
+ }));
1904
+ const result = await detectDrift(makeSpec(), projectPath);
1905
+ const errDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('error'));
1906
+ expect(errDrift?.severity).toBe('high');
1907
+ });
1908
+ it('should classify validation criterion as high severity', async () => {
1909
+ const huContent = [
1910
+ '## Acceptance Criteria',
1911
+ '- Validation of all user inputs must happen',
1912
+ ].join('\n');
1913
+ mockReadFile.mockImplementation(((path) => {
1914
+ if (String(path).includes('HU')) {
1915
+ return huContent;
1916
+ }
1917
+ throw new Error('ENOENT');
1918
+ }));
1919
+ const result = await detectDrift(makeSpec(), projectPath);
1920
+ const valDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('validation'));
1921
+ expect(valDrift?.severity).toBe('high');
1922
+ });
1923
+ it('should classify test criterion as high severity', async () => {
1924
+ const huContent = [
1925
+ '## Acceptance Criteria',
1926
+ '- Test coverage must meet minimum threshold',
1927
+ ].join('\n');
1928
+ mockReadFile.mockImplementation(((path) => {
1929
+ if (String(path).includes('HU')) {
1930
+ return huContent;
1931
+ }
1932
+ throw new Error('ENOENT');
1933
+ }));
1934
+ const result = await detectDrift(makeSpec(), projectPath);
1935
+ const testDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('test'));
1936
+ expect(testDrift?.severity).toBe('high');
1937
+ });
1938
+ it('should classify performance criterion as medium severity', async () => {
1939
+ const huContent = [
1940
+ '## Acceptance Criteria',
1941
+ '- Performance benchmark must meet requirements daily',
1942
+ ].join('\n');
1943
+ mockReadFile.mockImplementation(((path) => {
1944
+ if (String(path).includes('HU')) {
1945
+ return huContent;
1946
+ }
1947
+ throw new Error('ENOENT');
1948
+ }));
1949
+ const result = await detectDrift(makeSpec(), projectPath);
1950
+ const perfDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('performance'));
1951
+ expect(perfDrift?.severity).toBe('medium');
1952
+ });
1953
+ it('should classify cache criterion as medium severity', async () => {
1954
+ const huContent = [
1955
+ '## Acceptance Criteria',
1956
+ '- Cache expiry must work across replicas',
1957
+ ].join('\n');
1958
+ mockReadFile.mockImplementation(((path) => {
1959
+ if (String(path).includes('HU')) {
1960
+ return huContent;
1961
+ }
1962
+ throw new Error('ENOENT');
1963
+ }));
1964
+ const result = await detectDrift(makeSpec(), projectPath);
1965
+ const cacheDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('cache'));
1966
+ expect(cacheDrift?.severity).toBe('medium');
1967
+ });
1968
+ it('should classify optimize criterion as medium severity', async () => {
1969
+ const huContent = [
1970
+ '## Acceptance Criteria',
1971
+ '- Optimize database queries for large datasets',
1972
+ ].join('\n');
1973
+ mockReadFile.mockImplementation(((path) => {
1974
+ if (String(path).includes('HU')) {
1975
+ return huContent;
1976
+ }
1977
+ throw new Error('ENOENT');
1978
+ }));
1979
+ const result = await detectDrift(makeSpec(), projectPath);
1980
+ const optDrift = result.drifts.find((d) => d.specCriterion.toLowerCase().includes('optimize'));
1981
+ expect(optDrift?.severity).toBe('medium');
1982
+ });
1983
+ it('should classify generic criterion as low severity', async () => {
1984
+ // The default fallback metadata criterion "Feature ... is implemented" is generic
1985
+ // Use a title without "test"/"error"/"validation"/"security"/"auth"/"performance"/"cache"/"optimize"
1986
+ const result = await detectDrift(makeSpec({ target: 'shared', title: 'User Profile Feature' }), projectPath);
1987
+ // "Feature ... is implemented" => low, "No regression in existing tests" => high (contains "test")
1988
+ const featureDrift = result.drifts.find((d) => d.specCriterion.includes('is implemented'));
1989
+ expect(featureDrift?.severity).toBe('low');
1990
+ });
1991
+ // Quality issues as drift items
1992
+ it('should include quality issues as drift items', async () => {
1993
+ const content = Array.from({ length: 501 }, (_, i) => `line ${i}`).join('\n');
1994
+ const spec = makeSpec({
1995
+ impactAnalysis: {
1996
+ affectedModules: [],
1997
+ affectedFiles: ['src/big.ts'],
1998
+ breakingChanges: false,
1999
+ requiresMigration: false,
2000
+ migrationReversible: false,
2001
+ requiresFeatureFlag: false,
2002
+ rollbackPlan: '',
2003
+ testingStrategy: {
2004
+ unitTests: [],
2005
+ integrationTests: [],
2006
+ e2eTests: [],
2007
+ manualTests: [],
2008
+ },
2009
+ environments: [],
2010
+ },
2011
+ });
2012
+ mockReadFile.mockImplementation(((path) => {
2013
+ const p = String(path);
2014
+ if (p.includes('big.ts')) {
2015
+ return content;
2016
+ }
2017
+ throw new Error('ENOENT');
2018
+ }));
2019
+ const result = await detectDrift(spec, projectPath);
2020
+ const qualityDrift = result.drifts.find((d) => d.specCriterion === 'file-length');
2021
+ expect(qualityDrift).toBeDefined();
2022
+ expect(qualityDrift?.file).toBe('src/big.ts');
2023
+ });
2024
+ // Quality issue severity mapping
2025
+ it('should map critical quality issue severity to critical drift', async () => {
2026
+ // We need a quality issue with severity "critical" - but quickQualityCheck only produces
2027
+ // 'warning' (file-length, no-console) and 'info' (pending-work).
2028
+ // The severity mapping in detectDrift converts: critical->critical, error->high, else->medium
2029
+ // Since quickQualityCheck can't produce critical/error severity directly, we test through
2030
+ // the existing severities. 'warning' should map to 'medium' and 'info' should map to 'medium'.
2031
+ const content = '// TODO: fix this critical issue later\n';
2032
+ const spec = makeSpec({
2033
+ impactAnalysis: {
2034
+ affectedModules: [],
2035
+ affectedFiles: ['src/todo.ts'],
2036
+ breakingChanges: false,
2037
+ requiresMigration: false,
2038
+ migrationReversible: false,
2039
+ requiresFeatureFlag: false,
2040
+ rollbackPlan: '',
2041
+ testingStrategy: {
2042
+ unitTests: [],
2043
+ integrationTests: [],
2044
+ e2eTests: [],
2045
+ manualTests: [],
2046
+ },
2047
+ environments: [],
2048
+ },
2049
+ });
2050
+ mockReadFile.mockImplementation(((path) => {
2051
+ const p = String(path);
2052
+ if (p.includes('todo.ts')) {
2053
+ return content;
2054
+ }
2055
+ throw new Error('ENOENT');
2056
+ }));
2057
+ const result = await detectDrift(spec, projectPath);
2058
+ const todoDrift = result.drifts.find((d) => d.specCriterion === 'pending-work');
2059
+ expect(todoDrift).toBeDefined();
2060
+ // 'info' severity maps to 'medium' in the ternary chain
2061
+ expect(todoDrift?.severity).toBe('medium');
2062
+ });
2063
+ it('should map warning quality issue severity to medium drift', async () => {
2064
+ const content = Array.from({ length: 501 }, (_, i) => `line ${i}`).join('\n');
2065
+ const spec = makeSpec({
2066
+ impactAnalysis: {
2067
+ affectedModules: [],
2068
+ affectedFiles: ['src/large.ts'],
2069
+ breakingChanges: false,
2070
+ requiresMigration: false,
2071
+ migrationReversible: false,
2072
+ requiresFeatureFlag: false,
2073
+ rollbackPlan: '',
2074
+ testingStrategy: {
2075
+ unitTests: [],
2076
+ integrationTests: [],
2077
+ e2eTests: [],
2078
+ manualTests: [],
2079
+ },
2080
+ environments: [],
2081
+ },
2082
+ });
2083
+ mockReadFile.mockImplementation(((path) => {
2084
+ const p = String(path);
2085
+ if (p.includes('large.ts')) {
2086
+ return content;
2087
+ }
2088
+ throw new Error('ENOENT');
2089
+ }));
2090
+ const result = await detectDrift(spec, projectPath);
2091
+ const fileLengthDrift = result.drifts.find((d) => d.specCriterion === 'file-length');
2092
+ expect(fileLengthDrift?.severity).toBe('medium');
2093
+ expect(fileLengthDrift?.suggestedFix).toBeDefined();
2094
+ });
2095
+ // Compliance threshold
2096
+ it('should mark as compliant when score >= threshold (default 80)', async () => {
2097
+ // Need a spec where all criteria pass => score 100 >= 80
2098
+ const huContent = [
2099
+ '## Acceptance Criteria',
2100
+ '- Create file "src/exists.ts" for the feature',
2101
+ ].join('\n');
2102
+ mockReadFile.mockImplementation(((path) => {
2103
+ if (String(path).includes('HU')) {
2104
+ return huContent;
2105
+ }
2106
+ throw new Error('ENOENT');
2107
+ }));
2108
+ mockStat.mockResolvedValue({});
2109
+ const result = await detectDrift(makeSpec(), projectPath);
2110
+ expect(result.isCompliant).toBe(true);
2111
+ expect(result.driftScore).toBe(100);
2112
+ });
2113
+ it('should mark as non-compliant when score < threshold', async () => {
2114
+ const result = await detectDrift(makeSpec({ target: 'backend' }), projectPath);
2115
+ // All criteria missing => score 0 < 80
2116
+ expect(result.isCompliant).toBe(false);
2117
+ });
2118
+ it('should use custom threshold', async () => {
2119
+ const result = await detectDrift(makeSpec({ target: 'backend' }), projectPath, 'full', 0);
2120
+ // score 0 >= threshold 0
2121
+ expect(result.isCompliant).toBe(true);
2122
+ });
2123
+ it('should accept mode parameter (full)', async () => {
2124
+ const result = await detectDrift(makeSpec(), projectPath, 'full');
2125
+ expect(result).toBeDefined();
2126
+ });
2127
+ it('should accept mode parameter (quick)', async () => {
2128
+ const result = await detectDrift(makeSpec(), projectPath, 'quick');
2129
+ expect(result).toBeDefined();
2130
+ });
2131
+ it('should set driftScore from validation score', async () => {
2132
+ const result = await detectDrift(makeSpec({ target: 'shared' }), projectPath);
2133
+ expect(typeof result.driftScore).toBe('number');
2134
+ expect(result.driftScore).toBeGreaterThanOrEqual(0);
2135
+ expect(result.driftScore).toBeLessThanOrEqual(100);
2136
+ });
2137
+ });
2138
+ // ============================================================
2139
+ // Edge cases and integration scenarios
2140
+ // ============================================================
2141
+ describe('edge cases', () => {
2142
+ const projectPath = '/test/project';
2143
+ it('should handle spec with both GWT and AC sections combined', async () => {
2144
+ const huContent = [
2145
+ '## Acceptance Criteria',
2146
+ '- System handles concurrent requests properly',
2147
+ '',
2148
+ 'Given a user is authenticated properly',
2149
+ 'When they submit a request to the server',
2150
+ 'Then the response returns within millisecond',
2151
+ ].join('\n');
2152
+ mockReadFile.mockImplementation(((path) => {
2153
+ if (String(path).includes('HU')) {
2154
+ return huContent;
2155
+ }
2156
+ throw new Error('ENOENT');
2157
+ }));
2158
+ const result = await validateSpec(makeSpec(), projectPath);
2159
+ // 1 AC item + 3 GWT items = 4 (deduplicated)
2160
+ expect(result.fieldsTotal).toBe(4);
2161
+ });
2162
+ it('should handle empty HU.md content', async () => {
2163
+ mockReadFile.mockImplementation(((path) => {
2164
+ if (String(path).includes('HU')) {
2165
+ return '';
2166
+ }
2167
+ throw new Error('ENOENT');
2168
+ }));
2169
+ const result = await validateSpec(makeSpec({ target: 'backend' }), projectPath);
2170
+ // Falls back to metadata criteria
2171
+ expect(result.fieldsTotal).toBe(3);
2172
+ });
2173
+ it('should handle HU content with no list items in AC section', async () => {
2174
+ const huContent = [
2175
+ '## Acceptance Criteria',
2176
+ 'This section has text but no list items.',
2177
+ 'Just plain paragraphs without bullets.',
2178
+ '## End',
2179
+ ].join('\n');
2180
+ mockReadFile.mockImplementation(((path) => {
2181
+ if (String(path).includes('HU')) {
2182
+ return huContent;
2183
+ }
2184
+ throw new Error('ENOENT');
2185
+ }));
2186
+ const result = await validateSpec(makeSpec({ target: 'backend' }), projectPath);
2187
+ // No list items extracted, no GWT => fallback to metadata criteria
2188
+ expect(result.fieldsTotal).toBe(3);
2189
+ });
2190
+ it('should handle criterion with quoted file name', async () => {
2191
+ const huContent = [
2192
+ '## Acceptance Criteria',
2193
+ "- Create 'src/config.yaml' for project settings",
2194
+ ].join('\n');
2195
+ mockReadFile.mockImplementation(((path) => {
2196
+ if (String(path).includes('HU')) {
2197
+ return huContent;
2198
+ }
2199
+ throw new Error('ENOENT');
2200
+ }));
2201
+ mockStat.mockResolvedValue({});
2202
+ const result = await validateSpec(makeSpec(), projectPath);
2203
+ expect(result.matches.length).toBe(1);
2204
+ });
2205
+ it('should handle deeply nested heading in extractSection', async () => {
2206
+ const huContent = [
2207
+ '###### Acceptance Criteria',
2208
+ '- Deep nested criterion that should work',
2209
+ '###### Another Deep Section',
2210
+ '- Should not be captured here either',
2211
+ ].join('\n');
2212
+ mockReadFile.mockImplementation(((path) => {
2213
+ if (String(path).includes('HU')) {
2214
+ return huContent;
2215
+ }
2216
+ throw new Error('ENOENT');
2217
+ }));
2218
+ const result = await validateSpec(makeSpec(), projectPath);
2219
+ expect(result.fieldsTotal).toBe(1);
2220
+ });
2221
+ it('should handle non-heading lines before first heading', async () => {
2222
+ const huContent = [
2223
+ 'Some preamble text that is not a heading',
2224
+ '',
2225
+ '## Acceptance Criteria',
2226
+ '- Valid criterion after preamble content',
2227
+ ].join('\n');
2228
+ mockReadFile.mockImplementation(((path) => {
2229
+ if (String(path).includes('HU')) {
2230
+ return huContent;
2231
+ }
2232
+ throw new Error('ENOENT');
2233
+ }));
2234
+ const result = await validateSpec(makeSpec(), projectPath);
2235
+ expect(result.fieldsTotal).toBe(1);
2236
+ });
2237
+ // Endpoint case-insensitive matching
2238
+ it('should match endpoint criterion case-insensitively', async () => {
2239
+ const huContent = [
2240
+ '## Acceptance Criteria',
2241
+ '- Endpoint for USERS must return all records',
2242
+ ].join('\n');
2243
+ const spec = makeSpec({
2244
+ impactAnalysis: {
2245
+ affectedModules: [],
2246
+ affectedFiles: ['src/routes.ts'],
2247
+ breakingChanges: false,
2248
+ requiresMigration: false,
2249
+ migrationReversible: false,
2250
+ requiresFeatureFlag: false,
2251
+ rollbackPlan: '',
2252
+ testingStrategy: {
2253
+ unitTests: [],
2254
+ integrationTests: [],
2255
+ e2eTests: [],
2256
+ manualTests: [],
2257
+ },
2258
+ environments: [],
2259
+ },
2260
+ });
2261
+ mockReadFile.mockImplementation(((path) => {
2262
+ const p = String(path);
2263
+ if (p.includes('HU')) {
2264
+ return huContent;
2265
+ }
2266
+ if (p.includes('routes.ts')) {
2267
+ return 'app.get("/users", listUsers);';
2268
+ }
2269
+ throw new Error('ENOENT');
2270
+ }));
2271
+ const result = await validateSpec(spec, projectPath);
2272
+ // "USERS" in criterion matches "users" in code (case insensitive)
2273
+ expect(result.matches.length).toBe(1);
2274
+ });
2275
+ it('should handle indented list items in spec files', async () => {
2276
+ const huContent = [
2277
+ '## Acceptance Criteria',
2278
+ ' - Indented bullet criterion that is valid',
2279
+ ' - More deeply indented criterion valid',
2280
+ ].join('\n');
2281
+ mockReadFile.mockImplementation(((path) => {
2282
+ if (String(path).includes('HU')) {
2283
+ return huContent;
2284
+ }
2285
+ throw new Error('ENOENT');
2286
+ }));
2287
+ const result = await validateSpec(makeSpec(), projectPath);
2288
+ expect(result.fieldsTotal).toBe(2);
2289
+ });
2290
+ });
2291
+ // ============================================================
2292
+ // checkDefinitionOfReady / checkDefinitionOfDone wrappers
2293
+ // (These are the generateDoR/generateDoD exports tested above,
2294
+ // but let's also verify they are re-exported if needed)
2295
+ // ============================================================
2296
+ describe('function export verification', () => {
2297
+ it('validateSpec is exported and callable', () => {
2298
+ expect(typeof validateSpec).toBe('function');
2299
+ });
2300
+ it('detectDrift is exported and callable', () => {
2301
+ expect(typeof detectDrift).toBe('function');
2302
+ });
2303
+ it('generateChecklist is exported and callable', () => {
2304
+ expect(typeof generateChecklist).toBe('function');
2305
+ });
2306
+ it('generateDoR is exported and callable', () => {
2307
+ expect(typeof generateDoR).toBe('function');
2308
+ });
2309
+ it('generateDoD is exported and callable', () => {
2310
+ expect(typeof generateDoD).toBe('function');
2311
+ });
2312
+ });
2313
+ // ============================================================
2314
+ // Additional branch coverage tests
2315
+ // ============================================================
2316
+ describe('generateDoR — empty target branch', () => {
2317
+ it('should fail target check when target is empty string', () => {
2318
+ const result = generateDoR(makeSpec({ target: '' }));
2319
+ const targetItem = result.items.find((i) => i.id === 'dor-10');
2320
+ expect(targetItem?.status).toBe('failed');
2321
+ });
2322
+ });
2323
+ describe('generateDoD — completedAt null when not all DoD passed', () => {
2324
+ it('should return completedAt=null when some required items are pending', () => {
2325
+ // Default spec: dod-3 (unit tests), dod-4, dod-5, dod-6 are pending => isDone=false
2326
+ const result = generateDoD(makeSpec({ status: 'implementing' }));
2327
+ expect(result.isDone).toBe(false);
2328
+ expect(result.completedAt).toBeNull();
2329
+ });
2330
+ });
2331
+ describe('checkCriterion — content.includes(name) in code state', () => {
2332
+ it('should match component name found in fileContents map', async () => {
2333
+ const projectPath = '/test/project';
2334
+ const huContent = [
2335
+ '## Acceptance Criteria',
2336
+ '- Component AuthValidator must work correctly',
2337
+ ].join('\n');
2338
+ const spec = makeSpec({
2339
+ impactAnalysis: {
2340
+ affectedModules: [],
2341
+ affectedFiles: ['src/auth.ts'],
2342
+ breakingChanges: false,
2343
+ requiresMigration: false,
2344
+ migrationReversible: false,
2345
+ requiresFeatureFlag: false,
2346
+ rollbackPlan: '',
2347
+ testingStrategy: {
2348
+ unitTests: [],
2349
+ integrationTests: [],
2350
+ e2eTests: [],
2351
+ manualTests: [],
2352
+ },
2353
+ environments: [],
2354
+ },
2355
+ });
2356
+ mockReadFile.mockImplementation(((path) => {
2357
+ const p = String(path);
2358
+ if (p.includes('HU')) {
2359
+ return huContent;
2360
+ }
2361
+ if (p.includes('auth.ts')) {
2362
+ return 'export class AuthValidator { validate() {} }';
2363
+ }
2364
+ throw new Error('ENOENT');
2365
+ }));
2366
+ const result = await validateSpec(spec, projectPath);
2367
+ // AuthValidator found in fileContents via content.includes(name)
2368
+ expect(result.matches).toContain('Component AuthValidator must work correctly');
2369
+ });
2370
+ });
2371
+ //# sourceMappingURL=validator.test.js.map