@lssm/bundle.contractspec-workspace 1.41.1 → 1.42.1

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 (425) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +5 -2
  3. package/dist/_virtual/rolldown_runtime.js +36 -1
  4. package/dist/adapters/ai.d.ts +12 -0
  5. package/dist/adapters/ai.d.ts.map +1 -0
  6. package/dist/adapters/ai.js +83 -1
  7. package/dist/adapters/ai.js.map +1 -0
  8. package/dist/adapters/factory.d.ts +29 -0
  9. package/dist/adapters/factory.d.ts.map +1 -0
  10. package/dist/adapters/factory.js +37 -1
  11. package/dist/adapters/factory.js.map +1 -0
  12. package/dist/adapters/fs.d.ts +11 -0
  13. package/dist/adapters/fs.d.ts.map +1 -0
  14. package/dist/adapters/fs.js +131 -1
  15. package/dist/adapters/fs.js.map +1 -0
  16. package/dist/adapters/git.d.ts +11 -0
  17. package/dist/adapters/git.d.ts.map +1 -0
  18. package/dist/adapters/git.js +55 -1
  19. package/dist/adapters/git.js.map +1 -0
  20. package/dist/adapters/index.d.ts +7 -0
  21. package/dist/adapters/index.js +7 -1
  22. package/dist/adapters/logger.d.ts +18 -0
  23. package/dist/adapters/logger.d.ts.map +1 -0
  24. package/dist/adapters/logger.js +81 -1
  25. package/dist/adapters/logger.js.map +1 -0
  26. package/dist/adapters/watcher.d.ts +11 -0
  27. package/dist/adapters/watcher.d.ts.map +1 -0
  28. package/dist/adapters/watcher.js +74 -1
  29. package/dist/adapters/watcher.js.map +1 -0
  30. package/dist/adapters/workspace.d.ts +148 -0
  31. package/dist/adapters/workspace.d.ts.map +1 -0
  32. package/dist/adapters/workspace.js +275 -2
  33. package/dist/adapters/workspace.js.map +1 -0
  34. package/dist/ai/agents/claude-code-agent.d.ts +22 -0
  35. package/dist/ai/agents/claude-code-agent.d.ts.map +1 -0
  36. package/dist/ai/agents/claude-code-agent.js +147 -9
  37. package/dist/ai/agents/claude-code-agent.js.map +1 -0
  38. package/dist/ai/agents/cursor-agent.d.ts +68 -0
  39. package/dist/ai/agents/cursor-agent.d.ts.map +1 -0
  40. package/dist/ai/agents/cursor-agent.js +285 -17
  41. package/dist/ai/agents/cursor-agent.js.map +1 -0
  42. package/dist/ai/agents/index.js +5 -1
  43. package/dist/ai/agents/openai-codex-agent.d.ts +22 -0
  44. package/dist/ai/agents/openai-codex-agent.d.ts.map +1 -0
  45. package/dist/ai/agents/openai-codex-agent.js +141 -8
  46. package/dist/ai/agents/openai-codex-agent.js.map +1 -0
  47. package/dist/ai/agents/orchestrator.d.ts +50 -0
  48. package/dist/ai/agents/orchestrator.d.ts.map +1 -0
  49. package/dist/ai/agents/orchestrator.js +143 -1
  50. package/dist/ai/agents/orchestrator.js.map +1 -0
  51. package/dist/ai/agents/simple-agent.d.ts +17 -0
  52. package/dist/ai/agents/simple-agent.d.ts.map +1 -0
  53. package/dist/ai/agents/simple-agent.js +81 -4
  54. package/dist/ai/agents/simple-agent.js.map +1 -0
  55. package/dist/ai/agents/types.d.ts +36 -0
  56. package/dist/ai/agents/types.d.ts.map +1 -0
  57. package/dist/ai/client.d.ts +83 -0
  58. package/dist/ai/client.d.ts.map +1 -0
  59. package/dist/ai/client.js +163 -1
  60. package/dist/ai/client.js.map +1 -0
  61. package/dist/ai/index.d.ts +17 -0
  62. package/dist/ai/index.d.ts.map +1 -0
  63. package/dist/ai/index.js +28 -1
  64. package/dist/ai/index.js.map +1 -0
  65. package/dist/ai/prompts/code-generation.d.ts +26 -0
  66. package/dist/ai/prompts/code-generation.d.ts.map +1 -0
  67. package/dist/ai/prompts/code-generation.js +56 -13
  68. package/dist/ai/prompts/code-generation.js.map +1 -0
  69. package/dist/ai/prompts/index.d.ts +10 -0
  70. package/dist/ai/prompts/index.d.ts.map +1 -0
  71. package/dist/ai/prompts/index.js +13 -1
  72. package/dist/ai/prompts/index.js.map +1 -0
  73. package/dist/ai/prompts/spec-creation.d.ts +29 -0
  74. package/dist/ai/prompts/spec-creation.d.ts.map +1 -0
  75. package/dist/ai/prompts/spec-creation.js +62 -20
  76. package/dist/ai/prompts/spec-creation.js.map +1 -0
  77. package/dist/ai/providers.d.ts +29 -0
  78. package/dist/ai/providers.d.ts.map +1 -0
  79. package/dist/ai/providers.js +39 -1
  80. package/dist/ai/providers.js.map +1 -0
  81. package/dist/formatters/index.d.ts +11 -0
  82. package/dist/formatters/index.d.ts.map +1 -0
  83. package/dist/formatters/index.js +19 -1
  84. package/dist/formatters/index.js.map +1 -0
  85. package/dist/formatters/json.d.ts +89 -0
  86. package/dist/formatters/json.d.ts.map +1 -0
  87. package/dist/formatters/json.js +72 -1
  88. package/dist/formatters/json.js.map +1 -0
  89. package/dist/formatters/sarif.d.ts +101 -0
  90. package/dist/formatters/sarif.d.ts.map +1 -0
  91. package/dist/formatters/sarif.js +163 -1
  92. package/dist/formatters/sarif.js.map +1 -0
  93. package/dist/formatters/text.d.ts +35 -0
  94. package/dist/formatters/text.d.ts.map +1 -0
  95. package/dist/formatters/text.js +209 -2
  96. package/dist/formatters/text.js.map +1 -0
  97. package/dist/index.d.ts +82 -0
  98. package/dist/index.d.ts.map +1 -0
  99. package/dist/index.js +204 -1
  100. package/dist/index.js.map +1 -0
  101. package/dist/ports/ai.d.ts +59 -0
  102. package/dist/ports/ai.d.ts.map +1 -0
  103. package/dist/ports/fs.d.ts +81 -0
  104. package/dist/ports/fs.d.ts.map +1 -0
  105. package/dist/ports/git.d.ts +33 -0
  106. package/dist/ports/git.d.ts.map +1 -0
  107. package/dist/ports/index.d.ts +5 -0
  108. package/dist/ports/logger.d.ts +88 -0
  109. package/dist/ports/logger.d.ts.map +1 -0
  110. package/dist/ports/watcher.d.ts +52 -0
  111. package/dist/ports/watcher.d.ts.map +1 -0
  112. package/dist/services/agent-guide/adapters/claude-code.d.ts +35 -0
  113. package/dist/services/agent-guide/adapters/claude-code.d.ts.map +1 -0
  114. package/dist/services/agent-guide/adapters/claude-code.js +144 -3
  115. package/dist/services/agent-guide/adapters/claude-code.js.map +1 -0
  116. package/dist/services/agent-guide/adapters/cursor-cli.d.ts +39 -0
  117. package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +1 -0
  118. package/dist/services/agent-guide/adapters/cursor-cli.js +135 -3
  119. package/dist/services/agent-guide/adapters/cursor-cli.js.map +1 -0
  120. package/dist/services/agent-guide/adapters/generic-mcp.d.ts +53 -0
  121. package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +1 -0
  122. package/dist/services/agent-guide/adapters/generic-mcp.js +159 -3
  123. package/dist/services/agent-guide/adapters/generic-mcp.js.map +1 -0
  124. package/dist/services/agent-guide/adapters/index.d.ts +23 -0
  125. package/dist/services/agent-guide/adapters/index.d.ts.map +1 -0
  126. package/dist/services/agent-guide/adapters/index.js +31 -1
  127. package/dist/services/agent-guide/adapters/index.js.map +1 -0
  128. package/dist/services/agent-guide/agent-guide-service.d.ts +56 -0
  129. package/dist/services/agent-guide/agent-guide-service.d.ts.map +1 -0
  130. package/dist/services/agent-guide/agent-guide-service.js +147 -1
  131. package/dist/services/agent-guide/agent-guide-service.js.map +1 -0
  132. package/dist/services/agent-guide/index.d.ts +6 -0
  133. package/dist/services/agent-guide/index.js +5 -1
  134. package/dist/services/agent-guide/types.d.ts +58 -0
  135. package/dist/services/agent-guide/types.d.ts.map +1 -0
  136. package/dist/services/build.d.ts +59 -0
  137. package/dist/services/build.d.ts.map +1 -0
  138. package/dist/services/build.js +140 -1
  139. package/dist/services/build.js.map +1 -0
  140. package/dist/services/ci-check/ci-check-service.d.ts +16 -0
  141. package/dist/services/ci-check/ci-check-service.d.ts.map +1 -0
  142. package/dist/services/ci-check/ci-check-service.js +392 -1
  143. package/dist/services/ci-check/ci-check-service.js.map +1 -0
  144. package/dist/services/ci-check/index.d.ts +2 -0
  145. package/dist/services/ci-check/index.js +2 -1
  146. package/dist/services/ci-check/types.d.ts +143 -0
  147. package/dist/services/ci-check/types.d.ts.map +1 -0
  148. package/dist/services/ci-check/types.js +29 -1
  149. package/dist/services/ci-check/types.js.map +1 -0
  150. package/dist/services/clean.d.ts +41 -0
  151. package/dist/services/clean.d.ts.map +1 -0
  152. package/dist/services/clean.js +72 -1
  153. package/dist/services/clean.js.map +1 -0
  154. package/dist/services/config.d.ts +26 -0
  155. package/dist/services/config.d.ts.map +1 -0
  156. package/dist/services/config.js +77 -1
  157. package/dist/services/config.js.map +1 -0
  158. package/dist/services/deps.d.ts +53 -0
  159. package/dist/services/deps.d.ts.map +1 -0
  160. package/dist/services/deps.js +62 -1
  161. package/dist/services/deps.js.map +1 -0
  162. package/dist/services/diff.d.ts +34 -0
  163. package/dist/services/diff.d.ts.map +1 -0
  164. package/dist/services/diff.js +34 -1
  165. package/dist/services/diff.js.map +1 -0
  166. package/dist/services/doctor/checks/ai.js +119 -2
  167. package/dist/services/doctor/checks/ai.js.map +1 -0
  168. package/dist/services/doctor/checks/cli.js +147 -1
  169. package/dist/services/doctor/checks/cli.js.map +1 -0
  170. package/dist/services/doctor/checks/config.js +171 -1
  171. package/dist/services/doctor/checks/config.js.map +1 -0
  172. package/dist/services/doctor/checks/deps.js +247 -1
  173. package/dist/services/doctor/checks/deps.js.map +1 -0
  174. package/dist/services/doctor/checks/index.js +6 -1
  175. package/dist/services/doctor/checks/mcp.js +145 -1
  176. package/dist/services/doctor/checks/mcp.js.map +1 -0
  177. package/dist/services/doctor/checks/workspace.js +244 -1
  178. package/dist/services/doctor/checks/workspace.js.map +1 -0
  179. package/dist/services/doctor/doctor-service.d.ts +24 -0
  180. package/dist/services/doctor/doctor-service.d.ts.map +1 -0
  181. package/dist/services/doctor/doctor-service.js +116 -2
  182. package/dist/services/doctor/doctor-service.js.map +1 -0
  183. package/dist/services/doctor/index.d.ts +2 -0
  184. package/dist/services/doctor/index.js +2 -1
  185. package/dist/services/doctor/types.d.ts +118 -0
  186. package/dist/services/doctor/types.d.ts.map +1 -0
  187. package/dist/services/doctor/types.js +27 -1
  188. package/dist/services/doctor/types.js.map +1 -0
  189. package/dist/services/impact/formatters.d.ts +27 -0
  190. package/dist/services/impact/formatters.d.ts.map +1 -0
  191. package/dist/services/impact/formatters.js +111 -0
  192. package/dist/services/impact/formatters.js.map +1 -0
  193. package/dist/services/impact/impact-detection-service.d.ts +22 -0
  194. package/dist/services/impact/impact-detection-service.d.ts.map +1 -0
  195. package/dist/services/impact/impact-detection-service.js +96 -0
  196. package/dist/services/impact/impact-detection-service.js.map +1 -0
  197. package/dist/services/impact/index.d.ts +11 -0
  198. package/dist/services/impact/index.d.ts.map +1 -0
  199. package/dist/services/impact/index.js +16 -0
  200. package/dist/services/impact/index.js.map +1 -0
  201. package/dist/services/impact/types.d.ts +58 -0
  202. package/dist/services/impact/types.d.ts.map +1 -0
  203. package/dist/services/implementation/discovery.d.ts +30 -0
  204. package/dist/services/implementation/discovery.d.ts.map +1 -0
  205. package/dist/services/implementation/discovery.js +144 -2
  206. package/dist/services/implementation/discovery.js.map +1 -0
  207. package/dist/services/implementation/index.d.ts +3 -0
  208. package/dist/services/implementation/index.js +2 -1
  209. package/dist/services/implementation/resolver.d.ts +44 -0
  210. package/dist/services/implementation/resolver.d.ts.map +1 -0
  211. package/dist/services/implementation/resolver.js +224 -1
  212. package/dist/services/implementation/resolver.js.map +1 -0
  213. package/dist/services/implementation/types.d.ts +79 -0
  214. package/dist/services/implementation/types.d.ts.map +1 -0
  215. package/dist/services/index.d.ts +60 -0
  216. package/dist/services/index.js +57 -1
  217. package/dist/services/integrity-diagram.d.ts +36 -0
  218. package/dist/services/integrity-diagram.d.ts.map +1 -0
  219. package/dist/services/integrity-diagram.js +275 -6
  220. package/dist/services/integrity-diagram.js.map +1 -0
  221. package/dist/services/integrity.d.ts +134 -0
  222. package/dist/services/integrity.d.ts.map +1 -0
  223. package/dist/services/integrity.js +272 -1
  224. package/dist/services/integrity.js.map +1 -0
  225. package/dist/services/list.d.ts +31 -0
  226. package/dist/services/list.d.ts.map +1 -0
  227. package/dist/services/list.js +36 -1
  228. package/dist/services/list.js.map +1 -0
  229. package/dist/services/openapi/export-service.d.ts +53 -0
  230. package/dist/services/openapi/export-service.d.ts.map +1 -0
  231. package/dist/services/openapi/export-service.js +50 -2
  232. package/dist/services/openapi/export-service.js.map +1 -0
  233. package/dist/services/openapi/import-service.d.ts +17 -0
  234. package/dist/services/openapi/import-service.d.ts.map +1 -0
  235. package/dist/services/openapi/import-service.js +74 -1
  236. package/dist/services/openapi/import-service.js.map +1 -0
  237. package/dist/services/openapi/index.d.ts +5 -0
  238. package/dist/services/openapi/index.js +4 -1
  239. package/dist/services/openapi/sync-service.d.ts +17 -0
  240. package/dist/services/openapi/sync-service.d.ts.map +1 -0
  241. package/dist/services/openapi/sync-service.js +120 -1
  242. package/dist/services/openapi/sync-service.js.map +1 -0
  243. package/dist/services/openapi/types.d.ts +162 -0
  244. package/dist/services/openapi/types.d.ts.map +1 -0
  245. package/dist/services/openapi/validate-service.d.ts +16 -0
  246. package/dist/services/openapi/validate-service.d.ts.map +1 -0
  247. package/dist/services/openapi/validate-service.js +130 -1
  248. package/dist/services/openapi/validate-service.js.map +1 -0
  249. package/dist/services/quickstart/dependencies.d.ts +31 -0
  250. package/dist/services/quickstart/dependencies.d.ts.map +1 -0
  251. package/dist/services/quickstart/dependencies.js +57 -0
  252. package/dist/services/quickstart/dependencies.js.map +1 -0
  253. package/dist/services/quickstart/index.js +2 -0
  254. package/dist/services/quickstart/quickstart-service.d.ts +20 -0
  255. package/dist/services/quickstart/quickstart-service.d.ts.map +1 -0
  256. package/dist/services/quickstart/quickstart-service.js +196 -0
  257. package/dist/services/quickstart/quickstart-service.js.map +1 -0
  258. package/dist/services/quickstart/types.d.ts +81 -0
  259. package/dist/services/quickstart/types.d.ts.map +1 -0
  260. package/dist/services/regenerator.d.ts +18 -0
  261. package/dist/services/regenerator.d.ts.map +1 -0
  262. package/dist/services/regenerator.js +23 -1
  263. package/dist/services/regenerator.js.map +1 -0
  264. package/dist/services/registry.d.ts +53 -0
  265. package/dist/services/registry.d.ts.map +1 -0
  266. package/dist/services/registry.js +74 -1
  267. package/dist/services/registry.js.map +1 -0
  268. package/dist/services/setup/config-generators.d.ts +42 -0
  269. package/dist/services/setup/config-generators.d.ts.map +1 -0
  270. package/dist/services/setup/config-generators.js +114 -26
  271. package/dist/services/setup/config-generators.js.map +1 -0
  272. package/dist/services/setup/file-merger.d.ts +27 -0
  273. package/dist/services/setup/file-merger.d.ts.map +1 -0
  274. package/dist/services/setup/file-merger.js +61 -2
  275. package/dist/services/setup/file-merger.js.map +1 -0
  276. package/dist/services/setup/index.js +4 -1
  277. package/dist/services/setup/setup-service.d.ts +12 -0
  278. package/dist/services/setup/setup-service.d.ts.map +1 -0
  279. package/dist/services/setup/setup-service.js +96 -1
  280. package/dist/services/setup/setup-service.js.map +1 -0
  281. package/dist/services/setup/targets/agents-md.js +47 -1
  282. package/dist/services/setup/targets/agents-md.js.map +1 -0
  283. package/dist/services/setup/targets/cli-config.js +60 -1
  284. package/dist/services/setup/targets/cli-config.js.map +1 -0
  285. package/dist/services/setup/targets/cursor-rules.js +48 -1
  286. package/dist/services/setup/targets/cursor-rules.js.map +1 -0
  287. package/dist/services/setup/targets/mcp-claude.js +60 -1
  288. package/dist/services/setup/targets/mcp-claude.js.map +1 -0
  289. package/dist/services/setup/targets/mcp-cursor.js +59 -1
  290. package/dist/services/setup/targets/mcp-cursor.js.map +1 -0
  291. package/dist/services/setup/targets/vscode-settings.js +63 -1
  292. package/dist/services/setup/targets/vscode-settings.js.map +1 -0
  293. package/dist/services/setup/types.d.ts +85 -0
  294. package/dist/services/setup/types.d.ts.map +1 -0
  295. package/dist/services/setup/types.js +27 -1
  296. package/dist/services/setup/types.js.map +1 -0
  297. package/dist/services/sync.d.ts +41 -0
  298. package/dist/services/sync.d.ts.map +1 -0
  299. package/dist/services/sync.js +63 -1
  300. package/dist/services/sync.js.map +1 -0
  301. package/dist/services/test.d.ts +15 -0
  302. package/dist/services/test.d.ts.map +1 -0
  303. package/dist/services/test.js +30 -1
  304. package/dist/services/test.js.map +1 -0
  305. package/dist/services/validate-implementation.d.ts +32 -0
  306. package/dist/services/validate-implementation.d.ts.map +1 -0
  307. package/dist/services/validate-implementation.js +70 -1
  308. package/dist/services/validate-implementation.js.map +1 -0
  309. package/dist/services/validate.d.ts +41 -0
  310. package/dist/services/validate.d.ts.map +1 -0
  311. package/dist/services/validate.js +48 -1
  312. package/dist/services/validate.js.map +1 -0
  313. package/dist/services/verification-cache/adapters/filesystem.d.ts +46 -0
  314. package/dist/services/verification-cache/adapters/filesystem.d.ts.map +1 -0
  315. package/dist/services/verification-cache/adapters/filesystem.js +120 -1
  316. package/dist/services/verification-cache/adapters/filesystem.js.map +1 -0
  317. package/dist/services/verification-cache/adapters/in-memory.d.ts +27 -0
  318. package/dist/services/verification-cache/adapters/in-memory.d.ts.map +1 -0
  319. package/dist/services/verification-cache/adapters/in-memory.js +46 -1
  320. package/dist/services/verification-cache/adapters/in-memory.js.map +1 -0
  321. package/dist/services/verification-cache/adapters/index.d.ts +3 -0
  322. package/dist/services/verification-cache/adapters/index.js +3 -1
  323. package/dist/services/verification-cache/adapters/workspace-state.d.ts +49 -0
  324. package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +1 -0
  325. package/dist/services/verification-cache/adapters/workspace-state.js +91 -1
  326. package/dist/services/verification-cache/adapters/workspace-state.js.map +1 -0
  327. package/dist/services/verification-cache/cache-service.d.ts +70 -0
  328. package/dist/services/verification-cache/cache-service.d.ts.map +1 -0
  329. package/dist/services/verification-cache/cache-service.js +256 -1
  330. package/dist/services/verification-cache/cache-service.js.map +1 -0
  331. package/dist/services/verification-cache/index.d.ts +6 -0
  332. package/dist/services/verification-cache/index.js +6 -1
  333. package/dist/services/verification-cache/types.d.ts +124 -0
  334. package/dist/services/verification-cache/types.d.ts.map +1 -0
  335. package/dist/services/verification-cache/types.js +16 -1
  336. package/dist/services/verification-cache/types.js.map +1 -0
  337. package/dist/services/verify/ai-verifier.d.ts +25 -0
  338. package/dist/services/verify/ai-verifier.d.ts.map +1 -0
  339. package/dist/services/verify/ai-verifier.js +336 -9
  340. package/dist/services/verify/ai-verifier.js.map +1 -0
  341. package/dist/services/verify/behavior-verifier.d.ts +12 -0
  342. package/dist/services/verify/behavior-verifier.d.ts.map +1 -0
  343. package/dist/services/verify/behavior-verifier.js +186 -1
  344. package/dist/services/verify/behavior-verifier.js.map +1 -0
  345. package/dist/services/verify/index.d.ts +5 -0
  346. package/dist/services/verify/index.js +4 -1
  347. package/dist/services/verify/structure-verifier.d.ts +12 -0
  348. package/dist/services/verify/structure-verifier.d.ts.map +1 -0
  349. package/dist/services/verify/structure-verifier.js +196 -2
  350. package/dist/services/verify/structure-verifier.js.map +1 -0
  351. package/dist/services/verify/types.d.ts +137 -0
  352. package/dist/services/verify/types.d.ts.map +1 -0
  353. package/dist/services/verify/verify-service.d.ts +60 -0
  354. package/dist/services/verify/verify-service.d.ts.map +1 -0
  355. package/dist/services/verify/verify-service.js +204 -3
  356. package/dist/services/verify/verify-service.js.map +1 -0
  357. package/dist/services/watch.d.ts +25 -0
  358. package/dist/services/watch.d.ts.map +1 -0
  359. package/dist/services/watch.js +32 -1
  360. package/dist/services/watch.js.map +1 -0
  361. package/dist/services/workspace-info.d.ts +62 -0
  362. package/dist/services/workspace-info.d.ts.map +1 -0
  363. package/dist/services/workspace-info.js +103 -2
  364. package/dist/services/workspace-info.js.map +1 -0
  365. package/dist/templates/app-config.template.d.ts +7 -0
  366. package/dist/templates/app-config.template.d.ts.map +1 -0
  367. package/dist/templates/app-config.template.js +102 -28
  368. package/dist/templates/app-config.template.js.map +1 -0
  369. package/dist/templates/data-view.template.d.ts +7 -0
  370. package/dist/templates/data-view.template.d.ts.map +1 -0
  371. package/dist/templates/data-view.template.js +43 -27
  372. package/dist/templates/data-view.template.js.map +1 -0
  373. package/dist/templates/event.template.d.ts +11 -0
  374. package/dist/templates/event.template.d.ts.map +1 -0
  375. package/dist/templates/event.template.js +30 -14
  376. package/dist/templates/event.template.js.map +1 -0
  377. package/dist/templates/experiment.template.d.ts +7 -0
  378. package/dist/templates/experiment.template.d.ts.map +1 -0
  379. package/dist/templates/experiment.template.js +78 -51
  380. package/dist/templates/experiment.template.js.map +1 -0
  381. package/dist/templates/handler.template.d.ts +16 -0
  382. package/dist/templates/handler.template.d.ts.map +1 -0
  383. package/dist/templates/handler.template.js +54 -17
  384. package/dist/templates/handler.template.js.map +1 -0
  385. package/dist/templates/index.d.ts +21 -0
  386. package/dist/templates/index.d.ts.map +1 -0
  387. package/dist/templates/index.js +37 -1
  388. package/dist/templates/index.js.map +1 -0
  389. package/dist/templates/integration.template.d.ts +7 -0
  390. package/dist/templates/integration.template.d.ts.map +1 -0
  391. package/dist/templates/integration.template.js +135 -50
  392. package/dist/templates/integration.template.js.map +1 -0
  393. package/dist/templates/knowledge.template.d.ts +7 -0
  394. package/dist/templates/knowledge.template.d.ts.map +1 -0
  395. package/dist/templates/knowledge.template.js +63 -21
  396. package/dist/templates/knowledge.template.js.map +1 -0
  397. package/dist/templates/migration.template.d.ts +7 -0
  398. package/dist/templates/migration.template.d.ts.map +1 -0
  399. package/dist/templates/migration.template.js +51 -26
  400. package/dist/templates/migration.template.js.map +1 -0
  401. package/dist/templates/operation.template.d.ts +11 -0
  402. package/dist/templates/operation.template.d.ts.map +1 -0
  403. package/dist/templates/operation.template.js +45 -28
  404. package/dist/templates/operation.template.js.map +1 -0
  405. package/dist/templates/presentation.template.d.ts +11 -0
  406. package/dist/templates/presentation.template.d.ts.map +1 -0
  407. package/dist/templates/presentation.template.js +47 -20
  408. package/dist/templates/presentation.template.js.map +1 -0
  409. package/dist/templates/telemetry.template.d.ts +7 -0
  410. package/dist/templates/telemetry.template.d.ts.map +1 -0
  411. package/dist/templates/telemetry.template.js +75 -53
  412. package/dist/templates/telemetry.template.js.map +1 -0
  413. package/dist/templates/workflow-runner.template.d.ts +16 -0
  414. package/dist/templates/workflow-runner.template.d.ts.map +1 -0
  415. package/dist/templates/workflow-runner.template.js +13 -6
  416. package/dist/templates/workflow-runner.template.js.map +1 -0
  417. package/dist/templates/workflow.template.d.ts +7 -0
  418. package/dist/templates/workflow.template.d.ts.map +1 -0
  419. package/dist/templates/workflow.template.js +52 -24
  420. package/dist/templates/workflow.template.js.map +1 -0
  421. package/dist/types/config.d.ts +34 -0
  422. package/dist/types/config.d.ts.map +1 -0
  423. package/dist/types.d.ts +324 -0
  424. package/dist/types.d.ts.map +1 -0
  425. package/package.json +27 -15
