@lssm/bundle.contractspec-workspace 0.0.0-canary-20251217083314 → 0.0.0-canary-20251220002821

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 (510) hide show
  1. package/LICENSE +21 -0
  2. package/dist/adapters/ai.d.ts +7 -8
  3. package/dist/adapters/ai.d.ts.map +1 -0
  4. package/dist/adapters/factory.d.ts +20 -21
  5. package/dist/adapters/factory.d.ts.map +1 -0
  6. package/dist/adapters/fs.d.ts +6 -7
  7. package/dist/adapters/fs.d.ts.map +1 -0
  8. package/dist/adapters/git.d.ts +6 -7
  9. package/dist/adapters/git.d.ts.map +1 -0
  10. package/dist/adapters/index.d.ts +11 -0
  11. package/dist/adapters/index.d.ts.map +1 -0
  12. package/dist/adapters/logger.d.ts +9 -8
  13. package/dist/adapters/logger.d.ts.map +1 -0
  14. package/dist/adapters/watcher.d.ts +6 -7
  15. package/dist/adapters/watcher.d.ts.map +1 -0
  16. package/dist/adapters/workspace.d.ts +37 -39
  17. package/dist/adapters/workspace.d.ts.map +1 -0
  18. package/dist/ai/agents/claude-code-agent.d.ts +20 -20
  19. package/dist/ai/agents/claude-code-agent.d.ts.map +1 -0
  20. package/dist/ai/agents/cursor-agent.d.ts +66 -66
  21. package/dist/ai/agents/cursor-agent.d.ts.map +1 -0
  22. package/dist/ai/agents/index.d.ts +10 -0
  23. package/dist/ai/agents/index.d.ts.map +1 -0
  24. package/dist/ai/agents/openai-codex-agent.d.ts +20 -20
  25. package/dist/ai/agents/openai-codex-agent.d.ts.map +1 -0
  26. package/dist/ai/agents/orchestrator.d.ts +48 -48
  27. package/dist/ai/agents/orchestrator.d.ts.map +1 -0
  28. package/dist/ai/agents/simple-agent.d.ts +15 -15
  29. package/dist/ai/agents/simple-agent.d.ts.map +1 -0
  30. package/dist/ai/agents/types.d.ts +26 -28
  31. package/dist/ai/agents/types.d.ts.map +1 -0
  32. package/dist/ai/client.d.ts +74 -78
  33. package/dist/ai/client.d.ts.map +1 -0
  34. package/dist/ai/index.d.ts +8 -16
  35. package/dist/ai/index.d.ts.map +1 -0
  36. package/dist/ai/prompts/code-generation.d.ts +6 -10
  37. package/dist/ai/prompts/code-generation.d.ts.map +1 -0
  38. package/dist/ai/prompts/index.d.ts +6 -9
  39. package/dist/ai/prompts/index.d.ts.map +1 -0
  40. package/dist/ai/prompts/spec-creation.d.ts +7 -13
  41. package/dist/ai/prompts/spec-creation.d.ts.map +1 -0
  42. package/dist/ai/providers.d.ts +13 -12
  43. package/dist/ai/providers.d.ts.map +1 -0
  44. package/dist/formatters/index.d.ts +7 -10
  45. package/dist/formatters/index.d.ts.map +1 -0
  46. package/dist/formatters/json.d.ts +65 -63
  47. package/dist/formatters/json.d.ts.map +1 -0
  48. package/dist/formatters/sarif.d.ts +77 -72
  49. package/dist/formatters/sarif.d.ts.map +1 -0
  50. package/dist/formatters/text.d.ts +21 -19
  51. package/dist/formatters/text.d.ts.map +1 -0
  52. package/dist/index.d.ts +14 -66
  53. package/dist/index.d.ts.map +1 -0
  54. package/dist/index.js +4532 -81
  55. package/dist/ports/ai.d.ts +41 -38
  56. package/dist/ports/ai.d.ts.map +1 -0
  57. package/dist/ports/fs.d.ts +63 -65
  58. package/dist/ports/fs.d.ts.map +1 -0
  59. package/dist/ports/git.d.ts +19 -21
  60. package/dist/ports/git.d.ts.map +1 -0
  61. package/dist/ports/index.d.ts +10 -0
  62. package/dist/ports/index.d.ts.map +1 -0
  63. package/dist/ports/logger.d.ts +58 -65
  64. package/dist/ports/logger.d.ts.map +1 -0
  65. package/dist/ports/watcher.d.ts +24 -26
  66. package/dist/ports/watcher.d.ts.map +1 -0
  67. package/dist/services/agent-guide/adapters/claude-code.d.ts +30 -28
  68. package/dist/services/agent-guide/adapters/claude-code.d.ts.map +1 -0
  69. package/dist/services/agent-guide/adapters/cursor-cli.d.ts +34 -32
  70. package/dist/services/agent-guide/adapters/cursor-cli.d.ts.map +1 -0
  71. package/dist/services/agent-guide/adapters/generic-mcp.d.ts +47 -45
  72. package/dist/services/agent-guide/adapters/generic-mcp.d.ts.map +1 -0
  73. package/dist/services/agent-guide/adapters/index.d.ts +15 -13
  74. package/dist/services/agent-guide/adapters/index.d.ts.map +1 -0
  75. package/dist/services/agent-guide/agent-guide-service.d.ts +48 -45
  76. package/dist/services/agent-guide/agent-guide-service.d.ts.map +1 -0
  77. package/dist/services/agent-guide/index.d.ts +12 -0
  78. package/dist/services/agent-guide/index.d.ts.map +1 -0
  79. package/dist/services/agent-guide/types.d.ts +46 -47
  80. package/dist/services/agent-guide/types.d.ts.map +1 -0
  81. package/dist/services/build.d.ts +41 -39
  82. package/dist/services/build.d.ts.map +1 -0
  83. package/dist/services/ci-check/ci-check-service.d.ts +13 -11
  84. package/dist/services/ci-check/ci-check-service.d.ts.map +1 -0
  85. package/dist/services/ci-check/index.d.ts +6 -0
  86. package/dist/services/ci-check/index.d.ts.map +1 -0
  87. package/dist/services/ci-check/types.d.ts +100 -102
  88. package/dist/services/ci-check/types.d.ts.map +1 -0
  89. package/dist/services/clean.d.ts +38 -37
  90. package/dist/services/clean.d.ts.map +1 -0
  91. package/dist/services/config.d.ts +14 -15
  92. package/dist/services/config.d.ts.map +1 -0
  93. package/dist/services/deps.d.ts +29 -30
  94. package/dist/services/deps.d.ts.map +1 -0
  95. package/dist/services/diff.d.ts +20 -21
  96. package/dist/services/diff.d.ts.map +1 -0
  97. package/dist/services/doctor/checks/ai.d.ts +10 -0
  98. package/dist/services/doctor/checks/ai.d.ts.map +1 -0
  99. package/dist/services/doctor/checks/cli.d.ts +10 -0
  100. package/dist/services/doctor/checks/cli.d.ts.map +1 -0
  101. package/dist/services/doctor/checks/config.d.ts +10 -0
  102. package/dist/services/doctor/checks/config.d.ts.map +1 -0
  103. package/dist/services/doctor/checks/deps.d.ts +10 -0
  104. package/dist/services/doctor/checks/deps.d.ts.map +1 -0
  105. package/dist/services/doctor/checks/index.d.ts +10 -0
  106. package/dist/services/doctor/checks/index.d.ts.map +1 -0
  107. package/dist/services/doctor/checks/mcp.d.ts +10 -0
  108. package/dist/services/doctor/checks/mcp.d.ts.map +1 -0
  109. package/dist/services/doctor/checks/workspace.d.ts +12 -0
  110. package/dist/services/doctor/checks/workspace.d.ts.map +1 -0
  111. package/dist/services/doctor/doctor-service.d.ts +14 -13
  112. package/dist/services/doctor/doctor-service.d.ts.map +1 -0
  113. package/dist/services/doctor/index.d.ts +8 -0
  114. package/dist/services/doctor/index.d.ts.map +1 -0
  115. package/dist/services/doctor/types.d.ts +70 -72
  116. package/dist/services/doctor/types.d.ts.map +1 -0
  117. package/dist/services/implementation/discovery.d.ts +16 -14
  118. package/dist/services/implementation/discovery.d.ts.map +1 -0
  119. package/dist/services/implementation/index.d.ts +7 -0
  120. package/dist/services/implementation/index.d.ts.map +1 -0
  121. package/dist/services/implementation/resolver.d.ts +31 -27
  122. package/dist/services/implementation/resolver.d.ts.map +1 -0
  123. package/dist/services/implementation/types.d.ts +55 -56
  124. package/dist/services/implementation/types.d.ts.map +1 -0
  125. package/dist/services/index.d.ts +29 -0
  126. package/dist/services/index.d.ts.map +1 -0
  127. package/dist/services/integrity-diagram.d.ts +29 -25
  128. package/dist/services/integrity-diagram.d.ts.map +1 -0
  129. package/dist/services/integrity.d.ts +100 -96
  130. package/dist/services/integrity.d.ts.map +1 -0
  131. package/dist/services/list.d.ts +18 -19
  132. package/dist/services/list.d.ts.map +1 -0
  133. package/dist/services/openapi/export-service.d.ts +39 -40
  134. package/dist/services/openapi/export-service.d.ts.map +1 -0
  135. package/dist/services/openapi/import-service.d.ts +10 -11
  136. package/dist/services/openapi/import-service.d.ts.map +1 -0
  137. package/dist/services/openapi/index.d.ts +10 -0
  138. package/dist/services/openapi/index.d.ts.map +1 -0
  139. package/dist/services/openapi/sync-service.d.ts +12 -13
  140. package/dist/services/openapi/sync-service.d.ts.map +1 -0
  141. package/dist/services/openapi/types.d.ts +141 -143
  142. package/dist/services/openapi/types.d.ts.map +1 -0
  143. package/dist/services/openapi/validate-service.d.ts +10 -11
  144. package/dist/services/openapi/validate-service.d.ts.map +1 -0
  145. package/dist/services/quickstart/dependencies.d.ts +32 -0
  146. package/dist/services/quickstart/dependencies.d.ts.map +1 -0
  147. package/dist/services/quickstart/index.d.ts +10 -0
  148. package/dist/services/quickstart/index.d.ts.map +1 -0
  149. package/dist/services/quickstart/quickstart-service.d.ts +21 -0
  150. package/dist/services/quickstart/quickstart-service.d.ts.map +1 -0
  151. package/dist/services/quickstart/types.d.ts +78 -0
  152. package/dist/services/quickstart/types.d.ts.map +1 -0
  153. package/dist/services/regenerator.d.ts +18 -16
  154. package/dist/services/regenerator.d.ts.map +1 -0
  155. package/dist/services/registry.d.ts +25 -26
  156. package/dist/services/registry.d.ts.map +1 -0
  157. package/dist/services/setup/config-generators.d.ts +14 -13
  158. package/dist/services/setup/config-generators.d.ts.map +1 -0
  159. package/dist/services/setup/file-merger.d.ts +5 -7
  160. package/dist/services/setup/file-merger.d.ts.map +1 -0
  161. package/dist/services/setup/index.d.ts +10 -0
  162. package/dist/services/setup/index.d.ts.map +1 -0
  163. package/dist/services/setup/setup-service.d.ts +10 -8
  164. package/dist/services/setup/setup-service.d.ts.map +1 -0
  165. package/dist/services/setup/targets/agents-md.d.ts +12 -0
  166. package/dist/services/setup/targets/agents-md.d.ts.map +1 -0
  167. package/dist/services/setup/targets/cli-config.d.ts +12 -0
  168. package/dist/services/setup/targets/cli-config.d.ts.map +1 -0
  169. package/dist/services/setup/targets/cursor-rules.d.ts +10 -0
  170. package/dist/services/setup/targets/cursor-rules.d.ts.map +1 -0
  171. package/dist/services/setup/targets/index.d.ts +10 -0
  172. package/dist/services/setup/targets/index.d.ts.map +1 -0
  173. package/dist/services/setup/targets/mcp-claude.d.ts +11 -0
  174. package/dist/services/setup/targets/mcp-claude.d.ts.map +1 -0
  175. package/dist/services/setup/targets/mcp-cursor.d.ts +10 -0
  176. package/dist/services/setup/targets/mcp-cursor.d.ts.map +1 -0
  177. package/dist/services/setup/targets/vscode-settings.d.ts +13 -0
  178. package/dist/services/setup/targets/vscode-settings.d.ts.map +1 -0
  179. package/dist/services/setup/types.d.ts +51 -53
  180. package/dist/services/setup/types.d.ts.map +1 -0
  181. package/dist/services/sync.d.ts +37 -35
  182. package/dist/services/sync.d.ts.map +1 -0
  183. package/dist/services/test.d.ts +15 -13
  184. package/dist/services/test.d.ts.map +1 -0
  185. package/dist/services/validate-implementation.d.ts +30 -28
  186. package/dist/services/validate-implementation.d.ts.map +1 -0
  187. package/dist/services/validate.d.ts +23 -24
  188. package/dist/services/validate.d.ts.map +1 -0
  189. package/dist/services/verification-cache/adapters/filesystem.d.ts +40 -38
  190. package/dist/services/verification-cache/adapters/filesystem.d.ts.map +1 -0
  191. package/dist/services/verification-cache/adapters/in-memory.d.ts +21 -19
  192. package/dist/services/verification-cache/adapters/in-memory.d.ts.map +1 -0
  193. package/dist/services/verification-cache/adapters/index.d.ts +7 -0
  194. package/dist/services/verification-cache/adapters/index.d.ts.map +1 -0
  195. package/dist/services/verification-cache/adapters/workspace-state.d.ts +39 -37
  196. package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +1 -0
  197. package/dist/services/verification-cache/cache-service.d.ts +55 -53
  198. package/dist/services/verification-cache/cache-service.d.ts.map +1 -0
  199. package/dist/services/verification-cache/index.d.ts +7 -0
  200. package/dist/services/verification-cache/index.d.ts.map +1 -0
  201. package/dist/services/verification-cache/types.d.ts +84 -85
  202. package/dist/services/verification-cache/types.d.ts.map +1 -0
  203. package/dist/services/verify/ai-verifier.d.ts +13 -11
  204. package/dist/services/verify/ai-verifier.d.ts.map +1 -0
  205. package/dist/services/verify/behavior-verifier.d.ts +10 -8
  206. package/dist/services/verify/behavior-verifier.d.ts.map +1 -0
  207. package/dist/services/verify/index.d.ts +18 -0
  208. package/dist/services/verify/index.d.ts.map +1 -0
  209. package/dist/services/verify/structure-verifier.d.ts +12 -8
  210. package/dist/services/verify/structure-verifier.d.ts.map +1 -0
  211. package/dist/services/verify/types.d.ts +114 -115
  212. package/dist/services/verify/types.d.ts.map +1 -0
  213. package/dist/services/verify/verify-service.d.ts +51 -49
  214. package/dist/services/verify/verify-service.d.ts.map +1 -0
  215. package/dist/services/watch.d.ts +22 -21
  216. package/dist/services/watch.d.ts.map +1 -0
  217. package/dist/services/workspace-info.d.ts +40 -37
  218. package/dist/services/workspace-info.d.ts.map +1 -0
  219. package/dist/templates/app-config.template.d.ts +3 -6
  220. package/dist/templates/app-config.template.d.ts.map +1 -0
  221. package/dist/templates/data-view.template.d.ts +3 -6
  222. package/dist/templates/data-view.template.d.ts.map +1 -0
  223. package/dist/templates/event.template.d.ts +3 -7
  224. package/dist/templates/event.template.d.ts.map +1 -0
  225. package/dist/templates/experiment.template.d.ts +3 -6
  226. package/dist/templates/experiment.template.d.ts.map +1 -0
  227. package/dist/templates/handler.template.d.ts +4 -6
  228. package/dist/templates/handler.template.d.ts.map +1 -0
  229. package/dist/templates/index.d.ts +17 -20
  230. package/dist/templates/index.d.ts.map +1 -0
  231. package/dist/templates/integration.template.d.ts +3 -6
  232. package/dist/templates/integration.template.d.ts.map +1 -0
  233. package/dist/templates/knowledge.template.d.ts +3 -6
  234. package/dist/templates/knowledge.template.d.ts.map +1 -0
  235. package/dist/templates/migration.template.d.ts +3 -6
  236. package/dist/templates/migration.template.d.ts.map +1 -0
  237. package/dist/templates/operation.template.d.ts +3 -7
  238. package/dist/templates/operation.template.d.ts.map +1 -0
  239. package/dist/templates/operation.template.test.d.ts +2 -0
  240. package/dist/templates/operation.template.test.d.ts.map +1 -0
  241. package/dist/templates/presentation.template.d.ts +3 -7
  242. package/dist/templates/presentation.template.d.ts.map +1 -0
  243. package/dist/templates/telemetry.template.d.ts +3 -6
  244. package/dist/templates/telemetry.template.d.ts.map +1 -0
  245. package/dist/templates/workflow-runner.template.d.ts +7 -13
  246. package/dist/templates/workflow-runner.template.d.ts.map +1 -0
  247. package/dist/templates/workflow.template.d.ts +3 -6
  248. package/dist/templates/workflow.template.d.ts.map +1 -0
  249. package/dist/types/config.d.ts +18 -20
  250. package/dist/types/config.d.ts.map +1 -0
  251. package/dist/types/index.d.ts +5 -0
  252. package/dist/types/index.d.ts.map +1 -0
  253. package/dist/types.d.ts +338 -311
  254. package/dist/types.d.ts.map +1 -0
  255. package/package.json +22 -15
  256. package/dist/_virtual/rolldown_runtime.js +0 -22
  257. package/dist/adapters/ai.js +0 -82
  258. package/dist/adapters/factory.js +0 -36
  259. package/dist/adapters/fs.js +0 -118
  260. package/dist/adapters/git.js +0 -54
  261. package/dist/adapters/index.js +0 -7
  262. package/dist/adapters/logger.js +0 -80
  263. package/dist/adapters/watcher.js +0 -69
  264. package/dist/adapters/workspace.js +0 -190
  265. package/dist/ai/agents/claude-code-agent.js +0 -181
  266. package/dist/ai/agents/cursor-agent.js +0 -437
  267. package/dist/ai/agents/index.js +0 -5
  268. package/dist/ai/agents/openai-codex-agent.js +0 -166
  269. package/dist/ai/agents/orchestrator.js +0 -142
  270. package/dist/ai/agents/simple-agent.js +0 -91
  271. package/dist/ai/client.js +0 -162
  272. package/dist/ai/index.js +0 -27
  273. package/dist/ai/prompts/code-generation.js +0 -142
  274. package/dist/ai/prompts/index.js +0 -12
  275. package/dist/ai/prompts/spec-creation.js +0 -110
  276. package/dist/ai/providers.js +0 -40
  277. package/dist/formatters/index.js +0 -18
  278. package/dist/formatters/json.js +0 -71
  279. package/dist/formatters/sarif.js +0 -163
  280. package/dist/formatters/text.js +0 -208
  281. package/dist/libs/ai-providers/dist/factory.js +0 -154
  282. package/dist/libs/ai-providers/dist/index.js +0 -4
  283. package/dist/libs/ai-providers/dist/legacy.js +0 -72
  284. package/dist/libs/ai-providers/dist/models.js +0 -287
  285. package/dist/libs/ai-providers/dist/validation.js +0 -1
  286. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  287. package/dist/libs/contracts/dist/client/index.js +0 -5
  288. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  289. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  290. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  291. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  292. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  293. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  294. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  295. package/dist/libs/contracts/dist/docs/index.js +0 -29
  296. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  297. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  298. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  299. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  300. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  301. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  302. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  303. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  304. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  305. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  306. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  307. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  308. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  309. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  310. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  311. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  312. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  313. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  314. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  315. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  316. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  317. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  318. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  319. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  320. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  321. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  322. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  323. package/dist/libs/contracts/dist/events.js +0 -8
  324. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  325. package/dist/libs/contracts/dist/index.js +0 -72
  326. package/dist/libs/contracts/dist/install.js +0 -2
  327. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  328. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  329. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  330. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  331. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  332. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  333. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  334. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  335. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  336. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  337. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  338. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  339. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  340. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  341. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  342. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  343. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  344. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  345. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  346. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  347. package/dist/libs/contracts/dist/jsonschema.js +0 -24
  348. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  349. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  350. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  351. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  352. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  353. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  354. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  355. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  356. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  357. package/dist/libs/contracts/dist/llm/exporters.js +0 -352
  358. package/dist/libs/contracts/dist/llm/index.js +0 -2
  359. package/dist/libs/contracts/dist/llm/prompts.js +0 -211
  360. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  361. package/dist/libs/contracts/dist/openapi.js +0 -75
  362. package/dist/libs/contracts/dist/ownership.js +0 -21
  363. package/dist/libs/contracts/dist/presentations.js +0 -1
  364. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  365. package/dist/libs/contracts/dist/prompt.js +0 -1
  366. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  367. package/dist/libs/contracts/dist/regenerator/index.js +0 -2
  368. package/dist/libs/contracts/dist/regenerator/service.js +0 -92
  369. package/dist/libs/contracts/dist/regenerator/utils.js +0 -51
  370. package/dist/libs/contracts/dist/registry.js +0 -208
  371. package/dist/libs/contracts/dist/resources.js +0 -1
  372. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  373. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  374. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  375. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  376. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  377. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  378. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  379. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  380. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  381. package/dist/libs/contracts/dist/server/index.js +0 -8
  382. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  383. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  384. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  385. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  386. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  387. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  388. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  389. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  390. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  391. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  392. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  393. package/dist/libs/contracts/dist/spec.js +0 -35
  394. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  395. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  396. package/dist/libs/contracts/dist/tests/index.js +0 -1
  397. package/dist/libs/contracts/dist/tests/runner.js +0 -150
  398. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  399. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  400. package/dist/libs/contracts-transformers/dist/common/utils.js +0 -47
  401. package/dist/libs/contracts-transformers/dist/openapi/exporter.js +0 -1
  402. package/dist/libs/contracts-transformers/dist/openapi/importer.js +0 -255
  403. package/dist/libs/contracts-transformers/dist/openapi/index.js +0 -4
  404. package/dist/libs/contracts-transformers/dist/openapi/parser.js +0 -231
  405. package/dist/libs/contracts-transformers/dist/openapi/schema-converter.js +0 -201
  406. package/dist/modules/contractspec-workspace/dist/ai/code-generation.js +0 -137
  407. package/dist/modules/contractspec-workspace/dist/ai/spec-creation.js +0 -101
  408. package/dist/modules/contractspec-workspace/dist/analysis/deps/graph.js +0 -84
  409. package/dist/modules/contractspec-workspace/dist/analysis/deps/parse-imports.js +0 -30
  410. package/dist/modules/contractspec-workspace/dist/analysis/diff/semantic.js +0 -96
  411. package/dist/modules/contractspec-workspace/dist/analysis/feature-scan.js +0 -151
  412. package/dist/modules/contractspec-workspace/dist/analysis/spec-scan.js +0 -344
  413. package/dist/modules/contractspec-workspace/dist/analysis/validate/spec-structure.js +0 -122
  414. package/dist/modules/contractspec-workspace/dist/templates/app-config.js +0 -105
  415. package/dist/modules/contractspec-workspace/dist/templates/data-view.js +0 -68
  416. package/dist/modules/contractspec-workspace/dist/templates/event.js +0 -38
  417. package/dist/modules/contractspec-workspace/dist/templates/experiment.js +0 -87
  418. package/dist/modules/contractspec-workspace/dist/templates/handler.js +0 -95
  419. package/dist/modules/contractspec-workspace/dist/templates/integration-utils.js +0 -104
  420. package/dist/modules/contractspec-workspace/dist/templates/integration.js +0 -62
  421. package/dist/modules/contractspec-workspace/dist/templates/knowledge.js +0 -68
  422. package/dist/modules/contractspec-workspace/dist/templates/migration.js +0 -60
  423. package/dist/modules/contractspec-workspace/dist/templates/operation.js +0 -100
  424. package/dist/modules/contractspec-workspace/dist/templates/presentation.js +0 -78
  425. package/dist/modules/contractspec-workspace/dist/templates/telemetry.js +0 -89
  426. package/dist/modules/contractspec-workspace/dist/templates/utils.js +0 -38
  427. package/dist/modules/contractspec-workspace/dist/templates/workflow-runner.js +0 -48
  428. package/dist/modules/contractspec-workspace/dist/templates/workflow.js +0 -67
  429. package/dist/modules/contractspec-workspace/dist/types/generation-types.js +0 -20
  430. package/dist/services/agent-guide/adapters/claude-code.js +0 -144
  431. package/dist/services/agent-guide/adapters/cursor-cli.js +0 -135
  432. package/dist/services/agent-guide/adapters/generic-mcp.js +0 -159
  433. package/dist/services/agent-guide/adapters/index.js +0 -30
  434. package/dist/services/agent-guide/agent-guide-service.js +0 -148
  435. package/dist/services/agent-guide/index.js +0 -5
  436. package/dist/services/build.js +0 -140
  437. package/dist/services/ci-check/ci-check-service.js +0 -393
  438. package/dist/services/ci-check/index.js +0 -2
  439. package/dist/services/ci-check/types.js +0 -28
  440. package/dist/services/clean.js +0 -71
  441. package/dist/services/config.js +0 -76
  442. package/dist/services/deps.js +0 -62
  443. package/dist/services/diff.js +0 -33
  444. package/dist/services/doctor/checks/ai.js +0 -118
  445. package/dist/services/doctor/checks/cli.js +0 -146
  446. package/dist/services/doctor/checks/config.js +0 -170
  447. package/dist/services/doctor/checks/deps.js +0 -180
  448. package/dist/services/doctor/checks/index.js +0 -6
  449. package/dist/services/doctor/checks/mcp.js +0 -144
  450. package/dist/services/doctor/checks/workspace.js +0 -243
  451. package/dist/services/doctor/doctor-service.js +0 -115
  452. package/dist/services/doctor/index.js +0 -2
  453. package/dist/services/doctor/types.js +0 -26
  454. package/dist/services/implementation/discovery.js +0 -143
  455. package/dist/services/implementation/index.js +0 -2
  456. package/dist/services/implementation/resolver.js +0 -223
  457. package/dist/services/index.js +0 -53
  458. package/dist/services/integrity-diagram.js +0 -274
  459. package/dist/services/integrity.js +0 -272
  460. package/dist/services/list.js +0 -35
  461. package/dist/services/openapi/export-service.js +0 -51
  462. package/dist/services/openapi/import-service.js +0 -75
  463. package/dist/services/openapi/index.js +0 -4
  464. package/dist/services/openapi/sync-service.js +0 -121
  465. package/dist/services/openapi/validate-service.js +0 -130
  466. package/dist/services/regenerator.js +0 -23
  467. package/dist/services/registry.js +0 -73
  468. package/dist/services/setup/config-generators.js +0 -237
  469. package/dist/services/setup/file-merger.js +0 -60
  470. package/dist/services/setup/index.js +0 -4
  471. package/dist/services/setup/setup-service.js +0 -95
  472. package/dist/services/setup/targets/agents-md.js +0 -46
  473. package/dist/services/setup/targets/cli-config.js +0 -59
  474. package/dist/services/setup/targets/cursor-rules.js +0 -47
  475. package/dist/services/setup/targets/mcp-claude.js +0 -59
  476. package/dist/services/setup/targets/mcp-cursor.js +0 -58
  477. package/dist/services/setup/targets/vscode-settings.js +0 -62
  478. package/dist/services/setup/types.js +0 -26
  479. package/dist/services/sync.js +0 -62
  480. package/dist/services/test.js +0 -30
  481. package/dist/services/validate-implementation.js +0 -69
  482. package/dist/services/validate.js +0 -47
  483. package/dist/services/verification-cache/adapters/filesystem.js +0 -121
  484. package/dist/services/verification-cache/adapters/in-memory.js +0 -45
  485. package/dist/services/verification-cache/adapters/index.js +0 -3
  486. package/dist/services/verification-cache/adapters/workspace-state.js +0 -90
  487. package/dist/services/verification-cache/cache-service.js +0 -255
  488. package/dist/services/verification-cache/index.js +0 -6
  489. package/dist/services/verification-cache/types.js +0 -15
  490. package/dist/services/verify/ai-verifier.js +0 -403
  491. package/dist/services/verify/behavior-verifier.js +0 -185
  492. package/dist/services/verify/index.js +0 -4
  493. package/dist/services/verify/structure-verifier.js +0 -195
  494. package/dist/services/verify/verify-service.js +0 -203
  495. package/dist/services/watch.js +0 -31
  496. package/dist/services/workspace-info.js +0 -102
  497. package/dist/templates/app-config.template.js +0 -106
  498. package/dist/templates/data-view.template.js +0 -69
  499. package/dist/templates/event.template.js +0 -39
  500. package/dist/templates/experiment.template.js +0 -88
  501. package/dist/templates/handler.template.js +0 -99
  502. package/dist/templates/index.js +0 -36
  503. package/dist/templates/integration.template.js +0 -159
  504. package/dist/templates/knowledge.template.js +0 -74
  505. package/dist/templates/migration.template.js +0 -61
  506. package/dist/templates/operation.template.js +0 -104
  507. package/dist/templates/presentation.template.js +0 -79
  508. package/dist/templates/telemetry.template.js +0 -90
  509. package/dist/templates/workflow-runner.template.js +0 -49
  510. package/dist/templates/workflow.template.js +0 -68
