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

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 (502) 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 +4531 -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 +28 -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/regenerator.d.ts +18 -16
  146. package/dist/services/regenerator.d.ts.map +1 -0
  147. package/dist/services/registry.d.ts +25 -26
  148. package/dist/services/registry.d.ts.map +1 -0
  149. package/dist/services/setup/config-generators.d.ts +14 -13
  150. package/dist/services/setup/config-generators.d.ts.map +1 -0
  151. package/dist/services/setup/file-merger.d.ts +5 -7
  152. package/dist/services/setup/file-merger.d.ts.map +1 -0
  153. package/dist/services/setup/index.d.ts +10 -0
  154. package/dist/services/setup/index.d.ts.map +1 -0
  155. package/dist/services/setup/setup-service.d.ts +10 -8
  156. package/dist/services/setup/setup-service.d.ts.map +1 -0
  157. package/dist/services/setup/targets/agents-md.d.ts +12 -0
  158. package/dist/services/setup/targets/agents-md.d.ts.map +1 -0
  159. package/dist/services/setup/targets/cli-config.d.ts +12 -0
  160. package/dist/services/setup/targets/cli-config.d.ts.map +1 -0
  161. package/dist/services/setup/targets/cursor-rules.d.ts +10 -0
  162. package/dist/services/setup/targets/cursor-rules.d.ts.map +1 -0
  163. package/dist/services/setup/targets/index.d.ts +10 -0
  164. package/dist/services/setup/targets/index.d.ts.map +1 -0
  165. package/dist/services/setup/targets/mcp-claude.d.ts +11 -0
  166. package/dist/services/setup/targets/mcp-claude.d.ts.map +1 -0
  167. package/dist/services/setup/targets/mcp-cursor.d.ts +10 -0
  168. package/dist/services/setup/targets/mcp-cursor.d.ts.map +1 -0
  169. package/dist/services/setup/targets/vscode-settings.d.ts +13 -0
  170. package/dist/services/setup/targets/vscode-settings.d.ts.map +1 -0
  171. package/dist/services/setup/types.d.ts +51 -53
  172. package/dist/services/setup/types.d.ts.map +1 -0
  173. package/dist/services/sync.d.ts +37 -35
  174. package/dist/services/sync.d.ts.map +1 -0
  175. package/dist/services/test.d.ts +15 -13
  176. package/dist/services/test.d.ts.map +1 -0
  177. package/dist/services/validate-implementation.d.ts +30 -28
  178. package/dist/services/validate-implementation.d.ts.map +1 -0
  179. package/dist/services/validate.d.ts +23 -24
  180. package/dist/services/validate.d.ts.map +1 -0
  181. package/dist/services/verification-cache/adapters/filesystem.d.ts +40 -38
  182. package/dist/services/verification-cache/adapters/filesystem.d.ts.map +1 -0
  183. package/dist/services/verification-cache/adapters/in-memory.d.ts +21 -19
  184. package/dist/services/verification-cache/adapters/in-memory.d.ts.map +1 -0
  185. package/dist/services/verification-cache/adapters/index.d.ts +7 -0
  186. package/dist/services/verification-cache/adapters/index.d.ts.map +1 -0
  187. package/dist/services/verification-cache/adapters/workspace-state.d.ts +39 -37
  188. package/dist/services/verification-cache/adapters/workspace-state.d.ts.map +1 -0
  189. package/dist/services/verification-cache/cache-service.d.ts +55 -53
  190. package/dist/services/verification-cache/cache-service.d.ts.map +1 -0
  191. package/dist/services/verification-cache/index.d.ts +7 -0
  192. package/dist/services/verification-cache/index.d.ts.map +1 -0
  193. package/dist/services/verification-cache/types.d.ts +84 -85
  194. package/dist/services/verification-cache/types.d.ts.map +1 -0
  195. package/dist/services/verify/ai-verifier.d.ts +13 -11
  196. package/dist/services/verify/ai-verifier.d.ts.map +1 -0
  197. package/dist/services/verify/behavior-verifier.d.ts +10 -8
  198. package/dist/services/verify/behavior-verifier.d.ts.map +1 -0
  199. package/dist/services/verify/index.d.ts +18 -0
  200. package/dist/services/verify/index.d.ts.map +1 -0
  201. package/dist/services/verify/structure-verifier.d.ts +12 -8
  202. package/dist/services/verify/structure-verifier.d.ts.map +1 -0
  203. package/dist/services/verify/types.d.ts +114 -115
  204. package/dist/services/verify/types.d.ts.map +1 -0
  205. package/dist/services/verify/verify-service.d.ts +51 -49
  206. package/dist/services/verify/verify-service.d.ts.map +1 -0
  207. package/dist/services/watch.d.ts +22 -21
  208. package/dist/services/watch.d.ts.map +1 -0
  209. package/dist/services/workspace-info.d.ts +40 -37
  210. package/dist/services/workspace-info.d.ts.map +1 -0
  211. package/dist/templates/app-config.template.d.ts +3 -6
  212. package/dist/templates/app-config.template.d.ts.map +1 -0
  213. package/dist/templates/data-view.template.d.ts +3 -6
  214. package/dist/templates/data-view.template.d.ts.map +1 -0
  215. package/dist/templates/event.template.d.ts +3 -7
  216. package/dist/templates/event.template.d.ts.map +1 -0
  217. package/dist/templates/experiment.template.d.ts +3 -6
  218. package/dist/templates/experiment.template.d.ts.map +1 -0
  219. package/dist/templates/handler.template.d.ts +4 -6
  220. package/dist/templates/handler.template.d.ts.map +1 -0
  221. package/dist/templates/index.d.ts +17 -20
  222. package/dist/templates/index.d.ts.map +1 -0
  223. package/dist/templates/integration.template.d.ts +3 -6
  224. package/dist/templates/integration.template.d.ts.map +1 -0
  225. package/dist/templates/knowledge.template.d.ts +3 -6
  226. package/dist/templates/knowledge.template.d.ts.map +1 -0
  227. package/dist/templates/migration.template.d.ts +3 -6
  228. package/dist/templates/migration.template.d.ts.map +1 -0
  229. package/dist/templates/operation.template.d.ts +3 -7
  230. package/dist/templates/operation.template.d.ts.map +1 -0
  231. package/dist/templates/operation.template.test.d.ts +2 -0
  232. package/dist/templates/operation.template.test.d.ts.map +1 -0
  233. package/dist/templates/presentation.template.d.ts +3 -7
  234. package/dist/templates/presentation.template.d.ts.map +1 -0
  235. package/dist/templates/telemetry.template.d.ts +3 -6
  236. package/dist/templates/telemetry.template.d.ts.map +1 -0
  237. package/dist/templates/workflow-runner.template.d.ts +7 -13
  238. package/dist/templates/workflow-runner.template.d.ts.map +1 -0
  239. package/dist/templates/workflow.template.d.ts +3 -6
  240. package/dist/templates/workflow.template.d.ts.map +1 -0
  241. package/dist/types/config.d.ts +18 -20
  242. package/dist/types/config.d.ts.map +1 -0
  243. package/dist/types/index.d.ts +5 -0
  244. package/dist/types/index.d.ts.map +1 -0
  245. package/dist/types.d.ts +338 -311
  246. package/dist/types.d.ts.map +1 -0
  247. package/package.json +16 -15
  248. package/dist/_virtual/rolldown_runtime.js +0 -22
  249. package/dist/adapters/ai.js +0 -82
  250. package/dist/adapters/factory.js +0 -36
  251. package/dist/adapters/fs.js +0 -118
  252. package/dist/adapters/git.js +0 -54
  253. package/dist/adapters/index.js +0 -7
  254. package/dist/adapters/logger.js +0 -80
  255. package/dist/adapters/watcher.js +0 -69
  256. package/dist/adapters/workspace.js +0 -190
  257. package/dist/ai/agents/claude-code-agent.js +0 -181
  258. package/dist/ai/agents/cursor-agent.js +0 -437
  259. package/dist/ai/agents/index.js +0 -5
  260. package/dist/ai/agents/openai-codex-agent.js +0 -166
  261. package/dist/ai/agents/orchestrator.js +0 -142
  262. package/dist/ai/agents/simple-agent.js +0 -91
  263. package/dist/ai/client.js +0 -162
  264. package/dist/ai/index.js +0 -27
  265. package/dist/ai/prompts/code-generation.js +0 -142
  266. package/dist/ai/prompts/index.js +0 -12
  267. package/dist/ai/prompts/spec-creation.js +0 -110
  268. package/dist/ai/providers.js +0 -40
  269. package/dist/formatters/index.js +0 -18
  270. package/dist/formatters/json.js +0 -71
  271. package/dist/formatters/sarif.js +0 -163
  272. package/dist/formatters/text.js +0 -208
  273. package/dist/libs/ai-providers/dist/factory.js +0 -154
  274. package/dist/libs/ai-providers/dist/index.js +0 -4
  275. package/dist/libs/ai-providers/dist/legacy.js +0 -72
  276. package/dist/libs/ai-providers/dist/models.js +0 -287
  277. package/dist/libs/ai-providers/dist/validation.js +0 -1
  278. package/dist/libs/contracts/dist/capabilities/openbanking.js +0 -88
  279. package/dist/libs/contracts/dist/client/index.js +0 -5
  280. package/dist/libs/contracts/dist/client/react/feature-render.js +0 -2
  281. package/dist/libs/contracts/dist/client/react/form-render.js +0 -4
  282. package/dist/libs/contracts/dist/client/react/index.js +0 -4
  283. package/dist/libs/contracts/dist/contract-registry/index.js +0 -1
  284. package/dist/libs/contracts/dist/contract-registry/schemas.js +0 -60
  285. package/dist/libs/contracts/dist/docs/PUBLISHING.docblock.js +0 -16
  286. package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +0 -16
  287. package/dist/libs/contracts/dist/docs/index.js +0 -29
  288. package/dist/libs/contracts/dist/docs/presentations.js +0 -71
  289. package/dist/libs/contracts/dist/docs/registry.js +0 -44
  290. package/dist/libs/contracts/dist/docs/tech/PHASE_1_QUICKSTART.docblock.js +0 -16
  291. package/dist/libs/contracts/dist/docs/tech/PHASE_2_AI_NATIVE_OPERATIONS.docblock.js +0 -16
  292. package/dist/libs/contracts/dist/docs/tech/PHASE_3_AUTO_EVOLUTION.docblock.js +0 -16
  293. package/dist/libs/contracts/dist/docs/tech/PHASE_4_PERSONALIZATION_ENGINE.docblock.js +0 -16
  294. package/dist/libs/contracts/dist/docs/tech/PHASE_5_ZERO_TOUCH_OPERATIONS.docblock.js +0 -16
  295. package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +0 -80
  296. package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +0 -57
  297. package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +0 -16
  298. package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +0 -357
  299. package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +0 -37
  300. package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +0 -16
  301. package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +0 -20
  302. package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +0 -48
  303. package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +0 -79
  304. package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +0 -84
  305. package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +0 -45
  306. package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +0 -67
  307. package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +0 -40
  308. package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +0 -69
  309. package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +0 -47
  310. package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +0 -62
  311. package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +0 -155
  312. package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +0 -20
  313. package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +0 -101
  314. package/dist/libs/contracts/dist/docs/tech/workflows/overview.docblock.js +0 -20
  315. package/dist/libs/contracts/dist/events.js +0 -8
  316. package/dist/libs/contracts/dist/experiments/evaluator.js +0 -1
  317. package/dist/libs/contracts/dist/index.js +0 -72
  318. package/dist/libs/contracts/dist/install.js +0 -2
  319. package/dist/libs/contracts/dist/integrations/contracts.js +0 -377
  320. package/dist/libs/contracts/dist/integrations/index.js +0 -18
  321. package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +0 -228
  322. package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +0 -159
  323. package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +0 -3
  324. package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +0 -210
  325. package/dist/libs/contracts/dist/integrations/openbanking/models.js +0 -242
  326. package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +0 -13
  327. package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +0 -52
  328. package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +0 -75
  329. package/dist/libs/contracts/dist/integrations/providers/gmail.js +0 -87
  330. package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +0 -66
  331. package/dist/libs/contracts/dist/integrations/providers/index.js +0 -11
  332. package/dist/libs/contracts/dist/integrations/providers/mistral.js +0 -68
  333. package/dist/libs/contracts/dist/integrations/providers/postmark.js +0 -68
  334. package/dist/libs/contracts/dist/integrations/providers/powens.js +0 -116
  335. package/dist/libs/contracts/dist/integrations/providers/qdrant.js +0 -73
  336. package/dist/libs/contracts/dist/integrations/providers/registry.js +0 -10
  337. package/dist/libs/contracts/dist/integrations/providers/stripe.js +0 -83
  338. package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +0 -61
  339. package/dist/libs/contracts/dist/jsonschema.js +0 -24
  340. package/dist/libs/contracts/dist/knowledge/contracts.js +0 -306
  341. package/dist/libs/contracts/dist/knowledge/index.js +0 -7
  342. package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +0 -34
  343. package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +0 -34
  344. package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +0 -38
  345. package/dist/libs/contracts/dist/knowledge/spaces/index.js +0 -6
  346. package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +0 -34
  347. package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +0 -37
  348. package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +0 -34
  349. package/dist/libs/contracts/dist/llm/exporters.js +0 -352
  350. package/dist/libs/contracts/dist/llm/index.js +0 -2
  351. package/dist/libs/contracts/dist/llm/prompts.js +0 -211
  352. package/dist/libs/contracts/dist/onboarding-base.js +0 -196
  353. package/dist/libs/contracts/dist/openapi.js +0 -75
  354. package/dist/libs/contracts/dist/ownership.js +0 -21
  355. package/dist/libs/contracts/dist/presentations.js +0 -1
  356. package/dist/libs/contracts/dist/presentations.v2.js +0 -11
  357. package/dist/libs/contracts/dist/prompt.js +0 -1
  358. package/dist/libs/contracts/dist/promptRegistry.js +0 -1
  359. package/dist/libs/contracts/dist/regenerator/index.js +0 -2
  360. package/dist/libs/contracts/dist/regenerator/service.js +0 -92
  361. package/dist/libs/contracts/dist/regenerator/utils.js +0 -51
  362. package/dist/libs/contracts/dist/registry.js +0 -208
  363. package/dist/libs/contracts/dist/resources.js +0 -1
  364. package/dist/libs/contracts/dist/schema/dist/EnumType.js +0 -2
  365. package/dist/libs/contracts/dist/schema/dist/FieldType.js +0 -49
  366. package/dist/libs/contracts/dist/schema/dist/ScalarTypeEnum.js +0 -236
  367. package/dist/libs/contracts/dist/schema/dist/SchemaModel.js +0 -34
  368. package/dist/libs/contracts/dist/schema/dist/entity/defineEntity.js +0 -1
  369. package/dist/libs/contracts/dist/schema/dist/entity/index.js +0 -2
  370. package/dist/libs/contracts/dist/schema/dist/entity/types.js +0 -1
  371. package/dist/libs/contracts/dist/schema/dist/index.js +0 -6
  372. package/dist/libs/contracts/dist/server/graphql-pothos.js +0 -6
  373. package/dist/libs/contracts/dist/server/index.js +0 -8
  374. package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +0 -4
  375. package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +0 -2
  376. package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +0 -1
  377. package/dist/libs/contracts/dist/server/mcp/registerResources.js +0 -2
  378. package/dist/libs/contracts/dist/server/mcp/registerTools.js +0 -1
  379. package/dist/libs/contracts/dist/server/provider-mcp.js +0 -1
  380. package/dist/libs/contracts/dist/server/rest-elysia.js +0 -1
  381. package/dist/libs/contracts/dist/server/rest-express.js +0 -1
  382. package/dist/libs/contracts/dist/server/rest-generic.js +0 -1
  383. package/dist/libs/contracts/dist/server/rest-next-app.js +0 -1
  384. package/dist/libs/contracts/dist/server/rest-next-pages.js +0 -1
  385. package/dist/libs/contracts/dist/spec.js +0 -35
  386. package/dist/libs/contracts/dist/telemetry/index.js +0 -1
  387. package/dist/libs/contracts/dist/telemetry/tracker.js +0 -1
  388. package/dist/libs/contracts/dist/tests/index.js +0 -1
  389. package/dist/libs/contracts/dist/tests/runner.js +0 -150
  390. package/dist/libs/contracts/dist/workflow/index.js +0 -1
  391. package/dist/libs/contracts/dist/workflow/runner.js +0 -1
  392. package/dist/libs/contracts-transformers/dist/common/utils.js +0 -47
  393. package/dist/libs/contracts-transformers/dist/openapi/exporter.js +0 -1
  394. package/dist/libs/contracts-transformers/dist/openapi/importer.js +0 -255
  395. package/dist/libs/contracts-transformers/dist/openapi/index.js +0 -4
  396. package/dist/libs/contracts-transformers/dist/openapi/parser.js +0 -231
  397. package/dist/libs/contracts-transformers/dist/openapi/schema-converter.js +0 -201
  398. package/dist/modules/contractspec-workspace/dist/ai/code-generation.js +0 -137
  399. package/dist/modules/contractspec-workspace/dist/ai/spec-creation.js +0 -101
  400. package/dist/modules/contractspec-workspace/dist/analysis/deps/graph.js +0 -84
  401. package/dist/modules/contractspec-workspace/dist/analysis/deps/parse-imports.js +0 -30
  402. package/dist/modules/contractspec-workspace/dist/analysis/diff/semantic.js +0 -96
  403. package/dist/modules/contractspec-workspace/dist/analysis/feature-scan.js +0 -151
  404. package/dist/modules/contractspec-workspace/dist/analysis/spec-scan.js +0 -344
  405. package/dist/modules/contractspec-workspace/dist/analysis/validate/spec-structure.js +0 -122
  406. package/dist/modules/contractspec-workspace/dist/templates/app-config.js +0 -105
  407. package/dist/modules/contractspec-workspace/dist/templates/data-view.js +0 -68
  408. package/dist/modules/contractspec-workspace/dist/templates/event.js +0 -38
  409. package/dist/modules/contractspec-workspace/dist/templates/experiment.js +0 -87
  410. package/dist/modules/contractspec-workspace/dist/templates/handler.js +0 -95
  411. package/dist/modules/contractspec-workspace/dist/templates/integration-utils.js +0 -104
  412. package/dist/modules/contractspec-workspace/dist/templates/integration.js +0 -62
  413. package/dist/modules/contractspec-workspace/dist/templates/knowledge.js +0 -68
  414. package/dist/modules/contractspec-workspace/dist/templates/migration.js +0 -60
  415. package/dist/modules/contractspec-workspace/dist/templates/operation.js +0 -100
  416. package/dist/modules/contractspec-workspace/dist/templates/presentation.js +0 -78
  417. package/dist/modules/contractspec-workspace/dist/templates/telemetry.js +0 -89
  418. package/dist/modules/contractspec-workspace/dist/templates/utils.js +0 -38
  419. package/dist/modules/contractspec-workspace/dist/templates/workflow-runner.js +0 -48
  420. package/dist/modules/contractspec-workspace/dist/templates/workflow.js +0 -67
  421. package/dist/modules/contractspec-workspace/dist/types/generation-types.js +0 -20
  422. package/dist/services/agent-guide/adapters/claude-code.js +0 -144
  423. package/dist/services/agent-guide/adapters/cursor-cli.js +0 -135
  424. package/dist/services/agent-guide/adapters/generic-mcp.js +0 -159
  425. package/dist/services/agent-guide/adapters/index.js +0 -30
  426. package/dist/services/agent-guide/agent-guide-service.js +0 -148
  427. package/dist/services/agent-guide/index.js +0 -5
  428. package/dist/services/build.js +0 -140
  429. package/dist/services/ci-check/ci-check-service.js +0 -393
  430. package/dist/services/ci-check/index.js +0 -2
  431. package/dist/services/ci-check/types.js +0 -28
  432. package/dist/services/clean.js +0 -71
  433. package/dist/services/config.js +0 -76
  434. package/dist/services/deps.js +0 -62
  435. package/dist/services/diff.js +0 -33
  436. package/dist/services/doctor/checks/ai.js +0 -118
  437. package/dist/services/doctor/checks/cli.js +0 -146
  438. package/dist/services/doctor/checks/config.js +0 -170
  439. package/dist/services/doctor/checks/deps.js +0 -180
  440. package/dist/services/doctor/checks/index.js +0 -6
  441. package/dist/services/doctor/checks/mcp.js +0 -144
  442. package/dist/services/doctor/checks/workspace.js +0 -243
  443. package/dist/services/doctor/doctor-service.js +0 -115
  444. package/dist/services/doctor/index.js +0 -2
  445. package/dist/services/doctor/types.js +0 -26
  446. package/dist/services/implementation/discovery.js +0 -143
  447. package/dist/services/implementation/index.js +0 -2
  448. package/dist/services/implementation/resolver.js +0 -223
  449. package/dist/services/index.js +0 -53
  450. package/dist/services/integrity-diagram.js +0 -274
  451. package/dist/services/integrity.js +0 -272
  452. package/dist/services/list.js +0 -35
  453. package/dist/services/openapi/export-service.js +0 -51
  454. package/dist/services/openapi/import-service.js +0 -75
  455. package/dist/services/openapi/index.js +0 -4
  456. package/dist/services/openapi/sync-service.js +0 -121
  457. package/dist/services/openapi/validate-service.js +0 -130
  458. package/dist/services/regenerator.js +0 -23
  459. package/dist/services/registry.js +0 -73
  460. package/dist/services/setup/config-generators.js +0 -237
  461. package/dist/services/setup/file-merger.js +0 -60
  462. package/dist/services/setup/index.js +0 -4
  463. package/dist/services/setup/setup-service.js +0 -95
  464. package/dist/services/setup/targets/agents-md.js +0 -46
  465. package/dist/services/setup/targets/cli-config.js +0 -59
  466. package/dist/services/setup/targets/cursor-rules.js +0 -47
  467. package/dist/services/setup/targets/mcp-claude.js +0 -59
  468. package/dist/services/setup/targets/mcp-cursor.js +0 -58
  469. package/dist/services/setup/targets/vscode-settings.js +0 -62
  470. package/dist/services/setup/types.js +0 -26
  471. package/dist/services/sync.js +0 -62
  472. package/dist/services/test.js +0 -30
  473. package/dist/services/validate-implementation.js +0 -69
  474. package/dist/services/validate.js +0 -47
  475. package/dist/services/verification-cache/adapters/filesystem.js +0 -121
  476. package/dist/services/verification-cache/adapters/in-memory.js +0 -45
  477. package/dist/services/verification-cache/adapters/index.js +0 -3
  478. package/dist/services/verification-cache/adapters/workspace-state.js +0 -90
  479. package/dist/services/verification-cache/cache-service.js +0 -255
  480. package/dist/services/verification-cache/index.js +0 -6
  481. package/dist/services/verification-cache/types.js +0 -15
  482. package/dist/services/verify/ai-verifier.js +0 -403
  483. package/dist/services/verify/behavior-verifier.js +0 -185
  484. package/dist/services/verify/index.js +0 -4
  485. package/dist/services/verify/structure-verifier.js +0 -195
  486. package/dist/services/verify/verify-service.js +0 -203
  487. package/dist/services/watch.js +0 -31
  488. package/dist/services/workspace-info.js +0 -102
  489. package/dist/templates/app-config.template.js +0 -106
  490. package/dist/templates/data-view.template.js +0 -69
  491. package/dist/templates/event.template.js +0 -39
  492. package/dist/templates/experiment.template.js +0 -88
  493. package/dist/templates/handler.template.js +0 -99
  494. package/dist/templates/index.js +0 -36
  495. package/dist/templates/integration.template.js +0 -159
  496. package/dist/templates/knowledge.template.js +0 -74
  497. package/dist/templates/migration.template.js +0 -61
  498. package/dist/templates/operation.template.js +0 -104
  499. package/dist/templates/presentation.template.js +0 -79
  500. package/dist/templates/telemetry.template.js +0 -90
  501. package/dist/templates/workflow-runner.template.js +0 -49
  502. package/dist/templates/workflow.template.js +0 -68