@@ -1 +1,163 @@
1
- const e={"spec-structure-error":{name:`Spec Structure Error`,description:`Contract specification is missing required structure elements`},"spec-structure-warning":{name:`Spec Structure Warning`,description:`Contract specification has recommended but missing elements`},"integrity-orphaned":{name:`Orphaned Spec`,description:`Contract specification is not linked to any feature`},"integrity-unresolved-ref":{name:`Unresolved Reference`,description:`Contract specification references a non-existent spec`},"integrity-missing-feature":{name:`Missing Feature`,description:`Feature referenced by spec does not exist`},"integrity-broken-link":{name:`Broken Link`,description:`Link between specs is broken`},"deps-circular":{name:`Circular Dependency`,description:`Circular dependency detected between contracts`},"deps-missing":{name:`Missing Dependency`,description:`Contract depends on a non-existent contract`},"handler-missing":{name:`Missing Handler`,description:`Handler implementation file does not exist for this contract`},"handler-warning":{name:`Handler Warning`,description:`Handler implementation has potential issues`},"test-missing":{name:`Missing Test`,description:`Test file does not exist for this contract`},"test-warning":{name:`Test Warning`,description:`Test implementation has potential issues`}};function t(t,a={}){let{toolName:o=`ContractSpec`,toolVersion:s=`1.0.0`,toolUri:c=`https://contractspec.dev`,repositoryUri:l,workingDirectory:u}=a,d=new Map,f=new Map;for(let r of t.issues)if(!d.has(r.ruleId)){let t=e[r.ruleId]??{name:r.ruleId,description:`Rule: ${r.ruleId}`},i={id:r.ruleId,name:t.name,shortDescription:{text:t.description},defaultConfiguration:{level:n(r.severity)}};t.helpUri&&(i.helpUri=t.helpUri),f.set(r.ruleId,d.size),d.set(r.ruleId,i)}let p=t.issues.map(e=>{let t={ruleId:e.ruleId,ruleIndex:f.get(e.ruleId)??0,level:n(e.severity),message:{text:e.message}};if(e.file){let n={physicalLocation:{artifactLocation:{uri:r(e.file),uriBaseId:`%SRCROOT%`}}};e.line!==void 0&&(n.physicalLocation.region={startLine:e.line,startColumn:e.column??1,endLine:e.endLine??e.line,endColumn:e.endColumn}),t.locations=[n]}return t.partialFingerprints={primaryLocationLineHash:i(e)},t}),m=[];(l||t.commitSha||t.branch)&&m.push({repositoryUri:l,revisionId:t.commitSha,branch:t.branch});let h={tool:{driver:{name:o,version:s,informationUri:c,rules:Array.from(d.values())}},results:p,invocations:[{executionSuccessful:t.success,endTimeUtc:t.timestamp,...u&&{workingDirectory:{uri:u}}}]};return m.length>0&&(h.versionControlProvenance=m),{$schema:`https://json.schemastore.org/sarif-2.1.0.json`,version:`2.1.0`,runs:[h]}}function n(e){switch(e){case`error`:return`error`;case`warning`:return`warning`;case`note`:return`note`;default:return`warning`}}function r(e){return e.replace(/^\.\//,``).replace(/\\/g,`/`)}function i(e){let t=[e.ruleId,e.file??``,e.message];return Buffer.from(t.join(`|`)).toString(`base64`).slice(0,16)}function a(e){return JSON.stringify(e,null,2)}export{t as formatAsSarif,a as sarifToJson};
1
+ //#region src/formatters/sarif.ts
2
+ /**
3
+ * Map of rule IDs to their metadata.
4
+ */
5
+ const RULE_METADATA = {
6
+ "spec-structure-error": {
7
+ name: "Spec Structure Error",
8
+ description: "Contract specification is missing required structure elements"
9
+ },
10
+ "spec-structure-warning": {
11
+ name: "Spec Structure Warning",
12
+ description: "Contract specification has recommended but missing elements"
13
+ },
14
+ "integrity-orphaned": {
15
+ name: "Orphaned Spec",
16
+ description: "Contract specification is not linked to any feature"
17
+ },
18
+ "integrity-unresolved-ref": {
19
+ name: "Unresolved Reference",
20
+ description: "Contract specification references a non-existent spec"
21
+ },
22
+ "integrity-missing-feature": {
23
+ name: "Missing Feature",
24
+ description: "Feature referenced by spec does not exist"
25
+ },
26
+ "integrity-broken-link": {
27
+ name: "Broken Link",
28
+ description: "Link between specs is broken"
29
+ },
30
+ "deps-circular": {
31
+ name: "Circular Dependency",
32
+ description: "Circular dependency detected between contracts"
33
+ },
34
+ "deps-missing": {
35
+ name: "Missing Dependency",
36
+ description: "Contract depends on a non-existent contract"
37
+ },
38
+ "handler-missing": {
39
+ name: "Missing Handler",
40
+ description: "Handler implementation file does not exist for this contract"
41
+ },
42
+ "handler-warning": {
43
+ name: "Handler Warning",
44
+ description: "Handler implementation has potential issues"
45
+ },
46
+ "test-missing": {
47
+ name: "Missing Test",
48
+ description: "Test file does not exist for this contract"
49
+ },
50
+ "test-warning": {
51
+ name: "Test Warning",
52
+ description: "Test implementation has potential issues"
53
+ }
54
+ };
55
+ /**
56
+ * Format CI check results as SARIF.
57
+ */
58
+ function formatAsSarif(result, options = {}) {
59
+ const { toolName = "ContractSpec", toolVersion = "1.0.0", toolUri = "https://contractspec.lssm.tech", repositoryUri, workingDirectory } = options;
60
+ const ruleMap = /* @__PURE__ */ new Map();
61
+ const ruleIndexMap = /* @__PURE__ */ new Map();
62
+ const issuesWithFiles = result.issues.filter((issue) => issue.file);
63
+ for (const issue of issuesWithFiles) if (!ruleMap.has(issue.ruleId)) {
64
+ const metadata = RULE_METADATA[issue.ruleId] ?? {
65
+ name: issue.ruleId,
66
+ description: `Rule: ${issue.ruleId}`
67
+ };
68
+ const rule = {
69
+ id: issue.ruleId,
70
+ name: metadata.name,
71
+ shortDescription: { text: metadata.description },
72
+ defaultConfiguration: { level: mapSeverityToLevel(issue.severity) }
73
+ };
74
+ if (metadata.helpUri) rule.helpUri = metadata.helpUri;
75
+ ruleIndexMap.set(issue.ruleId, ruleMap.size);
76
+ ruleMap.set(issue.ruleId, rule);
77
+ }
78
+ const results = issuesWithFiles.map((issue) => {
79
+ const sarifResult = {
80
+ ruleId: issue.ruleId,
81
+ ruleIndex: ruleIndexMap.get(issue.ruleId) ?? 0,
82
+ level: mapSeverityToLevel(issue.severity),
83
+ message: { text: issue.message }
84
+ };
85
+ const location = { physicalLocation: { artifactLocation: {
86
+ uri: normalizeUri(issue.file),
87
+ uriBaseId: "%SRCROOT%"
88
+ } } };
89
+ if (issue.line !== void 0) location.physicalLocation.region = {
90
+ startLine: issue.line,
91
+ startColumn: issue.column ?? 1,
92
+ endLine: issue.endLine ?? issue.line,
93
+ endColumn: issue.endColumn
94
+ };
95
+ sarifResult.locations = [location];
96
+ sarifResult.partialFingerprints = { primaryLocationLineHash: createFingerprint(issue) };
97
+ return sarifResult;
98
+ });
99
+ const versionControlProvenance = [];
100
+ if (repositoryUri) versionControlProvenance.push({
101
+ repositoryUri,
102
+ revisionId: result.commitSha,
103
+ branch: result.branch
104
+ });
105
+ const run = {
106
+ tool: { driver: {
107
+ name: toolName,
108
+ version: toolVersion,
109
+ informationUri: toolUri,
110
+ rules: Array.from(ruleMap.values())
111
+ } },
112
+ results,
113
+ invocations: [{
114
+ executionSuccessful: result.success,
115
+ endTimeUtc: result.timestamp,
116
+ ...workingDirectory && { workingDirectory: { uri: workingDirectory } }
117
+ }]
118
+ };
119
+ if (versionControlProvenance.length > 0) run.versionControlProvenance = versionControlProvenance;
120
+ return {
121
+ $schema: "https://json.schemastore.org/sarif-2.1.0.json",
122
+ version: "2.1.0",
123
+ runs: [run]
124
+ };
125
+ }
126
+ /**
127
+ * Map CI severity to SARIF level.
128
+ */
129
+ function mapSeverityToLevel(severity) {
130
+ switch (severity) {
131
+ case "error": return "error";
132
+ case "warning": return "warning";
133
+ case "note": return "note";
134
+ default: return "warning";
135
+ }
136
+ }
137
+ /**
138
+ * Normalize file path to SARIF URI format.
139
+ */
140
+ function normalizeUri(filePath) {
141
+ return filePath.replace(/^\.\//, "").replace(/\\/g, "/");
142
+ }
143
+ /**
144
+ * Create a fingerprint for issue deduplication.
145
+ */
146
+ function createFingerprint(issue) {
147
+ const parts = [
148
+ issue.ruleId,
149
+ issue.file ?? "",
150
+ issue.message
151
+ ];
152
+ return Buffer.from(parts.join("|")).toString("base64").slice(0, 16);
153
+ }
154
+ /**
155
+ * Serialize SARIF output to JSON string.
156
+ */
157
+ function sarifToJson(sarif) {
158
+ return JSON.stringify(sarif, null, 2);
159
+ }
160
+
161
+ //#endregion
162
+ export { formatAsSarif, sarifToJson };
163
+ //# sourceMappingURL=sarif.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sarif.js","names":["RULE_METADATA: Record<\n string,\n { name: string; description: string; helpUri?: string }\n>","rule: SarifRule","results: SarifResult[]","sarifResult: SarifResult","location: SarifLocation","versionControlProvenance: SarifVersionControl[]","run: SarifRun"],"sources":["../../src/formatters/sarif.ts"],"sourcesContent":["/**\n * SARIF output formatter.\n *\n * Formats CI check results as SARIF (Static Analysis Results Interchange Format)\n * for integration with GitHub Code Scanning and other security tools.\n *\n * SARIF Specification: https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html\n */\n\nimport type {\n CICheckResult,\n CIIssue,\n CIIssueSeverity,\n} from '../services/ci-check/types';\n\n/**\n * SARIF v2.1.0 output structure.\n */\nexport interface SarifOutput {\n $schema: string;\n version: string;\n runs: SarifRun[];\n}\n\ninterface SarifRun {\n tool: {\n driver: {\n name: string;\n version: string;\n informationUri: string;\n rules: SarifRule[];\n };\n };\n results: SarifResult[];\n invocations: SarifInvocation[];\n versionControlProvenance?: SarifVersionControl[];\n}\n\ninterface SarifRule {\n id: string;\n name: string;\n shortDescription: { text: string };\n fullDescription?: { text: string };\n defaultConfiguration: {\n level: 'error' | 'warning' | 'note' | 'none';\n };\n helpUri?: string;\n}\n\ninterface SarifResult {\n ruleId: string;\n ruleIndex: number;\n level: 'error' | 'warning' | 'note' | 'none';\n message: { text: string };\n locations?: SarifLocation[];\n partialFingerprints?: Record<string, string>;\n}\n\ninterface SarifLocation {\n physicalLocation: {\n artifactLocation: {\n uri: string;\n uriBaseId?: string;\n };\n region?: {\n startLine?: number;\n startColumn?: number;\n endLine?: number;\n endColumn?: number;\n };\n };\n}\n\ninterface SarifInvocation {\n executionSuccessful: boolean;\n endTimeUtc: string;\n workingDirectory?: { uri: string };\n}\n\ninterface SarifVersionControl {\n repositoryUri?: string;\n revisionId?: string;\n branch?: string;\n}\n\n/**\n * Options for SARIF formatting.\n */\nexport interface SarifFormatOptions {\n /** Tool name. */\n toolName?: string;\n /** Tool version. */\n toolVersion?: string;\n /** Tool information URI. */\n toolUri?: string;\n /** Repository URI for version control provenance. */\n repositoryUri?: string;\n /** Working directory. */\n workingDirectory?: string;\n}\n\n/**\n * Map of rule IDs to their metadata.\n */\nconst RULE_METADATA: Record<\n string,\n { name: string; description: string; helpUri?: string }\n> = {\n 'spec-structure-error': {\n name: 'Spec Structure Error',\n description:\n 'Contract specification is missing required structure elements',\n },\n 'spec-structure-warning': {\n name: 'Spec Structure Warning',\n description: 'Contract specification has recommended but missing elements',\n },\n 'integrity-orphaned': {\n name: 'Orphaned Spec',\n description: 'Contract specification is not linked to any feature',\n },\n 'integrity-unresolved-ref': {\n name: 'Unresolved Reference',\n description: 'Contract specification references a non-existent spec',\n },\n 'integrity-missing-feature': {\n name: 'Missing Feature',\n description: 'Feature referenced by spec does not exist',\n },\n 'integrity-broken-link': {\n name: 'Broken Link',\n description: 'Link between specs is broken',\n },\n 'deps-circular': {\n name: 'Circular Dependency',\n description: 'Circular dependency detected between contracts',\n },\n 'deps-missing': {\n name: 'Missing Dependency',\n description: 'Contract depends on a non-existent contract',\n },\n 'handler-missing': {\n name: 'Missing Handler',\n description: 'Handler implementation file does not exist for this contract',\n },\n 'handler-warning': {\n name: 'Handler Warning',\n description: 'Handler implementation has potential issues',\n },\n 'test-missing': {\n name: 'Missing Test',\n description: 'Test file does not exist for this contract',\n },\n 'test-warning': {\n name: 'Test Warning',\n description: 'Test implementation has potential issues',\n },\n};\n\n/**\n * Format CI check results as SARIF.\n */\nexport function formatAsSarif(\n result: CICheckResult,\n options: SarifFormatOptions = {}\n): SarifOutput {\n const {\n toolName = 'ContractSpec',\n toolVersion = '1.0.0',\n toolUri = 'https://contractspec.lssm.tech',\n repositoryUri,\n workingDirectory,\n } = options;\n\n // Collect unique rules from issues (only from issues with files)\n const ruleMap = new Map<string, SarifRule>();\n const ruleIndexMap = new Map<string, number>();\n\n // Only collect rules from issues that have files (these are the ones that will be in results)\n const issuesWithFiles = result.issues.filter((issue) => issue.file);\n\n for (const issue of issuesWithFiles) {\n if (!ruleMap.has(issue.ruleId)) {\n const metadata = RULE_METADATA[issue.ruleId] ?? {\n name: issue.ruleId,\n description: `Rule: ${issue.ruleId}`,\n };\n\n const rule: SarifRule = {\n id: issue.ruleId,\n name: metadata.name,\n shortDescription: { text: metadata.description },\n defaultConfiguration: {\n level: mapSeverityToLevel(issue.severity),\n },\n };\n\n if (metadata.helpUri) {\n rule.helpUri = metadata.helpUri;\n }\n\n ruleIndexMap.set(issue.ruleId, ruleMap.size);\n ruleMap.set(issue.ruleId, rule);\n }\n }\n\n // Convert issues to SARIF results (only issues with file locations)\n // GitHub Code Scanning requires every result to have at least one location\n const results: SarifResult[] = issuesWithFiles.map((issue) => {\n const sarifResult: SarifResult = {\n ruleId: issue.ruleId,\n ruleIndex: ruleIndexMap.get(issue.ruleId) ?? 0,\n level: mapSeverityToLevel(issue.severity),\n message: { text: issue.message },\n };\n\n // issue.file is guaranteed to be defined due to the filter above\n const location: SarifLocation = {\n physicalLocation: {\n artifactLocation: {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n uri: normalizeUri(issue.file!),\n uriBaseId: '%SRCROOT%',\n },\n },\n };\n\n if (issue.line !== undefined) {\n location.physicalLocation.region = {\n startLine: issue.line,\n startColumn: issue.column ?? 1,\n endLine: issue.endLine ?? issue.line,\n endColumn: issue.endColumn,\n };\n }\n\n sarifResult.locations = [location];\n\n // Add fingerprint for deduplication\n sarifResult.partialFingerprints = {\n primaryLocationLineHash: createFingerprint(issue),\n };\n\n return sarifResult;\n });\n\n // Build version control provenance (only if repositoryUri is provided, as it's required by SARIF schema)\n const versionControlProvenance: SarifVersionControl[] = [];\n if (repositoryUri) {\n versionControlProvenance.push({\n repositoryUri,\n revisionId: result.commitSha,\n branch: result.branch,\n });\n }\n\n const run: SarifRun = {\n tool: {\n driver: {\n name: toolName,\n version: toolVersion,\n informationUri: toolUri,\n rules: Array.from(ruleMap.values()),\n },\n },\n results,\n invocations: [\n {\n executionSuccessful: result.success,\n endTimeUtc: result.timestamp,\n ...(workingDirectory && {\n workingDirectory: { uri: workingDirectory },\n }),\n },\n ],\n };\n\n if (versionControlProvenance.length > 0) {\n run.versionControlProvenance = versionControlProvenance;\n }\n\n return {\n $schema: 'https://json.schemastore.org/sarif-2.1.0.json',\n version: '2.1.0',\n runs: [run],\n };\n}\n\n/**\n * Map CI severity to SARIF level.\n */\nfunction mapSeverityToLevel(\n severity: CIIssueSeverity\n): 'error' | 'warning' | 'note' {\n switch (severity) {\n case 'error':\n return 'error';\n case 'warning':\n return 'warning';\n case 'note':\n return 'note';\n default:\n return 'warning';\n }\n}\n\n/**\n * Normalize file path to SARIF URI format.\n */\nfunction normalizeUri(filePath: string): string {\n // Remove leading ./ and normalize path separators\n return filePath.replace(/^\\.\\//, '').replace(/\\\\/g, '/');\n}\n\n/**\n * Create a fingerprint for issue deduplication.\n */\nfunction createFingerprint(issue: CIIssue): string {\n const parts = [issue.ruleId, issue.file ?? '', issue.message];\n return Buffer.from(parts.join('|')).toString('base64').slice(0, 16);\n}\n\n/**\n * Serialize SARIF output to JSON string.\n */\nexport function sarifToJson(sarif: SarifOutput): string {\n return JSON.stringify(sarif, null, 2);\n}\n"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import { CICheckResult } from "../services/ci-check/types.js";
2
+
3
+ //#region src/formatters/text.d.ts
4
+
5
+ /**
6
+ * Options for text formatting.
7
+ */
8
+ interface TextFormatOptions {
9
+ /** Show verbose output with all details. */
10
+ verbose?: boolean;
11
+ /** Include timing information. */
12
+ showTiming?: boolean;
13
+ /** Group issues by file. */
14
+ groupByFile?: boolean;
15
+ }
16
+ /**
17
+ * Text output lines with optional styling hints.
18
+ */
19
+ interface TextLine {
20
+ text: string;
21
+ style?: 'normal' | 'bold' | 'error' | 'warning' | 'success' | 'muted';
22
+ indent?: number;
23
+ }
24
+ /**
25
+ * Format CI check results as text lines.
26
+ * Returns structured lines that can be styled by the CLI.
27
+ */
28
+ declare function formatAsTextLines(result: CICheckResult, options?: TextFormatOptions): TextLine[];
29
+ /**
30
+ * Format CI check results as plain text string.
31
+ */
32
+ declare function formatAsText(result: CICheckResult, options?: TextFormatOptions): string;
33
+ //#endregion
34
+ export { TextFormatOptions, TextLine, formatAsText, formatAsTextLines };
35
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","names":[],"sources":["../../src/formatters/text.ts"],"sourcesContent":[],"mappings":";;;;;;;AAqKgB,UArJC,iBAAA,CAsJP;;;;;;;;;;;UA1IO,QAAA;;;;;;;;;iBAUD,iBAAA,SACN,yBACC,oBACR;;;;iBA4Ha,YAAA,SACN,yBACC"}
@@ -1,2 +1,209 @@
1
- function e(e,t={}){let a=[],{verbose:o=!1,showTiming:s=!0,groupByFile:c=!1}=t;if(a.push({text:``,style:`normal`}),a.push({text:`📋 ContractSpec CI Check Results`,style:`bold`}),a.push({text:``,style:`normal`}),e.commitSha||e.branch){let t=[e.branch?`branch: ${e.branch}`:null,e.commitSha?`commit: ${e.commitSha.slice(0,7)}`:null].filter(Boolean).join(`, `);a.push({text:`Git: ${t}`,style:`muted`})}a.push({text:``,style:`normal`}),a.push({text:`Check Results:`,style:`bold`});for(let t of e.categories){let e=t.passed?`✓`:`✗`,r=t.passed?`success`:`error`,i=n(t),o=s?` (${t.durationMs}ms)`:``;a.push({text:` ${e} ${t.label}: ${i}${o}`,style:r})}if(e.issues.length>0)if(a.push({text:``,style:`normal`}),a.push({text:`Issues:`,style:`bold`}),c){let t=i(e.issues);for(let[e,n]of t){a.push({text:``,style:`normal`}),a.push({text:` ${e||`(no file)`}`,style:`bold`,indent:1});for(let e of n)a.push(...r(e,o,2))}}else{let t=e.issues.filter(e=>e.severity===`error`),n=e.issues.filter(e=>e.severity===`warning`),i=e.issues.filter(e=>e.severity===`note`);if(t.length>0){a.push({text:``,style:`normal`}),a.push({text:` Errors:`,style:`error`,indent:1});for(let e of t)a.push(...r(e,o,2))}if(n.length>0){a.push({text:``,style:`normal`}),a.push({text:` Warnings:`,style:`warning`,indent:1});for(let e of n)a.push(...r(e,o,2))}if(i.length>0&&o){a.push({text:``,style:`normal`}),a.push({text:` Notes:`,style:`muted`,indent:1});for(let e of i)a.push(...r(e,o,2))}}a.push({text:``,style:`normal`}),a.push({text:`─`.repeat(50),style:`muted`});let l=[e.totalErrors>0?`${e.totalErrors} error(s)`:null,e.totalWarnings>0?`${e.totalWarnings} warning(s)`:null,e.totalNotes>0&&o?`${e.totalNotes} note(s)`:null].filter(Boolean);return l.length>0&&a.push({text:`Found: ${l.join(`, `)}`,style:e.success?`warning`:`error`}),s&&a.push({text:`Duration: ${e.durationMs}ms`,style:`muted`}),a.push({text:``,style:`normal`}),e.success?a.push({text:`✅ All CI checks passed!`,style:`success`}):a.push({text:`❌ CI checks failed`,style:`error`}),a.push({text:``,style:`normal`}),a}function t(t,n={}){return e(t,n).map(e=>` `.repeat(e.indent??0)+e.text).join(`
2
- `)}function n(e){let t=[];return e.errors>0&&t.push(`${e.errors} error(s)`),e.warnings>0&&t.push(`${e.warnings} warning(s)`),t.length===0?`passed`:t.join(`, `)}function r(e,t,n){let r=[],i=e.severity===`error`?`✗`:e.severity===`warning`?`⚠`:`○`,a=e.severity===`error`?`error`:e.severity===`warning`?`warning`:`muted`,o=`${i} ${e.message}`;if(e.file){let t=e.line?`:${e.line}`:``;o+=` (${e.file}${t})`}if(r.push({text:o,style:a,indent:n}),t&&e.context){let t=JSON.stringify(e.context);t!==`{}`&&r.push({text:`Context: ${t}`,style:`muted`,indent:n+1})}return r}function i(e){let t=new Map;for(let n of e){let e=n.file??``;t.has(e)||t.set(e,[]);let r=t.get(e);r&&r.push(n)}return new Map([...t.entries()].sort(([e],[t])=>e.localeCompare(t)))}export{t as formatAsText,e as formatAsTextLines};
1
+ //#region src/formatters/text.ts
2
+ /**
3
+ * Format CI check results as text lines.
4
+ * Returns structured lines that can be styled by the CLI.
5
+ */
6
+ function formatAsTextLines(result, options = {}) {
7
+ const lines = [];
8
+ const { verbose = false, showTiming = true, groupByFile = false } = options;
9
+ lines.push({
10
+ text: "",
11
+ style: "normal"
12
+ });
13
+ lines.push({
14
+ text: "📋 ContractSpec CI Check Results",
15
+ style: "bold"
16
+ });
17
+ lines.push({
18
+ text: "",
19
+ style: "normal"
20
+ });
21
+ if (result.commitSha || result.branch) {
22
+ const gitInfo = [result.branch ? `branch: ${result.branch}` : null, result.commitSha ? `commit: ${result.commitSha.slice(0, 7)}` : null].filter(Boolean).join(", ");
23
+ lines.push({
24
+ text: `Git: ${gitInfo}`,
25
+ style: "muted"
26
+ });
27
+ }
28
+ lines.push({
29
+ text: "",
30
+ style: "normal"
31
+ });
32
+ lines.push({
33
+ text: "Check Results:",
34
+ style: "bold"
35
+ });
36
+ for (const category of result.categories) {
37
+ const icon = category.passed ? "✓" : "✗";
38
+ const style = category.passed ? "success" : "error";
39
+ const stats = formatCategoryStats(category);
40
+ const timing = showTiming ? ` (${category.durationMs}ms)` : "";
41
+ lines.push({
42
+ text: ` ${icon} ${category.label}: ${stats}${timing}`,
43
+ style
44
+ });
45
+ }
46
+ if (result.issues.length > 0) {
47
+ lines.push({
48
+ text: "",
49
+ style: "normal"
50
+ });
51
+ lines.push({
52
+ text: "Issues:",
53
+ style: "bold"
54
+ });
55
+ if (groupByFile) {
56
+ const byFile = groupIssuesByFile(result.issues);
57
+ for (const [file, issues] of byFile) {
58
+ lines.push({
59
+ text: "",
60
+ style: "normal"
61
+ });
62
+ lines.push({
63
+ text: ` ${file || "(no file)"}`,
64
+ style: "bold",
65
+ indent: 1
66
+ });
67
+ for (const issue of issues) lines.push(...formatIssueLines(issue, verbose, 2));
68
+ }
69
+ } else {
70
+ const errors = result.issues.filter((i) => i.severity === "error");
71
+ const warnings = result.issues.filter((i) => i.severity === "warning");
72
+ const notes = result.issues.filter((i) => i.severity === "note");
73
+ if (errors.length > 0) {
74
+ lines.push({
75
+ text: "",
76
+ style: "normal"
77
+ });
78
+ lines.push({
79
+ text: " Errors:",
80
+ style: "error",
81
+ indent: 1
82
+ });
83
+ for (const issue of errors) lines.push(...formatIssueLines(issue, verbose, 2));
84
+ }
85
+ if (warnings.length > 0) {
86
+ lines.push({
87
+ text: "",
88
+ style: "normal"
89
+ });
90
+ lines.push({
91
+ text: " Warnings:",
92
+ style: "warning",
93
+ indent: 1
94
+ });
95
+ for (const issue of warnings) lines.push(...formatIssueLines(issue, verbose, 2));
96
+ }
97
+ if (notes.length > 0 && verbose) {
98
+ lines.push({
99
+ text: "",
100
+ style: "normal"
101
+ });
102
+ lines.push({
103
+ text: " Notes:",
104
+ style: "muted",
105
+ indent: 1
106
+ });
107
+ for (const issue of notes) lines.push(...formatIssueLines(issue, verbose, 2));
108
+ }
109
+ }
110
+ }
111
+ lines.push({
112
+ text: "",
113
+ style: "normal"
114
+ });
115
+ lines.push({
116
+ text: "─".repeat(50),
117
+ style: "muted"
118
+ });
119
+ const summaryParts = [
120
+ result.totalErrors > 0 ? `${result.totalErrors} error(s)` : null,
121
+ result.totalWarnings > 0 ? `${result.totalWarnings} warning(s)` : null,
122
+ result.totalNotes > 0 && verbose ? `${result.totalNotes} note(s)` : null
123
+ ].filter(Boolean);
124
+ if (summaryParts.length > 0) lines.push({
125
+ text: `Found: ${summaryParts.join(", ")}`,
126
+ style: result.success ? "warning" : "error"
127
+ });
128
+ if (showTiming) lines.push({
129
+ text: `Duration: ${result.durationMs}ms`,
130
+ style: "muted"
131
+ });
132
+ lines.push({
133
+ text: "",
134
+ style: "normal"
135
+ });
136
+ if (result.success) lines.push({
137
+ text: "✅ All CI checks passed!",
138
+ style: "success"
139
+ });
140
+ else lines.push({
141
+ text: "❌ CI checks failed",
142
+ style: "error"
143
+ });
144
+ lines.push({
145
+ text: "",
146
+ style: "normal"
147
+ });
148
+ return lines;
149
+ }
150
+ /**
151
+ * Format CI check results as plain text string.
152
+ */
153
+ function formatAsText(result, options = {}) {
154
+ return formatAsTextLines(result, options).map((line) => " ".repeat(line.indent ?? 0) + line.text).join("\n");
155
+ }
156
+ /**
157
+ * Format category stats.
158
+ */
159
+ function formatCategoryStats(category) {
160
+ const parts = [];
161
+ if (category.errors > 0) parts.push(`${category.errors} error(s)`);
162
+ if (category.warnings > 0) parts.push(`${category.warnings} warning(s)`);
163
+ if (parts.length === 0) return "passed";
164
+ return parts.join(", ");
165
+ }
166
+ /**
167
+ * Format a single issue as text lines.
168
+ */
169
+ function formatIssueLines(issue, verbose, baseIndent) {
170
+ const lines = [];
171
+ const icon = issue.severity === "error" ? "✗" : issue.severity === "warning" ? "⚠" : "○";
172
+ const style = issue.severity === "error" ? "error" : issue.severity === "warning" ? "warning" : "muted";
173
+ let mainLine = `${icon} ${issue.message}`;
174
+ if (issue.file) {
175
+ const location = issue.line ? `:${issue.line}` : "";
176
+ mainLine += ` (${issue.file}${location})`;
177
+ }
178
+ lines.push({
179
+ text: mainLine,
180
+ style,
181
+ indent: baseIndent
182
+ });
183
+ if (verbose && issue.context) {
184
+ const contextStr = JSON.stringify(issue.context);
185
+ if (contextStr !== "{}") lines.push({
186
+ text: `Context: ${contextStr}`,
187
+ style: "muted",
188
+ indent: baseIndent + 1
189
+ });
190
+ }
191
+ return lines;
192
+ }
193
+ /**
194
+ * Group issues by file.
195
+ */
196
+ function groupIssuesByFile(issues) {
197
+ const byFile = /* @__PURE__ */ new Map();
198
+ for (const issue of issues) {
199
+ const file = issue.file ?? "";
200
+ if (!byFile.has(file)) byFile.set(file, []);
201
+ const fileIssues = byFile.get(file);
202
+ if (fileIssues) fileIssues.push(issue);
203
+ }
204
+ return new Map([...byFile.entries()].sort(([a], [b]) => a.localeCompare(b)));
205
+ }
206
+
207
+ //#endregion
208
+ export { formatAsText, formatAsTextLines };
209
+ //# sourceMappingURL=text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.js","names":["lines: TextLine[]","parts: string[]"],"sources":["../../src/formatters/text.ts"],"sourcesContent":["/**\n * Text output formatter.\n *\n * Formats CI check results as human-readable text output.\n * This formatter is designed to be used by CLI wrappers that add colors.\n */\n\nimport type {\n CICheckResult,\n CICheckCategorySummary,\n CIIssue,\n} from '../services/ci-check/types';\n\n/**\n * Options for text formatting.\n */\nexport interface TextFormatOptions {\n /** Show verbose output with all details. */\n verbose?: boolean;\n /** Include timing information. */\n showTiming?: boolean;\n /** Group issues by file. */\n groupByFile?: boolean;\n}\n\n/**\n * Text output lines with optional styling hints.\n */\nexport interface TextLine {\n text: string;\n style?: 'normal' | 'bold' | 'error' | 'warning' | 'success' | 'muted';\n indent?: number;\n}\n\n/**\n * Format CI check results as text lines.\n * Returns structured lines that can be styled by the CLI.\n */\nexport function formatAsTextLines(\n result: CICheckResult,\n options: TextFormatOptions = {}\n): TextLine[] {\n const lines: TextLine[] = [];\n const { verbose = false, showTiming = true, groupByFile = false } = options;\n\n // Header\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: '📋 ContractSpec CI Check Results', style: 'bold' });\n lines.push({ text: '', style: 'normal' });\n\n // Git info if available\n if (result.commitSha || result.branch) {\n const gitInfo = [\n result.branch ? `branch: ${result.branch}` : null,\n result.commitSha ? `commit: ${result.commitSha.slice(0, 7)}` : null,\n ]\n .filter(Boolean)\n .join(', ');\n lines.push({ text: `Git: ${gitInfo}`, style: 'muted' });\n }\n\n // Category summaries\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: 'Check Results:', style: 'bold' });\n\n for (const category of result.categories) {\n const icon = category.passed ? '✓' : '✗';\n const style = category.passed ? 'success' : 'error';\n const stats = formatCategoryStats(category);\n const timing = showTiming ? ` (${category.durationMs}ms)` : '';\n\n lines.push({\n text: ` ${icon} ${category.label}: ${stats}${timing}`,\n style,\n });\n }\n\n // Issues section\n if (result.issues.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: 'Issues:', style: 'bold' });\n\n if (groupByFile) {\n const byFile = groupIssuesByFile(result.issues);\n for (const [file, issues] of byFile) {\n lines.push({ text: '', style: 'normal' });\n lines.push({\n text: ` ${file || '(no file)'}`,\n style: 'bold',\n indent: 1,\n });\n\n for (const issue of issues) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n } else {\n // Show errors first, then warnings, then notes\n const errors = result.issues.filter((i) => i.severity === 'error');\n const warnings = result.issues.filter((i) => i.severity === 'warning');\n const notes = result.issues.filter((i) => i.severity === 'note');\n\n if (errors.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Errors:', style: 'error', indent: 1 });\n for (const issue of errors) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n\n if (warnings.length > 0) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Warnings:', style: 'warning', indent: 1 });\n for (const issue of warnings) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n\n if (notes.length > 0 && verbose) {\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: ' Notes:', style: 'muted', indent: 1 });\n for (const issue of notes) {\n lines.push(...formatIssueLines(issue, verbose, 2));\n }\n }\n }\n }\n\n // Summary\n lines.push({ text: '', style: 'normal' });\n lines.push({ text: '─'.repeat(50), style: 'muted' });\n\n const summaryParts = [\n result.totalErrors > 0 ? `${result.totalErrors} error(s)` : null,\n result.totalWarnings > 0 ? `${result.totalWarnings} warning(s)` : null,\n result.totalNotes > 0 && verbose ? `${result.totalNotes} note(s)` : null,\n ].filter(Boolean);\n\n if (summaryParts.length > 0) {\n lines.push({\n text: `Found: ${summaryParts.join(', ')}`,\n style: result.success ? 'warning' : 'error',\n });\n }\n\n if (showTiming) {\n lines.push({ text: `Duration: ${result.durationMs}ms`, style: 'muted' });\n }\n\n lines.push({ text: '', style: 'normal' });\n\n if (result.success) {\n lines.push({ text: '✅ All CI checks passed!', style: 'success' });\n } else {\n lines.push({ text: '❌ CI checks failed', style: 'error' });\n }\n\n lines.push({ text: '', style: 'normal' });\n\n return lines;\n}\n\n/**\n * Format CI check results as plain text string.\n */\nexport function formatAsText(\n result: CICheckResult,\n options: TextFormatOptions = {}\n): string {\n const lines = formatAsTextLines(result, options);\n return lines\n .map((line) => ' '.repeat(line.indent ?? 0) + line.text)\n .join('\\n');\n}\n\n/**\n * Format category stats.\n */\nfunction formatCategoryStats(category: CICheckCategorySummary): string {\n const parts: string[] = [];\n\n if (category.errors > 0) {\n parts.push(`${category.errors} error(s)`);\n }\n if (category.warnings > 0) {\n parts.push(`${category.warnings} warning(s)`);\n }\n\n if (parts.length === 0) {\n return 'passed';\n }\n\n return parts.join(', ');\n}\n\n/**\n * Format a single issue as text lines.\n */\nfunction formatIssueLines(\n issue: CIIssue,\n verbose: boolean,\n baseIndent: number\n): TextLine[] {\n const lines: TextLine[] = [];\n\n const icon =\n issue.severity === 'error' ? '✗' : issue.severity === 'warning' ? '⚠' : '○';\n const style =\n issue.severity === 'error'\n ? 'error'\n : issue.severity === 'warning'\n ? 'warning'\n : 'muted';\n\n // Main issue line\n let mainLine = `${icon} ${issue.message}`;\n if (issue.file) {\n const location = issue.line ? `:${issue.line}` : '';\n mainLine += ` (${issue.file}${location})`;\n }\n\n lines.push({ text: mainLine, style, indent: baseIndent });\n\n // Additional context in verbose mode\n if (verbose && issue.context) {\n const contextStr = JSON.stringify(issue.context);\n if (contextStr !== '{}') {\n lines.push({\n text: `Context: ${contextStr}`,\n style: 'muted',\n indent: baseIndent + 1,\n });\n }\n }\n\n return lines;\n}\n\n/**\n * Group issues by file.\n */\nfunction groupIssuesByFile(issues: CIIssue[]): Map<string, CIIssue[]> {\n const byFile = new Map<string, CIIssue[]>();\n\n for (const issue of issues) {\n const file = issue.file ?? '';\n if (!byFile.has(file)) {\n byFile.set(file, []);\n }\n const fileIssues = byFile.get(file);\n if (fileIssues) {\n fileIssues.push(issue);\n }\n }\n\n // Sort files alphabetically\n return new Map([...byFile.entries()].sort(([a], [b]) => a.localeCompare(b)));\n}\n"],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { __exportAll, __reExport } from "./_virtual/rolldown_runtime.js";
2
+ import { DiscoverOptions, FileStat, FsAdapter } from "./ports/fs.js";
3
+ import { GitAdapter, GitCleanOptions } from "./ports/git.js";
4
+ import { WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, Watcher, WatcherAdapter } from "./ports/watcher.js";
5
+ import { AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, AiValidationResult } from "./ports/ai.js";
6
+ import { LogLevel, LoggerAdapter, ProgressReporter, ProgressUpdate, WorkspaceAdapters } from "./ports/logger.js";
7
+ import "./ports/index.js";
8
+ import { createNodeFsAdapter } from "./adapters/fs.js";
9
+ import { createNodeGitAdapter } from "./adapters/git.js";
10
+ import { createNodeWatcherAdapter } from "./adapters/watcher.js";
11
+ import { createNodeAiAdapter } from "./adapters/ai.js";
12
+ import { createConsoleLoggerAdapter, createNoopLoggerAdapter } from "./adapters/logger.js";
13
+ import { CreateAdaptersOptions, createNodeAdapters } from "./adapters/factory.js";
14
+ import { MetaRepoInfo, PackageManager, RepositoryType, SubmoduleInfo, WorkspaceInfo, detectPackageManager, detectRepositoryType, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, getExecCommand, getInstallCommand, getMetaRepoInfo, getPackageName, getRunCommand, getWorkspaceInfo, getWorkspacePackages, isMonorepo, parseGitModules } from "./adapters/workspace.js";
15
+ import "./adapters/index.js";
16
+ import { AgentMode, AiProvider, Config } from "./types/config.js";
17
+ import { ValidateSpecOptions, ValidateSpecResult, validateSpec, validateSpecs } from "./services/validate.js";
18
+ import { ValidateImplementationOptions, ValidateImplementationResult, validateImplementationFiles } from "./services/validate-implementation.js";
19
+ import { CompareSpecsOptions, CompareSpecsResult, compareSpecs } from "./services/diff.js";
20
+ import { AnalyzeDepsOptions, AnalyzeDepsResult, analyzeDeps, exportGraphAsDot, getContractNode, getGraphStats } from "./services/deps.js";
21
+ import { ListSpecsOptions, groupSpecsByType, listSpecs } from "./services/list.js";
22
+ import { getApiKey, loadWorkspaceConfig, mergeWorkspaceConfig } from "./services/config.js";
23
+ import { BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, buildSpec } from "./services/build.js";
24
+ import { OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult } from "./services/openapi/types.js";
25
+ import { importFromOpenApiService } from "./services/openapi/import-service.js";
26
+ import { syncWithOpenApiService } from "./services/openapi/sync-service.js";
27
+ import { validateAgainstOpenApiService } from "./services/openapi/validate-service.js";
28
+ import { OpenApiExportOptions, OpenApiExportResult, exportOpenApi } from "./services/openapi/export-service.js";
29
+ import { RegistryClient, RegistryClientOptions, addToRegistry, listFromRegistry, resolveRegistryUrl, searchRegistry } from "./services/registry.js";
30
+ import { SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, syncSpecs } from "./services/sync.js";
31
+ import { WatchBuildFn, WatchSpecsOptions, WatchValidateFn, watchSpecs } from "./services/watch.js";
32
+ import { CleanOptions, CleanResult, cleanArtifacts } from "./services/clean.js";
33
+ import { RunTestsResult, TestRunResult, runTests } from "./services/test.js";
34
+ import { CreateRegeneratorOptions, createRegeneratorService } from "./services/regenerator.js";
35
+ import { ExtendedWorkspaceInfo, MonorepoConfig, findAllConfigFiles, formatWorkspaceInfo, getExtendedWorkspaceInfo, mergeMonorepoConfigs } from "./services/workspace-info.js";
36
+ import { CoverageByType, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, SpecInventory, SpecLocation, analyzeIntegrity, filterIssuesBySeverity, filterIssuesByType, getAllSpecs } from "./services/integrity.js";
37
+ import { DiagramOptions, DiagramType, generateMermaidDiagram } from "./services/integrity-diagram.js";
38
+ import { ALL_SETUP_TARGETS, SETUP_TARGET_LABELS, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget } from "./services/setup/types.js";
39
+ import { runSetup } from "./services/setup/setup-service.js";
40
+ import { generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateVscodeSettings, getClaudeDesktopConfigPath } from "./services/setup/config-generators.js";
41
+ import { deepMergeOverwrite, deepMergePreserve, formatJson, safeParseJson } from "./services/setup/file-merger.js";
42
+ import { ALL_CHECK_CATEGORIES, CHECK_CATEGORY_LABELS, CheckCategory, CheckContext, CheckResult, CheckStatus, DoctorOptions, DoctorPromptCallbacks, DoctorResult, FixAction, FixResult } from "./services/doctor/types.js";
43
+ import { formatCheckResult, formatDoctorSummary, runDoctor } from "./services/doctor/doctor-service.js";
44
+ import { ALL_CI_CHECK_CATEGORIES, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS } from "./services/ci-check/types.js";
45
+ import { runCIChecks } from "./services/ci-check/ci-check-service.js";
46
+ import { AgentAdapter, AgentGuideConfig, FormatOptions, GuideOptions, GuideResult } from "./services/agent-guide/types.js";
47
+ import { AgentGuideService, agentGuideService, createAgentGuideService } from "./services/agent-guide/agent-guide-service.js";
48
+ import { ClaudeCodeAdapter, claudeCodeAdapter } from "./services/agent-guide/adapters/claude-code.js";
49
+ import { CursorCLIAdapter, cursorCLIAdapter } from "./services/agent-guide/adapters/cursor-cli.js";
50
+ import { GenericMCPAdapter, genericMCPAdapter } from "./services/agent-guide/adapters/generic-mcp.js";
51
+ import { agentAdapters, getAgentAdapter, listAgentTypes } from "./services/agent-guide/adapters/index.js";
52
+ import { AIReviewResult, BehaviorCheck, FieldMapping, FieldMatchType, IntentAlignment, SemanticVerificationResult, StructureCheck, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult } from "./services/verify/types.js";
53
+ import { VerifyService, createVerifyService, verifyService } from "./services/verify/verify-service.js";
54
+ import { verifyStructure } from "./services/verify/structure-verifier.js";
55
+ import { verifyBehavior } from "./services/verify/behavior-verifier.js";
56
+ import { createQuickAIReview, verifySemanticFields, verifyWithAI, verifyWithAIEnhanced } from "./services/verify/ai-verifier.js";
57
+ import { DiscoveryOptions, ImplementationSource, ImplementationStatus, ResolvedImplementation, SpecImplementationResult, SpecReferenceMatch } from "./services/implementation/types.js";
58
+ import { discoverAllImplementations, discoverImplementationsForSpec, extractSpecReferences, inferImplementationType } from "./services/implementation/discovery.js";
59
+ import { ResolverOptions, getImplementationSummary, resolveAllImplementations, resolveImplementations } from "./services/implementation/resolver.js";
60
+ import { CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, DEFAULT_CACHE_CONFIG, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey } from "./services/verification-cache/types.js";
61
+ import { VerificationCacheService, cacheKeyToString, computeContentHash, createVerificationCacheService, stringToCacheKey } from "./services/verification-cache/cache-service.js";
62
+ import { InMemoryCacheStorage, createInMemoryCacheStorage } from "./services/verification-cache/adapters/in-memory.js";
63
+ import { FileSystemCacheStorage, createFileSystemCacheStorage } from "./services/verification-cache/adapters/filesystem.js";
64
+ import { KeyValueStore, WorkspaceStateCacheStorage, createWorkspaceStateCacheStorage } from "./services/verification-cache/adapters/workspace-state.js";
65
+ import { PackageInstallResult, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult } from "./services/quickstart/types.js";
66
+ import { FULL_DEPENDENCIES, MINIMAL_DEPENDENCIES, getDependencies, getDevDependencies, getProductionDependencies } from "./services/quickstart/dependencies.js";
67
+ import { formatQuickstartPreview, isContractSpecInstalled, runQuickstart } from "./services/quickstart/quickstart-service.js";
68
+ import { index_d_exports as index_d_exports$2 } from "./services/impact/index.js";
69
+ import "./services/index.js";
70
+ import { index_d_exports as index_d_exports$1 } from "./formatters/index.js";
71
+ import { index_d_exports as index_d_exports$3 } from "./templates/index.js";
72
+ import { index_d_exports } from "./ai/index.js";
73
+ export * from "@lssm/module.contractspec-workspace";
74
+
75
+ //#region src/index.d.ts
76
+ declare namespace index_d_exports$4 {
77
+ export { AIReviewResult, ALL_CHECK_CATEGORIES, ALL_CI_CHECK_CATEGORIES, ALL_SETUP_TARGETS, AgentAdapter, AgentGuideConfig, AgentGuideService, AgentMode, AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, AiProvider, AiValidationResult, AnalyzeDepsOptions, AnalyzeDepsResult, BehaviorCheck, BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, CHECK_CATEGORY_LABELS, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS, CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, CheckCategory, CheckContext, CheckResult, CheckStatus, ClaudeCodeAdapter, CleanOptions, CleanResult, CompareSpecsOptions, CompareSpecsResult, Config, CoverageByType, CreateAdaptersOptions, CreateRegeneratorOptions, CursorCLIAdapter, DEFAULT_CACHE_CONFIG, DiagramOptions, DiagramType, DiscoverOptions, DiscoveryOptions, DoctorOptions, DoctorPromptCallbacks, DoctorResult, ExtendedWorkspaceInfo, FULL_DEPENDENCIES, FieldMapping, FieldMatchType, FileStat, FileSystemCacheStorage, FixAction, FixResult, FormatOptions, FsAdapter, GenericMCPAdapter, GitAdapter, GitCleanOptions, GuideOptions, GuideResult, ImplementationSource, ImplementationStatus, InMemoryCacheStorage, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, IntentAlignment, KeyValueStore, OpenApiExportOptions as LegacyOpenApiExportOptions, OpenApiExportResult as LegacyOpenApiExportResult, ListSpecsOptions, LogLevel, LoggerAdapter, MINIMAL_DEPENDENCIES, MetaRepoInfo, MonorepoConfig, OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult, PackageInstallResult, PackageManager, ProgressReporter, ProgressUpdate, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult, RegistryClient, RegistryClientOptions, RepositoryType, ResolvedImplementation, ResolverOptions, RunTestsResult, SETUP_TARGET_LABELS, SemanticVerificationResult, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget, SpecImplementationResult, SpecInventory, SpecLocation, SpecReferenceMatch, StructureCheck, SubmoduleInfo, SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, TestRunResult, ValidateImplementationOptions, ValidateImplementationResult, ValidateSpecOptions, ValidateSpecResult, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey, VerificationCacheService, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult, VerifyService, WatchBuildFn, WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, WatchSpecsOptions, WatchValidateFn, Watcher, WatcherAdapter, WorkspaceAdapters, WorkspaceInfo, WorkspaceStateCacheStorage, addToRegistry, agentAdapters, agentGuideService, index_d_exports as ai, analyzeDeps, analyzeIntegrity, buildSpec, cacheKeyToString, claudeCodeAdapter, cleanArtifacts, compareSpecs, computeContentHash, createAgentGuideService, createConsoleLoggerAdapter, createFileSystemCacheStorage, createInMemoryCacheStorage, createNodeAdapters, createNodeAiAdapter, createNodeFsAdapter, createNodeGitAdapter, createNodeWatcherAdapter, createNoopLoggerAdapter, createQuickAIReview, createRegeneratorService, createVerificationCacheService, createVerifyService, createWorkspaceStateCacheStorage, cursorCLIAdapter, deepMergeOverwrite, deepMergePreserve, detectPackageManager, detectRepositoryType, discoverAllImplementations, discoverImplementationsForSpec, exportGraphAsDot, exportOpenApi, extractSpecReferences, filterIssuesBySeverity, filterIssuesByType, findAllConfigFiles, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, formatCheckResult, formatDoctorSummary, formatJson, formatQuickstartPreview, formatWorkspaceInfo, index_d_exports$1 as formatters, generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateMermaidDiagram, generateVscodeSettings, genericMCPAdapter, getAgentAdapter, getAllSpecs, getApiKey, getClaudeDesktopConfigPath, getContractNode, getDependencies, getDevDependencies, getExecCommand, getExtendedWorkspaceInfo, getGraphStats, getImplementationSummary, getInstallCommand, getMetaRepoInfo, getPackageName, getProductionDependencies, getRunCommand, getWorkspaceInfo, getWorkspacePackages, groupSpecsByType, index_d_exports$2 as impact, importFromOpenApiService, inferImplementationType, isContractSpecInstalled, isMonorepo, listAgentTypes, listFromRegistry, listSpecs, loadWorkspaceConfig, mergeMonorepoConfigs, mergeWorkspaceConfig, parseGitModules, resolveAllImplementations, resolveImplementations, resolveRegistryUrl, runCIChecks, runDoctor, runQuickstart, runSetup, runTests, safeParseJson, searchRegistry, stringToCacheKey, syncSpecs, syncWithOpenApiService, index_d_exports$3 as templates, validateAgainstOpenApiService, validateImplementationFiles, validateSpec, validateSpecs, verifyBehavior, verifySemanticFields, verifyService, verifyStructure, verifyWithAI, verifyWithAIEnhanced, watchSpecs };
78
+ }
79
+ import * as import__lssm_module_contractspec_workspace from "@lssm/module.contractspec-workspace";
80
+ //#endregion
81
+ export { AIReviewResult, ALL_CHECK_CATEGORIES, ALL_CI_CHECK_CATEGORIES, ALL_SETUP_TARGETS, AgentAdapter, AgentGuideConfig, AgentGuideService, type AgentMode, AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, type AiProvider, AiValidationResult, AnalyzeDepsOptions, AnalyzeDepsResult, BehaviorCheck, BuildSpecOptions, BuildSpecResult, BuildTarget, BuildTargetResult, CHECK_CATEGORY_LABELS, CICheckCategory, CICheckCategorySummary, CICheckOptions, CICheckResult, CIFormatOptions, CIIssue, CIIssueSeverity, CIOutputFormat, CI_CHECK_CATEGORY_LABELS, CacheEntryMeta, CacheKeyString, CacheLookupResult, CacheMissReason, CacheStats, CacheStorageAdapter, CheckCategory, CheckContext, CheckResult, CheckStatus, ClaudeCodeAdapter, CleanOptions, CleanResult, CompareSpecsOptions, CompareSpecsResult, type Config, CoverageByType, CreateAdaptersOptions, CreateRegeneratorOptions, CursorCLIAdapter, DEFAULT_CACHE_CONFIG, DiagramOptions, DiagramType, DiscoverOptions, DiscoveryOptions, DoctorOptions, DoctorPromptCallbacks, DoctorResult, ExtendedWorkspaceInfo, FULL_DEPENDENCIES, FieldMapping, FieldMatchType, FileStat, FileSystemCacheStorage, FixAction, FixResult, FormatOptions, FsAdapter, GenericMCPAdapter, GitAdapter, GitCleanOptions, GuideOptions, GuideResult, ImplementationSource, ImplementationStatus, InMemoryCacheStorage, IntegrityAnalysisOptions, IntegrityAnalysisResult, IntegrityIssue, IntentAlignment, KeyValueStore, OpenApiExportOptions as LegacyOpenApiExportOptions, OpenApiExportResult as LegacyOpenApiExportResult, ListSpecsOptions, LogLevel, LoggerAdapter, MINIMAL_DEPENDENCIES, MetaRepoInfo, MonorepoConfig, OpenApiExportServiceOptions, OpenApiExportServiceResult, OpenApiImportServiceOptions, OpenApiImportServiceResult, OpenApiSyncServiceOptions, OpenApiSyncServiceResult, OpenApiValidateServiceOptions, OpenApiValidateServiceResult, PackageInstallResult, PackageManager, ProgressReporter, ProgressUpdate, QuickstartDependency, QuickstartMode, QuickstartOptions, QuickstartPromptCallbacks, QuickstartResult, RegistryClient, RegistryClientOptions, RepositoryType, ResolvedImplementation, ResolverOptions, RunTestsResult, SETUP_TARGET_LABELS, SemanticVerificationResult, SetupFileResult, SetupOptions, SetupPromptCallbacks, SetupResult, SetupScope, SetupTarget, SpecImplementationResult, SpecInventory, SpecLocation, SpecReferenceMatch, StructureCheck, SubmoduleInfo, SyncBuildFn, SyncSpecsOptions, SyncSpecsResult, SyncSpecsRunResult, SyncValidateFn, TestRunResult, ValidateImplementationOptions, ValidateImplementationResult, ValidateSpecOptions, ValidateSpecResult, VerificationCacheConfig, VerificationCacheEntry, VerificationCacheKey, VerificationCacheService, VerifyConfig, VerifyInput, VerifyOptions, VerifyResult, VerifyService, WatchBuildFn, WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, WatchSpecsOptions, WatchValidateFn, Watcher, WatcherAdapter, WorkspaceAdapters, WorkspaceInfo, WorkspaceStateCacheStorage, addToRegistry, agentAdapters, agentGuideService, index_d_exports as ai, analyzeDeps, analyzeIntegrity, buildSpec, cacheKeyToString, claudeCodeAdapter, cleanArtifacts, compareSpecs, computeContentHash, createAgentGuideService, createConsoleLoggerAdapter, createFileSystemCacheStorage, createInMemoryCacheStorage, createNodeAdapters, createNodeAiAdapter, createNodeFsAdapter, createNodeGitAdapter, createNodeWatcherAdapter, createNoopLoggerAdapter, createQuickAIReview, createRegeneratorService, createVerificationCacheService, createVerifyService, createWorkspaceStateCacheStorage, cursorCLIAdapter, deepMergeOverwrite, deepMergePreserve, detectPackageManager, detectRepositoryType, discoverAllImplementations, discoverImplementationsForSpec, exportGraphAsDot, exportOpenApi, extractSpecReferences, filterIssuesBySeverity, filterIssuesByType, findAllConfigFiles, findMetaRepoRoot, findPackageRoot, findWorkspaceRoot, formatCheckResult, formatDoctorSummary, formatJson, formatQuickstartPreview, formatWorkspaceInfo, index_d_exports$1 as formatters, generateAgentsMd, generateClaudeMcpConfig, generateContractsrcConfig, generateCursorMcpConfig, generateCursorRules, generateMermaidDiagram, generateVscodeSettings, genericMCPAdapter, getAgentAdapter, getAllSpecs, getApiKey, getClaudeDesktopConfigPath, getContractNode, getDependencies, getDevDependencies, getExecCommand, getExtendedWorkspaceInfo, getGraphStats, getImplementationSummary, getInstallCommand, getMetaRepoInfo, getPackageName, getProductionDependencies, getRunCommand, getWorkspaceInfo, getWorkspacePackages, groupSpecsByType, index_d_exports$2 as impact, importFromOpenApiService, index_d_exports$4 as index_d_exports, inferImplementationType, isContractSpecInstalled, isMonorepo, listAgentTypes, listFromRegistry, listSpecs, loadWorkspaceConfig, mergeMonorepoConfigs, mergeWorkspaceConfig, parseGitModules, resolveAllImplementations, resolveImplementations, resolveRegistryUrl, runCIChecks, runDoctor, runQuickstart, runSetup, runTests, safeParseJson, searchRegistry, stringToCacheKey, syncSpecs, syncWithOpenApiService, index_d_exports$3 as templates, validateAgainstOpenApiService, validateImplementationFiles, validateSpec, validateSpecs, verifyBehavior, verifySemanticFields, verifyService, verifyStructure, verifyWithAI, verifyWithAIEnhanced, watchSpecs };
82
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":""}