@contractspec/bundle.workspace 1.46.2 → 1.47.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 (1217) hide show
  1. package/dist/_virtual/rolldown_runtime.mjs +20 -0
  2. package/dist/adapters/ai.d.mts +12 -0
  3. package/dist/adapters/ai.d.mts.map +1 -0
  4. package/dist/adapters/ai.mjs +83 -0
  5. package/dist/adapters/ai.mjs.map +1 -0
  6. package/dist/adapters/factory.d.mts +29 -0
  7. package/dist/adapters/factory.d.mts.map +1 -0
  8. package/dist/adapters/factory.mjs +37 -0
  9. package/dist/adapters/factory.mjs.map +1 -0
  10. package/dist/adapters/fs.d.mts +12 -0
  11. package/dist/adapters/fs.d.mts.map +1 -0
  12. package/dist/adapters/fs.mjs +133 -0
  13. package/dist/adapters/fs.mjs.map +1 -0
  14. package/dist/adapters/git.d.mts +11 -0
  15. package/dist/adapters/git.d.mts.map +1 -0
  16. package/dist/adapters/git.mjs +84 -0
  17. package/dist/adapters/git.mjs.map +1 -0
  18. package/dist/adapters/index.d.mts +7 -0
  19. package/dist/adapters/index.mjs +9 -0
  20. package/dist/adapters/logger.d.mts +18 -0
  21. package/dist/adapters/logger.d.mts.map +1 -0
  22. package/dist/adapters/logger.mjs +81 -0
  23. package/dist/adapters/logger.mjs.map +1 -0
  24. package/dist/adapters/watcher.d.mts +11 -0
  25. package/dist/adapters/watcher.d.mts.map +1 -0
  26. package/dist/adapters/watcher.mjs +74 -0
  27. package/dist/adapters/watcher.mjs.map +1 -0
  28. package/dist/adapters/workspace.d.mts +148 -0
  29. package/dist/adapters/workspace.d.mts.map +1 -0
  30. package/dist/adapters/workspace.mjs +275 -0
  31. package/dist/adapters/workspace.mjs.map +1 -0
  32. package/dist/ai/agents/claude-code-agent.d.mts +22 -0
  33. package/dist/ai/agents/claude-code-agent.d.mts.map +1 -0
  34. package/dist/ai/agents/claude-code-agent.mjs +182 -0
  35. package/dist/ai/agents/claude-code-agent.mjs.map +1 -0
  36. package/dist/ai/agents/cursor-agent.d.mts +68 -0
  37. package/dist/ai/agents/cursor-agent.d.mts.map +1 -0
  38. package/dist/ai/agents/cursor-agent.mjs +436 -0
  39. package/dist/ai/agents/cursor-agent.mjs.map +1 -0
  40. package/dist/ai/agents/index.mjs +7 -0
  41. package/dist/ai/agents/openai-codex-agent.d.mts +22 -0
  42. package/dist/ai/agents/openai-codex-agent.d.mts.map +1 -0
  43. package/dist/ai/agents/openai-codex-agent.mjs +167 -0
  44. package/dist/ai/agents/openai-codex-agent.mjs.map +1 -0
  45. package/dist/ai/agents/orchestrator.d.mts +50 -0
  46. package/dist/ai/agents/orchestrator.d.mts.map +1 -0
  47. package/dist/ai/agents/orchestrator.mjs +143 -0
  48. package/dist/ai/agents/orchestrator.mjs.map +1 -0
  49. package/dist/ai/agents/simple-agent.d.mts +17 -0
  50. package/dist/ai/agents/simple-agent.d.mts.map +1 -0
  51. package/dist/ai/agents/simple-agent.mjs +92 -0
  52. package/dist/ai/agents/simple-agent.mjs.map +1 -0
  53. package/dist/ai/agents/types.d.mts +36 -0
  54. package/dist/ai/agents/types.d.mts.map +1 -0
  55. package/dist/ai/client.d.mts +97 -0
  56. package/dist/ai/client.d.mts.map +1 -0
  57. package/dist/ai/client.mjs +189 -0
  58. package/dist/ai/client.mjs.map +1 -0
  59. package/dist/ai/index.d.mts +9 -0
  60. package/dist/ai/index.mjs +11 -0
  61. package/dist/ai/prompts/code-generation.d.mts +26 -0
  62. package/dist/ai/prompts/code-generation.d.mts.map +1 -0
  63. package/dist/ai/prompts/code-generation.mjs +143 -0
  64. package/dist/ai/prompts/code-generation.mjs.map +1 -0
  65. package/dist/ai/prompts/index.d.mts +10 -0
  66. package/dist/ai/prompts/index.d.mts.map +1 -0
  67. package/dist/ai/prompts/index.mjs +13 -0
  68. package/dist/ai/prompts/index.mjs.map +1 -0
  69. package/dist/ai/prompts/spec-creation.d.mts +29 -0
  70. package/dist/ai/prompts/spec-creation.d.mts.map +1 -0
  71. package/dist/ai/prompts/spec-creation.mjs +111 -0
  72. package/dist/ai/prompts/spec-creation.mjs.map +1 -0
  73. package/dist/ai/providers.d.mts +29 -0
  74. package/dist/ai/providers.d.mts.map +1 -0
  75. package/dist/ai/providers.mjs +39 -0
  76. package/dist/ai/providers.mjs.map +1 -0
  77. package/dist/formatters/index.d.mts +11 -0
  78. package/dist/formatters/index.d.mts.map +1 -0
  79. package/dist/formatters/index.mjs +17 -0
  80. package/dist/formatters/index.mjs.map +1 -0
  81. package/dist/formatters/json.d.mts +56 -0
  82. package/dist/formatters/json.d.mts.map +1 -0
  83. package/dist/formatters/json.mjs +43 -0
  84. package/dist/formatters/json.mjs.map +1 -0
  85. package/dist/formatters/sarif.d.mts +101 -0
  86. package/dist/formatters/sarif.d.mts.map +1 -0
  87. package/dist/formatters/sarif.mjs +163 -0
  88. package/dist/formatters/sarif.mjs.map +1 -0
  89. package/dist/formatters/text.d.mts +35 -0
  90. package/dist/formatters/text.d.mts.map +1 -0
  91. package/dist/formatters/text.mjs +209 -0
  92. package/dist/formatters/text.mjs.map +1 -0
  93. package/dist/index.d.mts +125 -0
  94. package/dist/index.mjs +110 -0
  95. package/dist/ports/ai.d.mts +59 -0
  96. package/dist/ports/ai.d.mts.map +1 -0
  97. package/dist/ports/fs.d.mts +81 -0
  98. package/dist/ports/fs.d.mts.map +1 -0
  99. package/dist/ports/git.d.mts +46 -0
  100. package/dist/ports/git.d.mts.map +1 -0
  101. package/dist/ports/index.d.mts +6 -0
  102. package/dist/ports/logger.d.mts +88 -0
  103. package/dist/ports/logger.d.mts.map +1 -0
  104. package/dist/ports/rulesync.d.mts +38 -0
  105. package/dist/ports/rulesync.d.mts.map +1 -0
  106. package/dist/ports/watcher.d.mts +52 -0
  107. package/dist/ports/watcher.d.mts.map +1 -0
  108. package/dist/services/agent-guide/adapters/claude-code.d.mts +35 -0
  109. package/dist/services/agent-guide/adapters/claude-code.d.mts.map +1 -0
  110. package/dist/services/agent-guide/adapters/claude-code.mjs +144 -0
  111. package/dist/services/agent-guide/adapters/claude-code.mjs.map +1 -0
  112. package/dist/services/agent-guide/adapters/cursor-cli.d.mts +39 -0
  113. package/dist/services/agent-guide/adapters/cursor-cli.d.mts.map +1 -0
  114. package/dist/services/agent-guide/adapters/cursor-cli.mjs +135 -0
  115. package/dist/services/agent-guide/adapters/cursor-cli.mjs.map +1 -0
  116. package/dist/services/agent-guide/adapters/generic-mcp.d.mts +53 -0
  117. package/dist/services/agent-guide/adapters/generic-mcp.d.mts.map +1 -0
  118. package/dist/services/agent-guide/adapters/generic-mcp.mjs +159 -0
  119. package/dist/services/agent-guide/adapters/generic-mcp.mjs.map +1 -0
  120. package/dist/services/agent-guide/adapters/index.d.mts +23 -0
  121. package/dist/services/agent-guide/adapters/index.d.mts.map +1 -0
  122. package/dist/services/agent-guide/adapters/index.mjs +31 -0
  123. package/dist/services/agent-guide/adapters/index.mjs.map +1 -0
  124. package/dist/services/agent-guide/agent-guide-service.d.mts +56 -0
  125. package/dist/services/agent-guide/agent-guide-service.d.mts.map +1 -0
  126. package/dist/services/agent-guide/agent-guide-service.mjs +147 -0
  127. package/dist/services/agent-guide/agent-guide-service.mjs.map +1 -0
  128. package/dist/services/agent-guide/index.d.mts +6 -0
  129. package/dist/services/agent-guide/index.mjs +7 -0
  130. package/dist/services/agent-guide/types.d.mts +58 -0
  131. package/dist/services/agent-guide/types.d.mts.map +1 -0
  132. package/dist/services/build.d.mts +61 -0
  133. package/dist/services/build.d.mts.map +1 -0
  134. package/dist/services/build.mjs +151 -0
  135. package/dist/services/build.mjs.map +1 -0
  136. package/dist/services/ci-check/checks/coverage.mjs +77 -0
  137. package/dist/services/ci-check/checks/coverage.mjs.map +1 -0
  138. package/dist/services/ci-check/checks/deps.mjs +32 -0
  139. package/dist/services/ci-check/checks/deps.mjs.map +1 -0
  140. package/dist/services/ci-check/checks/doctor.mjs +38 -0
  141. package/dist/services/ci-check/checks/doctor.mjs.map +1 -0
  142. package/dist/services/ci-check/checks/drift.mjs +40 -0
  143. package/dist/services/ci-check/checks/drift.mjs.map +1 -0
  144. package/dist/services/ci-check/checks/handlers.mjs +38 -0
  145. package/dist/services/ci-check/checks/handlers.mjs.map +1 -0
  146. package/dist/services/ci-check/checks/implementation.mjs +73 -0
  147. package/dist/services/ci-check/checks/implementation.mjs.map +1 -0
  148. package/dist/services/ci-check/checks/index.mjs +13 -0
  149. package/dist/services/ci-check/checks/integrity.mjs +31 -0
  150. package/dist/services/ci-check/checks/integrity.mjs.map +1 -0
  151. package/dist/services/ci-check/checks/layers.mjs +66 -0
  152. package/dist/services/ci-check/checks/layers.mjs.map +1 -0
  153. package/dist/services/ci-check/checks/structure.mjs +35 -0
  154. package/dist/services/ci-check/checks/structure.mjs.map +1 -0
  155. package/dist/services/ci-check/checks/test-refs.mjs +63 -0
  156. package/dist/services/ci-check/checks/test-refs.mjs.map +1 -0
  157. package/dist/services/ci-check/checks/tests.mjs +38 -0
  158. package/dist/services/ci-check/checks/tests.mjs.map +1 -0
  159. package/dist/services/ci-check/ci-check-service.d.mts +16 -0
  160. package/dist/services/ci-check/ci-check-service.d.mts.map +1 -0
  161. package/dist/services/ci-check/ci-check-service.mjs +129 -0
  162. package/dist/services/ci-check/ci-check-service.mjs.map +1 -0
  163. package/dist/services/ci-check/index.d.mts +2 -0
  164. package/dist/services/ci-check/index.mjs +4 -0
  165. package/dist/services/ci-check/types.d.mts +147 -0
  166. package/dist/services/ci-check/types.d.mts.map +1 -0
  167. package/dist/services/ci-check/types.mjs +37 -0
  168. package/dist/services/ci-check/types.mjs.map +1 -0
  169. package/dist/services/ci-check/utils.mjs +76 -0
  170. package/dist/services/ci-check/utils.mjs.map +1 -0
  171. package/dist/services/clean.d.mts +41 -0
  172. package/dist/services/clean.d.mts.map +1 -0
  173. package/dist/services/clean.mjs +72 -0
  174. package/dist/services/clean.mjs.map +1 -0
  175. package/dist/services/config.d.mts +16 -0
  176. package/dist/services/config.d.mts.map +1 -0
  177. package/dist/services/config.mjs +63 -0
  178. package/dist/services/config.mjs.map +1 -0
  179. package/dist/services/coverage/parsers/index.mjs +34 -0
  180. package/dist/services/coverage/parsers/index.mjs.map +1 -0
  181. package/dist/services/coverage/parsers/istanbul-parser.mjs +108 -0
  182. package/dist/services/coverage/parsers/istanbul-parser.mjs.map +1 -0
  183. package/dist/services/coverage/validator.mjs +55 -0
  184. package/dist/services/coverage/validator.mjs.map +1 -0
  185. package/dist/services/create/ai-generator.d.mts +84 -0
  186. package/dist/services/create/ai-generator.d.mts.map +1 -0
  187. package/dist/services/create/ai-generator.mjs +178 -0
  188. package/dist/services/create/ai-generator.mjs.map +1 -0
  189. package/dist/services/create/index.d.mts +28 -0
  190. package/dist/services/create/index.d.mts.map +1 -0
  191. package/dist/services/create/index.mjs +37 -0
  192. package/dist/services/create/index.mjs.map +1 -0
  193. package/dist/services/create/templates.d.mts +22 -0
  194. package/dist/services/create/templates.d.mts.map +1 -0
  195. package/dist/services/create/templates.mjs +39 -0
  196. package/dist/services/create/templates.mjs.map +1 -0
  197. package/dist/services/deps.d.mts +53 -0
  198. package/dist/services/deps.d.mts.map +1 -0
  199. package/dist/services/deps.mjs +62 -0
  200. package/dist/services/deps.mjs.map +1 -0
  201. package/dist/services/diff.d.mts +34 -0
  202. package/dist/services/diff.d.mts.map +1 -0
  203. package/dist/services/diff.mjs +34 -0
  204. package/dist/services/diff.mjs.map +1 -0
  205. package/dist/services/docs/docs-service.d.mts +20 -0
  206. package/dist/services/docs/docs-service.d.mts.map +1 -0
  207. package/dist/services/docs/docs-service.mjs +59 -0
  208. package/dist/services/docs/docs-service.mjs.map +1 -0
  209. package/dist/services/docs/index.d.mts +1 -0
  210. package/dist/services/docs/index.mjs +3 -0
  211. package/dist/services/doctor/checks/ai.mjs +119 -0
  212. package/dist/services/doctor/checks/ai.mjs.map +1 -0
  213. package/dist/services/doctor/checks/cli.mjs +156 -0
  214. package/dist/services/doctor/checks/cli.mjs.map +1 -0
  215. package/dist/services/doctor/checks/config.mjs +303 -0
  216. package/dist/services/doctor/checks/config.mjs.map +1 -0
  217. package/dist/services/doctor/checks/deps.mjs +267 -0
  218. package/dist/services/doctor/checks/deps.mjs.map +1 -0
  219. package/dist/services/doctor/checks/index.mjs +9 -0
  220. package/dist/services/doctor/checks/layers.mjs +139 -0
  221. package/dist/services/doctor/checks/layers.mjs.map +1 -0
  222. package/dist/services/doctor/checks/mcp.mjs +145 -0
  223. package/dist/services/doctor/checks/mcp.mjs.map +1 -0
  224. package/dist/services/doctor/checks/workspace.mjs +263 -0
  225. package/dist/services/doctor/checks/workspace.mjs.map +1 -0
  226. package/dist/services/doctor/doctor-service.d.mts +24 -0
  227. package/dist/services/doctor/doctor-service.d.mts.map +1 -0
  228. package/dist/services/doctor/doctor-service.mjs +118 -0
  229. package/dist/services/doctor/doctor-service.mjs.map +1 -0
  230. package/dist/services/doctor/index.d.mts +2 -0
  231. package/dist/services/doctor/index.mjs +4 -0
  232. package/dist/services/doctor/types.d.mts +118 -0
  233. package/dist/services/doctor/types.d.mts.map +1 -0
  234. package/dist/services/doctor/types.mjs +29 -0
  235. package/dist/services/doctor/types.mjs.map +1 -0
  236. package/dist/services/drift.mjs +73 -0
  237. package/dist/services/drift.mjs.map +1 -0
  238. package/dist/services/extract.d.mts +12 -0
  239. package/dist/services/extract.d.mts.map +1 -0
  240. package/dist/services/extract.mjs +33 -0
  241. package/dist/services/extract.mjs.map +1 -0
  242. package/dist/services/features/completion.d.mts +21 -0
  243. package/dist/services/features/completion.d.mts.map +1 -0
  244. package/dist/services/features/completion.mjs +70 -0
  245. package/dist/services/features/completion.mjs.map +1 -0
  246. package/dist/services/features/feature-editor.d.mts +27 -0
  247. package/dist/services/features/feature-editor.d.mts.map +1 -0
  248. package/dist/services/features/feature-editor.mjs +37 -0
  249. package/dist/services/features/feature-editor.mjs.map +1 -0
  250. package/dist/services/features/index.d.mts +11 -0
  251. package/dist/services/features/index.d.mts.map +1 -0
  252. package/dist/services/features/index.mjs +16 -0
  253. package/dist/services/features/index.mjs.map +1 -0
  254. package/dist/services/features/validation.d.mts +21 -0
  255. package/dist/services/features/validation.d.mts.map +1 -0
  256. package/dist/services/features/validation.mjs +27 -0
  257. package/dist/services/features/validation.mjs.map +1 -0
  258. package/dist/services/fix/fix-link-formatter.d.mts +12 -0
  259. package/dist/services/fix/fix-link-formatter.d.mts.map +1 -0
  260. package/dist/services/fix/fix-link-formatter.mjs +38 -0
  261. package/dist/services/fix/fix-link-formatter.mjs.map +1 -0
  262. package/dist/services/fix/fix-service.d.mts +74 -0
  263. package/dist/services/fix/fix-service.d.mts.map +1 -0
  264. package/dist/services/fix/fix-service.mjs +169 -0
  265. package/dist/services/fix/fix-service.mjs.map +1 -0
  266. package/dist/services/fix/index.d.mts +16 -0
  267. package/dist/services/fix/index.d.mts.map +1 -0
  268. package/dist/services/fix/index.mjs +24 -0
  269. package/dist/services/fix/index.mjs.map +1 -0
  270. package/dist/services/fix/path-resolver.mjs +83 -0
  271. package/dist/services/fix/path-resolver.mjs.map +1 -0
  272. package/dist/services/fix/schemas.d.mts +17 -0
  273. package/dist/services/fix/schemas.d.mts.map +1 -0
  274. package/dist/services/fix/schemas.mjs +12 -0
  275. package/dist/services/fix/schemas.mjs.map +1 -0
  276. package/dist/services/fix/strategies/implement-ai.d.mts +18 -0
  277. package/dist/services/fix/strategies/implement-ai.d.mts.map +1 -0
  278. package/dist/services/fix/strategies/implement-ai.mjs +139 -0
  279. package/dist/services/fix/strategies/implement-ai.mjs.map +1 -0
  280. package/dist/services/fix/strategies/implement-skeleton.d.mts +14 -0
  281. package/dist/services/fix/strategies/implement-skeleton.d.mts.map +1 -0
  282. package/dist/services/fix/strategies/implement-skeleton.mjs +77 -0
  283. package/dist/services/fix/strategies/implement-skeleton.mjs.map +1 -0
  284. package/dist/services/fix/strategies/index.d.mts +3 -0
  285. package/dist/services/fix/strategies/remove-reference.d.mts +17 -0
  286. package/dist/services/fix/strategies/remove-reference.d.mts.map +1 -0
  287. package/dist/services/fix/strategies/remove-reference.mjs +98 -0
  288. package/dist/services/fix/strategies/remove-reference.mjs.map +1 -0
  289. package/dist/services/fix/types.d.mts +207 -0
  290. package/dist/services/fix/types.d.mts.map +1 -0
  291. package/dist/services/fix/types.mjs +20 -0
  292. package/dist/services/fix/types.mjs.map +1 -0
  293. package/dist/services/formatter.d.mts +15 -0
  294. package/dist/services/formatter.d.mts.map +1 -0
  295. package/dist/services/formatter.mjs +26 -0
  296. package/dist/services/formatter.mjs.map +1 -0
  297. package/dist/services/gap.d.mts +18 -0
  298. package/dist/services/gap.d.mts.map +1 -0
  299. package/dist/services/gap.mjs +44 -0
  300. package/dist/services/gap.mjs.map +1 -0
  301. package/dist/services/generate-artifacts.d.mts +11 -0
  302. package/dist/services/generate-artifacts.d.mts.map +1 -0
  303. package/dist/services/generate-artifacts.mjs +27 -0
  304. package/dist/services/generate-artifacts.mjs.map +1 -0
  305. package/dist/services/hooks/hooks-service.d.mts +24 -0
  306. package/dist/services/hooks/hooks-service.d.mts.map +1 -0
  307. package/dist/services/hooks/hooks-service.mjs +126 -0
  308. package/dist/services/hooks/hooks-service.mjs.map +1 -0
  309. package/dist/services/hooks/index.d.mts +10 -0
  310. package/dist/services/hooks/index.d.mts.map +1 -0
  311. package/dist/services/hooks/index.mjs +12 -0
  312. package/dist/services/hooks/index.mjs.map +1 -0
  313. package/dist/services/hooks/types.d.mts +56 -0
  314. package/dist/services/hooks/types.d.mts.map +1 -0
  315. package/dist/services/impact/formatters.d.mts +27 -0
  316. package/dist/services/impact/formatters.d.mts.map +1 -0
  317. package/dist/services/impact/formatters.mjs +139 -0
  318. package/dist/services/impact/formatters.mjs.map +1 -0
  319. package/dist/services/impact/impact-detection-service.d.mts +22 -0
  320. package/dist/services/impact/impact-detection-service.d.mts.map +1 -0
  321. package/dist/services/impact/impact-detection-service.mjs +96 -0
  322. package/dist/services/impact/impact-detection-service.mjs.map +1 -0
  323. package/dist/services/impact/index.d.mts +11 -0
  324. package/dist/services/impact/index.d.mts.map +1 -0
  325. package/dist/services/impact/index.mjs +16 -0
  326. package/dist/services/impact/index.mjs.map +1 -0
  327. package/dist/services/impact/types.d.mts +63 -0
  328. package/dist/services/impact/types.d.mts.map +1 -0
  329. package/dist/services/implementation/discovery.d.mts +30 -0
  330. package/dist/services/implementation/discovery.d.mts.map +1 -0
  331. package/dist/services/implementation/discovery.mjs +144 -0
  332. package/dist/services/implementation/discovery.mjs.map +1 -0
  333. package/dist/services/implementation/index.d.mts +6 -0
  334. package/dist/services/implementation/index.mjs +7 -0
  335. package/dist/services/implementation/resolver/conventions.d.mts +18 -0
  336. package/dist/services/implementation/resolver/conventions.d.mts.map +1 -0
  337. package/dist/services/implementation/resolver/conventions.mjs +59 -0
  338. package/dist/services/implementation/resolver/conventions.mjs.map +1 -0
  339. package/dist/services/implementation/resolver/index.d.mts +24 -0
  340. package/dist/services/implementation/resolver/index.d.mts.map +1 -0
  341. package/dist/services/implementation/resolver/index.mjs +111 -0
  342. package/dist/services/implementation/resolver/index.mjs.map +1 -0
  343. package/dist/services/implementation/resolver/parsers.d.mts +16 -0
  344. package/dist/services/implementation/resolver/parsers.d.mts.map +1 -0
  345. package/dist/services/implementation/resolver/parsers.mjs +100 -0
  346. package/dist/services/implementation/resolver/parsers.mjs.map +1 -0
  347. package/dist/services/implementation/resolver/status.d.mts +21 -0
  348. package/dist/services/implementation/resolver/status.d.mts.map +1 -0
  349. package/dist/services/implementation/resolver/status.mjs +31 -0
  350. package/dist/services/implementation/resolver/status.mjs.map +1 -0
  351. package/dist/services/implementation/types.d.mts +89 -0
  352. package/dist/services/implementation/types.d.mts.map +1 -0
  353. package/dist/services/index.d.mts +103 -0
  354. package/dist/services/index.mjs +100 -0
  355. package/dist/services/integrity-diagram.d.mts +36 -0
  356. package/dist/services/integrity-diagram.d.mts.map +1 -0
  357. package/dist/services/integrity-diagram.mjs +275 -0
  358. package/dist/services/integrity-diagram.mjs.map +1 -0
  359. package/dist/services/integrity.d.mts +152 -0
  360. package/dist/services/integrity.d.mts.map +1 -0
  361. package/dist/services/integrity.mjs +361 -0
  362. package/dist/services/integrity.mjs.map +1 -0
  363. package/dist/services/layer-discovery.d.mts +77 -0
  364. package/dist/services/layer-discovery.d.mts.map +1 -0
  365. package/dist/services/layer-discovery.mjs +121 -0
  366. package/dist/services/layer-discovery.mjs.map +1 -0
  367. package/dist/services/list.d.mts +37 -0
  368. package/dist/services/list.d.mts.map +1 -0
  369. package/dist/services/list.mjs +46 -0
  370. package/dist/services/list.mjs.map +1 -0
  371. package/dist/services/llm/index.d.mts +28 -0
  372. package/dist/services/llm/index.d.mts.map +1 -0
  373. package/dist/services/llm/index.mjs +187 -0
  374. package/dist/services/llm/index.mjs.map +1 -0
  375. package/dist/services/llm/verify-static.d.mts +26 -0
  376. package/dist/services/llm/verify-static.d.mts.map +1 -0
  377. package/dist/services/llm/verify-static.mjs +82 -0
  378. package/dist/services/llm/verify-static.mjs.map +1 -0
  379. package/dist/services/modules/module-resolver.mjs +61 -0
  380. package/dist/services/modules/module-resolver.mjs.map +1 -0
  381. package/dist/services/openapi/export-service.d.mts +53 -0
  382. package/dist/services/openapi/export-service.d.mts.map +1 -0
  383. package/dist/services/openapi/export-service.mjs +50 -0
  384. package/dist/services/openapi/export-service.mjs.map +1 -0
  385. package/dist/services/openapi/import-service.d.mts +17 -0
  386. package/dist/services/openapi/import-service.d.mts.map +1 -0
  387. package/dist/services/openapi/import-service.mjs +165 -0
  388. package/dist/services/openapi/import-service.mjs.map +1 -0
  389. package/dist/services/openapi/index.d.mts +5 -0
  390. package/dist/services/openapi/index.mjs +6 -0
  391. package/dist/services/openapi/sync-service.d.mts +17 -0
  392. package/dist/services/openapi/sync-service.d.mts.map +1 -0
  393. package/dist/services/openapi/sync-service.mjs +120 -0
  394. package/dist/services/openapi/sync-service.mjs.map +1 -0
  395. package/dist/services/openapi/types.d.mts +162 -0
  396. package/dist/services/openapi/types.d.mts.map +1 -0
  397. package/dist/services/openapi/validate-service.d.mts +16 -0
  398. package/dist/services/openapi/validate-service.d.mts.map +1 -0
  399. package/dist/services/openapi/validate-service.mjs +130 -0
  400. package/dist/services/openapi/validate-service.mjs.map +1 -0
  401. package/dist/services/quickstart/dependencies.d.mts +31 -0
  402. package/dist/services/quickstart/dependencies.d.mts.map +1 -0
  403. package/dist/services/quickstart/dependencies.mjs +57 -0
  404. package/dist/services/quickstart/dependencies.mjs.map +1 -0
  405. package/dist/services/quickstart/index.mjs +4 -0
  406. package/dist/services/quickstart/quickstart-service.d.mts +20 -0
  407. package/dist/services/quickstart/quickstart-service.d.mts.map +1 -0
  408. package/dist/services/quickstart/quickstart-service.mjs +196 -0
  409. package/dist/services/quickstart/quickstart-service.mjs.map +1 -0
  410. package/dist/services/quickstart/types.d.mts +81 -0
  411. package/dist/services/quickstart/types.d.mts.map +1 -0
  412. package/dist/services/regenerator.d.mts +18 -0
  413. package/dist/services/regenerator.d.mts.map +1 -0
  414. package/dist/services/regenerator.mjs +23 -0
  415. package/dist/services/regenerator.mjs.map +1 -0
  416. package/dist/services/registry.d.mts +53 -0
  417. package/dist/services/registry.d.mts.map +1 -0
  418. package/dist/services/registry.mjs +74 -0
  419. package/dist/services/registry.mjs.map +1 -0
  420. package/dist/services/rulesync.d.mts +17 -0
  421. package/dist/services/rulesync.d.mts.map +1 -0
  422. package/dist/services/rulesync.mjs +72 -0
  423. package/dist/services/rulesync.mjs.map +1 -0
  424. package/dist/services/setup/config-generators.d.mts +42 -0
  425. package/dist/services/setup/config-generators.d.mts.map +1 -0
  426. package/dist/services/setup/config-generators.mjs +252 -0
  427. package/dist/services/setup/config-generators.mjs.map +1 -0
  428. package/dist/services/setup/file-merger.d.mts +27 -0
  429. package/dist/services/setup/file-merger.d.mts.map +1 -0
  430. package/dist/services/setup/file-merger.mjs +61 -0
  431. package/dist/services/setup/file-merger.mjs.map +1 -0
  432. package/dist/services/setup/setup-service.d.mts +12 -0
  433. package/dist/services/setup/setup-service.d.mts.map +1 -0
  434. package/dist/services/setup/setup-service.mjs +96 -0
  435. package/dist/services/setup/setup-service.mjs.map +1 -0
  436. package/dist/services/setup/targets/agents-md.mjs +47 -0
  437. package/dist/services/setup/targets/agents-md.mjs.map +1 -0
  438. package/dist/services/setup/targets/cli-config.mjs +60 -0
  439. package/dist/services/setup/targets/cli-config.mjs.map +1 -0
  440. package/dist/services/setup/targets/cursor-rules.mjs +48 -0
  441. package/dist/services/setup/targets/cursor-rules.mjs.map +1 -0
  442. package/dist/services/setup/targets/mcp-claude.mjs +60 -0
  443. package/dist/services/setup/targets/mcp-claude.mjs.map +1 -0
  444. package/dist/services/setup/targets/mcp-cursor.mjs +59 -0
  445. package/dist/services/setup/targets/mcp-cursor.mjs.map +1 -0
  446. package/dist/services/setup/targets/vscode-settings.mjs +63 -0
  447. package/dist/services/setup/targets/vscode-settings.mjs.map +1 -0
  448. package/dist/services/setup/types.d.mts +85 -0
  449. package/dist/services/setup/types.d.mts.map +1 -0
  450. package/dist/services/setup/types.mjs +27 -0
  451. package/dist/services/setup/types.mjs.map +1 -0
  452. package/dist/services/sync.d.mts +42 -0
  453. package/dist/services/sync.d.mts.map +1 -0
  454. package/dist/services/sync.mjs +64 -0
  455. package/dist/services/sync.mjs.map +1 -0
  456. package/dist/services/test/index.d.mts +2 -0
  457. package/dist/services/test/index.mjs +4 -0
  458. package/dist/services/test/test-generator-service.d.mts +24 -0
  459. package/dist/services/test/test-generator-service.d.mts.map +1 -0
  460. package/dist/services/test/test-generator-service.mjs +92 -0
  461. package/dist/services/test/test-generator-service.mjs.map +1 -0
  462. package/dist/services/test/test-service.d.mts +27 -0
  463. package/dist/services/test/test-service.d.mts.map +1 -0
  464. package/dist/services/test/test-service.mjs +94 -0
  465. package/dist/services/test/test-service.mjs.map +1 -0
  466. package/dist/services/test-link/index.d.mts +18 -0
  467. package/dist/services/test-link/index.d.mts.map +1 -0
  468. package/dist/services/test-link/index.mjs +60 -0
  469. package/dist/services/test-link/index.mjs.map +1 -0
  470. package/dist/services/test-link/test-ref-validator.d.mts +2 -0
  471. package/dist/services/test-link/test-ref-validator.mjs +50 -0
  472. package/dist/services/test-link/test-ref-validator.mjs.map +1 -0
  473. package/dist/services/upgrade/index.d.mts +10 -0
  474. package/dist/services/upgrade/index.d.mts.map +1 -0
  475. package/dist/services/upgrade/index.mjs +15 -0
  476. package/dist/services/upgrade/index.mjs.map +1 -0
  477. package/dist/services/upgrade/types.d.mts +78 -0
  478. package/dist/services/upgrade/types.d.mts.map +1 -0
  479. package/dist/services/upgrade/upgrade-service.d.mts +38 -0
  480. package/dist/services/upgrade/upgrade-service.d.mts.map +1 -0
  481. package/dist/services/upgrade/upgrade-service.mjs +201 -0
  482. package/dist/services/upgrade/upgrade-service.mjs.map +1 -0
  483. package/dist/services/validate/blueprint-validator.d.mts +23 -0
  484. package/dist/services/validate/blueprint-validator.d.mts.map +1 -0
  485. package/dist/services/validate/blueprint-validator.mjs +50 -0
  486. package/dist/services/validate/blueprint-validator.mjs.map +1 -0
  487. package/dist/services/validate/implementation-agent-validator.d.mts +20 -0
  488. package/dist/services/validate/implementation-agent-validator.d.mts.map +1 -0
  489. package/dist/services/validate/implementation-agent-validator.mjs +42 -0
  490. package/dist/services/validate/implementation-agent-validator.mjs.map +1 -0
  491. package/dist/services/validate/implementation-validator.d.mts +32 -0
  492. package/dist/services/validate/implementation-validator.d.mts.map +1 -0
  493. package/dist/services/validate/implementation-validator.mjs +64 -0
  494. package/dist/services/validate/implementation-validator.mjs.map +1 -0
  495. package/dist/services/validate/index.d.mts +5 -0
  496. package/dist/services/validate/index.mjs +7 -0
  497. package/dist/services/validate/spec-validator.d.mts +42 -0
  498. package/dist/services/validate/spec-validator.d.mts.map +1 -0
  499. package/dist/services/validate/spec-validator.mjs +49 -0
  500. package/dist/services/validate/spec-validator.mjs.map +1 -0
  501. package/dist/services/validate/tenant-validator.d.mts +21 -0
  502. package/dist/services/validate/tenant-validator.d.mts.map +1 -0
  503. package/dist/services/validate/tenant-validator.mjs +165 -0
  504. package/dist/services/validate/tenant-validator.mjs.map +1 -0
  505. package/dist/services/verification-cache/adapters/filesystem.d.mts +46 -0
  506. package/dist/services/verification-cache/adapters/filesystem.d.mts.map +1 -0
  507. package/dist/services/verification-cache/adapters/filesystem.mjs +120 -0
  508. package/dist/services/verification-cache/adapters/filesystem.mjs.map +1 -0
  509. package/dist/services/verification-cache/adapters/in-memory.d.mts +27 -0
  510. package/dist/services/verification-cache/adapters/in-memory.d.mts.map +1 -0
  511. package/dist/services/verification-cache/adapters/in-memory.mjs +46 -0
  512. package/dist/services/verification-cache/adapters/in-memory.mjs.map +1 -0
  513. package/dist/services/verification-cache/adapters/index.d.mts +3 -0
  514. package/dist/services/verification-cache/adapters/index.mjs +5 -0
  515. package/dist/services/verification-cache/adapters/workspace-state.d.mts +49 -0
  516. package/dist/services/verification-cache/adapters/workspace-state.d.mts.map +1 -0
  517. package/dist/services/verification-cache/adapters/workspace-state.mjs +91 -0
  518. package/dist/services/verification-cache/adapters/workspace-state.mjs.map +1 -0
  519. package/dist/services/verification-cache/cache-service.d.mts +70 -0
  520. package/dist/services/verification-cache/cache-service.d.mts.map +1 -0
  521. package/dist/services/verification-cache/cache-service.mjs +256 -0
  522. package/dist/services/verification-cache/cache-service.mjs.map +1 -0
  523. package/dist/services/verification-cache/index.d.mts +6 -0
  524. package/dist/services/verification-cache/index.mjs +8 -0
  525. package/dist/services/verification-cache/types.d.mts +124 -0
  526. package/dist/services/verification-cache/types.d.mts.map +1 -0
  527. package/dist/services/verification-cache/types.mjs +16 -0
  528. package/dist/services/verification-cache/types.mjs.map +1 -0
  529. package/dist/services/verify/ai-verifier.d.mts +25 -0
  530. package/dist/services/verify/ai-verifier.d.mts.map +1 -0
  531. package/dist/services/verify/ai-verifier.mjs +403 -0
  532. package/dist/services/verify/ai-verifier.mjs.map +1 -0
  533. package/dist/services/verify/behavior-verifier.d.mts +12 -0
  534. package/dist/services/verify/behavior-verifier.d.mts.map +1 -0
  535. package/dist/services/verify/behavior-verifier.mjs +186 -0
  536. package/dist/services/verify/behavior-verifier.mjs.map +1 -0
  537. package/dist/services/verify/index.d.mts +5 -0
  538. package/dist/services/verify/index.mjs +6 -0
  539. package/dist/services/verify/structure-verifier.d.mts +12 -0
  540. package/dist/services/verify/structure-verifier.d.mts.map +1 -0
  541. package/dist/services/verify/structure-verifier.mjs +196 -0
  542. package/dist/services/verify/structure-verifier.mjs.map +1 -0
  543. package/dist/services/verify/types.d.mts +137 -0
  544. package/dist/services/verify/types.d.mts.map +1 -0
  545. package/dist/services/verify/verify-service.d.mts +60 -0
  546. package/dist/services/verify/verify-service.d.mts.map +1 -0
  547. package/dist/services/verify/verify-service.mjs +204 -0
  548. package/dist/services/verify/verify-service.mjs.map +1 -0
  549. package/dist/services/versioning/changelog-formatter.d.mts +24 -0
  550. package/dist/services/versioning/changelog-formatter.d.mts.map +1 -0
  551. package/dist/services/versioning/changelog-formatter.mjs +155 -0
  552. package/dist/services/versioning/changelog-formatter.mjs.map +1 -0
  553. package/dist/services/versioning/conventional-commits.d.mts +95 -0
  554. package/dist/services/versioning/conventional-commits.d.mts.map +1 -0
  555. package/dist/services/versioning/conventional-commits.mjs +184 -0
  556. package/dist/services/versioning/conventional-commits.mjs.map +1 -0
  557. package/dist/services/versioning/index.d.mts +12 -0
  558. package/dist/services/versioning/index.d.mts.map +1 -0
  559. package/dist/services/versioning/index.mjs +28 -0
  560. package/dist/services/versioning/index.mjs.map +1 -0
  561. package/dist/services/versioning/types.d.mts +135 -0
  562. package/dist/services/versioning/types.d.mts.map +1 -0
  563. package/dist/services/versioning/versioning-service.d.mts +74 -0
  564. package/dist/services/versioning/versioning-service.d.mts.map +1 -0
  565. package/dist/services/versioning/versioning-service.mjs +501 -0
  566. package/dist/services/versioning/versioning-service.mjs.map +1 -0
  567. package/dist/services/vibe/config.d.mts +12 -0
  568. package/dist/services/vibe/config.d.mts.map +1 -0
  569. package/dist/services/vibe/config.mjs +43 -0
  570. package/dist/services/vibe/config.mjs.map +1 -0
  571. package/dist/services/vibe/context.d.mts +19 -0
  572. package/dist/services/vibe/context.d.mts.map +1 -0
  573. package/dist/services/vibe/context.mjs +92 -0
  574. package/dist/services/vibe/context.mjs.map +1 -0
  575. package/dist/services/vibe/definitions.d.mts +8 -0
  576. package/dist/services/vibe/definitions.d.mts.map +1 -0
  577. package/dist/services/vibe/definitions.mjs +129 -0
  578. package/dist/services/vibe/definitions.mjs.map +1 -0
  579. package/dist/services/vibe/engine.d.mts +44 -0
  580. package/dist/services/vibe/engine.d.mts.map +1 -0
  581. package/dist/services/vibe/engine.mjs +147 -0
  582. package/dist/services/vibe/engine.mjs.map +1 -0
  583. package/dist/services/vibe/index.d.mts +15 -0
  584. package/dist/services/vibe/index.d.mts.map +1 -0
  585. package/dist/services/vibe/index.mjs +26 -0
  586. package/dist/services/vibe/index.mjs.map +1 -0
  587. package/dist/services/vibe/loader.d.mts +15 -0
  588. package/dist/services/vibe/loader.d.mts.map +1 -0
  589. package/dist/services/vibe/loader.mjs +48 -0
  590. package/dist/services/vibe/loader.mjs.map +1 -0
  591. package/dist/services/vibe/pack.d.mts +19 -0
  592. package/dist/services/vibe/pack.d.mts.map +1 -0
  593. package/dist/services/vibe/pack.mjs +66 -0
  594. package/dist/services/vibe/pack.mjs.map +1 -0
  595. package/dist/services/vibe/types.d.mts +59 -0
  596. package/dist/services/vibe/types.d.mts.map +1 -0
  597. package/dist/services/vibe/types.mjs +12 -0
  598. package/dist/services/vibe/types.mjs.map +1 -0
  599. package/dist/services/view/index.d.mts +11 -0
  600. package/dist/services/view/index.d.mts.map +1 -0
  601. package/dist/services/view/index.mjs +119 -0
  602. package/dist/services/view/index.mjs.map +1 -0
  603. package/dist/services/watch.d.mts +25 -0
  604. package/dist/services/watch.d.mts.map +1 -0
  605. package/dist/services/watch.mjs +33 -0
  606. package/dist/services/watch.mjs.map +1 -0
  607. package/dist/services/workspace-info.d.mts +62 -0
  608. package/dist/services/workspace-info.d.mts.map +1 -0
  609. package/dist/services/workspace-info.mjs +103 -0
  610. package/dist/services/workspace-info.mjs.map +1 -0
  611. package/dist/templates/app-config.template.d.mts +7 -0
  612. package/dist/templates/app-config.template.d.mts.map +1 -0
  613. package/dist/templates/app-config.template.mjs +107 -0
  614. package/dist/templates/app-config.template.mjs.map +1 -0
  615. package/dist/templates/data-view.template.d.mts +7 -0
  616. package/dist/templates/data-view.template.d.mts.map +1 -0
  617. package/dist/templates/data-view.template.mjs +70 -0
  618. package/dist/templates/data-view.template.mjs.map +1 -0
  619. package/dist/templates/event.template.d.mts +11 -0
  620. package/dist/templates/event.template.d.mts.map +1 -0
  621. package/dist/templates/event.template.mjs +42 -0
  622. package/dist/templates/event.template.mjs.map +1 -0
  623. package/dist/templates/experiment.template.d.mts +7 -0
  624. package/dist/templates/experiment.template.d.mts.map +1 -0
  625. package/dist/templates/experiment.template.mjs +89 -0
  626. package/dist/templates/experiment.template.mjs.map +1 -0
  627. package/dist/templates/feature.template.d.mts +33 -0
  628. package/dist/templates/feature.template.d.mts.map +1 -0
  629. package/dist/templates/feature.template.mjs +52 -0
  630. package/dist/templates/feature.template.mjs.map +1 -0
  631. package/dist/templates/fix/skeleton-capability.mjs +49 -0
  632. package/dist/templates/fix/skeleton-capability.mjs.map +1 -0
  633. package/dist/templates/fix/skeleton-event.mjs +56 -0
  634. package/dist/templates/fix/skeleton-event.mjs.map +1 -0
  635. package/dist/templates/fix/skeleton-operation.mjs +122 -0
  636. package/dist/templates/fix/skeleton-operation.mjs.map +1 -0
  637. package/dist/templates/fix/skeleton-presentation.mjs +65 -0
  638. package/dist/templates/fix/skeleton-presentation.mjs.map +1 -0
  639. package/dist/templates/fix/utils.mjs +34 -0
  640. package/dist/templates/fix/utils.mjs.map +1 -0
  641. package/dist/templates/handler.template.d.mts +16 -0
  642. package/dist/templates/handler.template.d.mts.map +1 -0
  643. package/dist/templates/handler.template.mjs +100 -0
  644. package/dist/templates/handler.template.mjs.map +1 -0
  645. package/dist/templates/index.d.mts +22 -0
  646. package/dist/templates/index.d.mts.map +1 -0
  647. package/dist/templates/index.mjs +39 -0
  648. package/dist/templates/index.mjs.map +1 -0
  649. package/dist/templates/integration.template.d.mts +7 -0
  650. package/dist/templates/integration.template.d.mts.map +1 -0
  651. package/dist/templates/integration.template.mjs +160 -0
  652. package/dist/templates/integration.template.mjs.map +1 -0
  653. package/dist/templates/knowledge.template.d.mts +7 -0
  654. package/dist/templates/knowledge.template.d.mts.map +1 -0
  655. package/dist/templates/knowledge.template.mjs +75 -0
  656. package/dist/templates/knowledge.template.mjs.map +1 -0
  657. package/dist/templates/migration.template.d.mts +7 -0
  658. package/dist/templates/migration.template.d.mts.map +1 -0
  659. package/dist/templates/migration.template.mjs +62 -0
  660. package/dist/templates/migration.template.mjs.map +1 -0
  661. package/dist/templates/operation.template.d.mts +11 -0
  662. package/dist/templates/operation.template.d.mts.map +1 -0
  663. package/dist/templates/operation.template.mjs +107 -0
  664. package/dist/templates/operation.template.mjs.map +1 -0
  665. package/dist/templates/presentation.template.d.mts +11 -0
  666. package/dist/templates/presentation.template.d.mts.map +1 -0
  667. package/dist/templates/presentation.template.mjs +80 -0
  668. package/dist/templates/presentation.template.mjs.map +1 -0
  669. package/dist/templates/telemetry.template.d.mts +7 -0
  670. package/dist/templates/telemetry.template.d.mts.map +1 -0
  671. package/dist/templates/telemetry.template.mjs +91 -0
  672. package/dist/templates/telemetry.template.mjs.map +1 -0
  673. package/dist/templates/workflow-runner.template.d.mts +16 -0
  674. package/dist/templates/workflow-runner.template.d.mts.map +1 -0
  675. package/dist/templates/workflow-runner.template.mjs +50 -0
  676. package/dist/templates/workflow-runner.template.mjs.map +1 -0
  677. package/dist/templates/workflow.template.d.mts +7 -0
  678. package/dist/templates/workflow.template.d.mts.map +1 -0
  679. package/dist/templates/workflow.template.mjs +69 -0
  680. package/dist/templates/workflow.template.mjs.map +1 -0
  681. package/dist/types/config.d.mts +34 -0
  682. package/dist/types/config.d.mts.map +1 -0
  683. package/dist/types.d.mts +324 -0
  684. package/dist/types.d.mts.map +1 -0
  685. package/dist/utils/filter.d.mts +16 -0
  686. package/dist/utils/filter.d.mts.map +1 -0
  687. package/dist/utils/filter.mjs +22 -0
  688. package/dist/utils/filter.mjs.map +1 -0
  689. package/dist/utils/index.d.mts +11 -0
  690. package/dist/utils/index.d.mts.map +1 -0
  691. package/dist/utils/index.mjs +20 -0
  692. package/dist/utils/index.mjs.map +1 -0
  693. package/dist/utils/module-loader.d.mts +5 -0
  694. package/dist/utils/module-loader.d.mts.map +1 -0
  695. package/dist/utils/module-loader.mjs +41 -0
  696. package/dist/utils/module-loader.mjs.map +1 -0
  697. package/dist/utils/validation.d.mts +37 -0
  698. package/dist/utils/validation.d.mts.map +1 -0
  699. package/dist/utils/validation.mjs +43 -0
  700. package/dist/utils/validation.mjs.map +1 -0
  701. package/package.json +23 -19
  702. package/dist/_virtual/rolldown_runtime.js +0 -18
  703. package/dist/adapters/ai.d.ts +0 -12
  704. package/dist/adapters/ai.d.ts.map +0 -1
  705. package/dist/adapters/ai.js +0 -83
  706. package/dist/adapters/ai.js.map +0 -1
  707. package/dist/adapters/factory.d.ts +0 -29
  708. package/dist/adapters/factory.d.ts.map +0 -1
  709. package/dist/adapters/factory.js +0 -37
  710. package/dist/adapters/factory.js.map +0 -1
  711. package/dist/adapters/fs.d.ts +0 -12
  712. package/dist/adapters/fs.d.ts.map +0 -1
  713. package/dist/adapters/fs.js +0 -131
  714. package/dist/adapters/fs.js.map +0 -1
  715. package/dist/adapters/git.d.ts +0 -11
  716. package/dist/adapters/git.d.ts.map +0 -1
  717. package/dist/adapters/git.js +0 -84
  718. package/dist/adapters/git.js.map +0 -1
  719. package/dist/adapters/index.d.ts +0 -7
  720. package/dist/adapters/index.js +0 -7
  721. package/dist/adapters/logger.d.ts +0 -18
  722. package/dist/adapters/logger.d.ts.map +0 -1
  723. package/dist/adapters/logger.js +0 -81
  724. package/dist/adapters/logger.js.map +0 -1
  725. package/dist/adapters/watcher.d.ts +0 -11
  726. package/dist/adapters/watcher.d.ts.map +0 -1
  727. package/dist/adapters/watcher.js +0 -74
  728. package/dist/adapters/watcher.js.map +0 -1
  729. package/dist/adapters/workspace.d.ts +0 -148
  730. package/dist/adapters/workspace.d.ts.map +0 -1
  731. package/dist/adapters/workspace.js +0 -275
  732. package/dist/adapters/workspace.js.map +0 -1
  733. package/dist/ai/agents/claude-code-agent.d.ts +0 -22
  734. package/dist/ai/agents/claude-code-agent.d.ts.map +0 -1
  735. package/dist/ai/agents/claude-code-agent.js +0 -182
  736. package/dist/ai/agents/claude-code-agent.js.map +0 -1
  737. package/dist/ai/agents/cursor-agent.d.ts +0 -68
  738. package/dist/ai/agents/cursor-agent.d.ts.map +0 -1
  739. package/dist/ai/agents/cursor-agent.js +0 -436
  740. package/dist/ai/agents/cursor-agent.js.map +0 -1
  741. package/dist/ai/agents/index.js +0 -5
  742. package/dist/ai/agents/openai-codex-agent.d.ts +0 -22
  743. package/dist/ai/agents/openai-codex-agent.d.ts.map +0 -1
  744. package/dist/ai/agents/openai-codex-agent.js +0 -167
  745. package/dist/ai/agents/openai-codex-agent.js.map +0 -1
  746. package/dist/ai/agents/orchestrator.d.ts +0 -50
  747. package/dist/ai/agents/orchestrator.d.ts.map +0 -1
  748. package/dist/ai/agents/orchestrator.js +0 -143
  749. package/dist/ai/agents/orchestrator.js.map +0 -1
  750. package/dist/ai/agents/simple-agent.d.ts +0 -17
  751. package/dist/ai/agents/simple-agent.d.ts.map +0 -1
  752. package/dist/ai/agents/simple-agent.js +0 -92
  753. package/dist/ai/agents/simple-agent.js.map +0 -1
  754. package/dist/ai/agents/types.d.ts +0 -36
  755. package/dist/ai/agents/types.d.ts.map +0 -1
  756. package/dist/ai/client.d.ts +0 -97
  757. package/dist/ai/client.d.ts.map +0 -1
  758. package/dist/ai/client.js +0 -189
  759. package/dist/ai/client.js.map +0 -1
  760. package/dist/ai/index.d.ts +0 -9
  761. package/dist/ai/index.js +0 -9
  762. package/dist/ai/prompts/code-generation.d.ts +0 -26
  763. package/dist/ai/prompts/code-generation.d.ts.map +0 -1
  764. package/dist/ai/prompts/code-generation.js +0 -143
  765. package/dist/ai/prompts/code-generation.js.map +0 -1
  766. package/dist/ai/prompts/index.d.ts +0 -10
  767. package/dist/ai/prompts/index.d.ts.map +0 -1
  768. package/dist/ai/prompts/index.js +0 -13
  769. package/dist/ai/prompts/index.js.map +0 -1
  770. package/dist/ai/prompts/spec-creation.d.ts +0 -29
  771. package/dist/ai/prompts/spec-creation.d.ts.map +0 -1
  772. package/dist/ai/prompts/spec-creation.js +0 -111
  773. package/dist/ai/prompts/spec-creation.js.map +0 -1
  774. package/dist/ai/providers.d.ts +0 -29
  775. package/dist/ai/providers.d.ts.map +0 -1
  776. package/dist/ai/providers.js +0 -39
  777. package/dist/ai/providers.js.map +0 -1
  778. package/dist/formatters/index.d.ts +0 -11
  779. package/dist/formatters/index.d.ts.map +0 -1
  780. package/dist/formatters/index.js +0 -19
  781. package/dist/formatters/index.js.map +0 -1
  782. package/dist/formatters/json.d.ts +0 -89
  783. package/dist/formatters/json.d.ts.map +0 -1
  784. package/dist/formatters/json.js +0 -72
  785. package/dist/formatters/json.js.map +0 -1
  786. package/dist/formatters/sarif.d.ts +0 -101
  787. package/dist/formatters/sarif.d.ts.map +0 -1
  788. package/dist/formatters/sarif.js +0 -163
  789. package/dist/formatters/sarif.js.map +0 -1
  790. package/dist/formatters/text.d.ts +0 -35
  791. package/dist/formatters/text.d.ts.map +0 -1
  792. package/dist/formatters/text.js +0 -209
  793. package/dist/formatters/text.js.map +0 -1
  794. package/dist/index.d.ts +0 -111
  795. package/dist/index.js +0 -97
  796. package/dist/ports/ai.d.ts +0 -59
  797. package/dist/ports/ai.d.ts.map +0 -1
  798. package/dist/ports/fs.d.ts +0 -81
  799. package/dist/ports/fs.d.ts.map +0 -1
  800. package/dist/ports/git.d.ts +0 -46
  801. package/dist/ports/git.d.ts.map +0 -1
  802. package/dist/ports/index.d.ts +0 -6
  803. package/dist/ports/logger.d.ts +0 -88
  804. package/dist/ports/logger.d.ts.map +0 -1
  805. package/dist/ports/rulesync.d.ts +0 -38
  806. package/dist/ports/rulesync.d.ts.map +0 -1
  807. package/dist/ports/watcher.d.ts +0 -52
  808. package/dist/ports/watcher.d.ts.map +0 -1
  809. package/dist/services/agent-guide/adapters/claude-code.d.ts +0 -35
  810. package/dist/services/agent-guide/adapters/claude-code.d.ts.map +0 -1
  811. package/dist/services/agent-guide/adapters/claude-code.js +0 -144
  812. package/dist/services/agent-guide/adapters/claude-code.js.map +0 -1
  813. package/dist/services/agent-guide/adapters/cursor-cli.d.ts +0 -39
  814. package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +0 -1
  815. package/dist/services/agent-guide/adapters/cursor-cli.js +0 -135
  816. package/dist/services/agent-guide/adapters/cursor-cli.js.map +0 -1
  817. package/dist/services/agent-guide/adapters/generic-mcp.d.ts +0 -53
  818. package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +0 -1
  819. package/dist/services/agent-guide/adapters/generic-mcp.js +0 -159
  820. package/dist/services/agent-guide/adapters/generic-mcp.js.map +0 -1
  821. package/dist/services/agent-guide/adapters/index.d.ts +0 -23
  822. package/dist/services/agent-guide/adapters/index.d.ts.map +0 -1
  823. package/dist/services/agent-guide/adapters/index.js +0 -31
  824. package/dist/services/agent-guide/adapters/index.js.map +0 -1
  825. package/dist/services/agent-guide/agent-guide-service.d.ts +0 -56
  826. package/dist/services/agent-guide/agent-guide-service.d.ts.map +0 -1
  827. package/dist/services/agent-guide/agent-guide-service.js +0 -147
  828. package/dist/services/agent-guide/agent-guide-service.js.map +0 -1
  829. package/dist/services/agent-guide/index.d.ts +0 -6
  830. package/dist/services/agent-guide/index.js +0 -5
  831. package/dist/services/agent-guide/types.d.ts +0 -58
  832. package/dist/services/agent-guide/types.d.ts.map +0 -1
  833. package/dist/services/build.d.ts +0 -59
  834. package/dist/services/build.d.ts.map +0 -1
  835. package/dist/services/build.js +0 -140
  836. package/dist/services/build.js.map +0 -1
  837. package/dist/services/ci-check/ci-check-service.d.ts +0 -16
  838. package/dist/services/ci-check/ci-check-service.d.ts.map +0 -1
  839. package/dist/services/ci-check/ci-check-service.js +0 -459
  840. package/dist/services/ci-check/ci-check-service.js.map +0 -1
  841. package/dist/services/ci-check/index.d.ts +0 -2
  842. package/dist/services/ci-check/index.js +0 -2
  843. package/dist/services/ci-check/types.d.ts +0 -143
  844. package/dist/services/ci-check/types.d.ts.map +0 -1
  845. package/dist/services/ci-check/types.js +0 -31
  846. package/dist/services/ci-check/types.js.map +0 -1
  847. package/dist/services/clean.d.ts +0 -41
  848. package/dist/services/clean.d.ts.map +0 -1
  849. package/dist/services/clean.js +0 -72
  850. package/dist/services/clean.js.map +0 -1
  851. package/dist/services/config.d.ts +0 -16
  852. package/dist/services/config.d.ts.map +0 -1
  853. package/dist/services/config.js +0 -63
  854. package/dist/services/config.js.map +0 -1
  855. package/dist/services/create/ai-generator.d.ts +0 -84
  856. package/dist/services/create/ai-generator.d.ts.map +0 -1
  857. package/dist/services/create/ai-generator.js +0 -178
  858. package/dist/services/create/ai-generator.js.map +0 -1
  859. package/dist/services/create/index.d.ts +0 -27
  860. package/dist/services/create/index.d.ts.map +0 -1
  861. package/dist/services/create/index.js +0 -36
  862. package/dist/services/create/index.js.map +0 -1
  863. package/dist/services/create/templates.d.ts +0 -21
  864. package/dist/services/create/templates.d.ts.map +0 -1
  865. package/dist/services/create/templates.js +0 -37
  866. package/dist/services/create/templates.js.map +0 -1
  867. package/dist/services/deps.d.ts +0 -53
  868. package/dist/services/deps.d.ts.map +0 -1
  869. package/dist/services/deps.js +0 -62
  870. package/dist/services/deps.js.map +0 -1
  871. package/dist/services/diff.d.ts +0 -34
  872. package/dist/services/diff.d.ts.map +0 -1
  873. package/dist/services/diff.js +0 -34
  874. package/dist/services/diff.js.map +0 -1
  875. package/dist/services/docs/docs-service.d.ts +0 -19
  876. package/dist/services/docs/docs-service.d.ts.map +0 -1
  877. package/dist/services/docs/docs-service.js +0 -41
  878. package/dist/services/docs/docs-service.js.map +0 -1
  879. package/dist/services/docs/index.d.ts +0 -1
  880. package/dist/services/docs/index.js +0 -1
  881. package/dist/services/doctor/checks/ai.js +0 -119
  882. package/dist/services/doctor/checks/ai.js.map +0 -1
  883. package/dist/services/doctor/checks/cli.js +0 -156
  884. package/dist/services/doctor/checks/cli.js.map +0 -1
  885. package/dist/services/doctor/checks/config.js +0 -303
  886. package/dist/services/doctor/checks/config.js.map +0 -1
  887. package/dist/services/doctor/checks/deps.js +0 -267
  888. package/dist/services/doctor/checks/deps.js.map +0 -1
  889. package/dist/services/doctor/checks/index.js +0 -7
  890. package/dist/services/doctor/checks/layers.js +0 -139
  891. package/dist/services/doctor/checks/layers.js.map +0 -1
  892. package/dist/services/doctor/checks/mcp.js +0 -145
  893. package/dist/services/doctor/checks/mcp.js.map +0 -1
  894. package/dist/services/doctor/checks/workspace.js +0 -263
  895. package/dist/services/doctor/checks/workspace.js.map +0 -1
  896. package/dist/services/doctor/doctor-service.d.ts +0 -24
  897. package/dist/services/doctor/doctor-service.d.ts.map +0 -1
  898. package/dist/services/doctor/doctor-service.js +0 -118
  899. package/dist/services/doctor/doctor-service.js.map +0 -1
  900. package/dist/services/doctor/index.d.ts +0 -2
  901. package/dist/services/doctor/index.js +0 -2
  902. package/dist/services/doctor/types.d.ts +0 -118
  903. package/dist/services/doctor/types.d.ts.map +0 -1
  904. package/dist/services/doctor/types.js +0 -29
  905. package/dist/services/doctor/types.js.map +0 -1
  906. package/dist/services/formatter.d.ts +0 -15
  907. package/dist/services/formatter.d.ts.map +0 -1
  908. package/dist/services/formatter.js +0 -26
  909. package/dist/services/formatter.js.map +0 -1
  910. package/dist/services/hooks/hooks-service.d.ts +0 -24
  911. package/dist/services/hooks/hooks-service.d.ts.map +0 -1
  912. package/dist/services/hooks/hooks-service.js +0 -126
  913. package/dist/services/hooks/hooks-service.js.map +0 -1
  914. package/dist/services/hooks/index.d.ts +0 -10
  915. package/dist/services/hooks/index.d.ts.map +0 -1
  916. package/dist/services/hooks/index.js +0 -12
  917. package/dist/services/hooks/index.js.map +0 -1
  918. package/dist/services/hooks/types.d.ts +0 -56
  919. package/dist/services/hooks/types.d.ts.map +0 -1
  920. package/dist/services/impact/formatters.d.ts +0 -27
  921. package/dist/services/impact/formatters.d.ts.map +0 -1
  922. package/dist/services/impact/formatters.js +0 -111
  923. package/dist/services/impact/formatters.js.map +0 -1
  924. package/dist/services/impact/impact-detection-service.d.ts +0 -22
  925. package/dist/services/impact/impact-detection-service.d.ts.map +0 -1
  926. package/dist/services/impact/impact-detection-service.js +0 -96
  927. package/dist/services/impact/impact-detection-service.js.map +0 -1
  928. package/dist/services/impact/index.d.ts +0 -11
  929. package/dist/services/impact/index.d.ts.map +0 -1
  930. package/dist/services/impact/index.js +0 -16
  931. package/dist/services/impact/index.js.map +0 -1
  932. package/dist/services/impact/types.d.ts +0 -58
  933. package/dist/services/impact/types.d.ts.map +0 -1
  934. package/dist/services/implementation/discovery.d.ts +0 -30
  935. package/dist/services/implementation/discovery.d.ts.map +0 -1
  936. package/dist/services/implementation/discovery.js +0 -144
  937. package/dist/services/implementation/discovery.js.map +0 -1
  938. package/dist/services/implementation/index.d.ts +0 -3
  939. package/dist/services/implementation/index.js +0 -2
  940. package/dist/services/implementation/resolver.d.ts +0 -44
  941. package/dist/services/implementation/resolver.d.ts.map +0 -1
  942. package/dist/services/implementation/resolver.js +0 -224
  943. package/dist/services/implementation/resolver.js.map +0 -1
  944. package/dist/services/implementation/types.d.ts +0 -79
  945. package/dist/services/implementation/types.d.ts.map +0 -1
  946. package/dist/services/index.d.ts +0 -91
  947. package/dist/services/index.js +0 -87
  948. package/dist/services/integrity-diagram.d.ts +0 -36
  949. package/dist/services/integrity-diagram.d.ts.map +0 -1
  950. package/dist/services/integrity-diagram.js +0 -275
  951. package/dist/services/integrity-diagram.js.map +0 -1
  952. package/dist/services/integrity.d.ts +0 -134
  953. package/dist/services/integrity.d.ts.map +0 -1
  954. package/dist/services/integrity.js +0 -272
  955. package/dist/services/integrity.js.map +0 -1
  956. package/dist/services/layer-discovery.d.ts +0 -77
  957. package/dist/services/layer-discovery.d.ts.map +0 -1
  958. package/dist/services/layer-discovery.js +0 -121
  959. package/dist/services/layer-discovery.js.map +0 -1
  960. package/dist/services/list.d.ts +0 -31
  961. package/dist/services/list.d.ts.map +0 -1
  962. package/dist/services/list.js +0 -36
  963. package/dist/services/list.js.map +0 -1
  964. package/dist/services/llm/index.d.ts +0 -28
  965. package/dist/services/llm/index.d.ts.map +0 -1
  966. package/dist/services/llm/index.js +0 -187
  967. package/dist/services/llm/index.js.map +0 -1
  968. package/dist/services/llm/verify-static.d.ts +0 -26
  969. package/dist/services/llm/verify-static.d.ts.map +0 -1
  970. package/dist/services/llm/verify-static.js +0 -82
  971. package/dist/services/llm/verify-static.js.map +0 -1
  972. package/dist/services/openapi/export-service.d.ts +0 -53
  973. package/dist/services/openapi/export-service.d.ts.map +0 -1
  974. package/dist/services/openapi/export-service.js +0 -50
  975. package/dist/services/openapi/export-service.js.map +0 -1
  976. package/dist/services/openapi/import-service.d.ts +0 -17
  977. package/dist/services/openapi/import-service.d.ts.map +0 -1
  978. package/dist/services/openapi/import-service.js +0 -168
  979. package/dist/services/openapi/import-service.js.map +0 -1
  980. package/dist/services/openapi/index.d.ts +0 -5
  981. package/dist/services/openapi/index.js +0 -4
  982. package/dist/services/openapi/sync-service.d.ts +0 -17
  983. package/dist/services/openapi/sync-service.d.ts.map +0 -1
  984. package/dist/services/openapi/sync-service.js +0 -120
  985. package/dist/services/openapi/sync-service.js.map +0 -1
  986. package/dist/services/openapi/types.d.ts +0 -162
  987. package/dist/services/openapi/types.d.ts.map +0 -1
  988. package/dist/services/openapi/validate-service.d.ts +0 -16
  989. package/dist/services/openapi/validate-service.d.ts.map +0 -1
  990. package/dist/services/openapi/validate-service.js +0 -130
  991. package/dist/services/openapi/validate-service.js.map +0 -1
  992. package/dist/services/quickstart/dependencies.d.ts +0 -31
  993. package/dist/services/quickstart/dependencies.d.ts.map +0 -1
  994. package/dist/services/quickstart/dependencies.js +0 -57
  995. package/dist/services/quickstart/dependencies.js.map +0 -1
  996. package/dist/services/quickstart/index.js +0 -2
  997. package/dist/services/quickstart/quickstart-service.d.ts +0 -20
  998. package/dist/services/quickstart/quickstart-service.d.ts.map +0 -1
  999. package/dist/services/quickstart/quickstart-service.js +0 -196
  1000. package/dist/services/quickstart/quickstart-service.js.map +0 -1
  1001. package/dist/services/quickstart/types.d.ts +0 -81
  1002. package/dist/services/quickstart/types.d.ts.map +0 -1
  1003. package/dist/services/regenerator.d.ts +0 -18
  1004. package/dist/services/regenerator.d.ts.map +0 -1
  1005. package/dist/services/regenerator.js +0 -23
  1006. package/dist/services/regenerator.js.map +0 -1
  1007. package/dist/services/registry.d.ts +0 -53
  1008. package/dist/services/registry.d.ts.map +0 -1
  1009. package/dist/services/registry.js +0 -74
  1010. package/dist/services/registry.js.map +0 -1
  1011. package/dist/services/rulesync.d.ts +0 -17
  1012. package/dist/services/rulesync.d.ts.map +0 -1
  1013. package/dist/services/rulesync.js +0 -71
  1014. package/dist/services/rulesync.js.map +0 -1
  1015. package/dist/services/setup/config-generators.d.ts +0 -42
  1016. package/dist/services/setup/config-generators.d.ts.map +0 -1
  1017. package/dist/services/setup/config-generators.js +0 -252
  1018. package/dist/services/setup/config-generators.js.map +0 -1
  1019. package/dist/services/setup/file-merger.d.ts +0 -27
  1020. package/dist/services/setup/file-merger.d.ts.map +0 -1
  1021. package/dist/services/setup/file-merger.js +0 -61
  1022. package/dist/services/setup/file-merger.js.map +0 -1
  1023. package/dist/services/setup/index.js +0 -4
  1024. package/dist/services/setup/setup-service.d.ts +0 -12
  1025. package/dist/services/setup/setup-service.d.ts.map +0 -1
  1026. package/dist/services/setup/setup-service.js +0 -96
  1027. package/dist/services/setup/setup-service.js.map +0 -1
  1028. package/dist/services/setup/targets/agents-md.js +0 -47
  1029. package/dist/services/setup/targets/agents-md.js.map +0 -1
  1030. package/dist/services/setup/targets/cli-config.js +0 -60
  1031. package/dist/services/setup/targets/cli-config.js.map +0 -1
  1032. package/dist/services/setup/targets/cursor-rules.js +0 -48
  1033. package/dist/services/setup/targets/cursor-rules.js.map +0 -1
  1034. package/dist/services/setup/targets/mcp-claude.js +0 -60
  1035. package/dist/services/setup/targets/mcp-claude.js.map +0 -1
  1036. package/dist/services/setup/targets/mcp-cursor.js +0 -59
  1037. package/dist/services/setup/targets/mcp-cursor.js.map +0 -1
  1038. package/dist/services/setup/targets/vscode-settings.js +0 -63
  1039. package/dist/services/setup/targets/vscode-settings.js.map +0 -1
  1040. package/dist/services/setup/types.d.ts +0 -85
  1041. package/dist/services/setup/types.d.ts.map +0 -1
  1042. package/dist/services/setup/types.js +0 -27
  1043. package/dist/services/setup/types.js.map +0 -1
  1044. package/dist/services/sync.d.ts +0 -42
  1045. package/dist/services/sync.d.ts.map +0 -1
  1046. package/dist/services/sync.js +0 -64
  1047. package/dist/services/sync.js.map +0 -1
  1048. package/dist/services/test/index.d.ts +0 -1
  1049. package/dist/services/test/index.js +0 -1
  1050. package/dist/services/test/test-service.d.ts +0 -22
  1051. package/dist/services/test/test-service.d.ts.map +0 -1
  1052. package/dist/services/test/test-service.js +0 -81
  1053. package/dist/services/test/test-service.js.map +0 -1
  1054. package/dist/services/upgrade/index.d.ts +0 -10
  1055. package/dist/services/upgrade/index.d.ts.map +0 -1
  1056. package/dist/services/upgrade/index.js +0 -15
  1057. package/dist/services/upgrade/index.js.map +0 -1
  1058. package/dist/services/upgrade/types.d.ts +0 -78
  1059. package/dist/services/upgrade/types.d.ts.map +0 -1
  1060. package/dist/services/upgrade/upgrade-service.d.ts +0 -38
  1061. package/dist/services/upgrade/upgrade-service.d.ts.map +0 -1
  1062. package/dist/services/upgrade/upgrade-service.js +0 -201
  1063. package/dist/services/upgrade/upgrade-service.js.map +0 -1
  1064. package/dist/services/validate/blueprint-validator.d.ts +0 -23
  1065. package/dist/services/validate/blueprint-validator.d.ts.map +0 -1
  1066. package/dist/services/validate/blueprint-validator.js +0 -50
  1067. package/dist/services/validate/blueprint-validator.js.map +0 -1
  1068. package/dist/services/validate/implementation-agent-validator.d.ts +0 -20
  1069. package/dist/services/validate/implementation-agent-validator.d.ts.map +0 -1
  1070. package/dist/services/validate/implementation-agent-validator.js +0 -42
  1071. package/dist/services/validate/implementation-agent-validator.js.map +0 -1
  1072. package/dist/services/validate/implementation-validator.d.ts +0 -32
  1073. package/dist/services/validate/implementation-validator.d.ts.map +0 -1
  1074. package/dist/services/validate/implementation-validator.js +0 -64
  1075. package/dist/services/validate/implementation-validator.js.map +0 -1
  1076. package/dist/services/validate/index.d.ts +0 -5
  1077. package/dist/services/validate/index.js +0 -5
  1078. package/dist/services/validate/spec-validator.d.ts +0 -42
  1079. package/dist/services/validate/spec-validator.d.ts.map +0 -1
  1080. package/dist/services/validate/spec-validator.js +0 -50
  1081. package/dist/services/validate/spec-validator.js.map +0 -1
  1082. package/dist/services/validate/tenant-validator.d.ts +0 -21
  1083. package/dist/services/validate/tenant-validator.d.ts.map +0 -1
  1084. package/dist/services/validate/tenant-validator.js +0 -165
  1085. package/dist/services/validate/tenant-validator.js.map +0 -1
  1086. package/dist/services/verification-cache/adapters/filesystem.d.ts +0 -46
  1087. package/dist/services/verification-cache/adapters/filesystem.d.ts.map +0 -1
  1088. package/dist/services/verification-cache/adapters/filesystem.js +0 -120
  1089. package/dist/services/verification-cache/adapters/filesystem.js.map +0 -1
  1090. package/dist/services/verification-cache/adapters/in-memory.d.ts +0 -27
  1091. package/dist/services/verification-cache/adapters/in-memory.d.ts.map +0 -1
  1092. package/dist/services/verification-cache/adapters/in-memory.js +0 -46
  1093. package/dist/services/verification-cache/adapters/in-memory.js.map +0 -1
  1094. package/dist/services/verification-cache/adapters/index.d.ts +0 -3
  1095. package/dist/services/verification-cache/adapters/index.js +0 -3
  1096. package/dist/services/verification-cache/adapters/workspace-state.d.ts +0 -49
  1097. package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +0 -1
  1098. package/dist/services/verification-cache/adapters/workspace-state.js +0 -91
  1099. package/dist/services/verification-cache/adapters/workspace-state.js.map +0 -1
  1100. package/dist/services/verification-cache/cache-service.d.ts +0 -70
  1101. package/dist/services/verification-cache/cache-service.d.ts.map +0 -1
  1102. package/dist/services/verification-cache/cache-service.js +0 -256
  1103. package/dist/services/verification-cache/cache-service.js.map +0 -1
  1104. package/dist/services/verification-cache/index.d.ts +0 -6
  1105. package/dist/services/verification-cache/index.js +0 -6
  1106. package/dist/services/verification-cache/types.d.ts +0 -124
  1107. package/dist/services/verification-cache/types.d.ts.map +0 -1
  1108. package/dist/services/verification-cache/types.js +0 -16
  1109. package/dist/services/verification-cache/types.js.map +0 -1
  1110. package/dist/services/verify/ai-verifier.d.ts +0 -25
  1111. package/dist/services/verify/ai-verifier.d.ts.map +0 -1
  1112. package/dist/services/verify/ai-verifier.js +0 -403
  1113. package/dist/services/verify/ai-verifier.js.map +0 -1
  1114. package/dist/services/verify/behavior-verifier.d.ts +0 -12
  1115. package/dist/services/verify/behavior-verifier.d.ts.map +0 -1
  1116. package/dist/services/verify/behavior-verifier.js +0 -186
  1117. package/dist/services/verify/behavior-verifier.js.map +0 -1
  1118. package/dist/services/verify/index.d.ts +0 -5
  1119. package/dist/services/verify/index.js +0 -4
  1120. package/dist/services/verify/structure-verifier.d.ts +0 -12
  1121. package/dist/services/verify/structure-verifier.d.ts.map +0 -1
  1122. package/dist/services/verify/structure-verifier.js +0 -196
  1123. package/dist/services/verify/structure-verifier.js.map +0 -1
  1124. package/dist/services/verify/types.d.ts +0 -137
  1125. package/dist/services/verify/types.d.ts.map +0 -1
  1126. package/dist/services/verify/verify-service.d.ts +0 -60
  1127. package/dist/services/verify/verify-service.d.ts.map +0 -1
  1128. package/dist/services/verify/verify-service.js +0 -204
  1129. package/dist/services/verify/verify-service.js.map +0 -1
  1130. package/dist/services/versioning/changelog-formatter.d.ts +0 -24
  1131. package/dist/services/versioning/changelog-formatter.d.ts.map +0 -1
  1132. package/dist/services/versioning/changelog-formatter.js +0 -155
  1133. package/dist/services/versioning/changelog-formatter.js.map +0 -1
  1134. package/dist/services/versioning/conventional-commits.d.ts +0 -95
  1135. package/dist/services/versioning/conventional-commits.d.ts.map +0 -1
  1136. package/dist/services/versioning/conventional-commits.js +0 -184
  1137. package/dist/services/versioning/conventional-commits.js.map +0 -1
  1138. package/dist/services/versioning/index.d.ts +0 -12
  1139. package/dist/services/versioning/index.d.ts.map +0 -1
  1140. package/dist/services/versioning/index.js +0 -28
  1141. package/dist/services/versioning/index.js.map +0 -1
  1142. package/dist/services/versioning/types.d.ts +0 -135
  1143. package/dist/services/versioning/types.d.ts.map +0 -1
  1144. package/dist/services/versioning/versioning-service.d.ts +0 -74
  1145. package/dist/services/versioning/versioning-service.d.ts.map +0 -1
  1146. package/dist/services/versioning/versioning-service.js +0 -501
  1147. package/dist/services/versioning/versioning-service.js.map +0 -1
  1148. package/dist/services/watch.d.ts +0 -25
  1149. package/dist/services/watch.d.ts.map +0 -1
  1150. package/dist/services/watch.js +0 -33
  1151. package/dist/services/watch.js.map +0 -1
  1152. package/dist/services/workspace-info.d.ts +0 -62
  1153. package/dist/services/workspace-info.d.ts.map +0 -1
  1154. package/dist/services/workspace-info.js +0 -103
  1155. package/dist/services/workspace-info.js.map +0 -1
  1156. package/dist/templates/app-config.template.d.ts +0 -7
  1157. package/dist/templates/app-config.template.d.ts.map +0 -1
  1158. package/dist/templates/app-config.template.js +0 -107
  1159. package/dist/templates/app-config.template.js.map +0 -1
  1160. package/dist/templates/data-view.template.d.ts +0 -7
  1161. package/dist/templates/data-view.template.d.ts.map +0 -1
  1162. package/dist/templates/data-view.template.js +0 -70
  1163. package/dist/templates/data-view.template.js.map +0 -1
  1164. package/dist/templates/event.template.d.ts +0 -11
  1165. package/dist/templates/event.template.d.ts.map +0 -1
  1166. package/dist/templates/event.template.js +0 -42
  1167. package/dist/templates/event.template.js.map +0 -1
  1168. package/dist/templates/experiment.template.d.ts +0 -7
  1169. package/dist/templates/experiment.template.d.ts.map +0 -1
  1170. package/dist/templates/experiment.template.js +0 -89
  1171. package/dist/templates/experiment.template.js.map +0 -1
  1172. package/dist/templates/handler.template.d.ts +0 -16
  1173. package/dist/templates/handler.template.d.ts.map +0 -1
  1174. package/dist/templates/handler.template.js +0 -100
  1175. package/dist/templates/handler.template.js.map +0 -1
  1176. package/dist/templates/index.d.ts +0 -21
  1177. package/dist/templates/index.d.ts.map +0 -1
  1178. package/dist/templates/index.js +0 -37
  1179. package/dist/templates/index.js.map +0 -1
  1180. package/dist/templates/integration.template.d.ts +0 -7
  1181. package/dist/templates/integration.template.d.ts.map +0 -1
  1182. package/dist/templates/integration.template.js +0 -160
  1183. package/dist/templates/integration.template.js.map +0 -1
  1184. package/dist/templates/knowledge.template.d.ts +0 -7
  1185. package/dist/templates/knowledge.template.d.ts.map +0 -1
  1186. package/dist/templates/knowledge.template.js +0 -75
  1187. package/dist/templates/knowledge.template.js.map +0 -1
  1188. package/dist/templates/migration.template.d.ts +0 -7
  1189. package/dist/templates/migration.template.d.ts.map +0 -1
  1190. package/dist/templates/migration.template.js +0 -62
  1191. package/dist/templates/migration.template.js.map +0 -1
  1192. package/dist/templates/operation.template.d.ts +0 -11
  1193. package/dist/templates/operation.template.d.ts.map +0 -1
  1194. package/dist/templates/operation.template.js +0 -107
  1195. package/dist/templates/operation.template.js.map +0 -1
  1196. package/dist/templates/presentation.template.d.ts +0 -11
  1197. package/dist/templates/presentation.template.d.ts.map +0 -1
  1198. package/dist/templates/presentation.template.js +0 -80
  1199. package/dist/templates/presentation.template.js.map +0 -1
  1200. package/dist/templates/telemetry.template.d.ts +0 -7
  1201. package/dist/templates/telemetry.template.d.ts.map +0 -1
  1202. package/dist/templates/telemetry.template.js +0 -91
  1203. package/dist/templates/telemetry.template.js.map +0 -1
  1204. package/dist/templates/workflow-runner.template.d.ts +0 -16
  1205. package/dist/templates/workflow-runner.template.d.ts.map +0 -1
  1206. package/dist/templates/workflow-runner.template.js +0 -50
  1207. package/dist/templates/workflow-runner.template.js.map +0 -1
  1208. package/dist/templates/workflow.template.d.ts +0 -7
  1209. package/dist/templates/workflow.template.d.ts.map +0 -1
  1210. package/dist/templates/workflow.template.js +0 -69
  1211. package/dist/templates/workflow.template.js.map +0 -1
  1212. package/dist/types/config.d.ts +0 -34
  1213. package/dist/types/config.d.ts.map +0 -1
  1214. package/dist/types.d.ts +0 -324
  1215. package/dist/types.d.ts.map +0 -1
  1216. package/dist/utils/module-loader.js +0 -41
  1217. package/dist/utils/module-loader.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docs-service.mjs","names":[],"sources":["../../../src/services/docs/docs-service.ts"],"sourcesContent":["import path from 'path';\nimport {\n type DocBlock,\n defaultDocRegistry,\n} from '@contractspec/lib.contracts/docs';\nimport {\n loadSpecFromSource,\n convertSpecToDocBlock,\n scanAllSpecsFromSource,\n scanSpecSource,\n type SpecScanResult,\n} from '@contractspec/module.workspace';\nimport type { WorkspaceAdapters } from '../../ports/logger';\nimport { ModuleResolver } from '../modules/module-resolver';\n\nexport interface DocsServiceOptions {\n outputDir?: string;\n format?: 'markdown' | 'html' | 'json';\n rootPath?: string;\n}\n\nexport interface DocsServiceResult {\n blocks: DocBlock[];\n count: number;\n}\n\n/**\n * Generate documentation from spec files.\n */\nexport async function generateDocsFromSpecs(\n specFiles: string[],\n options: DocsServiceOptions,\n adapters: WorkspaceAdapters\n): Promise<DocsServiceResult> {\n const { fs, logger } = adapters;\n const blocks: DocBlock[] = [];\n\n logger.info(`Generating docs for ${specFiles.length} files...`);\n\n if (options.outputDir) {\n await fs.mkdir(options.outputDir);\n }\n\n // Initialize ModuleResolver\n const resolver = new ModuleResolver(adapters);\n // 1. Scan all specs to build the module index\n const scanResults: SpecScanResult[] = [];\n for (const file of specFiles) {\n try {\n const content = await fs.readFile(file);\n const results = scanAllSpecsFromSource(content, file);\n if (results.length > 0) {\n scanResults.push(...results);\n } else {\n // Fallback if no multi-specs found, try single scan logic\n const single = scanSpecSource(content, file);\n if (single.specType !== 'unknown') {\n scanResults.push(single);\n }\n }\n } catch (_err) {\n // ignore read errors\n }\n }\n\n resolver.initialize(scanResults);\n\n for (const file of specFiles) {\n try {\n const parsedList = await loadSpecFromSource(file);\n\n if (parsedList && parsedList.length > 0) {\n for (const parsed of parsedList) {\n const block = convertSpecToDocBlock(parsed, {\n rootPath: options.rootPath,\n });\n // Register in global registry\n defaultDocRegistry.register(block);\n blocks.push(block);\n logger.debug(`Generated doc for ${block.id}`);\n\n if (options.outputDir) {\n // Determine grouping based on module resolution\n const moduleDef = resolver.resolve(file);\n let targetDir = options.outputDir;\n\n if (moduleDef) {\n targetDir = path.join(options.outputDir, moduleDef.key);\n } else {\n targetDir = path.join(options.outputDir, '_common'); // Fallback for root-level specs\n }\n\n // Ensure subdirectory exists\n await fs.mkdir(targetDir);\n\n // Flattened structure: [module]/[docId].md\n const filename = `${block.id}.md`;\n const filePath = path.join(targetDir, filename);\n const generatedContent = `<!-- @generated - This file was generated by ContractSpec. Do not edit manually. -->\\n\\n${block.body}`;\n await fs.writeFile(filePath, generatedContent);\n }\n }\n } else {\n logger.warn(`Could not parse spec from ${file}`);\n }\n } catch (error) {\n logger.error(\n `Error processing ${file}: ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n if (options.outputDir) {\n logger.info(`Wrote ${blocks.length} doc files to ${options.outputDir}`);\n }\n\n return { blocks, count: blocks.length };\n}\n"],"mappings":";;;;;;;;;AA6BA,eAAsB,sBACpB,WACA,SACA,UAC4B;CAC5B,MAAM,EAAE,IAAI,WAAW;CACvB,MAAM,SAAqB,EAAE;AAE7B,QAAO,KAAK,uBAAuB,UAAU,OAAO,WAAW;AAE/D,KAAI,QAAQ,UACV,OAAM,GAAG,MAAM,QAAQ,UAAU;CAInC,MAAM,WAAW,IAAI,eAAe,SAAS;CAE7C,MAAM,cAAgC,EAAE;AACxC,MAAK,MAAM,QAAQ,UACjB,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,KAAK;EACvC,MAAM,UAAU,uBAAuB,SAAS,KAAK;AACrD,MAAI,QAAQ,SAAS,EACnB,aAAY,KAAK,GAAG,QAAQ;OACvB;GAEL,MAAM,SAAS,eAAe,SAAS,KAAK;AAC5C,OAAI,OAAO,aAAa,UACtB,aAAY,KAAK,OAAO;;UAGrB,MAAM;AAKjB,UAAS,WAAW,YAAY;AAEhC,MAAK,MAAM,QAAQ,UACjB,KAAI;EACF,MAAM,aAAa,MAAM,mBAAmB,KAAK;AAEjD,MAAI,cAAc,WAAW,SAAS,EACpC,MAAK,MAAM,UAAU,YAAY;GAC/B,MAAM,QAAQ,sBAAsB,QAAQ,EAC1C,UAAU,QAAQ,UACnB,CAAC;AAEF,sBAAmB,SAAS,MAAM;AAClC,UAAO,KAAK,MAAM;AAClB,UAAO,MAAM,qBAAqB,MAAM,KAAK;AAE7C,OAAI,QAAQ,WAAW;IAErB,MAAM,YAAY,SAAS,QAAQ,KAAK;IACxC,IAAI,YAAY,QAAQ;AAExB,QAAI,UACF,aAAY,KAAK,KAAK,QAAQ,WAAW,UAAU,IAAI;QAEvD,aAAY,KAAK,KAAK,QAAQ,WAAW,UAAU;AAIrD,UAAM,GAAG,MAAM,UAAU;IAGzB,MAAM,WAAW,GAAG,MAAM,GAAG;IAC7B,MAAM,WAAW,KAAK,KAAK,WAAW,SAAS;IAC/C,MAAM,mBAAmB,2FAA2F,MAAM;AAC1H,UAAM,GAAG,UAAU,UAAU,iBAAiB;;;MAIlD,QAAO,KAAK,6BAA6B,OAAO;UAE3C,OAAO;AACd,SAAO,MACL,oBAAoB,KAAK,IAAI,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM,GACpF;;AAIL,KAAI,QAAQ,UACV,QAAO,KAAK,SAAS,OAAO,OAAO,gBAAgB,QAAQ,YAAY;AAGzE,QAAO;EAAE;EAAQ,OAAO,OAAO;EAAQ"}
@@ -0,0 +1 @@
1
+ import { DocsServiceOptions, DocsServiceResult, generateDocsFromSpecs } from "./docs-service.mjs";
@@ -0,0 +1,3 @@
1
+ import { generateDocsFromSpecs } from "./docs-service.mjs";
2
+
3
+ export { };
@@ -0,0 +1,119 @@
1
+ //#region src/services/doctor/checks/ai.ts
2
+ /**
3
+ * Run AI provider-related health checks.
4
+ */
5
+ async function runAiChecks(fs, ctx, prompts) {
6
+ const results = [];
7
+ const providerResult = await checkAiProvider(fs, ctx);
8
+ results.push(providerResult);
9
+ if (providerResult.status === "pass") results.push(await checkApiKey(fs, ctx, prompts));
10
+ return results;
11
+ }
12
+ /**
13
+ * Check which AI provider is configured.
14
+ */
15
+ async function checkAiProvider(fs, ctx) {
16
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
17
+ try {
18
+ if (!await fs.exists(configPath)) return {
19
+ category: "ai",
20
+ name: "AI Provider",
21
+ status: "skip",
22
+ message: "No config file found"
23
+ };
24
+ const content = await fs.readFile(configPath);
25
+ const config = JSON.parse(content);
26
+ return {
27
+ category: "ai",
28
+ name: "AI Provider",
29
+ status: "pass",
30
+ message: `Provider: ${config.aiProvider ?? "claude"}, Model: ${config.aiModel ?? "default"}`
31
+ };
32
+ } catch {
33
+ return {
34
+ category: "ai",
35
+ name: "AI Provider",
36
+ status: "skip",
37
+ message: "Could not read AI config"
38
+ };
39
+ }
40
+ }
41
+ /**
42
+ * Check if API key is set for the configured provider.
43
+ */
44
+ async function checkApiKey(fs, ctx, prompts) {
45
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
46
+ try {
47
+ const content = await fs.readFile(configPath);
48
+ const provider = JSON.parse(content).aiProvider ?? "claude";
49
+ const envVar = {
50
+ claude: "ANTHROPIC_API_KEY",
51
+ openai: "OPENAI_API_KEY",
52
+ ollama: "",
53
+ custom: "CONTRACTSPEC_LLM_API_KEY"
54
+ }[provider];
55
+ if (!envVar) return {
56
+ category: "ai",
57
+ name: "API Key",
58
+ status: "pass",
59
+ message: `${provider} does not require an API key`
60
+ };
61
+ if (!!process.env[envVar]) return {
62
+ category: "ai",
63
+ name: "API Key",
64
+ status: "pass",
65
+ message: `${envVar} is set`
66
+ };
67
+ return {
68
+ category: "ai",
69
+ name: "API Key",
70
+ status: "warn",
71
+ message: `${envVar} not set`,
72
+ details: `Set ${envVar} in your environment to use AI features`,
73
+ fix: prompts ? {
74
+ description: `Set ${envVar} environment variable`,
75
+ apply: async () => {
76
+ const key = await prompts.input(`Enter your ${provider} API key:`, { password: true });
77
+ if (!key) return {
78
+ success: false,
79
+ message: "No API key provided"
80
+ };
81
+ const envPath = fs.join(ctx.workspaceRoot, ".env");
82
+ try {
83
+ let envContent = "";
84
+ if (await fs.exists(envPath)) {
85
+ envContent = await fs.readFile(envPath);
86
+ if (envContent.includes(`${envVar}=`)) return {
87
+ success: false,
88
+ message: `${envVar} already in .env, update manually`
89
+ };
90
+ envContent += "\n";
91
+ }
92
+ envContent += `${envVar}=${key}\n`;
93
+ await fs.writeFile(envPath, envContent);
94
+ return {
95
+ success: true,
96
+ message: `Added ${envVar} to .env (restart required)`
97
+ };
98
+ } catch (error) {
99
+ return {
100
+ success: false,
101
+ message: `Failed: ${error instanceof Error ? error.message : String(error)}`
102
+ };
103
+ }
104
+ }
105
+ } : void 0
106
+ };
107
+ } catch {
108
+ return {
109
+ category: "ai",
110
+ name: "API Key",
111
+ status: "skip",
112
+ message: "Could not check API key"
113
+ };
114
+ }
115
+ }
116
+
117
+ //#endregion
118
+ export { runAiChecks };
119
+ //# sourceMappingURL=ai.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.mjs","names":[],"sources":["../../../../src/services/doctor/checks/ai.ts"],"sourcesContent":["/**\n * AI provider health checks.\n */\n\nimport type { FsAdapter } from '../../../ports/fs';\nimport type {\n CheckResult,\n CheckContext,\n DoctorPromptCallbacks,\n FixResult,\n} from '../types';\n\n/**\n * Run AI provider-related health checks.\n */\nexport async function runAiChecks(\n fs: FsAdapter,\n ctx: CheckContext,\n prompts?: DoctorPromptCallbacks\n): Promise<CheckResult[]> {\n const results: CheckResult[] = [];\n\n // Check configured AI provider\n const providerResult = await checkAiProvider(fs, ctx);\n results.push(providerResult);\n\n // Check API key based on provider\n if (providerResult.status === 'pass') {\n results.push(await checkApiKey(fs, ctx, prompts));\n }\n\n return results;\n}\n\n/**\n * Check which AI provider is configured.\n */\nasync function checkAiProvider(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n try {\n const exists = await fs.exists(configPath);\n if (!exists) {\n return {\n category: 'ai',\n name: 'AI Provider',\n status: 'skip',\n message: 'No config file found',\n };\n }\n\n const content = await fs.readFile(configPath);\n const config = JSON.parse(content) as {\n aiProvider?: string;\n aiModel?: string;\n };\n\n const provider = config.aiProvider ?? 'claude';\n const model = config.aiModel ?? 'default';\n\n return {\n category: 'ai',\n name: 'AI Provider',\n status: 'pass',\n message: `Provider: ${provider}, Model: ${model}`,\n };\n } catch {\n return {\n category: 'ai',\n name: 'AI Provider',\n status: 'skip',\n message: 'Could not read AI config',\n };\n }\n}\n\n/**\n * Check if API key is set for the configured provider.\n */\nasync function checkApiKey(\n fs: FsAdapter,\n ctx: CheckContext,\n prompts?: DoctorPromptCallbacks\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n try {\n const content = await fs.readFile(configPath);\n const config = JSON.parse(content) as { aiProvider?: string };\n\n const provider = config.aiProvider ?? 'claude';\n\n // Map provider to env var\n const envVarMap: Record<string, string> = {\n claude: 'ANTHROPIC_API_KEY',\n openai: 'OPENAI_API_KEY',\n ollama: '', // Ollama doesn't need API key\n custom: 'CONTRACTSPEC_LLM_API_KEY',\n };\n\n const envVar = envVarMap[provider];\n\n // Ollama doesn't need an API key\n if (!envVar) {\n return {\n category: 'ai',\n name: 'API Key',\n status: 'pass',\n message: `${provider} does not require an API key`,\n };\n }\n\n const hasKey = !!process.env[envVar];\n\n if (hasKey) {\n return {\n category: 'ai',\n name: 'API Key',\n status: 'pass',\n message: `${envVar} is set`,\n };\n }\n\n return {\n category: 'ai',\n name: 'API Key',\n status: 'warn',\n message: `${envVar} not set`,\n details: `Set ${envVar} in your environment to use AI features`,\n fix: prompts\n ? {\n description: `Set ${envVar} environment variable`,\n apply: async (): Promise<FixResult> => {\n const key = await prompts.input(\n `Enter your ${provider} API key:`,\n { password: true }\n );\n\n if (!key) {\n return { success: false, message: 'No API key provided' };\n }\n\n // We can't actually set env vars permanently, but we can create a .env file\n const envPath = fs.join(ctx.workspaceRoot, '.env');\n try {\n let envContent = '';\n if (await fs.exists(envPath)) {\n envContent = await fs.readFile(envPath);\n // Check if var already exists\n if (envContent.includes(`${envVar}=`)) {\n return {\n success: false,\n message: `${envVar} already in .env, update manually`,\n };\n }\n envContent += '\\n';\n }\n\n envContent += `${envVar}=${key}\\n`;\n await fs.writeFile(envPath, envContent);\n\n return {\n success: true,\n message: `Added ${envVar} to .env (restart required)`,\n };\n } catch (error) {\n const msg =\n error instanceof Error ? error.message : String(error);\n return { success: false, message: `Failed: ${msg}` };\n }\n },\n }\n : undefined,\n };\n } catch {\n return {\n category: 'ai',\n name: 'API Key',\n status: 'skip',\n message: 'Could not check API key',\n };\n }\n}\n"],"mappings":";;;;AAeA,eAAsB,YACpB,IACA,KACA,SACwB;CACxB,MAAM,UAAyB,EAAE;CAGjC,MAAM,iBAAiB,MAAM,gBAAgB,IAAI,IAAI;AACrD,SAAQ,KAAK,eAAe;AAG5B,KAAI,eAAe,WAAW,OAC5B,SAAQ,KAAK,MAAM,YAAY,IAAI,KAAK,QAAQ,CAAC;AAGnD,QAAO;;;;;AAMT,eAAe,gBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAElE,KAAI;AAEF,MAAI,CADW,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;EAGH,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;EAC7C,MAAM,SAAS,KAAK,MAAM,QAAQ;AAQlC,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,aAPM,OAAO,cAAc,SAOL,WANnB,OAAO,WAAW;GAO/B;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;;;;;;AAOL,eAAe,YACb,IACA,KACA,SACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAElE,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;EAG7C,MAAM,WAFS,KAAK,MAAM,QAAQ,CAEV,cAAc;EAUtC,MAAM,SAPoC;GACxC,QAAQ;GACR,QAAQ;GACR,QAAQ;GACR,QAAQ;GACT,CAEwB;AAGzB,MAAI,CAAC,OACH,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,GAAG,SAAS;GACtB;AAKH,MAFe,CAAC,CAAC,QAAQ,IAAI,QAG3B,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,GAAG,OAAO;GACpB;AAGH,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,GAAG,OAAO;GACnB,SAAS,OAAO,OAAO;GACvB,KAAK,UACD;IACE,aAAa,OAAO,OAAO;IAC3B,OAAO,YAAgC;KACrC,MAAM,MAAM,MAAM,QAAQ,MACxB,cAAc,SAAS,YACvB,EAAE,UAAU,MAAM,CACnB;AAED,SAAI,CAAC,IACH,QAAO;MAAE,SAAS;MAAO,SAAS;MAAuB;KAI3D,MAAM,UAAU,GAAG,KAAK,IAAI,eAAe,OAAO;AAClD,SAAI;MACF,IAAI,aAAa;AACjB,UAAI,MAAM,GAAG,OAAO,QAAQ,EAAE;AAC5B,oBAAa,MAAM,GAAG,SAAS,QAAQ;AAEvC,WAAI,WAAW,SAAS,GAAG,OAAO,GAAG,CACnC,QAAO;QACL,SAAS;QACT,SAAS,GAAG,OAAO;QACpB;AAEH,qBAAc;;AAGhB,oBAAc,GAAG,OAAO,GAAG,IAAI;AAC/B,YAAM,GAAG,UAAU,SAAS,WAAW;AAEvC,aAAO;OACL,SAAS;OACT,SAAS,SAAS,OAAO;OAC1B;cACM,OAAO;AAGd,aAAO;OAAE,SAAS;OAAO,SAAS,WADhC,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;OACJ;;;IAGzD,GACD;GACL;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV"}
@@ -0,0 +1,156 @@
1
+ import { exec } from "node:child_process";
2
+ import { promisify } from "node:util";
3
+
4
+ //#region src/services/doctor/checks/cli.ts
5
+ /**
6
+ * CLI installation health checks.
7
+ */
8
+ const execAsync = promisify(exec);
9
+ /**
10
+ * Run CLI-related health checks.
11
+ */
12
+ async function runCliChecks(fs, ctx) {
13
+ const results = [];
14
+ results.push(await checkCliAccessible(ctx));
15
+ results.push(await checkCliVersion(ctx));
16
+ results.push(await checkCliInstallLocation(fs, ctx));
17
+ return results;
18
+ }
19
+ /**
20
+ * Check if the CLI is accessible.
21
+ */
22
+ async function checkCliAccessible(ctx) {
23
+ try {
24
+ await execAsync("bunx contractspec --version", {
25
+ cwd: ctx.workspaceRoot,
26
+ timeout: 1e4
27
+ });
28
+ return {
29
+ category: "cli",
30
+ name: "CLI Accessible",
31
+ status: "pass",
32
+ message: "ContractSpec CLI is accessible"
33
+ };
34
+ } catch {
35
+ return {
36
+ category: "cli",
37
+ name: "CLI Accessible",
38
+ status: "fail",
39
+ message: "ContractSpec CLI is not accessible",
40
+ details: "Could not run \"bunx contractspec --version\"",
41
+ fix: {
42
+ description: "Install ContractSpec CLI globally",
43
+ apply: async () => {
44
+ try {
45
+ await execAsync("npm install -g @contractspec/app.cli-contractspec", {
46
+ cwd: ctx.workspaceRoot,
47
+ timeout: 6e4
48
+ });
49
+ return {
50
+ success: true,
51
+ message: "CLI installed globally"
52
+ };
53
+ } catch (error) {
54
+ return {
55
+ success: false,
56
+ message: `Failed to install: ${error instanceof Error ? error.message : String(error)}`
57
+ };
58
+ }
59
+ }
60
+ }
61
+ };
62
+ }
63
+ }
64
+ /**
65
+ * Check CLI version.
66
+ */
67
+ async function checkCliVersion(ctx) {
68
+ try {
69
+ const { stdout } = await execAsync("bunx contractspec --version", {
70
+ cwd: ctx.workspaceRoot,
71
+ timeout: 1e4
72
+ });
73
+ return {
74
+ category: "cli",
75
+ name: "CLI Version",
76
+ status: "pass",
77
+ message: `CLI version: ${stdout.trim()}`
78
+ };
79
+ } catch {
80
+ return {
81
+ category: "cli",
82
+ name: "CLI Version",
83
+ status: "skip",
84
+ message: "Could not determine CLI version"
85
+ };
86
+ }
87
+ }
88
+ /**
89
+ * Check if CLI is installed locally in the project.
90
+ */
91
+ async function checkCliInstallLocation(fs, ctx) {
92
+ const packageJsonPath = fs.join(ctx.workspaceRoot, "package.json");
93
+ try {
94
+ if (!await fs.exists(packageJsonPath)) return {
95
+ category: "cli",
96
+ name: "Local Installation",
97
+ status: "skip",
98
+ message: "No package.json found"
99
+ };
100
+ if (ctx.isMonorepo && ctx.packageRoot === ctx.workspaceRoot) {
101
+ const cliPath = fs.join(ctx.workspaceRoot, "packages/apps/cli-contractspec");
102
+ if (await fs.exists(cliPath)) return {
103
+ category: "cli",
104
+ name: "Local Installation",
105
+ status: "pass",
106
+ message: "CLI is part of the workspace (source)"
107
+ };
108
+ }
109
+ const content = await fs.readFile(packageJsonPath);
110
+ const pkg = JSON.parse(content);
111
+ if (pkg.dependencies?.["@contractspec/app.cli-contractspec"] !== void 0 || pkg.devDependencies?.["@contractspec/app.cli-contractspec"] !== void 0) return {
112
+ category: "cli",
113
+ name: "Local Installation",
114
+ status: "pass",
115
+ message: "CLI is installed as a project dependency"
116
+ };
117
+ return {
118
+ category: "cli",
119
+ name: "Local Installation",
120
+ status: "warn",
121
+ message: "CLI is not installed as a project dependency",
122
+ details: "Consider adding @contractspec/app.cli-contractspec to devDependencies",
123
+ fix: {
124
+ description: "Add CLI as a dev dependency",
125
+ apply: async () => {
126
+ try {
127
+ await execAsync("npm install -D @contractspec/app.cli-contractspec", {
128
+ cwd: ctx.workspaceRoot,
129
+ timeout: 6e4
130
+ });
131
+ return {
132
+ success: true,
133
+ message: "CLI added as dev dependency"
134
+ };
135
+ } catch (error) {
136
+ return {
137
+ success: false,
138
+ message: `Failed to install: ${error instanceof Error ? error.message : String(error)}`
139
+ };
140
+ }
141
+ }
142
+ }
143
+ };
144
+ } catch {
145
+ return {
146
+ category: "cli",
147
+ name: "Local Installation",
148
+ status: "skip",
149
+ message: "Could not check local installation"
150
+ };
151
+ }
152
+ }
153
+
154
+ //#endregion
155
+ export { runCliChecks };
156
+ //# sourceMappingURL=cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.mjs","names":[],"sources":["../../../../src/services/doctor/checks/cli.ts"],"sourcesContent":["/**\n * CLI installation health checks.\n */\n\nimport { exec } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport type { FsAdapter } from '../../../ports/fs';\nimport type { CheckContext, CheckResult, FixResult } from '../types';\n\nconst execAsync = promisify(exec);\n\n/**\n * Run CLI-related health checks.\n */\nexport async function runCliChecks(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult[]> {\n const results: CheckResult[] = [];\n\n // Check if CLI is accessible\n results.push(await checkCliAccessible(ctx));\n\n // Check CLI version\n results.push(await checkCliVersion(ctx));\n\n // Check if CLI is installed globally or locally\n results.push(await checkCliInstallLocation(fs, ctx));\n\n return results;\n}\n\n/**\n * Check if the CLI is accessible.\n */\nasync function checkCliAccessible(ctx: CheckContext): Promise<CheckResult> {\n try {\n await execAsync('bunx contractspec --version', {\n cwd: ctx.workspaceRoot,\n timeout: 10000,\n });\n\n return {\n category: 'cli',\n name: 'CLI Accessible',\n status: 'pass',\n message: 'ContractSpec CLI is accessible',\n };\n } catch {\n return {\n category: 'cli',\n name: 'CLI Accessible',\n status: 'fail',\n message: 'ContractSpec CLI is not accessible',\n details: 'Could not run \"bunx contractspec --version\"',\n fix: {\n description: 'Install ContractSpec CLI globally',\n apply: async (): Promise<FixResult> => {\n try {\n await execAsync(\n 'npm install -g @contractspec/app.cli-contractspec',\n {\n cwd: ctx.workspaceRoot,\n timeout: 60000,\n }\n );\n return { success: true, message: 'CLI installed globally' };\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n return { success: false, message: `Failed to install: ${msg}` };\n }\n },\n },\n };\n }\n}\n\n/**\n * Check CLI version.\n */\nasync function checkCliVersion(ctx: CheckContext): Promise<CheckResult> {\n try {\n const { stdout } = await execAsync('bunx contractspec --version', {\n cwd: ctx.workspaceRoot,\n timeout: 10000,\n });\n\n const version = stdout.trim();\n\n return {\n category: 'cli',\n name: 'CLI Version',\n status: 'pass',\n message: `CLI version: ${version}`,\n };\n } catch {\n return {\n category: 'cli',\n name: 'CLI Version',\n status: 'skip',\n message: 'Could not determine CLI version',\n };\n }\n}\n\n/**\n * Check if CLI is installed locally in the project.\n */\nasync function checkCliInstallLocation(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const packageJsonPath = fs.join(ctx.workspaceRoot, 'package.json');\n\n try {\n const exists = await fs.exists(packageJsonPath);\n if (!exists) {\n return {\n category: 'cli',\n name: 'Local Installation',\n status: 'skip',\n message: 'No package.json found',\n };\n }\n\n // Check if CLI exists in workspace (monorepo source)\n if (ctx.isMonorepo && ctx.packageRoot === ctx.workspaceRoot) {\n const cliPath = fs.join(\n ctx.workspaceRoot,\n 'packages/apps/cli-contractspec'\n );\n if (await fs.exists(cliPath)) {\n return {\n category: 'cli',\n name: 'Local Installation',\n status: 'pass',\n message: 'CLI is part of the workspace (source)',\n };\n }\n }\n\n const content = await fs.readFile(packageJsonPath);\n const pkg = JSON.parse(content) as {\n dependencies?: Record<string, string>;\n devDependencies?: Record<string, string>;\n };\n\n const hasDep =\n pkg.dependencies?.['@contractspec/app.cli-contractspec'] !== undefined ||\n pkg.devDependencies?.['@contractspec/app.cli-contractspec'] !== undefined;\n\n if (hasDep) {\n return {\n category: 'cli',\n name: 'Local Installation',\n status: 'pass',\n message: 'CLI is installed as a project dependency',\n };\n }\n\n return {\n category: 'cli',\n name: 'Local Installation',\n status: 'warn',\n message: 'CLI is not installed as a project dependency',\n details:\n 'Consider adding @contractspec/app.cli-contractspec to devDependencies',\n fix: {\n description: 'Add CLI as a dev dependency',\n apply: async (): Promise<FixResult> => {\n try {\n await execAsync(\n 'npm install -D @contractspec/app.cli-contractspec',\n {\n cwd: ctx.workspaceRoot,\n timeout: 60000,\n }\n );\n return { success: true, message: 'CLI added as dev dependency' };\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n return { success: false, message: `Failed to install: ${msg}` };\n }\n },\n },\n };\n } catch {\n return {\n category: 'cli',\n name: 'Local Installation',\n status: 'skip',\n message: 'Could not check local installation',\n };\n }\n}\n"],"mappings":";;;;;;;AASA,MAAM,YAAY,UAAU,KAAK;;;;AAKjC,eAAsB,aACpB,IACA,KACwB;CACxB,MAAM,UAAyB,EAAE;AAGjC,SAAQ,KAAK,MAAM,mBAAmB,IAAI,CAAC;AAG3C,SAAQ,KAAK,MAAM,gBAAgB,IAAI,CAAC;AAGxC,SAAQ,KAAK,MAAM,wBAAwB,IAAI,IAAI,CAAC;AAEpD,QAAO;;;;;AAMT,eAAe,mBAAmB,KAAyC;AACzE,KAAI;AACF,QAAM,UAAU,+BAA+B;GAC7C,KAAK,IAAI;GACT,SAAS;GACV,CAAC;AAEF,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACT,SAAS;GACT,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;AACF,YAAM,UACJ,qDACA;OACE,KAAK,IAAI;OACT,SAAS;OACV,CACF;AACD,aAAO;OAAE,SAAS;OAAM,SAAS;OAA0B;cACpD,OAAO;AAEd,aAAO;OAAE,SAAS;OAAO,SAAS,sBADtB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;OACH;;;IAGpE;GACF;;;;;;AAOL,eAAe,gBAAgB,KAAyC;AACtE,KAAI;EACF,MAAM,EAAE,WAAW,MAAM,UAAU,+BAA+B;GAChE,KAAK,IAAI;GACT,SAAS;GACV,CAAC;AAIF,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,gBANK,OAAO,MAAM;GAO5B;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;;;;;;AAOL,eAAe,wBACb,IACA,KACsB;CACtB,MAAM,kBAAkB,GAAG,KAAK,IAAI,eAAe,eAAe;AAElE,KAAI;AAEF,MAAI,CADW,MAAM,GAAG,OAAO,gBAAgB,CAE7C,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;AAIH,MAAI,IAAI,cAAc,IAAI,gBAAgB,IAAI,eAAe;GAC3D,MAAM,UAAU,GAAG,KACjB,IAAI,eACJ,iCACD;AACD,OAAI,MAAM,GAAG,OAAO,QAAQ,CAC1B,QAAO;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,SAAS;IACV;;EAIL,MAAM,UAAU,MAAM,GAAG,SAAS,gBAAgB;EAClD,MAAM,MAAM,KAAK,MAAM,QAAQ;AAS/B,MAHE,IAAI,eAAe,0CAA0C,UAC7D,IAAI,kBAAkB,0CAA0C,OAGhE,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;AAGH,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACT,SACE;GACF,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;AACF,YAAM,UACJ,qDACA;OACE,KAAK,IAAI;OACT,SAAS;OACV,CACF;AACD,aAAO;OAAE,SAAS;OAAM,SAAS;OAA+B;cACzD,OAAO;AAEd,aAAO;OAAE,SAAS;OAAO,SAAS,sBADtB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;OACH;;;IAGpE;GACF;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV"}
@@ -0,0 +1,303 @@
1
+ import { generateContractsrcConfig } from "../../setup/config-generators.mjs";
2
+ import { formatJson } from "../../setup/file-merger.mjs";
3
+
4
+ //#region src/services/doctor/checks/config.ts
5
+ /**
6
+ * Run configuration-related health checks.
7
+ */
8
+ async function runConfigChecks(fs, ctx) {
9
+ const results = [];
10
+ results.push(await checkContractsrcExists(fs, ctx));
11
+ results.push(await checkContractsrcValid(fs, ctx));
12
+ results.push(await checkContractsrcFields(fs, ctx));
13
+ results.push(await checkVersioningConfig(fs, ctx));
14
+ results.push(await checkHooksConfig(fs, ctx));
15
+ return results;
16
+ }
17
+ /**
18
+ * Check if .contractsrc.json exists.
19
+ */
20
+ async function checkContractsrcExists(fs, ctx) {
21
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
22
+ if (await fs.exists(configPath)) return {
23
+ category: "config",
24
+ name: "Config File Exists",
25
+ status: "pass",
26
+ message: ".contractsrc.json found"
27
+ };
28
+ return {
29
+ category: "config",
30
+ name: "Config File Exists",
31
+ status: "fail",
32
+ message: ".contractsrc.json not found",
33
+ fix: {
34
+ description: "Create .contractsrc.json with defaults",
35
+ apply: async () => {
36
+ try {
37
+ const defaults = generateContractsrcConfig({
38
+ workspaceRoot: ctx.workspaceRoot,
39
+ interactive: false,
40
+ targets: []
41
+ });
42
+ await fs.writeFile(configPath, formatJson(defaults));
43
+ return {
44
+ success: true,
45
+ message: "Created .contractsrc.json"
46
+ };
47
+ } catch (error) {
48
+ return {
49
+ success: false,
50
+ message: `Failed to create: ${error instanceof Error ? error.message : String(error)}`
51
+ };
52
+ }
53
+ }
54
+ }
55
+ };
56
+ }
57
+ /**
58
+ * Check if .contractsrc.json is valid JSON.
59
+ */
60
+ async function checkContractsrcValid(fs, ctx) {
61
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
62
+ if (!await fs.exists(configPath)) return {
63
+ category: "config",
64
+ name: "Config Valid JSON",
65
+ status: "skip",
66
+ message: "Config file does not exist"
67
+ };
68
+ try {
69
+ const content = await fs.readFile(configPath);
70
+ JSON.parse(content);
71
+ return {
72
+ category: "config",
73
+ name: "Config Valid JSON",
74
+ status: "pass",
75
+ message: ".contractsrc.json is valid JSON"
76
+ };
77
+ } catch (error) {
78
+ return {
79
+ category: "config",
80
+ name: "Config Valid JSON",
81
+ status: "fail",
82
+ message: ".contractsrc.json is not valid JSON",
83
+ details: error instanceof Error ? error.message : String(error),
84
+ fix: {
85
+ description: "Replace with valid default config",
86
+ apply: async () => {
87
+ try {
88
+ const defaults = generateContractsrcConfig({
89
+ workspaceRoot: ctx.workspaceRoot,
90
+ interactive: false,
91
+ targets: []
92
+ });
93
+ await fs.writeFile(configPath, formatJson(defaults));
94
+ return {
95
+ success: true,
96
+ message: "Replaced with valid config"
97
+ };
98
+ } catch (err) {
99
+ return {
100
+ success: false,
101
+ message: `Failed: ${err instanceof Error ? err.message : String(err)}`
102
+ };
103
+ }
104
+ }
105
+ }
106
+ };
107
+ }
108
+ }
109
+ /**
110
+ * Check required fields in .contractsrc.json.
111
+ */
112
+ async function checkContractsrcFields(fs, ctx) {
113
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
114
+ if (!await fs.exists(configPath)) return {
115
+ category: "config",
116
+ name: "Config Fields",
117
+ status: "skip",
118
+ message: "Config file does not exist"
119
+ };
120
+ try {
121
+ const content = await fs.readFile(configPath);
122
+ const config = JSON.parse(content);
123
+ const missingFields = [];
124
+ if (!config["outputDir"]) missingFields.push("outputDir");
125
+ if (!config["conventions"]) missingFields.push("conventions");
126
+ if (missingFields.length === 0) return {
127
+ category: "config",
128
+ name: "Config Fields",
129
+ status: "pass",
130
+ message: "All recommended fields present"
131
+ };
132
+ return {
133
+ category: "config",
134
+ name: "Config Fields",
135
+ status: "warn",
136
+ message: `Missing recommended fields: ${missingFields.join(", ")}`,
137
+ fix: {
138
+ description: "Add missing fields with defaults",
139
+ apply: async () => {
140
+ try {
141
+ const defaults = generateContractsrcConfig({
142
+ workspaceRoot: ctx.workspaceRoot,
143
+ interactive: false,
144
+ targets: []
145
+ });
146
+ for (const field of missingFields) if (defaults[field] !== void 0) config[field] = defaults[field];
147
+ await fs.writeFile(configPath, formatJson(config));
148
+ return {
149
+ success: true,
150
+ message: "Added missing fields"
151
+ };
152
+ } catch (err) {
153
+ return {
154
+ success: false,
155
+ message: `Failed: ${err instanceof Error ? err.message : String(err)}`
156
+ };
157
+ }
158
+ }
159
+ }
160
+ };
161
+ } catch {
162
+ return {
163
+ category: "config",
164
+ name: "Config Fields",
165
+ status: "skip",
166
+ message: "Could not parse config"
167
+ };
168
+ }
169
+ }
170
+ /**
171
+ * Check if versioning configuration is present.
172
+ */
173
+ async function checkVersioningConfig(fs, ctx) {
174
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
175
+ if (!await fs.exists(configPath)) return {
176
+ category: "config",
177
+ name: "Versioning Config",
178
+ status: "skip",
179
+ message: "Config file does not exist"
180
+ };
181
+ try {
182
+ const content = await fs.readFile(configPath);
183
+ const config = JSON.parse(content);
184
+ if (config["versioning"]) return {
185
+ category: "config",
186
+ name: "Versioning Config",
187
+ status: "pass",
188
+ message: config["versioning"]["integrateWithChangesets"] === true ? "Versioning configured with Changesets integration" : "Versioning configured"
189
+ };
190
+ return {
191
+ category: "config",
192
+ name: "Versioning Config",
193
+ status: "warn",
194
+ message: "Versioning configuration not found",
195
+ details: "Consider adding versioning config for automated version bumps and changelog generation",
196
+ fix: {
197
+ description: "Add versioning configuration with defaults",
198
+ apply: async () => {
199
+ try {
200
+ config["versioning"] = {
201
+ autoBump: false,
202
+ bumpStrategy: "impact",
203
+ changelogTiers: [
204
+ "spec",
205
+ "library",
206
+ "monorepo"
207
+ ],
208
+ format: "keep-a-changelog",
209
+ commitChanges: false,
210
+ createTags: false,
211
+ integrateWithChangesets: true
212
+ };
213
+ await fs.writeFile(configPath, formatJson(config));
214
+ return {
215
+ success: true,
216
+ message: "Added versioning configuration"
217
+ };
218
+ } catch (err) {
219
+ return {
220
+ success: false,
221
+ message: `Failed: ${err instanceof Error ? err.message : String(err)}`
222
+ };
223
+ }
224
+ }
225
+ }
226
+ };
227
+ } catch {
228
+ return {
229
+ category: "config",
230
+ name: "Versioning Config",
231
+ status: "skip",
232
+ message: "Could not parse config"
233
+ };
234
+ }
235
+ }
236
+ /**
237
+ * Check if hooks configuration is present.
238
+ */
239
+ async function checkHooksConfig(fs, ctx) {
240
+ const configPath = fs.join(ctx.workspaceRoot, ".contractsrc.json");
241
+ if (!await fs.exists(configPath)) return {
242
+ category: "config",
243
+ name: "Hooks Config",
244
+ status: "skip",
245
+ message: "Config file does not exist"
246
+ };
247
+ try {
248
+ const content = await fs.readFile(configPath);
249
+ const config = JSON.parse(content);
250
+ if (config["hooks"]) {
251
+ const hooks = config["hooks"];
252
+ return {
253
+ category: "config",
254
+ name: "Hooks Config",
255
+ status: "pass",
256
+ message: `${Object.keys(hooks).length} git hook(s) configured`
257
+ };
258
+ }
259
+ const huskyPath = fs.join(ctx.workspaceRoot, ".husky");
260
+ if (await fs.exists(huskyPath)) return {
261
+ category: "config",
262
+ name: "Hooks Config",
263
+ status: "warn",
264
+ message: "Husky detected but no hooks configured in .contractsrc.json",
265
+ details: "Add hooks config to run contractspec checks from git hooks",
266
+ fix: {
267
+ description: "Add pre-commit hooks configuration",
268
+ apply: async () => {
269
+ try {
270
+ config["hooks"] = { "pre-commit": ["contractspec validate **/*.operation.ts", "contractspec integrity check"] };
271
+ await fs.writeFile(configPath, formatJson(config));
272
+ return {
273
+ success: true,
274
+ message: "Added hooks configuration"
275
+ };
276
+ } catch (err) {
277
+ return {
278
+ success: false,
279
+ message: `Failed: ${err instanceof Error ? err.message : String(err)}`
280
+ };
281
+ }
282
+ }
283
+ }
284
+ };
285
+ return {
286
+ category: "config",
287
+ name: "Hooks Config",
288
+ status: "pass",
289
+ message: "No hooks configured (optional)"
290
+ };
291
+ } catch {
292
+ return {
293
+ category: "config",
294
+ name: "Hooks Config",
295
+ status: "skip",
296
+ message: "Could not parse config"
297
+ };
298
+ }
299
+ }
300
+
301
+ //#endregion
302
+ export { runConfigChecks };
303
+ //# sourceMappingURL=config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.mjs","names":[],"sources":["../../../../src/services/doctor/checks/config.ts"],"sourcesContent":["/**\n * Configuration file health checks.\n */\n\nimport type { FsAdapter } from '../../../ports/fs';\nimport type { CheckResult, CheckContext, FixResult } from '../types';\nimport { generateContractsrcConfig } from '../../setup/config-generators';\nimport { formatJson } from '../../setup/file-merger';\n\n/**\n * Run configuration-related health checks.\n */\nexport async function runConfigChecks(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult[]> {\n const results: CheckResult[] = [];\n\n // Check if .contractsrc.json exists\n results.push(await checkContractsrcExists(fs, ctx));\n\n // Check if .contractsrc.json is valid\n results.push(await checkContractsrcValid(fs, ctx));\n\n // Check required fields in config\n results.push(await checkContractsrcFields(fs, ctx));\n\n // Check versioning configuration\n results.push(await checkVersioningConfig(fs, ctx));\n\n // Check hooks configuration\n results.push(await checkHooksConfig(fs, ctx));\n\n return results;\n}\n\n/**\n * Check if .contractsrc.json exists.\n */\nasync function checkContractsrcExists(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n const exists = await fs.exists(configPath);\n if (exists) {\n return {\n category: 'config',\n name: 'Config File Exists',\n status: 'pass',\n message: '.contractsrc.json found',\n };\n }\n\n return {\n category: 'config',\n name: 'Config File Exists',\n status: 'fail',\n message: '.contractsrc.json not found',\n fix: {\n description: 'Create .contractsrc.json with defaults',\n apply: async (): Promise<FixResult> => {\n try {\n const defaults = generateContractsrcConfig({\n workspaceRoot: ctx.workspaceRoot,\n interactive: false,\n targets: [],\n });\n await fs.writeFile(configPath, formatJson(defaults));\n return { success: true, message: 'Created .contractsrc.json' };\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n return { success: false, message: `Failed to create: ${msg}` };\n }\n },\n },\n };\n}\n\n/**\n * Check if .contractsrc.json is valid JSON.\n */\nasync function checkContractsrcValid(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n const exists = await fs.exists(configPath);\n if (!exists) {\n return {\n category: 'config',\n name: 'Config Valid JSON',\n status: 'skip',\n message: 'Config file does not exist',\n };\n }\n\n try {\n const content = await fs.readFile(configPath);\n JSON.parse(content);\n\n return {\n category: 'config',\n name: 'Config Valid JSON',\n status: 'pass',\n message: '.contractsrc.json is valid JSON',\n };\n } catch (error) {\n const msg = error instanceof Error ? error.message : String(error);\n\n return {\n category: 'config',\n name: 'Config Valid JSON',\n status: 'fail',\n message: '.contractsrc.json is not valid JSON',\n details: msg,\n fix: {\n description: 'Replace with valid default config',\n apply: async (): Promise<FixResult> => {\n try {\n const defaults = generateContractsrcConfig({\n workspaceRoot: ctx.workspaceRoot,\n interactive: false,\n targets: [],\n });\n await fs.writeFile(configPath, formatJson(defaults));\n return { success: true, message: 'Replaced with valid config' };\n } catch (err) {\n const m = err instanceof Error ? err.message : String(err);\n return { success: false, message: `Failed: ${m}` };\n }\n },\n },\n };\n }\n}\n\n/**\n * Check required fields in .contractsrc.json.\n */\nasync function checkContractsrcFields(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n const exists = await fs.exists(configPath);\n if (!exists) {\n return {\n category: 'config',\n name: 'Config Fields',\n status: 'skip',\n message: 'Config file does not exist',\n };\n }\n\n try {\n const content = await fs.readFile(configPath);\n const config = JSON.parse(content) as Record<string, unknown>;\n\n const missingFields: string[] = [];\n\n // Check for recommended fields\n if (!config['outputDir']) {\n missingFields.push('outputDir');\n }\n if (!config['conventions']) {\n missingFields.push('conventions');\n }\n\n if (missingFields.length === 0) {\n return {\n category: 'config',\n name: 'Config Fields',\n status: 'pass',\n message: 'All recommended fields present',\n };\n }\n\n return {\n category: 'config',\n name: 'Config Fields',\n status: 'warn',\n message: `Missing recommended fields: ${missingFields.join(', ')}`,\n fix: {\n description: 'Add missing fields with defaults',\n apply: async (): Promise<FixResult> => {\n try {\n const defaults = generateContractsrcConfig({\n workspaceRoot: ctx.workspaceRoot,\n interactive: false,\n targets: [],\n }) as Record<string, unknown>;\n\n // Merge missing fields\n for (const field of missingFields) {\n if (defaults[field] !== undefined) {\n config[field] = defaults[field];\n }\n }\n\n await fs.writeFile(configPath, formatJson(config));\n return { success: true, message: 'Added missing fields' };\n } catch (err) {\n const m = err instanceof Error ? err.message : String(err);\n return { success: false, message: `Failed: ${m}` };\n }\n },\n },\n };\n } catch {\n return {\n category: 'config',\n name: 'Config Fields',\n status: 'skip',\n message: 'Could not parse config',\n };\n }\n}\n\n/**\n * Check if versioning configuration is present.\n */\nasync function checkVersioningConfig(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n const exists = await fs.exists(configPath);\n if (!exists) {\n return {\n category: 'config',\n name: 'Versioning Config',\n status: 'skip',\n message: 'Config file does not exist',\n };\n }\n\n try {\n const content = await fs.readFile(configPath);\n const config = JSON.parse(content) as Record<string, unknown>;\n\n if (config['versioning']) {\n const versioning = config['versioning'] as Record<string, unknown>;\n const hasChangesets = versioning['integrateWithChangesets'] === true;\n\n return {\n category: 'config',\n name: 'Versioning Config',\n status: 'pass',\n message: hasChangesets\n ? 'Versioning configured with Changesets integration'\n : 'Versioning configured',\n };\n }\n\n return {\n category: 'config',\n name: 'Versioning Config',\n status: 'warn',\n message: 'Versioning configuration not found',\n details:\n 'Consider adding versioning config for automated version bumps and changelog generation',\n fix: {\n description: 'Add versioning configuration with defaults',\n apply: async (): Promise<FixResult> => {\n try {\n config['versioning'] = {\n autoBump: false,\n bumpStrategy: 'impact',\n changelogTiers: ['spec', 'library', 'monorepo'],\n format: 'keep-a-changelog',\n commitChanges: false,\n createTags: false,\n integrateWithChangesets: true,\n };\n await fs.writeFile(configPath, formatJson(config));\n return { success: true, message: 'Added versioning configuration' };\n } catch (err) {\n const m = err instanceof Error ? err.message : String(err);\n return { success: false, message: `Failed: ${m}` };\n }\n },\n },\n };\n } catch {\n return {\n category: 'config',\n name: 'Versioning Config',\n status: 'skip',\n message: 'Could not parse config',\n };\n }\n}\n\n/**\n * Check if hooks configuration is present.\n */\nasync function checkHooksConfig(\n fs: FsAdapter,\n ctx: CheckContext\n): Promise<CheckResult> {\n const configPath = fs.join(ctx.workspaceRoot, '.contractsrc.json');\n\n const exists = await fs.exists(configPath);\n if (!exists) {\n return {\n category: 'config',\n name: 'Hooks Config',\n status: 'skip',\n message: 'Config file does not exist',\n };\n }\n\n try {\n const content = await fs.readFile(configPath);\n const config = JSON.parse(content) as Record<string, unknown>;\n\n if (config['hooks']) {\n const hooks = config['hooks'] as Record<string, unknown>;\n const hookCount = Object.keys(hooks).length;\n\n return {\n category: 'config',\n name: 'Hooks Config',\n status: 'pass',\n message: `${hookCount} git hook(s) configured`,\n };\n }\n\n // Check if husky is installed\n const huskyPath = fs.join(ctx.workspaceRoot, '.husky');\n const hasHusky = await fs.exists(huskyPath);\n\n if (hasHusky) {\n return {\n category: 'config',\n name: 'Hooks Config',\n status: 'warn',\n message: 'Husky detected but no hooks configured in .contractsrc.json',\n details: 'Add hooks config to run contractspec checks from git hooks',\n fix: {\n description: 'Add pre-commit hooks configuration',\n apply: async (): Promise<FixResult> => {\n try {\n config['hooks'] = {\n 'pre-commit': [\n 'contractspec validate **/*.operation.ts',\n 'contractspec integrity check',\n ],\n };\n await fs.writeFile(configPath, formatJson(config));\n return { success: true, message: 'Added hooks configuration' };\n } catch (err) {\n const m = err instanceof Error ? err.message : String(err);\n return { success: false, message: `Failed: ${m}` };\n }\n },\n },\n };\n }\n\n return {\n category: 'config',\n name: 'Hooks Config',\n status: 'pass',\n message: 'No hooks configured (optional)',\n };\n } catch {\n return {\n category: 'config',\n name: 'Hooks Config',\n status: 'skip',\n message: 'Could not parse config',\n };\n }\n}\n"],"mappings":";;;;;;;AAYA,eAAsB,gBACpB,IACA,KACwB;CACxB,MAAM,UAAyB,EAAE;AAGjC,SAAQ,KAAK,MAAM,uBAAuB,IAAI,IAAI,CAAC;AAGnD,SAAQ,KAAK,MAAM,sBAAsB,IAAI,IAAI,CAAC;AAGlD,SAAQ,KAAK,MAAM,uBAAuB,IAAI,IAAI,CAAC;AAGnD,SAAQ,KAAK,MAAM,sBAAsB,IAAI,IAAI,CAAC;AAGlD,SAAQ,KAAK,MAAM,iBAAiB,IAAI,IAAI,CAAC;AAE7C,QAAO;;;;;AAMT,eAAe,uBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAGlE,KADe,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACV;AAGH,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACT,KAAK;GACH,aAAa;GACb,OAAO,YAAgC;AACrC,QAAI;KACF,MAAM,WAAW,0BAA0B;MACzC,eAAe,IAAI;MACnB,aAAa;MACb,SAAS,EAAE;MACZ,CAAC;AACF,WAAM,GAAG,UAAU,YAAY,WAAW,SAAS,CAAC;AACpD,YAAO;MAAE,SAAS;MAAM,SAAS;MAA6B;aACvD,OAAO;AAEd,YAAO;MAAE,SAAS;MAAO,SAAS,qBADtB,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;MACJ;;;GAGnE;EACF;;;;;AAMH,eAAe,sBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAGlE,KAAI,CADW,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACV;AAGH,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;AAC7C,OAAK,MAAM,QAAQ;AAEnB,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;UACM,OAAO;AAGd,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACT,SAPU,iBAAiB,QAAQ,MAAM,UAAU,OAAO,MAAM;GAQhE,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;MACF,MAAM,WAAW,0BAA0B;OACzC,eAAe,IAAI;OACnB,aAAa;OACb,SAAS,EAAE;OACZ,CAAC;AACF,YAAM,GAAG,UAAU,YAAY,WAAW,SAAS,CAAC;AACpD,aAAO;OAAE,SAAS;OAAM,SAAS;OAA8B;cACxD,KAAK;AAEZ,aAAO;OAAE,SAAS;OAAO,SAAS,WADxB,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;OACR;;;IAGvD;GACF;;;;;;AAOL,eAAe,uBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAGlE,KAAI,CADW,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACV;AAGH,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;EAC7C,MAAM,SAAS,KAAK,MAAM,QAAQ;EAElC,MAAM,gBAA0B,EAAE;AAGlC,MAAI,CAAC,OAAO,aACV,eAAc,KAAK,YAAY;AAEjC,MAAI,CAAC,OAAO,eACV,eAAc,KAAK,cAAc;AAGnC,MAAI,cAAc,WAAW,EAC3B,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;AAGH,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS,+BAA+B,cAAc,KAAK,KAAK;GAChE,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;MACF,MAAM,WAAW,0BAA0B;OACzC,eAAe,IAAI;OACnB,aAAa;OACb,SAAS,EAAE;OACZ,CAAC;AAGF,WAAK,MAAM,SAAS,cAClB,KAAI,SAAS,WAAW,OACtB,QAAO,SAAS,SAAS;AAI7B,YAAM,GAAG,UAAU,YAAY,WAAW,OAAO,CAAC;AAClD,aAAO;OAAE,SAAS;OAAM,SAAS;OAAwB;cAClD,KAAK;AAEZ,aAAO;OAAE,SAAS;OAAO,SAAS,WADxB,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;OACR;;;IAGvD;GACF;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;;;;;;AAOL,eAAe,sBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAGlE,KAAI,CADW,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACV;AAGH,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;EAC7C,MAAM,SAAS,KAAK,MAAM,QAAQ;AAElC,MAAI,OAAO,cAIT,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAPiB,OAAO,cACO,+BAA+B,OAO1D,sDACA;GACL;AAGH,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACT,SACE;GACF,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;AACF,aAAO,gBAAgB;OACrB,UAAU;OACV,cAAc;OACd,gBAAgB;QAAC;QAAQ;QAAW;QAAW;OAC/C,QAAQ;OACR,eAAe;OACf,YAAY;OACZ,yBAAyB;OAC1B;AACD,YAAM,GAAG,UAAU,YAAY,WAAW,OAAO,CAAC;AAClD,aAAO;OAAE,SAAS;OAAM,SAAS;OAAkC;cAC5D,KAAK;AAEZ,aAAO;OAAE,SAAS;OAAO,SAAS,WADxB,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;OACR;;;IAGvD;GACF;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;;;;;;AAOL,eAAe,iBACb,IACA,KACsB;CACtB,MAAM,aAAa,GAAG,KAAK,IAAI,eAAe,oBAAoB;AAGlE,KAAI,CADW,MAAM,GAAG,OAAO,WAAW,CAExC,QAAO;EACL,UAAU;EACV,MAAM;EACN,QAAQ;EACR,SAAS;EACV;AAGH,KAAI;EACF,MAAM,UAAU,MAAM,GAAG,SAAS,WAAW;EAC7C,MAAM,SAAS,KAAK,MAAM,QAAQ;AAElC,MAAI,OAAO,UAAU;GACnB,MAAM,QAAQ,OAAO;AAGrB,UAAO;IACL,UAAU;IACV,MAAM;IACN,QAAQ;IACR,SAAS,GANO,OAAO,KAAK,MAAM,CAAC,OAMb;IACvB;;EAIH,MAAM,YAAY,GAAG,KAAK,IAAI,eAAe,SAAS;AAGtD,MAFiB,MAAM,GAAG,OAAO,UAAU,CAGzC,QAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACT,SAAS;GACT,KAAK;IACH,aAAa;IACb,OAAO,YAAgC;AACrC,SAAI;AACF,aAAO,WAAW,EAChB,cAAc,CACZ,2CACA,+BACD,EACF;AACD,YAAM,GAAG,UAAU,YAAY,WAAW,OAAO,CAAC;AAClD,aAAO;OAAE,SAAS;OAAM,SAAS;OAA6B;cACvD,KAAK;AAEZ,aAAO;OAAE,SAAS;OAAO,SAAS,WADxB,eAAe,QAAQ,IAAI,UAAU,OAAO,IAAI;OACR;;;IAGvD;GACF;AAGH,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV;SACK;AACN,SAAO;GACL,UAAU;GACV,MAAM;GACN,QAAQ;GACR,SAAS;GACV"}