@@ -1,393 +0,0 @@
1
- import { isFeatureFile } from "../../modules/contractspec-workspace/dist/analysis/feature-scan.js";
2
- import { validateSpecStructure } from "../../modules/contractspec-workspace/dist/analysis/validate/spec-structure.js";
3
- import { validateImplementationFiles } from "../validate-implementation.js";
4
- import { analyzeDeps } from "../deps.js";
5
- import { loadWorkspaceConfig } from "../config.js";
6
- import { analyzeIntegrity } from "../integrity.js";
7
- import { runDoctor } from "../doctor/doctor-service.js";
8
- import { resolveAllImplementations } from "../implementation/resolver.js";
9
- import "../verification-cache/index.js";
10
-
11
- //#region src/services/ci-check/ci-check-service.ts
12
- /**
13
- * CI Check service.
14
- *
15
- * Orchestrates all validation checks for CI/CD pipelines.
16
- * Returns structured results suitable for multiple output formats.
17
- */
18
- /**
19
- * Run all CI checks and return structured results.
20
- */
21
- async function runCIChecks(adapters, options = {}) {
22
- const startTime = Date.now();
23
- const { fs, logger } = adapters;
24
- const issues = [];
25
- const categorySummaries = [];
26
- const checksToRun = getChecksToRun(options);
27
- logger.info("Starting CI checks...", { checks: checksToRun });
28
- const specFiles = (await fs.glob({ pattern: options.pattern })).filter((f) => !isFeatureFile(f) && !f.includes(".test.") && !f.includes(".spec."));
29
- if (checksToRun.includes("structure")) {
30
- const categoryStart = Date.now();
31
- const structureIssues = await runStructureChecks(adapters, specFiles);
32
- issues.push(...structureIssues);
33
- categorySummaries.push(createCategorySummary("structure", structureIssues, Date.now() - categoryStart));
34
- }
35
- if (checksToRun.includes("integrity")) {
36
- const categoryStart = Date.now();
37
- const integrityIssues = await runIntegrityChecks(adapters, options);
38
- issues.push(...integrityIssues);
39
- categorySummaries.push(createCategorySummary("integrity", integrityIssues, Date.now() - categoryStart));
40
- }
41
- if (checksToRun.includes("deps")) {
42
- const categoryStart = Date.now();
43
- const depsIssues = await runDepsChecks(adapters, options);
44
- issues.push(...depsIssues);
45
- categorySummaries.push(createCategorySummary("deps", depsIssues, Date.now() - categoryStart));
46
- }
47
- if (checksToRun.includes("doctor")) {
48
- const categoryStart = Date.now();
49
- const doctorIssues = await runDoctorChecks(adapters, options);
50
- issues.push(...doctorIssues);
51
- categorySummaries.push(createCategorySummary("doctor", doctorIssues, Date.now() - categoryStart));
52
- }
53
- if (checksToRun.includes("handlers") || options.checkHandlers) {
54
- const categoryStart = Date.now();
55
- const handlerIssues = await runHandlerChecks(adapters, specFiles);
56
- issues.push(...handlerIssues);
57
- categorySummaries.push(createCategorySummary("handlers", handlerIssues, Date.now() - categoryStart));
58
- }
59
- if (checksToRun.includes("tests") || options.checkTests) {
60
- const categoryStart = Date.now();
61
- const testIssues = await runTestChecks(adapters, specFiles);
62
- issues.push(...testIssues);
63
- categorySummaries.push(createCategorySummary("tests", testIssues, Date.now() - categoryStart));
64
- }
65
- if (checksToRun.includes("implementation")) {
66
- const categoryStart = Date.now();
67
- const implIssues = await runImplementationChecks(adapters, specFiles, options);
68
- issues.push(...implIssues);
69
- categorySummaries.push(createCategorySummary("implementation", implIssues, Date.now() - categoryStart));
70
- }
71
- const totalErrors = issues.filter((i) => i.severity === "error").length;
72
- const totalWarnings = issues.filter((i) => i.severity === "warning").length;
73
- const totalNotes = issues.filter((i) => i.severity === "note").length;
74
- const success = options.failOnWarnings ? totalErrors === 0 && totalWarnings === 0 : totalErrors === 0;
75
- const gitInfo = await getGitInfo(fs);
76
- const result = {
77
- success,
78
- totalErrors,
79
- totalWarnings,
80
- totalNotes,
81
- issues,
82
- categories: categorySummaries,
83
- durationMs: Date.now() - startTime,
84
- timestamp: (/* @__PURE__ */ new Date()).toISOString(),
85
- ...gitInfo
86
- };
87
- logger.info("CI checks complete", {
88
- success,
89
- errors: totalErrors,
90
- warnings: totalWarnings,
91
- durationMs: result.durationMs
92
- });
93
- return result;
94
- }
95
- /**
96
- * Determine which checks to run based on options.
97
- */
98
- function getChecksToRun(options) {
99
- const allCategories = [
100
- "structure",
101
- "integrity",
102
- "deps",
103
- "doctor"
104
- ];
105
- if (options.checkHandlers) allCategories.push("handlers");
106
- if (options.checkTests) allCategories.push("tests");
107
- if (options.implementation) allCategories.push("implementation");
108
- if (options.checks && options.checks.length > 0) return options.checks;
109
- if (options.skip && options.skip.length > 0) return allCategories.filter((c) => !options.skip?.includes(c));
110
- return allCategories;
111
- }
112
- /**
113
- * Run spec structure validation checks.
114
- */
115
- async function runStructureChecks(adapters, specFiles) {
116
- const { fs } = adapters;
117
- const issues = [];
118
- for (const file of specFiles) {
119
- const result = validateSpecStructure(await fs.readFile(file), fs.basename(file));
120
- for (const error of result.errors) issues.push({
121
- ruleId: "spec-structure-error",
122
- severity: "error",
123
- message: error,
124
- category: "structure",
125
- file
126
- });
127
- for (const warning of result.warnings) issues.push({
128
- ruleId: "spec-structure-warning",
129
- severity: "warning",
130
- message: warning,
131
- category: "structure",
132
- file
133
- });
134
- }
135
- return issues;
136
- }
137
- /**
138
- * Run integrity analysis checks.
139
- */
140
- async function runIntegrityChecks(adapters, options) {
141
- const issues = [];
142
- const result = await analyzeIntegrity(adapters, {
143
- pattern: options.pattern,
144
- all: true
145
- });
146
- for (const issue of result.issues) issues.push({
147
- ruleId: `integrity-${issue.type}`,
148
- severity: issue.severity === "error" ? "error" : "warning",
149
- message: issue.message,
150
- category: "integrity",
151
- file: issue.file,
152
- context: {
153
- specName: issue.specName,
154
- specType: issue.specType,
155
- featureKey: issue.featureKey,
156
- ref: issue.ref
157
- }
158
- });
159
- return issues;
160
- }
161
- /**
162
- * Run dependency analysis checks.
163
- */
164
- async function runDepsChecks(adapters, options) {
165
- const issues = [];
166
- const result = await analyzeDeps(adapters, { pattern: options.pattern });
167
- for (const cycle of result.cycles) issues.push({
168
- ruleId: "deps-circular",
169
- severity: "error",
170
- message: `Circular dependency detected: ${cycle.join(" → ")}`,
171
- category: "deps",
172
- context: { cycle }
173
- });
174
- for (const item of result.missing) for (const missing of item.missing) issues.push({
175
- ruleId: "deps-missing",
176
- severity: "error",
177
- message: `Missing dependency: ${item.contract} requires ${missing}`,
178
- category: "deps",
179
- context: {
180
- contract: item.contract,
181
- missing
182
- }
183
- });
184
- return issues;
185
- }
186
- /**
187
- * Run doctor checks (skipping AI in CI).
188
- */
189
- async function runDoctorChecks(adapters, options) {
190
- const issues = [];
191
- const result = await runDoctor(adapters, {
192
- workspaceRoot: options.workspaceRoot ?? process.cwd(),
193
- skipAi: true,
194
- categories: [
195
- "cli",
196
- "config",
197
- "deps",
198
- "workspace"
199
- ]
200
- });
201
- for (const check of result.checks) if (check.status === "fail") issues.push({
202
- ruleId: `doctor-${check.category}-${check.name.toLowerCase().replace(/\s+/g, "-")}`,
203
- severity: "error",
204
- message: `${check.name}: ${check.message}`,
205
- category: "doctor",
206
- context: { details: check.details }
207
- });
208
- else if (check.status === "warn") issues.push({
209
- ruleId: `doctor-${check.category}-${check.name.toLowerCase().replace(/\s+/g, "-")}`,
210
- severity: "warning",
211
- message: `${check.name}: ${check.message}`,
212
- category: "doctor",
213
- context: { details: check.details }
214
- });
215
- return issues;
216
- }
217
- /**
218
- * Run handler implementation checks.
219
- */
220
- async function runHandlerChecks(adapters, specFiles) {
221
- const { fs } = adapters;
222
- const issues = [];
223
- const config = await loadWorkspaceConfig(fs);
224
- for (const specFile of specFiles) {
225
- if (!specFile.includes(".contracts.")) continue;
226
- const result = await validateImplementationFiles(specFile, { fs }, config, {
227
- checkHandlers: true,
228
- outputDir: config.outputDir
229
- });
230
- for (const error of result.errors) issues.push({
231
- ruleId: "handler-missing",
232
- severity: "warning",
233
- message: error,
234
- category: "handlers",
235
- file: specFile
236
- });
237
- for (const warning of result.warnings) issues.push({
238
- ruleId: "handler-warning",
239
- severity: "warning",
240
- message: warning,
241
- category: "handlers",
242
- file: specFile
243
- });
244
- }
245
- return issues;
246
- }
247
- /**
248
- * Run test coverage checks.
249
- */
250
- async function runTestChecks(adapters, specFiles) {
251
- const { fs } = adapters;
252
- const issues = [];
253
- const config = await loadWorkspaceConfig(fs);
254
- for (const specFile of specFiles) {
255
- if (!specFile.includes(".contracts.")) continue;
256
- const result = await validateImplementationFiles(specFile, { fs }, config, {
257
- checkTests: true,
258
- outputDir: config.outputDir
259
- });
260
- for (const error of result.errors) issues.push({
261
- ruleId: "test-missing",
262
- severity: "warning",
263
- message: error,
264
- category: "tests",
265
- file: specFile
266
- });
267
- for (const warning of result.warnings) issues.push({
268
- ruleId: "test-warning",
269
- severity: "warning",
270
- message: warning,
271
- category: "tests",
272
- file: specFile
273
- });
274
- }
275
- return issues;
276
- }
277
- /**
278
- * Run implementation verification checks.
279
- */
280
- async function runImplementationChecks(adapters, specFiles, options) {
281
- const { fs } = adapters;
282
- const issues = [];
283
- const config = await loadWorkspaceConfig(fs);
284
- const implOptions = options.implementation ?? {};
285
- const results = await resolveAllImplementations(specFiles.filter((f) => f.includes(".contracts.")), { fs }, config, { computeHashes: implOptions.useCache ?? true });
286
- for (const result of results) {
287
- if (implOptions.requireImplemented && result.status === "missing") issues.push({
288
- ruleId: "impl-missing",
289
- severity: "error",
290
- message: `Spec ${result.specName} has no implementation`,
291
- category: "implementation",
292
- file: result.specPath,
293
- context: {
294
- specName: result.specName,
295
- specVersion: result.specVersion,
296
- status: result.status
297
- }
298
- });
299
- else if (result.status === "missing") issues.push({
300
- ruleId: "impl-missing",
301
- severity: "warning",
302
- message: `Spec ${result.specName} has no implementation`,
303
- category: "implementation",
304
- file: result.specPath,
305
- context: {
306
- specName: result.specName,
307
- specVersion: result.specVersion,
308
- status: result.status
309
- }
310
- });
311
- if (!implOptions.allowPartial && result.status === "partial") {
312
- const missingImpls = result.implementations.filter((i) => !i.exists && i.type !== "test").map((i) => i.path);
313
- issues.push({
314
- ruleId: "impl-partial",
315
- severity: "warning",
316
- message: `Spec ${result.specName} has partial implementation: missing ${missingImpls.join(", ")}`,
317
- category: "implementation",
318
- file: result.specPath,
319
- context: {
320
- specName: result.specName,
321
- specVersion: result.specVersion,
322
- status: result.status,
323
- missingFiles: missingImpls
324
- }
325
- });
326
- }
327
- const missingTests = result.implementations.filter((i) => !i.exists && i.type === "test");
328
- if (missingTests.length > 0) issues.push({
329
- ruleId: "impl-missing-tests",
330
- severity: "note",
331
- message: `Spec ${result.specName} missing test files: ${missingTests.map((t) => t.path).join(", ")}`,
332
- category: "implementation",
333
- file: result.specPath,
334
- context: {
335
- specName: result.specName,
336
- missingTests: missingTests.map((t) => t.path)
337
- }
338
- });
339
- }
340
- return issues;
341
- }
342
- /**
343
- * Create a category summary from issues.
344
- */
345
- function createCategorySummary(category, issues, durationMs) {
346
- const categoryLabels = {
347
- structure: "Spec Structure Validation",
348
- integrity: "Contract Integrity Analysis",
349
- deps: "Dependency Analysis",
350
- doctor: "Installation Health",
351
- handlers: "Handler Implementation",
352
- tests: "Test Coverage",
353
- implementation: "Implementation Verification"
354
- };
355
- const errors = issues.filter((i) => i.severity === "error").length;
356
- const warnings = issues.filter((i) => i.severity === "warning").length;
357
- const notes = issues.filter((i) => i.severity === "note").length;
358
- return {
359
- category,
360
- label: categoryLabels[category],
361
- errors,
362
- warnings,
363
- notes,
364
- passed: errors === 0,
365
- durationMs
366
- };
367
- }
368
- /**
369
- * Get git information if available.
370
- */
371
- async function getGitInfo(fs) {
372
- try {
373
- const gitHeadPath = ".git/HEAD";
374
- if (!await fs.exists(gitHeadPath)) return {};
375
- const headContent = await fs.readFile(gitHeadPath);
376
- const refMatch = headContent.match(/^ref: (.+)$/m);
377
- if (refMatch) {
378
- const branch = refMatch[1]?.replace("refs/heads/", "");
379
- const refPath = `.git/${refMatch[1]}`;
380
- if (await fs.exists(refPath)) return {
381
- commitSha: (await fs.readFile(refPath)).trim(),
382
- branch
383
- };
384
- return { branch };
385
- }
386
- return { commitSha: headContent.trim() };
387
- } catch {
388
- return {};
389
- }
390
- }
391
-
392
- //#endregion
393
- export { runCIChecks };
@@ -1,2 +0,0 @@
1
- import { ALL_CI_CHECK_CATEGORIES, CI_CHECK_CATEGORY_LABELS } from "./types.js";
2
- import { runCIChecks } from "./ci-check-service.js";
@@ -1,28 +0,0 @@
1
- //#region src/services/ci-check/types.ts
2
- /**
3
- * All available CI check categories.
4
- */
5
- const ALL_CI_CHECK_CATEGORIES = [
6
- "structure",
7
- "integrity",
8
- "deps",
9
- "doctor",
10
- "handlers",
11
- "tests",
12
- "implementation"
13
- ];
14
- /**
15
- * Human-readable labels for CI check categories.
16
- */
17
- const CI_CHECK_CATEGORY_LABELS = {
18
- structure: "Spec Structure Validation",
19
- integrity: "Contract Integrity Analysis",
20
- deps: "Dependency Analysis",
21
- doctor: "Installation Health",
22
- handlers: "Handler Implementation",
23
- tests: "Test Coverage",
24
- implementation: "Implementation Verification"
25
- };
26
-
27
- //#endregion
28
- export { ALL_CI_CHECK_CATEGORIES, CI_CHECK_CATEGORY_LABELS };
@@ -1,71 +0,0 @@
1
- //#region src/services/clean.ts
2
- async function cleanArtifacts(adapters, options = {}) {
3
- const { fs, logger } = adapters;
4
- const outputDir = (options.outputDir ?? "./src").replace(/\\/g, "/");
5
- const basePatterns = [
6
- "generated/**",
7
- "dist/**",
8
- ".turbo/**"
9
- ];
10
- const outputDirPatterns = [
11
- `${outputDir}/handlers/**/*.handler.ts`,
12
- `${outputDir}/handlers/**/*.handler.test.ts`,
13
- `${outputDir}/components/**/*.tsx`,
14
- `${outputDir}/components/**/*.test.tsx`,
15
- `${outputDir}/forms/**/*.form.tsx`,
16
- `${outputDir}/forms/**/*.form.test.tsx`,
17
- `${outputDir}/**/*.runner.ts`,
18
- `${outputDir}/**/*.renderer.tsx`
19
- ];
20
- const patterns = options.generatedOnly ? [...basePatterns, ...outputDirPatterns] : [
21
- ...basePatterns,
22
- "**/*.generated.ts",
23
- "**/*.generated.js",
24
- "**/*.generated.d.ts",
25
- ...outputDirPatterns
26
- ];
27
- const candidates = await fs.glob({
28
- patterns,
29
- ignore: ["node_modules/**"]
30
- });
31
- const removed = [];
32
- const skipped = [];
33
- for (const p of candidates) try {
34
- const st = await fs.stat(p);
35
- const ageDays = (Date.now() - st.mtime.getTime()) / (1e3 * 60 * 60 * 24);
36
- if (typeof options.olderThanDays === "number" && ageDays < options.olderThanDays) {
37
- skipped.push({
38
- path: p,
39
- reason: `younger_than_${options.olderThanDays}_days`
40
- });
41
- continue;
42
- }
43
- if (options.dryRun) logger.info("[dry-run] clean would remove", {
44
- path: p,
45
- size: st.size
46
- });
47
- else {
48
- await fs.remove(p);
49
- logger.info("clean.removed", {
50
- path: p,
51
- size: st.size
52
- });
53
- }
54
- removed.push({
55
- path: p,
56
- size: st.size
57
- });
58
- } catch (error) {
59
- skipped.push({
60
- path: p,
61
- reason: error instanceof Error ? error.message : String(error)
62
- });
63
- }
64
- return {
65
- removed,
66
- skipped
67
- };
68
- }
69
-
70
- //#endregion
71
- export { cleanArtifacts };
@@ -1,76 +0,0 @@
1
- import { DEFAULT_WORKSPACE_CONFIG } from "../modules/contractspec-workspace/dist/types/generation-types.js";
2
- import * as z$1 from "zod";
3
-
4
- //#region src/services/config.ts
5
- /**
6
- * Workspace configuration service.
7
- */
8
- const ConfigSchema = z$1.object({
9
- aiProvider: z$1.enum([
10
- "claude",
11
- "openai",
12
- "ollama",
13
- "custom"
14
- ]).default("claude"),
15
- aiModel: z$1.string().optional(),
16
- agentMode: z$1.enum([
17
- "simple",
18
- "cursor",
19
- "claude-code",
20
- "openai-codex"
21
- ]).default("simple"),
22
- customEndpoint: z$1.string().url().nullable().optional(),
23
- customApiKey: z$1.string().nullable().optional(),
24
- outputDir: z$1.string().default("./src"),
25
- conventions: z$1.object({
26
- operations: z$1.string().default("interactions/commands|queries"),
27
- events: z$1.string().default("events"),
28
- presentations: z$1.string().default("presentations"),
29
- forms: z$1.string().default("forms")
30
- }),
31
- defaultOwners: z$1.array(z$1.string()).default([]),
32
- defaultTags: z$1.array(z$1.string()).default([])
33
- });
34
- /**
35
- * Load workspace configuration from .contractsrc.json.
36
- */
37
- async function loadWorkspaceConfig(fs, cwd) {
38
- const configPath = fs.join(cwd ?? ".", ".contractsrc.json");
39
- if (!await fs.exists(configPath)) return DEFAULT_WORKSPACE_CONFIG;
40
- try {
41
- const content = await fs.readFile(configPath);
42
- const parsed = JSON.parse(content);
43
- return ConfigSchema.parse(parsed);
44
- } catch {
45
- return DEFAULT_WORKSPACE_CONFIG;
46
- }
47
- }
48
- /**
49
- * Merge config with CLI options and environment variables.
50
- */
51
- function mergeWorkspaceConfig(config, options) {
52
- return {
53
- ...config,
54
- aiProvider: options.provider ?? process.env["CONTRACTSPEC_AI_PROVIDER"] ?? config.aiProvider,
55
- aiModel: options.model ?? process.env["CONTRACTSPEC_AI_MODEL"] ?? config.aiModel,
56
- agentMode: options.agentMode ?? process.env["CONTRACTSPEC_AGENT_MODE"] ?? config.agentMode,
57
- customEndpoint: options.endpoint ?? process.env["CONTRACTSPEC_LLM_ENDPOINT"] ?? config.customEndpoint ?? void 0,
58
- customApiKey: process.env["CONTRACTSPEC_LLM_API_KEY"] ?? config.customApiKey ?? void 0,
59
- outputDir: options.outputDir ?? config.outputDir
60
- };
61
- }
62
- /**
63
- * Get API key for the configured provider.
64
- */
65
- function getApiKey(provider) {
66
- switch (provider) {
67
- case "claude": return process.env["ANTHROPIC_API_KEY"];
68
- case "openai": return process.env["OPENAI_API_KEY"];
69
- case "custom": return process.env["CONTRACTSPEC_LLM_API_KEY"];
70
- case "ollama": return;
71
- default: return;
72
- }
73
- }
74
-
75
- //#endregion
76
- export { getApiKey, loadWorkspaceConfig, mergeWorkspaceConfig };
@@ -1,62 +0,0 @@
1
- import { addContractNode, buildReverseEdges, createContractGraph, detectCycles, findMissingDependencies, toDot } from "../modules/contractspec-workspace/dist/analysis/deps/graph.js";
2
- import { parseImportedSpecNames } from "../modules/contractspec-workspace/dist/analysis/deps/parse-imports.js";
3
-
4
- //#region src/services/deps.ts
5
- /**
6
- * Dependency analysis service.
7
- */
8
- /**
9
- * Analyze contract dependencies.
10
- */
11
- async function analyzeDeps(adapters, options = {}) {
12
- const { fs } = adapters;
13
- const files = await fs.glob({ pattern: options.pattern });
14
- const graph = createContractGraph();
15
- for (const file of files) {
16
- const content = await fs.readFile(file);
17
- const relativePath = fs.relative(".", file);
18
- const nameMatch = content.match(/name:\s*['"]([^'"]+)['"]/);
19
- addContractNode(graph, (nameMatch?.[1] ? nameMatch[1] : fs.basename(file).replace(/\.[jt]s$/, "").replace(/\.(contracts|event|presentation|workflow|data-view|migration|telemetry|experiment|app-config|integration|knowledge)$/, "")) || "unknown", relativePath, parseImportedSpecNames(content, file));
20
- }
21
- buildReverseEdges(graph);
22
- const cycles = detectCycles(graph);
23
- const missing = findMissingDependencies(graph);
24
- return {
25
- graph,
26
- total: graph.size,
27
- cycles,
28
- missing
29
- };
30
- }
31
- /**
32
- * Get contract node by name.
33
- */
34
- function getContractNode(graph, name) {
35
- return graph.get(name);
36
- }
37
- /**
38
- * Export graph as DOT format.
39
- */
40
- function exportGraphAsDot(graph) {
41
- return toDot(graph);
42
- }
43
- /**
44
- * Get graph statistics.
45
- */
46
- function getGraphStats(graph) {
47
- const all = Array.from(graph.values());
48
- const withDeps = all.filter((c) => c.dependencies.length > 0);
49
- const withoutDeps = all.filter((c) => c.dependencies.length === 0);
50
- const used = all.filter((c) => c.dependents.length > 0);
51
- const unused = all.filter((c) => c.dependents.length === 0);
52
- return {
53
- total: graph.size,
54
- withDeps: withDeps.length,
55
- withoutDeps: withoutDeps.length,
56
- used: used.length,
57
- unused: unused.length
58
- };
59
- }
60
-
61
- //#endregion
62
- export { analyzeDeps, exportGraphAsDot, getContractNode, getGraphStats };
@@ -1,33 +0,0 @@
1
- import { computeSemanticDiff } from "../modules/contractspec-workspace/dist/analysis/diff/semantic.js";
2
-
3
- //#region src/services/diff.ts
4
- /**
5
- * Diff service.
6
- */
7
- /**
8
- * Compare two spec files semantically.
9
- */
10
- async function compareSpecs(spec1Path, spec2Path, adapters, options = {}) {
11
- const { fs, git } = adapters;
12
- if (!await fs.exists(spec1Path)) throw new Error(`Spec file not found: ${spec1Path}`);
13
- const spec1Code = await fs.readFile(spec1Path);
14
- let spec2Code;
15
- let spec2Label;
16
- if (options.baseline) {
17
- spec2Code = await git.showFile(options.baseline, spec1Path);
18
- spec2Label = `${options.baseline}:${spec1Path}`;
19
- } else {
20
- if (!await fs.exists(spec2Path)) throw new Error(`Spec file not found: ${spec2Path}`);
21
- spec2Code = await fs.readFile(spec2Path);
22
- spec2Label = spec2Path;
23
- }
24
- const differences = computeSemanticDiff(spec1Code, spec1Path, spec2Code, spec2Label, { breakingOnly: options.breakingOnly });
25
- return {
26
- spec1: spec1Path,
27
- spec2: spec2Label,
28
- differences
29
- };
30
- }
31
-
32
- //#endregion
33
- export { compareSpecs };