@@ -1,59 +0,0 @@
1
- import { generateClaudeMcpConfig, getClaudeDesktopConfigPath } from "../config-generators.js";
2
- import { deepMergePreserve, formatJson, safeParseJson } from "../file-merger.js";
3
-
4
- //#region src/services/setup/targets/mcp-claude.ts
5
- /**
6
- * Setup Claude Desktop MCP config.
7
- * This modifies the user's global Claude config, so we're extra careful.
8
- */
9
- async function setupMcpClaude(fs, options, prompts) {
10
- const filePath = getClaudeDesktopConfigPath();
11
- try {
12
- const exists = await fs.exists(filePath);
13
- const defaults = generateClaudeMcpConfig();
14
- if (options.interactive) {
15
- if (!await prompts.confirm(`Configure Claude Desktop at ${filePath}?`)) return {
16
- target: "mcp-claude",
17
- filePath,
18
- action: "skipped",
19
- message: "User skipped Claude Desktop configuration"
20
- };
21
- }
22
- if (exists) {
23
- const existing = safeParseJson(await fs.readFile(filePath));
24
- if (!existing) return {
25
- target: "mcp-claude",
26
- filePath,
27
- action: "error",
28
- message: "Existing file is not valid JSON"
29
- };
30
- const merged = deepMergePreserve(existing, defaults);
31
- await fs.writeFile(filePath, formatJson(merged));
32
- return {
33
- target: "mcp-claude",
34
- filePath,
35
- action: "merged",
36
- message: "Added ContractSpec to Claude Desktop"
37
- };
38
- }
39
- const parentDir = filePath.substring(0, filePath.lastIndexOf("/"));
40
- if (!await fs.exists(parentDir)) await fs.mkdir(parentDir);
41
- await fs.writeFile(filePath, formatJson(defaults));
42
- return {
43
- target: "mcp-claude",
44
- filePath,
45
- action: "created",
46
- message: "Created Claude Desktop configuration"
47
- };
48
- } catch (error) {
49
- return {
50
- target: "mcp-claude",
51
- filePath,
52
- action: "error",
53
- message: error instanceof Error ? error.message : "Unknown error"
54
- };
55
- }
56
- }
57
-
58
- //#endregion
59
- export { setupMcpClaude };
@@ -1,58 +0,0 @@
1
- import { generateCursorMcpConfig } from "../config-generators.js";
2
- import { deepMergePreserve, formatJson, safeParseJson } from "../file-merger.js";
3
-
4
- //#region src/services/setup/targets/mcp-cursor.ts
5
- /**
6
- * Setup .cursor/mcp.json
7
- */
8
- async function setupMcpCursor(fs, options, prompts) {
9
- const dirPath = fs.join(options.workspaceRoot, ".cursor");
10
- const filePath = fs.join(dirPath, "mcp.json");
11
- try {
12
- if (!await fs.exists(dirPath)) await fs.mkdir(dirPath);
13
- const exists = await fs.exists(filePath);
14
- const defaults = generateCursorMcpConfig();
15
- if (exists) {
16
- const existing = safeParseJson(await fs.readFile(filePath));
17
- if (!existing) return {
18
- target: "mcp-cursor",
19
- filePath,
20
- action: "error",
21
- message: "Existing file is not valid JSON"
22
- };
23
- if (options.interactive) {
24
- if (!await prompts.confirm(`${filePath} exists. Add ContractSpec MCP server?`)) return {
25
- target: "mcp-cursor",
26
- filePath,
27
- action: "skipped",
28
- message: "User skipped merge"
29
- };
30
- }
31
- const merged = deepMergePreserve(existing, defaults);
32
- await fs.writeFile(filePath, formatJson(merged));
33
- return {
34
- target: "mcp-cursor",
35
- filePath,
36
- action: "merged",
37
- message: "Added ContractSpec MCP server"
38
- };
39
- }
40
- await fs.writeFile(filePath, formatJson(defaults));
41
- return {
42
- target: "mcp-cursor",
43
- filePath,
44
- action: "created",
45
- message: "Created Cursor MCP configuration"
46
- };
47
- } catch (error) {
48
- return {
49
- target: "mcp-cursor",
50
- filePath,
51
- action: "error",
52
- message: error instanceof Error ? error.message : "Unknown error"
53
- };
54
- }
55
- }
56
-
57
- //#endregion
58
- export { setupMcpCursor };
@@ -1,62 +0,0 @@
1
- import { generateVscodeSettings } from "../config-generators.js";
2
- import { deepMergePreserve, formatJson, safeParseJson } from "../file-merger.js";
3
-
4
- //#region src/services/setup/targets/vscode-settings.ts
5
- /**
6
- * Setup .vscode/settings.json
7
- *
8
- * VS Code settings are typically at workspace root, but in monorepo
9
- * with package scope, can be at package root.
10
- */
11
- async function setupVscodeSettings(fs, options, prompts) {
12
- const targetRoot = options.isMonorepo && options.scope === "package" ? options.packageRoot ?? options.workspaceRoot : options.workspaceRoot;
13
- const dirPath = fs.join(targetRoot, ".vscode");
14
- const filePath = fs.join(dirPath, "settings.json");
15
- try {
16
- if (!await fs.exists(dirPath)) await fs.mkdir(dirPath);
17
- const exists = await fs.exists(filePath);
18
- const defaults = generateVscodeSettings();
19
- if (exists) {
20
- const existing = safeParseJson(await fs.readFile(filePath));
21
- if (!existing) return {
22
- target: "vscode-settings",
23
- filePath,
24
- action: "error",
25
- message: "Existing file is not valid JSON"
26
- };
27
- if (options.interactive) {
28
- if (!await prompts.confirm(`${filePath} exists. Add ContractSpec settings?`)) return {
29
- target: "vscode-settings",
30
- filePath,
31
- action: "skipped",
32
- message: "User skipped merge"
33
- };
34
- }
35
- const merged = deepMergePreserve(existing, defaults);
36
- await fs.writeFile(filePath, formatJson(merged));
37
- return {
38
- target: "vscode-settings",
39
- filePath,
40
- action: "merged",
41
- message: "Added ContractSpec settings"
42
- };
43
- }
44
- await fs.writeFile(filePath, formatJson(defaults));
45
- return {
46
- target: "vscode-settings",
47
- filePath,
48
- action: "created",
49
- message: "Created VS Code settings"
50
- };
51
- } catch (error) {
52
- return {
53
- target: "vscode-settings",
54
- filePath,
55
- action: "error",
56
- message: error instanceof Error ? error.message : "Unknown error"
57
- };
58
- }
59
- }
60
-
61
- //#endregion
62
- export { setupVscodeSettings };
@@ -1,26 +0,0 @@
1
- //#region src/services/setup/types.ts
2
- /**
3
- * All available setup targets.
4
- */
5
- const ALL_SETUP_TARGETS = [
6
- "cli-config",
7
- "vscode-settings",
8
- "mcp-cursor",
9
- "mcp-claude",
10
- "cursor-rules",
11
- "agents-md"
12
- ];
13
- /**
14
- * Human-readable labels for setup targets.
15
- */
16
- const SETUP_TARGET_LABELS = {
17
- "cli-config": "CLI Configuration (.contractsrc.json)",
18
- "vscode-settings": "VS Code Settings (.vscode/settings.json)",
19
- "mcp-cursor": "MCP for Cursor (.cursor/mcp.json)",
20
- "mcp-claude": "MCP for Claude Desktop",
21
- "cursor-rules": "Cursor AI Rules (.cursor/rules/)",
22
- "agents-md": "Project AI Guide (AGENTS.md)"
23
- };
24
-
25
- //#endregion
26
- export { ALL_SETUP_TARGETS, SETUP_TARGET_LABELS };
@@ -1,62 +0,0 @@
1
- import { validateSpec } from "./validate.js";
2
- import { buildSpec } from "./build.js";
3
-
4
- //#region src/services/sync.ts
5
- async function syncSpecs(adapters, config, options = {}, overrides) {
6
- const { fs, logger } = adapters;
7
- const specs = await fs.glob({ pattern: options.pattern });
8
- const outputDirs = options.outputDirs?.length ? options.outputDirs : [void 0];
9
- const runs = [];
10
- const validateFn = overrides?.validate ?? ((specPath) => validateSpec(specPath, {
11
- fs,
12
- logger
13
- }));
14
- const buildFn = overrides?.build ?? ((specPath, outputDir) => buildSpec(specPath, {
15
- fs,
16
- logger
17
- }, outputDir ? {
18
- ...config,
19
- outputDir
20
- } : config, {
21
- ...options.buildOptions ?? {},
22
- outputDir
23
- }));
24
- for (const specPath of specs) for (const outputDir of outputDirs) {
25
- const run = {
26
- specPath,
27
- outputDir
28
- };
29
- if (options.validate) try {
30
- run.validation = await validateFn(specPath);
31
- } catch (error) {
32
- run.error = {
33
- phase: "validate",
34
- message: error instanceof Error ? error.message : String(error)
35
- };
36
- runs.push(run);
37
- continue;
38
- }
39
- if (!options.dryRun) try {
40
- run.build = await buildFn(specPath, outputDir);
41
- } catch (error) {
42
- run.error = {
43
- phase: "build",
44
- message: error instanceof Error ? error.message : String(error)
45
- };
46
- runs.push(run);
47
- continue;
48
- }
49
- else logger.info("[dry-run] syncSpecs skipped build", {
50
- specPath,
51
- outputDir
52
- });
53
- runs.push(run);
54
- }
55
- return {
56
- specs,
57
- runs
58
- };
59
- }
60
-
61
- //#endregion
62
- export { syncSpecs };
@@ -1,30 +0,0 @@
1
- import { TestRunner } from "../libs/contracts/dist/tests/runner.js";
2
- import "../libs/contracts/dist/tests/index.js";
3
-
4
- //#region src/services/test.ts
5
- /**
6
- * Test service.
7
- *
8
- * Pure runner wrapper that executes TestSpec scenarios against a SpecRegistry.
9
- * Loading/compiling spec modules (TS/ESM) is intentionally left to the caller.
10
- */
11
- async function runTests(specs, registry) {
12
- const runner = new TestRunner({ registry });
13
- const results = [];
14
- let passed = 0;
15
- let failed = 0;
16
- for (const spec of specs) {
17
- const result = await runner.run(spec);
18
- results.push(result);
19
- passed += result.passed;
20
- failed += result.failed;
21
- }
22
- return {
23
- results,
24
- passed,
25
- failed
26
- };
27
- }
28
-
29
- //#endregion
30
- export { runTests };
@@ -1,69 +0,0 @@
1
- import { scanSpecSource } from "../modules/contractspec-workspace/dist/analysis/spec-scan.js";
2
-
3
- //#region src/services/validate-implementation.ts
4
- /**
5
- * Implementation validation service (handlers + tests).
6
- *
7
- * Deterministic, static checks intended for reuse across CLI/VSCode/web tooling.
8
- * This does NOT execute spec modules.
9
- */
10
- function toKebabCase(value) {
11
- return value.replace(/\./g, "-").replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase();
12
- }
13
- function toPascalCase(value) {
14
- return value.split(/[-_.]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join("");
15
- }
16
- async function validateImplementationFiles(specFile, adapters, config, options = {}) {
17
- const { fs } = adapters;
18
- const errors = [];
19
- const warnings = [];
20
- if (!await fs.exists(specFile)) return {
21
- valid: false,
22
- errors: [`Spec file not found: ${specFile}`],
23
- warnings: [],
24
- expected: {}
25
- };
26
- const scan = scanSpecSource(await fs.readFile(specFile), specFile);
27
- const specName = scan.name ?? fs.basename(specFile).replace(/\.[jt]s$/, "");
28
- const outRoot = options.outputDir ?? config.outputDir ?? "./src";
29
- const kebab = toKebabCase(specName);
30
- const expected = {};
31
- if (scan.specType === "operation") {
32
- expected.handlerPath = fs.join(outRoot, "handlers", `${kebab}.handler.ts`);
33
- expected.handlerTestPath = fs.join(outRoot, "handlers", `${kebab}.handler.test.ts`);
34
- }
35
- if (scan.specType === "presentation") {
36
- expected.componentPath = fs.join(outRoot, "components", `${kebab}.tsx`);
37
- expected.componentTestPath = fs.join(outRoot, "components", `${kebab}.test.tsx`);
38
- }
39
- if (scan.specType === "form") {
40
- expected.formPath = fs.join(outRoot, "forms", `${kebab}.form.tsx`);
41
- expected.formTestPath = fs.join(outRoot, "forms", `${kebab}.form.test.tsx`);
42
- }
43
- if (options.checkHandlers && expected.handlerPath) if (!await fs.exists(expected.handlerPath)) errors.push(`Missing handler file: ${expected.handlerPath}`);
44
- else {
45
- const handlerCode = await fs.readFile(expected.handlerPath);
46
- const expectedSpecVar = `${toPascalCase(specName.split(".").pop() ?? specName)}Spec`;
47
- const hasContractHandlerType = /ContractHandler<\s*typeof\s+\w+\s*>/.test(handlerCode);
48
- const referencesExpectedSpec = (/* @__PURE__ */ new RegExp(`typeof\\s+${expectedSpecVar}\\b`)).test(handlerCode);
49
- if (!hasContractHandlerType) warnings.push(`Handler does not appear to type itself as ContractHandler<typeof Spec>: ${expected.handlerPath}`);
50
- else if (!referencesExpectedSpec) warnings.push(`Handler ContractHandler typing does not reference expected spec var (${expectedSpecVar}): ${expected.handlerPath}`);
51
- }
52
- if (options.checkTests) {
53
- const candidateTests = [
54
- expected.handlerTestPath,
55
- expected.componentTestPath,
56
- expected.formTestPath
57
- ].filter((p) => typeof p === "string");
58
- for (const testPath of candidateTests) if (!await fs.exists(testPath)) errors.push(`Missing test file: ${testPath}`);
59
- }
60
- return {
61
- valid: errors.length === 0,
62
- errors,
63
- warnings,
64
- expected
65
- };
66
- }
67
-
68
- //#endregion
69
- export { validateImplementationFiles };
@@ -1,47 +0,0 @@
1
- import { validateSpecStructure } from "../modules/contractspec-workspace/dist/analysis/validate/spec-structure.js";
2
-
3
- //#region src/services/validate.ts
4
- /**
5
- * Validation service.
6
- */
7
- /**
8
- * Validate a spec file.
9
- */
10
- async function validateSpec(specFile, adapters, options = {}) {
11
- const { fs } = adapters;
12
- if (!await fs.exists(specFile)) return {
13
- valid: false,
14
- errors: [`Spec file not found: ${specFile}`],
15
- warnings: []
16
- };
17
- const specCode = await fs.readFile(specFile);
18
- const fileName = fs.basename(specFile);
19
- const allErrors = [];
20
- const allWarnings = [];
21
- let structureResult;
22
- if (!options.skipStructure) {
23
- structureResult = validateSpecStructure(specCode, fileName);
24
- allErrors.push(...structureResult.errors);
25
- allWarnings.push(...structureResult.warnings);
26
- }
27
- return {
28
- valid: allErrors.length === 0,
29
- structureResult,
30
- errors: allErrors,
31
- warnings: allWarnings
32
- };
33
- }
34
- /**
35
- * Validate multiple spec files.
36
- */
37
- async function validateSpecs(specFiles, adapters, options = {}) {
38
- const results = /* @__PURE__ */ new Map();
39
- for (const specFile of specFiles) {
40
- const result = await validateSpec(specFile, adapters, options);
41
- results.set(specFile, result);
42
- }
43
- return results;
44
- }
45
-
46
- //#endregion
47
- export { validateSpec, validateSpecs };
@@ -1,121 +0,0 @@
1
- import { __require } from "../../../_virtual/rolldown_runtime.js";
2
- import { dirname, join } from "path";
3
- import { existsSync, mkdirSync, readFileSync, statSync, writeFileSync } from "fs";
4
-
5
- //#region src/services/verification-cache/adapters/filesystem.ts
6
- /**
7
- * Filesystem cache storage adapter.
8
- *
9
- * Stores cache entries in a JSON file for CLI and CI environments.
10
- * Uses atomic writes to prevent corruption.
11
- */
12
- /**
13
- * Default cache file location.
14
- */
15
- const DEFAULT_CACHE_FILE = ".contractspec/verification-cache.json";
16
- const CURRENT_VERSION = 1;
17
- /**
18
- * Filesystem storage adapter.
19
- */
20
- var FileSystemCacheStorage = class {
21
- filePath;
22
- cache;
23
- isDirty = false;
24
- constructor(filePath, workspaceRoot) {
25
- const root = workspaceRoot ?? process.cwd();
26
- this.filePath = filePath ?? join(root, DEFAULT_CACHE_FILE);
27
- this.cache = /* @__PURE__ */ new Map();
28
- this.loadSync();
29
- }
30
- /**
31
- * Load cache from disk synchronously.
32
- */
33
- loadSync() {
34
- try {
35
- if (!existsSync(this.filePath)) return;
36
- const content = readFileSync(this.filePath, "utf-8");
37
- const data = JSON.parse(content);
38
- if (data.version !== CURRENT_VERSION) return;
39
- for (const [key, entry] of Object.entries(data.entries)) this.cache.set(key, entry);
40
- } catch {}
41
- }
42
- /**
43
- * Save cache to disk.
44
- */
45
- saveSync() {
46
- if (!this.isDirty) return;
47
- try {
48
- const dir = dirname(this.filePath);
49
- if (!existsSync(dir)) mkdirSync(dir, { recursive: true });
50
- const data = {
51
- version: CURRENT_VERSION,
52
- entries: Object.fromEntries(this.cache.entries())
53
- };
54
- const tempPath = `${this.filePath}.tmp`;
55
- writeFileSync(tempPath, JSON.stringify(data, null, 2), "utf-8");
56
- const { renameSync } = __require("fs");
57
- renameSync(tempPath, this.filePath);
58
- this.isDirty = false;
59
- } catch {}
60
- }
61
- async get(key) {
62
- return this.cache.get(key) ?? null;
63
- }
64
- async set(key, entry) {
65
- this.cache.set(key, entry);
66
- this.isDirty = true;
67
- this.saveSync();
68
- }
69
- async delete(key) {
70
- const existed = this.cache.delete(key);
71
- if (existed) {
72
- this.isDirty = true;
73
- this.saveSync();
74
- }
75
- return existed;
76
- }
77
- async has(key) {
78
- return this.cache.has(key);
79
- }
80
- async keys() {
81
- return Array.from(this.cache.keys());
82
- }
83
- async clear() {
84
- this.cache.clear();
85
- this.isDirty = true;
86
- this.saveSync();
87
- }
88
- async stats() {
89
- let fileSize = 0;
90
- try {
91
- if (existsSync(this.filePath)) fileSize = statSync(this.filePath).size;
92
- } catch {}
93
- return {
94
- entryCount: this.cache.size,
95
- memoryUsage: fileSize
96
- };
97
- }
98
- /**
99
- * Force save any pending changes.
100
- */
101
- flush() {
102
- this.saveSync();
103
- }
104
- /**
105
- * Reload cache from disk.
106
- */
107
- reload() {
108
- this.cache.clear();
109
- this.loadSync();
110
- this.isDirty = false;
111
- }
112
- };
113
- /**
114
- * Create a filesystem cache storage adapter.
115
- */
116
- function createFileSystemCacheStorage(filePath, workspaceRoot) {
117
- return new FileSystemCacheStorage(filePath, workspaceRoot);
118
- }
119
-
120
- //#endregion
121
- export { FileSystemCacheStorage, createFileSystemCacheStorage };
@@ -1,45 +0,0 @@
1
- //#region src/services/verification-cache/adapters/in-memory.ts
2
- /**
3
- * In-memory storage adapter using a Map.
4
- */
5
- var InMemoryCacheStorage = class {
6
- cache = /* @__PURE__ */ new Map();
7
- async get(key) {
8
- return this.cache.get(key) ?? null;
9
- }
10
- async set(key, entry) {
11
- this.cache.set(key, entry);
12
- }
13
- async delete(key) {
14
- return this.cache.delete(key);
15
- }
16
- async has(key) {
17
- return this.cache.has(key);
18
- }
19
- async keys() {
20
- return Array.from(this.cache.keys());
21
- }
22
- async clear() {
23
- this.cache.clear();
24
- }
25
- async stats() {
26
- let memoryUsage = 0;
27
- for (const [key, value] of this.cache.entries()) {
28
- memoryUsage += key.length * 2;
29
- memoryUsage += JSON.stringify(value).length * 2;
30
- }
31
- return {
32
- entryCount: this.cache.size,
33
- memoryUsage
34
- };
35
- }
36
- };
37
- /**
38
- * Create an in-memory cache storage adapter.
39
- */
40
- function createInMemoryCacheStorage() {
41
- return new InMemoryCacheStorage();
42
- }
43
-
44
- //#endregion
45
- export { InMemoryCacheStorage, createInMemoryCacheStorage };
@@ -1,3 +0,0 @@
1
- import { InMemoryCacheStorage, createInMemoryCacheStorage } from "./in-memory.js";
2
- import { FileSystemCacheStorage, createFileSystemCacheStorage } from "./filesystem.js";
3
- import { WorkspaceStateCacheStorage, createWorkspaceStateCacheStorage } from "./workspace-state.js";
@@ -1,90 +0,0 @@
1
- //#region src/services/verification-cache/adapters/workspace-state.ts
2
- /**
3
- * Cache key prefix to avoid collisions.
4
- */
5
- const CACHE_PREFIX = "contractspec.verification-cache.";
6
- /**
7
- * Index key for tracking all cache keys.
8
- */
9
- const INDEX_KEY = `${CACHE_PREFIX}__index__`;
10
- /**
11
- * Workspace state storage adapter.
12
- */
13
- var WorkspaceStateCacheStorage = class {
14
- store;
15
- keyIndex;
16
- constructor(store) {
17
- this.store = store;
18
- this.keyIndex = new Set(this.loadKeyIndex());
19
- }
20
- /**
21
- * Load the key index from storage.
22
- */
23
- loadKeyIndex() {
24
- try {
25
- return this.store.get(INDEX_KEY) ?? [];
26
- } catch {
27
- return [];
28
- }
29
- }
30
- /**
31
- * Save the key index to storage.
32
- */
33
- async saveKeyIndex() {
34
- await this.store.update(INDEX_KEY, Array.from(this.keyIndex));
35
- }
36
- /**
37
- * Get the storage key for a cache key.
38
- */
39
- getStorageKey(key) {
40
- return `${CACHE_PREFIX}${key}`;
41
- }
42
- async get(key) {
43
- const storageKey = this.getStorageKey(key);
44
- return this.store.get(storageKey) ?? null;
45
- }
46
- async set(key, entry) {
47
- const storageKey = this.getStorageKey(key);
48
- await this.store.update(storageKey, entry);
49
- if (!this.keyIndex.has(key)) {
50
- this.keyIndex.add(key);
51
- await this.saveKeyIndex();
52
- }
53
- }
54
- async delete(key) {
55
- const storageKey = this.getStorageKey(key);
56
- const existed = this.keyIndex.has(key);
57
- if (existed) {
58
- await this.store.update(storageKey, void 0);
59
- this.keyIndex.delete(key);
60
- await this.saveKeyIndex();
61
- }
62
- return existed;
63
- }
64
- async has(key) {
65
- return this.keyIndex.has(key);
66
- }
67
- async keys() {
68
- return Array.from(this.keyIndex);
69
- }
70
- async clear() {
71
- for (const key of this.keyIndex) {
72
- const storageKey = this.getStorageKey(key);
73
- await this.store.update(storageKey, void 0);
74
- }
75
- this.keyIndex.clear();
76
- await this.saveKeyIndex();
77
- }
78
- async stats() {
79
- return { entryCount: this.keyIndex.size };
80
- }
81
- };
82
- /**
83
- * Create a workspace state cache storage adapter.
84
- */
85
- function createWorkspaceStateCacheStorage(store) {
86
- return new WorkspaceStateCacheStorage(store);
87
- }
88
-
89
- //#endregion
90
- export { WorkspaceStateCacheStorage, createWorkspaceStateCacheStorage };