@lssm/bundle.contractspec-workspace 1.41.0 → 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 (453) 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 +28 -15
  426. package/dist/node_modules/@ai-sdk/anthropic/dist/index.js +0 -1
  427. package/dist/node_modules/@ai-sdk/openai/dist/index.js +0 -11
  428. package/dist/node_modules/@ai-sdk/provider/dist/index.js +0 -3
  429. package/dist/node_modules/@ai-sdk/provider-utils/dist/index.js +0 -5
  430. package/dist/node_modules/chalk/source/index.js +0 -2
  431. package/dist/node_modules/chalk/source/utilities.js +0 -4
  432. package/dist/node_modules/chalk/source/vendor/ansi-styles/index.js +0 -1
  433. package/dist/node_modules/chalk/source/vendor/supports-color/browser.js +0 -1
  434. package/dist/node_modules/cli-cursor/index.js +0 -1
  435. package/dist/node_modules/cli-spinners/index.js +0 -1
  436. package/dist/node_modules/cli-spinners/spinners.js +0 -1
  437. package/dist/node_modules/eventsource-parser/dist/index.js +0 -5
  438. package/dist/node_modules/eventsource-parser/dist/stream.js +0 -1
  439. package/dist/node_modules/get-east-asian-width/index.js +0 -1
  440. package/dist/node_modules/get-east-asian-width/lookup.js +0 -1
  441. package/dist/node_modules/is-interactive/index.js +0 -1
  442. package/dist/node_modules/is-unicode-supported/index.js +0 -1
  443. package/dist/node_modules/log-symbols/browser-symbols.js +0 -1
  444. package/dist/node_modules/mimic-function/index.js +0 -1
  445. package/dist/node_modules/onetime/index.js +0 -1
  446. package/dist/node_modules/ora/index.js +0 -6
  447. package/dist/node_modules/restore-cursor/index.js +0 -1
  448. package/dist/node_modules/signal-exit/dist/mjs/index.js +0 -1
  449. package/dist/node_modules/signal-exit/dist/mjs/signals.js +0 -1
  450. package/dist/node_modules/stdin-discarder/index.js +0 -1
  451. package/dist/node_modules/string-width/index.js +0 -1
  452. package/dist/node_modules/strip-ansi/index.js +0 -1
  453. package/dist/node_modules/strip-ansi/node_modules/ansi-regex/index.js +0 -1
@@ -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":""}