@contractspec/bundle.workspace 0.0.0-canary-20260113162409

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 (703) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +83 -0
  3. package/dist/_virtual/rolldown_runtime.mjs +20 -0
  4. package/dist/adapters/ai.d.mts +12 -0
  5. package/dist/adapters/ai.d.mts.map +1 -0
  6. package/dist/adapters/ai.mjs +83 -0
  7. package/dist/adapters/ai.mjs.map +1 -0
  8. package/dist/adapters/factory.d.mts +29 -0
  9. package/dist/adapters/factory.d.mts.map +1 -0
  10. package/dist/adapters/factory.mjs +37 -0
  11. package/dist/adapters/factory.mjs.map +1 -0
  12. package/dist/adapters/fs.d.mts +12 -0
  13. package/dist/adapters/fs.d.mts.map +1 -0
  14. package/dist/adapters/fs.mjs +133 -0
  15. package/dist/adapters/fs.mjs.map +1 -0
  16. package/dist/adapters/git.d.mts +11 -0
  17. package/dist/adapters/git.d.mts.map +1 -0
  18. package/dist/adapters/git.mjs +84 -0
  19. package/dist/adapters/git.mjs.map +1 -0
  20. package/dist/adapters/index.d.mts +7 -0
  21. package/dist/adapters/index.mjs +9 -0
  22. package/dist/adapters/logger.d.mts +18 -0
  23. package/dist/adapters/logger.d.mts.map +1 -0
  24. package/dist/adapters/logger.mjs +81 -0
  25. package/dist/adapters/logger.mjs.map +1 -0
  26. package/dist/adapters/watcher.d.mts +11 -0
  27. package/dist/adapters/watcher.d.mts.map +1 -0
  28. package/dist/adapters/watcher.mjs +74 -0
  29. package/dist/adapters/watcher.mjs.map +1 -0
  30. package/dist/adapters/workspace.d.mts +148 -0
  31. package/dist/adapters/workspace.d.mts.map +1 -0
  32. package/dist/adapters/workspace.mjs +275 -0
  33. package/dist/adapters/workspace.mjs.map +1 -0
  34. package/dist/ai/agents/claude-code-agent.d.mts +22 -0
  35. package/dist/ai/agents/claude-code-agent.d.mts.map +1 -0
  36. package/dist/ai/agents/claude-code-agent.mjs +182 -0
  37. package/dist/ai/agents/claude-code-agent.mjs.map +1 -0
  38. package/dist/ai/agents/cursor-agent.d.mts +68 -0
  39. package/dist/ai/agents/cursor-agent.d.mts.map +1 -0
  40. package/dist/ai/agents/cursor-agent.mjs +436 -0
  41. package/dist/ai/agents/cursor-agent.mjs.map +1 -0
  42. package/dist/ai/agents/index.mjs +7 -0
  43. package/dist/ai/agents/openai-codex-agent.d.mts +22 -0
  44. package/dist/ai/agents/openai-codex-agent.d.mts.map +1 -0
  45. package/dist/ai/agents/openai-codex-agent.mjs +167 -0
  46. package/dist/ai/agents/openai-codex-agent.mjs.map +1 -0
  47. package/dist/ai/agents/orchestrator.d.mts +50 -0
  48. package/dist/ai/agents/orchestrator.d.mts.map +1 -0
  49. package/dist/ai/agents/orchestrator.mjs +143 -0
  50. package/dist/ai/agents/orchestrator.mjs.map +1 -0
  51. package/dist/ai/agents/simple-agent.d.mts +17 -0
  52. package/dist/ai/agents/simple-agent.d.mts.map +1 -0
  53. package/dist/ai/agents/simple-agent.mjs +92 -0
  54. package/dist/ai/agents/simple-agent.mjs.map +1 -0
  55. package/dist/ai/agents/types.d.mts +36 -0
  56. package/dist/ai/agents/types.d.mts.map +1 -0
  57. package/dist/ai/client.d.mts +97 -0
  58. package/dist/ai/client.d.mts.map +1 -0
  59. package/dist/ai/client.mjs +189 -0
  60. package/dist/ai/client.mjs.map +1 -0
  61. package/dist/ai/index.d.mts +9 -0
  62. package/dist/ai/index.mjs +11 -0
  63. package/dist/ai/prompts/code-generation.d.mts +26 -0
  64. package/dist/ai/prompts/code-generation.d.mts.map +1 -0
  65. package/dist/ai/prompts/code-generation.mjs +143 -0
  66. package/dist/ai/prompts/code-generation.mjs.map +1 -0
  67. package/dist/ai/prompts/index.d.mts +10 -0
  68. package/dist/ai/prompts/index.d.mts.map +1 -0
  69. package/dist/ai/prompts/index.mjs +13 -0
  70. package/dist/ai/prompts/index.mjs.map +1 -0
  71. package/dist/ai/prompts/spec-creation.d.mts +29 -0
  72. package/dist/ai/prompts/spec-creation.d.mts.map +1 -0
  73. package/dist/ai/prompts/spec-creation.mjs +111 -0
  74. package/dist/ai/prompts/spec-creation.mjs.map +1 -0
  75. package/dist/ai/providers.d.mts +29 -0
  76. package/dist/ai/providers.d.mts.map +1 -0
  77. package/dist/ai/providers.mjs +39 -0
  78. package/dist/ai/providers.mjs.map +1 -0
  79. package/dist/formatters/index.d.mts +11 -0
  80. package/dist/formatters/index.d.mts.map +1 -0
  81. package/dist/formatters/index.mjs +17 -0
  82. package/dist/formatters/index.mjs.map +1 -0
  83. package/dist/formatters/json.d.mts +56 -0
  84. package/dist/formatters/json.d.mts.map +1 -0
  85. package/dist/formatters/json.mjs +43 -0
  86. package/dist/formatters/json.mjs.map +1 -0
  87. package/dist/formatters/sarif.d.mts +101 -0
  88. package/dist/formatters/sarif.d.mts.map +1 -0
  89. package/dist/formatters/sarif.mjs +163 -0
  90. package/dist/formatters/sarif.mjs.map +1 -0
  91. package/dist/formatters/text.d.mts +35 -0
  92. package/dist/formatters/text.d.mts.map +1 -0
  93. package/dist/formatters/text.mjs +209 -0
  94. package/dist/formatters/text.mjs.map +1 -0
  95. package/dist/index.d.mts +125 -0
  96. package/dist/index.mjs +110 -0
  97. package/dist/ports/ai.d.mts +59 -0
  98. package/dist/ports/ai.d.mts.map +1 -0
  99. package/dist/ports/fs.d.mts +81 -0
  100. package/dist/ports/fs.d.mts.map +1 -0
  101. package/dist/ports/git.d.mts +46 -0
  102. package/dist/ports/git.d.mts.map +1 -0
  103. package/dist/ports/index.d.mts +6 -0
  104. package/dist/ports/logger.d.mts +88 -0
  105. package/dist/ports/logger.d.mts.map +1 -0
  106. package/dist/ports/rulesync.d.mts +38 -0
  107. package/dist/ports/rulesync.d.mts.map +1 -0
  108. package/dist/ports/watcher.d.mts +52 -0
  109. package/dist/ports/watcher.d.mts.map +1 -0
  110. package/dist/services/agent-guide/adapters/claude-code.d.mts +35 -0
  111. package/dist/services/agent-guide/adapters/claude-code.d.mts.map +1 -0
  112. package/dist/services/agent-guide/adapters/claude-code.mjs +144 -0
  113. package/dist/services/agent-guide/adapters/claude-code.mjs.map +1 -0
  114. package/dist/services/agent-guide/adapters/cursor-cli.d.mts +39 -0
  115. package/dist/services/agent-guide/adapters/cursor-cli.d.mts.map +1 -0
  116. package/dist/services/agent-guide/adapters/cursor-cli.mjs +135 -0
  117. package/dist/services/agent-guide/adapters/cursor-cli.mjs.map +1 -0
  118. package/dist/services/agent-guide/adapters/generic-mcp.d.mts +53 -0
  119. package/dist/services/agent-guide/adapters/generic-mcp.d.mts.map +1 -0
  120. package/dist/services/agent-guide/adapters/generic-mcp.mjs +159 -0
  121. package/dist/services/agent-guide/adapters/generic-mcp.mjs.map +1 -0
  122. package/dist/services/agent-guide/adapters/index.d.mts +23 -0
  123. package/dist/services/agent-guide/adapters/index.d.mts.map +1 -0
  124. package/dist/services/agent-guide/adapters/index.mjs +31 -0
  125. package/dist/services/agent-guide/adapters/index.mjs.map +1 -0
  126. package/dist/services/agent-guide/agent-guide-service.d.mts +56 -0
  127. package/dist/services/agent-guide/agent-guide-service.d.mts.map +1 -0
  128. package/dist/services/agent-guide/agent-guide-service.mjs +147 -0
  129. package/dist/services/agent-guide/agent-guide-service.mjs.map +1 -0
  130. package/dist/services/agent-guide/index.d.mts +6 -0
  131. package/dist/services/agent-guide/index.mjs +7 -0
  132. package/dist/services/agent-guide/types.d.mts +58 -0
  133. package/dist/services/agent-guide/types.d.mts.map +1 -0
  134. package/dist/services/build.d.mts +61 -0
  135. package/dist/services/build.d.mts.map +1 -0
  136. package/dist/services/build.mjs +151 -0
  137. package/dist/services/build.mjs.map +1 -0
  138. package/dist/services/ci-check/checks/coverage.mjs +77 -0
  139. package/dist/services/ci-check/checks/coverage.mjs.map +1 -0
  140. package/dist/services/ci-check/checks/deps.mjs +32 -0
  141. package/dist/services/ci-check/checks/deps.mjs.map +1 -0
  142. package/dist/services/ci-check/checks/doctor.mjs +38 -0
  143. package/dist/services/ci-check/checks/doctor.mjs.map +1 -0
  144. package/dist/services/ci-check/checks/drift.mjs +40 -0
  145. package/dist/services/ci-check/checks/drift.mjs.map +1 -0
  146. package/dist/services/ci-check/checks/handlers.mjs +38 -0
  147. package/dist/services/ci-check/checks/handlers.mjs.map +1 -0
  148. package/dist/services/ci-check/checks/implementation.mjs +73 -0
  149. package/dist/services/ci-check/checks/implementation.mjs.map +1 -0
  150. package/dist/services/ci-check/checks/index.mjs +13 -0
  151. package/dist/services/ci-check/checks/integrity.mjs +31 -0
  152. package/dist/services/ci-check/checks/integrity.mjs.map +1 -0
  153. package/dist/services/ci-check/checks/layers.mjs +66 -0
  154. package/dist/services/ci-check/checks/layers.mjs.map +1 -0
  155. package/dist/services/ci-check/checks/structure.mjs +35 -0
  156. package/dist/services/ci-check/checks/structure.mjs.map +1 -0
  157. package/dist/services/ci-check/checks/test-refs.mjs +63 -0
  158. package/dist/services/ci-check/checks/test-refs.mjs.map +1 -0
  159. package/dist/services/ci-check/checks/tests.mjs +38 -0
  160. package/dist/services/ci-check/checks/tests.mjs.map +1 -0
  161. package/dist/services/ci-check/ci-check-service.d.mts +16 -0
  162. package/dist/services/ci-check/ci-check-service.d.mts.map +1 -0
  163. package/dist/services/ci-check/ci-check-service.mjs +129 -0
  164. package/dist/services/ci-check/ci-check-service.mjs.map +1 -0
  165. package/dist/services/ci-check/index.d.mts +2 -0
  166. package/dist/services/ci-check/index.mjs +4 -0
  167. package/dist/services/ci-check/types.d.mts +147 -0
  168. package/dist/services/ci-check/types.d.mts.map +1 -0
  169. package/dist/services/ci-check/types.mjs +37 -0
  170. package/dist/services/ci-check/types.mjs.map +1 -0
  171. package/dist/services/ci-check/utils.mjs +76 -0
  172. package/dist/services/ci-check/utils.mjs.map +1 -0
  173. package/dist/services/clean.d.mts +41 -0
  174. package/dist/services/clean.d.mts.map +1 -0
  175. package/dist/services/clean.mjs +72 -0
  176. package/dist/services/clean.mjs.map +1 -0
  177. package/dist/services/config.d.mts +16 -0
  178. package/dist/services/config.d.mts.map +1 -0
  179. package/dist/services/config.mjs +63 -0
  180. package/dist/services/config.mjs.map +1 -0
  181. package/dist/services/coverage/parsers/index.mjs +34 -0
  182. package/dist/services/coverage/parsers/index.mjs.map +1 -0
  183. package/dist/services/coverage/parsers/istanbul-parser.mjs +108 -0
  184. package/dist/services/coverage/parsers/istanbul-parser.mjs.map +1 -0
  185. package/dist/services/coverage/validator.mjs +55 -0
  186. package/dist/services/coverage/validator.mjs.map +1 -0
  187. package/dist/services/create/ai-generator.d.mts +84 -0
  188. package/dist/services/create/ai-generator.d.mts.map +1 -0
  189. package/dist/services/create/ai-generator.mjs +178 -0
  190. package/dist/services/create/ai-generator.mjs.map +1 -0
  191. package/dist/services/create/index.d.mts +28 -0
  192. package/dist/services/create/index.d.mts.map +1 -0
  193. package/dist/services/create/index.mjs +37 -0
  194. package/dist/services/create/index.mjs.map +1 -0
  195. package/dist/services/create/templates.d.mts +22 -0
  196. package/dist/services/create/templates.d.mts.map +1 -0
  197. package/dist/services/create/templates.mjs +39 -0
  198. package/dist/services/create/templates.mjs.map +1 -0
  199. package/dist/services/deps.d.mts +53 -0
  200. package/dist/services/deps.d.mts.map +1 -0
  201. package/dist/services/deps.mjs +62 -0
  202. package/dist/services/deps.mjs.map +1 -0
  203. package/dist/services/diff.d.mts +34 -0
  204. package/dist/services/diff.d.mts.map +1 -0
  205. package/dist/services/diff.mjs +34 -0
  206. package/dist/services/diff.mjs.map +1 -0
  207. package/dist/services/docs/docs-service.d.mts +20 -0
  208. package/dist/services/docs/docs-service.d.mts.map +1 -0
  209. package/dist/services/docs/docs-service.mjs +59 -0
  210. package/dist/services/docs/docs-service.mjs.map +1 -0
  211. package/dist/services/docs/index.d.mts +1 -0
  212. package/dist/services/docs/index.mjs +3 -0
  213. package/dist/services/doctor/checks/ai.mjs +119 -0
  214. package/dist/services/doctor/checks/ai.mjs.map +1 -0
  215. package/dist/services/doctor/checks/cli.mjs +156 -0
  216. package/dist/services/doctor/checks/cli.mjs.map +1 -0
  217. package/dist/services/doctor/checks/config.mjs +303 -0
  218. package/dist/services/doctor/checks/config.mjs.map +1 -0
  219. package/dist/services/doctor/checks/deps.mjs +267 -0
  220. package/dist/services/doctor/checks/deps.mjs.map +1 -0
  221. package/dist/services/doctor/checks/index.mjs +9 -0
  222. package/dist/services/doctor/checks/layers.mjs +139 -0
  223. package/dist/services/doctor/checks/layers.mjs.map +1 -0
  224. package/dist/services/doctor/checks/mcp.mjs +145 -0
  225. package/dist/services/doctor/checks/mcp.mjs.map +1 -0
  226. package/dist/services/doctor/checks/workspace.mjs +263 -0
  227. package/dist/services/doctor/checks/workspace.mjs.map +1 -0
  228. package/dist/services/doctor/doctor-service.d.mts +24 -0
  229. package/dist/services/doctor/doctor-service.d.mts.map +1 -0
  230. package/dist/services/doctor/doctor-service.mjs +118 -0
  231. package/dist/services/doctor/doctor-service.mjs.map +1 -0
  232. package/dist/services/doctor/index.d.mts +2 -0
  233. package/dist/services/doctor/index.mjs +4 -0
  234. package/dist/services/doctor/types.d.mts +118 -0
  235. package/dist/services/doctor/types.d.mts.map +1 -0
  236. package/dist/services/doctor/types.mjs +29 -0
  237. package/dist/services/doctor/types.mjs.map +1 -0
  238. package/dist/services/drift.mjs +73 -0
  239. package/dist/services/drift.mjs.map +1 -0
  240. package/dist/services/extract.d.mts +12 -0
  241. package/dist/services/extract.d.mts.map +1 -0
  242. package/dist/services/extract.mjs +33 -0
  243. package/dist/services/extract.mjs.map +1 -0
  244. package/dist/services/features/completion.d.mts +21 -0
  245. package/dist/services/features/completion.d.mts.map +1 -0
  246. package/dist/services/features/completion.mjs +70 -0
  247. package/dist/services/features/completion.mjs.map +1 -0
  248. package/dist/services/features/feature-editor.d.mts +27 -0
  249. package/dist/services/features/feature-editor.d.mts.map +1 -0
  250. package/dist/services/features/feature-editor.mjs +37 -0
  251. package/dist/services/features/feature-editor.mjs.map +1 -0
  252. package/dist/services/features/index.d.mts +11 -0
  253. package/dist/services/features/index.d.mts.map +1 -0
  254. package/dist/services/features/index.mjs +16 -0
  255. package/dist/services/features/index.mjs.map +1 -0
  256. package/dist/services/features/validation.d.mts +21 -0
  257. package/dist/services/features/validation.d.mts.map +1 -0
  258. package/dist/services/features/validation.mjs +27 -0
  259. package/dist/services/features/validation.mjs.map +1 -0
  260. package/dist/services/fix/fix-link-formatter.d.mts +12 -0
  261. package/dist/services/fix/fix-link-formatter.d.mts.map +1 -0
  262. package/dist/services/fix/fix-link-formatter.mjs +38 -0
  263. package/dist/services/fix/fix-link-formatter.mjs.map +1 -0
  264. package/dist/services/fix/fix-service.d.mts +74 -0
  265. package/dist/services/fix/fix-service.d.mts.map +1 -0
  266. package/dist/services/fix/fix-service.mjs +169 -0
  267. package/dist/services/fix/fix-service.mjs.map +1 -0
  268. package/dist/services/fix/index.d.mts +16 -0
  269. package/dist/services/fix/index.d.mts.map +1 -0
  270. package/dist/services/fix/index.mjs +24 -0
  271. package/dist/services/fix/index.mjs.map +1 -0
  272. package/dist/services/fix/path-resolver.mjs +83 -0
  273. package/dist/services/fix/path-resolver.mjs.map +1 -0
  274. package/dist/services/fix/schemas.d.mts +17 -0
  275. package/dist/services/fix/schemas.d.mts.map +1 -0
  276. package/dist/services/fix/schemas.mjs +12 -0
  277. package/dist/services/fix/schemas.mjs.map +1 -0
  278. package/dist/services/fix/strategies/implement-ai.d.mts +18 -0
  279. package/dist/services/fix/strategies/implement-ai.d.mts.map +1 -0
  280. package/dist/services/fix/strategies/implement-ai.mjs +139 -0
  281. package/dist/services/fix/strategies/implement-ai.mjs.map +1 -0
  282. package/dist/services/fix/strategies/implement-skeleton.d.mts +14 -0
  283. package/dist/services/fix/strategies/implement-skeleton.d.mts.map +1 -0
  284. package/dist/services/fix/strategies/implement-skeleton.mjs +77 -0
  285. package/dist/services/fix/strategies/implement-skeleton.mjs.map +1 -0
  286. package/dist/services/fix/strategies/index.d.mts +3 -0
  287. package/dist/services/fix/strategies/remove-reference.d.mts +17 -0
  288. package/dist/services/fix/strategies/remove-reference.d.mts.map +1 -0
  289. package/dist/services/fix/strategies/remove-reference.mjs +98 -0
  290. package/dist/services/fix/strategies/remove-reference.mjs.map +1 -0
  291. package/dist/services/fix/types.d.mts +207 -0
  292. package/dist/services/fix/types.d.mts.map +1 -0
  293. package/dist/services/fix/types.mjs +20 -0
  294. package/dist/services/fix/types.mjs.map +1 -0
  295. package/dist/services/formatter.d.mts +15 -0
  296. package/dist/services/formatter.d.mts.map +1 -0
  297. package/dist/services/formatter.mjs +26 -0
  298. package/dist/services/formatter.mjs.map +1 -0
  299. package/dist/services/gap.d.mts +18 -0
  300. package/dist/services/gap.d.mts.map +1 -0
  301. package/dist/services/gap.mjs +44 -0
  302. package/dist/services/gap.mjs.map +1 -0
  303. package/dist/services/generate-artifacts.d.mts +11 -0
  304. package/dist/services/generate-artifacts.d.mts.map +1 -0
  305. package/dist/services/generate-artifacts.mjs +27 -0
  306. package/dist/services/generate-artifacts.mjs.map +1 -0
  307. package/dist/services/hooks/hooks-service.d.mts +24 -0
  308. package/dist/services/hooks/hooks-service.d.mts.map +1 -0
  309. package/dist/services/hooks/hooks-service.mjs +126 -0
  310. package/dist/services/hooks/hooks-service.mjs.map +1 -0
  311. package/dist/services/hooks/index.d.mts +10 -0
  312. package/dist/services/hooks/index.d.mts.map +1 -0
  313. package/dist/services/hooks/index.mjs +12 -0
  314. package/dist/services/hooks/index.mjs.map +1 -0
  315. package/dist/services/hooks/types.d.mts +56 -0
  316. package/dist/services/hooks/types.d.mts.map +1 -0
  317. package/dist/services/impact/formatters.d.mts +27 -0
  318. package/dist/services/impact/formatters.d.mts.map +1 -0
  319. package/dist/services/impact/formatters.mjs +139 -0
  320. package/dist/services/impact/formatters.mjs.map +1 -0
  321. package/dist/services/impact/impact-detection-service.d.mts +22 -0
  322. package/dist/services/impact/impact-detection-service.d.mts.map +1 -0
  323. package/dist/services/impact/impact-detection-service.mjs +96 -0
  324. package/dist/services/impact/impact-detection-service.mjs.map +1 -0
  325. package/dist/services/impact/index.d.mts +11 -0
  326. package/dist/services/impact/index.d.mts.map +1 -0
  327. package/dist/services/impact/index.mjs +16 -0
  328. package/dist/services/impact/index.mjs.map +1 -0
  329. package/dist/services/impact/types.d.mts +63 -0
  330. package/dist/services/impact/types.d.mts.map +1 -0
  331. package/dist/services/implementation/discovery.d.mts +30 -0
  332. package/dist/services/implementation/discovery.d.mts.map +1 -0
  333. package/dist/services/implementation/discovery.mjs +144 -0
  334. package/dist/services/implementation/discovery.mjs.map +1 -0
  335. package/dist/services/implementation/index.d.mts +6 -0
  336. package/dist/services/implementation/index.mjs +7 -0
  337. package/dist/services/implementation/resolver/conventions.d.mts +18 -0
  338. package/dist/services/implementation/resolver/conventions.d.mts.map +1 -0
  339. package/dist/services/implementation/resolver/conventions.mjs +59 -0
  340. package/dist/services/implementation/resolver/conventions.mjs.map +1 -0
  341. package/dist/services/implementation/resolver/index.d.mts +24 -0
  342. package/dist/services/implementation/resolver/index.d.mts.map +1 -0
  343. package/dist/services/implementation/resolver/index.mjs +111 -0
  344. package/dist/services/implementation/resolver/index.mjs.map +1 -0
  345. package/dist/services/implementation/resolver/parsers.d.mts +16 -0
  346. package/dist/services/implementation/resolver/parsers.d.mts.map +1 -0
  347. package/dist/services/implementation/resolver/parsers.mjs +100 -0
  348. package/dist/services/implementation/resolver/parsers.mjs.map +1 -0
  349. package/dist/services/implementation/resolver/status.d.mts +21 -0
  350. package/dist/services/implementation/resolver/status.d.mts.map +1 -0
  351. package/dist/services/implementation/resolver/status.mjs +31 -0
  352. package/dist/services/implementation/resolver/status.mjs.map +1 -0
  353. package/dist/services/implementation/types.d.mts +89 -0
  354. package/dist/services/implementation/types.d.mts.map +1 -0
  355. package/dist/services/index.d.mts +103 -0
  356. package/dist/services/index.mjs +100 -0
  357. package/dist/services/integrity-diagram.d.mts +36 -0
  358. package/dist/services/integrity-diagram.d.mts.map +1 -0
  359. package/dist/services/integrity-diagram.mjs +275 -0
  360. package/dist/services/integrity-diagram.mjs.map +1 -0
  361. package/dist/services/integrity.d.mts +152 -0
  362. package/dist/services/integrity.d.mts.map +1 -0
  363. package/dist/services/integrity.mjs +361 -0
  364. package/dist/services/integrity.mjs.map +1 -0
  365. package/dist/services/layer-discovery.d.mts +77 -0
  366. package/dist/services/layer-discovery.d.mts.map +1 -0
  367. package/dist/services/layer-discovery.mjs +121 -0
  368. package/dist/services/layer-discovery.mjs.map +1 -0
  369. package/dist/services/list.d.mts +37 -0
  370. package/dist/services/list.d.mts.map +1 -0
  371. package/dist/services/list.mjs +46 -0
  372. package/dist/services/list.mjs.map +1 -0
  373. package/dist/services/llm/index.d.mts +28 -0
  374. package/dist/services/llm/index.d.mts.map +1 -0
  375. package/dist/services/llm/index.mjs +187 -0
  376. package/dist/services/llm/index.mjs.map +1 -0
  377. package/dist/services/llm/verify-static.d.mts +26 -0
  378. package/dist/services/llm/verify-static.d.mts.map +1 -0
  379. package/dist/services/llm/verify-static.mjs +82 -0
  380. package/dist/services/llm/verify-static.mjs.map +1 -0
  381. package/dist/services/modules/module-resolver.mjs +61 -0
  382. package/dist/services/modules/module-resolver.mjs.map +1 -0
  383. package/dist/services/openapi/export-service.d.mts +53 -0
  384. package/dist/services/openapi/export-service.d.mts.map +1 -0
  385. package/dist/services/openapi/export-service.mjs +50 -0
  386. package/dist/services/openapi/export-service.mjs.map +1 -0
  387. package/dist/services/openapi/import-service.d.mts +17 -0
  388. package/dist/services/openapi/import-service.d.mts.map +1 -0
  389. package/dist/services/openapi/import-service.mjs +168 -0
  390. package/dist/services/openapi/import-service.mjs.map +1 -0
  391. package/dist/services/openapi/index.d.mts +5 -0
  392. package/dist/services/openapi/index.mjs +6 -0
  393. package/dist/services/openapi/sync-service.d.mts +17 -0
  394. package/dist/services/openapi/sync-service.d.mts.map +1 -0
  395. package/dist/services/openapi/sync-service.mjs +120 -0
  396. package/dist/services/openapi/sync-service.mjs.map +1 -0
  397. package/dist/services/openapi/types.d.mts +162 -0
  398. package/dist/services/openapi/types.d.mts.map +1 -0
  399. package/dist/services/openapi/validate-service.d.mts +16 -0
  400. package/dist/services/openapi/validate-service.d.mts.map +1 -0
  401. package/dist/services/openapi/validate-service.mjs +130 -0
  402. package/dist/services/openapi/validate-service.mjs.map +1 -0
  403. package/dist/services/quickstart/dependencies.d.mts +31 -0
  404. package/dist/services/quickstart/dependencies.d.mts.map +1 -0
  405. package/dist/services/quickstart/dependencies.mjs +57 -0
  406. package/dist/services/quickstart/dependencies.mjs.map +1 -0
  407. package/dist/services/quickstart/index.mjs +4 -0
  408. package/dist/services/quickstart/quickstart-service.d.mts +20 -0
  409. package/dist/services/quickstart/quickstart-service.d.mts.map +1 -0
  410. package/dist/services/quickstart/quickstart-service.mjs +196 -0
  411. package/dist/services/quickstart/quickstart-service.mjs.map +1 -0
  412. package/dist/services/quickstart/types.d.mts +81 -0
  413. package/dist/services/quickstart/types.d.mts.map +1 -0
  414. package/dist/services/regenerator.d.mts +18 -0
  415. package/dist/services/regenerator.d.mts.map +1 -0
  416. package/dist/services/regenerator.mjs +23 -0
  417. package/dist/services/regenerator.mjs.map +1 -0
  418. package/dist/services/registry.d.mts +53 -0
  419. package/dist/services/registry.d.mts.map +1 -0
  420. package/dist/services/registry.mjs +74 -0
  421. package/dist/services/registry.mjs.map +1 -0
  422. package/dist/services/rulesync.d.mts +17 -0
  423. package/dist/services/rulesync.d.mts.map +1 -0
  424. package/dist/services/rulesync.mjs +71 -0
  425. package/dist/services/rulesync.mjs.map +1 -0
  426. package/dist/services/setup/config-generators.d.mts +42 -0
  427. package/dist/services/setup/config-generators.d.mts.map +1 -0
  428. package/dist/services/setup/config-generators.mjs +252 -0
  429. package/dist/services/setup/config-generators.mjs.map +1 -0
  430. package/dist/services/setup/file-merger.d.mts +27 -0
  431. package/dist/services/setup/file-merger.d.mts.map +1 -0
  432. package/dist/services/setup/file-merger.mjs +61 -0
  433. package/dist/services/setup/file-merger.mjs.map +1 -0
  434. package/dist/services/setup/setup-service.d.mts +12 -0
  435. package/dist/services/setup/setup-service.d.mts.map +1 -0
  436. package/dist/services/setup/setup-service.mjs +96 -0
  437. package/dist/services/setup/setup-service.mjs.map +1 -0
  438. package/dist/services/setup/targets/agents-md.mjs +47 -0
  439. package/dist/services/setup/targets/agents-md.mjs.map +1 -0
  440. package/dist/services/setup/targets/cli-config.mjs +60 -0
  441. package/dist/services/setup/targets/cli-config.mjs.map +1 -0
  442. package/dist/services/setup/targets/cursor-rules.mjs +48 -0
  443. package/dist/services/setup/targets/cursor-rules.mjs.map +1 -0
  444. package/dist/services/setup/targets/mcp-claude.mjs +60 -0
  445. package/dist/services/setup/targets/mcp-claude.mjs.map +1 -0
  446. package/dist/services/setup/targets/mcp-cursor.mjs +59 -0
  447. package/dist/services/setup/targets/mcp-cursor.mjs.map +1 -0
  448. package/dist/services/setup/targets/vscode-settings.mjs +63 -0
  449. package/dist/services/setup/targets/vscode-settings.mjs.map +1 -0
  450. package/dist/services/setup/types.d.mts +85 -0
  451. package/dist/services/setup/types.d.mts.map +1 -0
  452. package/dist/services/setup/types.mjs +27 -0
  453. package/dist/services/setup/types.mjs.map +1 -0
  454. package/dist/services/sync.d.mts +42 -0
  455. package/dist/services/sync.d.mts.map +1 -0
  456. package/dist/services/sync.mjs +64 -0
  457. package/dist/services/sync.mjs.map +1 -0
  458. package/dist/services/test/index.d.mts +2 -0
  459. package/dist/services/test/index.mjs +4 -0
  460. package/dist/services/test/test-generator-service.d.mts +24 -0
  461. package/dist/services/test/test-generator-service.d.mts.map +1 -0
  462. package/dist/services/test/test-generator-service.mjs +92 -0
  463. package/dist/services/test/test-generator-service.mjs.map +1 -0
  464. package/dist/services/test/test-service.d.mts +27 -0
  465. package/dist/services/test/test-service.d.mts.map +1 -0
  466. package/dist/services/test/test-service.mjs +94 -0
  467. package/dist/services/test/test-service.mjs.map +1 -0
  468. package/dist/services/test-link/index.d.mts +18 -0
  469. package/dist/services/test-link/index.d.mts.map +1 -0
  470. package/dist/services/test-link/index.mjs +60 -0
  471. package/dist/services/test-link/index.mjs.map +1 -0
  472. package/dist/services/test-link/test-ref-validator.d.mts +2 -0
  473. package/dist/services/test-link/test-ref-validator.mjs +50 -0
  474. package/dist/services/test-link/test-ref-validator.mjs.map +1 -0
  475. package/dist/services/upgrade/index.d.mts +10 -0
  476. package/dist/services/upgrade/index.d.mts.map +1 -0
  477. package/dist/services/upgrade/index.mjs +15 -0
  478. package/dist/services/upgrade/index.mjs.map +1 -0
  479. package/dist/services/upgrade/types.d.mts +78 -0
  480. package/dist/services/upgrade/types.d.mts.map +1 -0
  481. package/dist/services/upgrade/upgrade-service.d.mts +38 -0
  482. package/dist/services/upgrade/upgrade-service.d.mts.map +1 -0
  483. package/dist/services/upgrade/upgrade-service.mjs +201 -0
  484. package/dist/services/upgrade/upgrade-service.mjs.map +1 -0
  485. package/dist/services/validate/blueprint-validator.d.mts +23 -0
  486. package/dist/services/validate/blueprint-validator.d.mts.map +1 -0
  487. package/dist/services/validate/blueprint-validator.mjs +50 -0
  488. package/dist/services/validate/blueprint-validator.mjs.map +1 -0
  489. package/dist/services/validate/implementation-agent-validator.d.mts +20 -0
  490. package/dist/services/validate/implementation-agent-validator.d.mts.map +1 -0
  491. package/dist/services/validate/implementation-agent-validator.mjs +42 -0
  492. package/dist/services/validate/implementation-agent-validator.mjs.map +1 -0
  493. package/dist/services/validate/implementation-validator.d.mts +32 -0
  494. package/dist/services/validate/implementation-validator.d.mts.map +1 -0
  495. package/dist/services/validate/implementation-validator.mjs +64 -0
  496. package/dist/services/validate/implementation-validator.mjs.map +1 -0
  497. package/dist/services/validate/index.d.mts +5 -0
  498. package/dist/services/validate/index.mjs +7 -0
  499. package/dist/services/validate/spec-validator.d.mts +42 -0
  500. package/dist/services/validate/spec-validator.d.mts.map +1 -0
  501. package/dist/services/validate/spec-validator.mjs +49 -0
  502. package/dist/services/validate/spec-validator.mjs.map +1 -0
  503. package/dist/services/validate/tenant-validator.d.mts +21 -0
  504. package/dist/services/validate/tenant-validator.d.mts.map +1 -0
  505. package/dist/services/validate/tenant-validator.mjs +165 -0
  506. package/dist/services/validate/tenant-validator.mjs.map +1 -0
  507. package/dist/services/verification-cache/adapters/filesystem.d.mts +46 -0
  508. package/dist/services/verification-cache/adapters/filesystem.d.mts.map +1 -0
  509. package/dist/services/verification-cache/adapters/filesystem.mjs +120 -0
  510. package/dist/services/verification-cache/adapters/filesystem.mjs.map +1 -0
  511. package/dist/services/verification-cache/adapters/in-memory.d.mts +27 -0
  512. package/dist/services/verification-cache/adapters/in-memory.d.mts.map +1 -0
  513. package/dist/services/verification-cache/adapters/in-memory.mjs +46 -0
  514. package/dist/services/verification-cache/adapters/in-memory.mjs.map +1 -0
  515. package/dist/services/verification-cache/adapters/index.d.mts +3 -0
  516. package/dist/services/verification-cache/adapters/index.mjs +5 -0
  517. package/dist/services/verification-cache/adapters/workspace-state.d.mts +49 -0
  518. package/dist/services/verification-cache/adapters/workspace-state.d.mts.map +1 -0
  519. package/dist/services/verification-cache/adapters/workspace-state.mjs +91 -0
  520. package/dist/services/verification-cache/adapters/workspace-state.mjs.map +1 -0
  521. package/dist/services/verification-cache/cache-service.d.mts +70 -0
  522. package/dist/services/verification-cache/cache-service.d.mts.map +1 -0
  523. package/dist/services/verification-cache/cache-service.mjs +256 -0
  524. package/dist/services/verification-cache/cache-service.mjs.map +1 -0
  525. package/dist/services/verification-cache/index.d.mts +6 -0
  526. package/dist/services/verification-cache/index.mjs +8 -0
  527. package/dist/services/verification-cache/types.d.mts +124 -0
  528. package/dist/services/verification-cache/types.d.mts.map +1 -0
  529. package/dist/services/verification-cache/types.mjs +16 -0
  530. package/dist/services/verification-cache/types.mjs.map +1 -0
  531. package/dist/services/verify/ai-verifier.d.mts +25 -0
  532. package/dist/services/verify/ai-verifier.d.mts.map +1 -0
  533. package/dist/services/verify/ai-verifier.mjs +403 -0
  534. package/dist/services/verify/ai-verifier.mjs.map +1 -0
  535. package/dist/services/verify/behavior-verifier.d.mts +12 -0
  536. package/dist/services/verify/behavior-verifier.d.mts.map +1 -0
  537. package/dist/services/verify/behavior-verifier.mjs +186 -0
  538. package/dist/services/verify/behavior-verifier.mjs.map +1 -0
  539. package/dist/services/verify/index.d.mts +5 -0
  540. package/dist/services/verify/index.mjs +6 -0
  541. package/dist/services/verify/structure-verifier.d.mts +12 -0
  542. package/dist/services/verify/structure-verifier.d.mts.map +1 -0
  543. package/dist/services/verify/structure-verifier.mjs +196 -0
  544. package/dist/services/verify/structure-verifier.mjs.map +1 -0
  545. package/dist/services/verify/types.d.mts +137 -0
  546. package/dist/services/verify/types.d.mts.map +1 -0
  547. package/dist/services/verify/verify-service.d.mts +60 -0
  548. package/dist/services/verify/verify-service.d.mts.map +1 -0
  549. package/dist/services/verify/verify-service.mjs +204 -0
  550. package/dist/services/verify/verify-service.mjs.map +1 -0
  551. package/dist/services/versioning/changelog-formatter.d.mts +24 -0
  552. package/dist/services/versioning/changelog-formatter.d.mts.map +1 -0
  553. package/dist/services/versioning/changelog-formatter.mjs +155 -0
  554. package/dist/services/versioning/changelog-formatter.mjs.map +1 -0
  555. package/dist/services/versioning/conventional-commits.d.mts +95 -0
  556. package/dist/services/versioning/conventional-commits.d.mts.map +1 -0
  557. package/dist/services/versioning/conventional-commits.mjs +184 -0
  558. package/dist/services/versioning/conventional-commits.mjs.map +1 -0
  559. package/dist/services/versioning/index.d.mts +12 -0
  560. package/dist/services/versioning/index.d.mts.map +1 -0
  561. package/dist/services/versioning/index.mjs +28 -0
  562. package/dist/services/versioning/index.mjs.map +1 -0
  563. package/dist/services/versioning/types.d.mts +135 -0
  564. package/dist/services/versioning/types.d.mts.map +1 -0
  565. package/dist/services/versioning/versioning-service.d.mts +74 -0
  566. package/dist/services/versioning/versioning-service.d.mts.map +1 -0
  567. package/dist/services/versioning/versioning-service.mjs +501 -0
  568. package/dist/services/versioning/versioning-service.mjs.map +1 -0
  569. package/dist/services/vibe/config.d.mts +12 -0
  570. package/dist/services/vibe/config.d.mts.map +1 -0
  571. package/dist/services/vibe/config.mjs +43 -0
  572. package/dist/services/vibe/config.mjs.map +1 -0
  573. package/dist/services/vibe/context.d.mts +19 -0
  574. package/dist/services/vibe/context.d.mts.map +1 -0
  575. package/dist/services/vibe/context.mjs +92 -0
  576. package/dist/services/vibe/context.mjs.map +1 -0
  577. package/dist/services/vibe/definitions.d.mts +8 -0
  578. package/dist/services/vibe/definitions.d.mts.map +1 -0
  579. package/dist/services/vibe/definitions.mjs +129 -0
  580. package/dist/services/vibe/definitions.mjs.map +1 -0
  581. package/dist/services/vibe/engine.d.mts +44 -0
  582. package/dist/services/vibe/engine.d.mts.map +1 -0
  583. package/dist/services/vibe/engine.mjs +147 -0
  584. package/dist/services/vibe/engine.mjs.map +1 -0
  585. package/dist/services/vibe/index.d.mts +15 -0
  586. package/dist/services/vibe/index.d.mts.map +1 -0
  587. package/dist/services/vibe/index.mjs +26 -0
  588. package/dist/services/vibe/index.mjs.map +1 -0
  589. package/dist/services/vibe/loader.d.mts +15 -0
  590. package/dist/services/vibe/loader.d.mts.map +1 -0
  591. package/dist/services/vibe/loader.mjs +48 -0
  592. package/dist/services/vibe/loader.mjs.map +1 -0
  593. package/dist/services/vibe/pack.d.mts +19 -0
  594. package/dist/services/vibe/pack.d.mts.map +1 -0
  595. package/dist/services/vibe/pack.mjs +66 -0
  596. package/dist/services/vibe/pack.mjs.map +1 -0
  597. package/dist/services/vibe/types.d.mts +59 -0
  598. package/dist/services/vibe/types.d.mts.map +1 -0
  599. package/dist/services/vibe/types.mjs +12 -0
  600. package/dist/services/vibe/types.mjs.map +1 -0
  601. package/dist/services/view/index.d.mts +11 -0
  602. package/dist/services/view/index.d.mts.map +1 -0
  603. package/dist/services/view/index.mjs +119 -0
  604. package/dist/services/view/index.mjs.map +1 -0
  605. package/dist/services/watch.d.mts +25 -0
  606. package/dist/services/watch.d.mts.map +1 -0
  607. package/dist/services/watch.mjs +33 -0
  608. package/dist/services/watch.mjs.map +1 -0
  609. package/dist/services/workspace-info.d.mts +62 -0
  610. package/dist/services/workspace-info.d.mts.map +1 -0
  611. package/dist/services/workspace-info.mjs +103 -0
  612. package/dist/services/workspace-info.mjs.map +1 -0
  613. package/dist/templates/app-config.template.d.mts +7 -0
  614. package/dist/templates/app-config.template.d.mts.map +1 -0
  615. package/dist/templates/app-config.template.mjs +107 -0
  616. package/dist/templates/app-config.template.mjs.map +1 -0
  617. package/dist/templates/data-view.template.d.mts +7 -0
  618. package/dist/templates/data-view.template.d.mts.map +1 -0
  619. package/dist/templates/data-view.template.mjs +70 -0
  620. package/dist/templates/data-view.template.mjs.map +1 -0
  621. package/dist/templates/event.template.d.mts +11 -0
  622. package/dist/templates/event.template.d.mts.map +1 -0
  623. package/dist/templates/event.template.mjs +42 -0
  624. package/dist/templates/event.template.mjs.map +1 -0
  625. package/dist/templates/experiment.template.d.mts +7 -0
  626. package/dist/templates/experiment.template.d.mts.map +1 -0
  627. package/dist/templates/experiment.template.mjs +89 -0
  628. package/dist/templates/experiment.template.mjs.map +1 -0
  629. package/dist/templates/feature.template.d.mts +33 -0
  630. package/dist/templates/feature.template.d.mts.map +1 -0
  631. package/dist/templates/feature.template.mjs +52 -0
  632. package/dist/templates/feature.template.mjs.map +1 -0
  633. package/dist/templates/fix/skeleton-capability.mjs +49 -0
  634. package/dist/templates/fix/skeleton-capability.mjs.map +1 -0
  635. package/dist/templates/fix/skeleton-event.mjs +56 -0
  636. package/dist/templates/fix/skeleton-event.mjs.map +1 -0
  637. package/dist/templates/fix/skeleton-operation.mjs +122 -0
  638. package/dist/templates/fix/skeleton-operation.mjs.map +1 -0
  639. package/dist/templates/fix/skeleton-presentation.mjs +65 -0
  640. package/dist/templates/fix/skeleton-presentation.mjs.map +1 -0
  641. package/dist/templates/fix/utils.mjs +34 -0
  642. package/dist/templates/fix/utils.mjs.map +1 -0
  643. package/dist/templates/handler.template.d.mts +16 -0
  644. package/dist/templates/handler.template.d.mts.map +1 -0
  645. package/dist/templates/handler.template.mjs +100 -0
  646. package/dist/templates/handler.template.mjs.map +1 -0
  647. package/dist/templates/index.d.mts +22 -0
  648. package/dist/templates/index.d.mts.map +1 -0
  649. package/dist/templates/index.mjs +39 -0
  650. package/dist/templates/index.mjs.map +1 -0
  651. package/dist/templates/integration.template.d.mts +7 -0
  652. package/dist/templates/integration.template.d.mts.map +1 -0
  653. package/dist/templates/integration.template.mjs +160 -0
  654. package/dist/templates/integration.template.mjs.map +1 -0
  655. package/dist/templates/knowledge.template.d.mts +7 -0
  656. package/dist/templates/knowledge.template.d.mts.map +1 -0
  657. package/dist/templates/knowledge.template.mjs +75 -0
  658. package/dist/templates/knowledge.template.mjs.map +1 -0
  659. package/dist/templates/migration.template.d.mts +7 -0
  660. package/dist/templates/migration.template.d.mts.map +1 -0
  661. package/dist/templates/migration.template.mjs +62 -0
  662. package/dist/templates/migration.template.mjs.map +1 -0
  663. package/dist/templates/operation.template.d.mts +11 -0
  664. package/dist/templates/operation.template.d.mts.map +1 -0
  665. package/dist/templates/operation.template.mjs +107 -0
  666. package/dist/templates/operation.template.mjs.map +1 -0
  667. package/dist/templates/presentation.template.d.mts +11 -0
  668. package/dist/templates/presentation.template.d.mts.map +1 -0
  669. package/dist/templates/presentation.template.mjs +80 -0
  670. package/dist/templates/presentation.template.mjs.map +1 -0
  671. package/dist/templates/telemetry.template.d.mts +7 -0
  672. package/dist/templates/telemetry.template.d.mts.map +1 -0
  673. package/dist/templates/telemetry.template.mjs +91 -0
  674. package/dist/templates/telemetry.template.mjs.map +1 -0
  675. package/dist/templates/workflow-runner.template.d.mts +16 -0
  676. package/dist/templates/workflow-runner.template.d.mts.map +1 -0
  677. package/dist/templates/workflow-runner.template.mjs +50 -0
  678. package/dist/templates/workflow-runner.template.mjs.map +1 -0
  679. package/dist/templates/workflow.template.d.mts +7 -0
  680. package/dist/templates/workflow.template.d.mts.map +1 -0
  681. package/dist/templates/workflow.template.mjs +69 -0
  682. package/dist/templates/workflow.template.mjs.map +1 -0
  683. package/dist/types/config.d.mts +34 -0
  684. package/dist/types/config.d.mts.map +1 -0
  685. package/dist/types.d.mts +324 -0
  686. package/dist/types.d.mts.map +1 -0
  687. package/dist/utils/filter.d.mts +16 -0
  688. package/dist/utils/filter.d.mts.map +1 -0
  689. package/dist/utils/filter.mjs +22 -0
  690. package/dist/utils/filter.mjs.map +1 -0
  691. package/dist/utils/index.d.mts +11 -0
  692. package/dist/utils/index.d.mts.map +1 -0
  693. package/dist/utils/index.mjs +20 -0
  694. package/dist/utils/index.mjs.map +1 -0
  695. package/dist/utils/module-loader.d.mts +5 -0
  696. package/dist/utils/module-loader.d.mts.map +1 -0
  697. package/dist/utils/module-loader.mjs +41 -0
  698. package/dist/utils/module-loader.mjs.map +1 -0
  699. package/dist/utils/validation.d.mts +37 -0
  700. package/dist/utils/validation.d.mts.map +1 -0
  701. package/dist/utils/validation.mjs +43 -0
  702. package/dist/utils/validation.mjs.map +1 -0
  703. package/package.json +76 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.mts","names":[],"sources":["../../src/ports/fs.ts"],"sourcesContent":[],"mappings":";;AAOA;AAUA;AAaA;;;AAc4C,UArC3B,QAAA,CAqC2B;EAKpB,IAAA,EAAA,MAAA;EAKM,MAAA,EAAA,OAAA;EAAR,WAAA,EAAA,OAAA;EAKC,KAAA,EAhDd,IAgDc;;;;;UA1CN,eAAA;;;;;;;;;;;;UAaA,SAAA;;;;wBAIO;;;;0BAKE;;;;4CAKkB;;;;wBAKpB;;;;sBAKF,QAAQ;;;;uBAKP;;;;gBAKP,kBAAkB"}
@@ -0,0 +1,46 @@
1
+ //#region src/ports/git.d.ts
2
+ /**
3
+ * Git adapter port.
4
+ */
5
+ /**
6
+ * Git adapter interface.
7
+ */
8
+ interface GitAdapter {
9
+ /**
10
+ * Get file contents at a specific git ref (branch, tag, commit).
11
+ */
12
+ showFile(ref: string, filePath: string): Promise<string>;
13
+ /**
14
+ * Clean untracked files (dangerous operation).
15
+ */
16
+ clean(options?: GitCleanOptions): Promise<void>;
17
+ /**
18
+ * Check if path is inside a git repository.
19
+ */
20
+ isGitRepo(path?: string): Promise<boolean>;
21
+ /**
22
+ * Get commit log since a baseline ref.
23
+ */
24
+ log(baseline?: string): Promise<GitLogEntry[]>;
25
+ }
26
+ /**
27
+ * Entry from git log.
28
+ */
29
+ interface GitLogEntry {
30
+ hash: string;
31
+ message: string;
32
+ author?: string;
33
+ date?: string;
34
+ }
35
+ /**
36
+ * Options for git clean.
37
+ */
38
+ interface GitCleanOptions {
39
+ dryRun?: boolean;
40
+ force?: boolean;
41
+ directories?: boolean;
42
+ ignored?: boolean;
43
+ }
44
+ //#endregion
45
+ export { GitAdapter, GitCleanOptions, GitLogEntry };
46
+ //# sourceMappingURL=git.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.d.mts","names":[],"sources":["../../src/ports/git.ts"],"sourcesContent":[],"mappings":";;AAOA;;;;;AAmBkC,UAnBjB,UAAA,CAmBiB;EAAR;;AAM1B;EAUiB,QAAA,CAAA,GAAA,EAAA,MAAe,EAAA,QAAA,EAAA,MAAA,CAAA,EA/BW,OA+BX,CAAA,MAAA,CAAA;;;;kBA1Bd,kBAAkB;;;;4BAKR;;;;0BAKF,QAAQ;;;;;UAMjB,WAAA;;;;;;;;;UAUA,eAAA"}
@@ -0,0 +1,6 @@
1
+ import { DiscoverOptions, FileStat, FsAdapter } from "./fs.mjs";
2
+ import { GitAdapter, GitCleanOptions, GitLogEntry } from "./git.mjs";
3
+ import { WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, Watcher, WatcherAdapter } from "./watcher.mjs";
4
+ import { AiAdapter, AiGenerateOptions, AiGenerateResult, AiGenerateStructuredOptions, AiValidationResult } from "./ai.mjs";
5
+ import { LogLevel, LoggerAdapter, ProgressReporter, ProgressUpdate, WorkspaceAdapters } from "./logger.mjs";
6
+ import { RuleSyncOptions, RuleSyncPort, RuleSyncResult } from "./rulesync.mjs";
@@ -0,0 +1,88 @@
1
+ import { FsAdapter } from "./fs.mjs";
2
+ import { GitAdapter } from "./git.mjs";
3
+ import { WatcherAdapter } from "./watcher.mjs";
4
+ import { AiAdapter } from "./ai.mjs";
5
+
6
+ //#region src/ports/logger.d.ts
7
+ /**
8
+ * Logger and progress reporter port.
9
+ */
10
+ /**
11
+ * Log level.
12
+ */
13
+ type LogLevel = 'debug' | 'info' | 'warn' | 'error';
14
+ /**
15
+ * Progress update.
16
+ */
17
+ interface ProgressUpdate {
18
+ message: string;
19
+ current?: number;
20
+ total?: number;
21
+ }
22
+ /**
23
+ * Progress reporter for long-running operations.
24
+ */
25
+ interface ProgressReporter {
26
+ /**
27
+ * Start progress reporting.
28
+ */
29
+ start(message: string): void;
30
+ /**
31
+ * Update progress.
32
+ */
33
+ update(update: ProgressUpdate): void;
34
+ /**
35
+ * Mark as succeeded.
36
+ */
37
+ succeed(message?: string): void;
38
+ /**
39
+ * Mark as failed.
40
+ */
41
+ fail(message?: string): void;
42
+ /**
43
+ * Mark as warned.
44
+ */
45
+ warn(message?: string): void;
46
+ /**
47
+ * Stop progress reporting.
48
+ */
49
+ stop(): void;
50
+ }
51
+ /**
52
+ * Logger adapter interface.
53
+ */
54
+ interface LoggerAdapter {
55
+ /**
56
+ * Log debug message.
57
+ */
58
+ debug(message: string, data?: Record<string, unknown>): void;
59
+ /**
60
+ * Log info message.
61
+ */
62
+ info(message: string, data?: Record<string, unknown>): void;
63
+ /**
64
+ * Log warning message.
65
+ */
66
+ warn(message: string, data?: Record<string, unknown>): void;
67
+ /**
68
+ * Log error message.
69
+ */
70
+ error(message: string, data?: Record<string, unknown>): void;
71
+ /**
72
+ * Create a progress reporter.
73
+ */
74
+ createProgress(): ProgressReporter;
75
+ }
76
+ /**
77
+ * Combined adapters for workspace services.
78
+ */
79
+ interface WorkspaceAdapters {
80
+ fs: FsAdapter;
81
+ git: GitAdapter;
82
+ watcher: WatcherAdapter;
83
+ ai: AiAdapter;
84
+ logger: LoggerAdapter;
85
+ }
86
+ //#endregion
87
+ export { LogLevel, LoggerAdapter, ProgressReporter, ProgressUpdate, WorkspaceAdapters };
88
+ //# sourceMappingURL=logger.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.mts","names":[],"sources":["../../src/ports/logger.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;AAOY,KAAA,QAAA,GAAQ,OAAA,GAAA,MAAA,GAAA,MAAA,GAAA,OAAA;AAKpB;AASA;AAmCA;AAIgC,UAhDf,cAAA,CAgDe;EAKD,OAAA,EAAA,MAAA;EAKA,OAAA,CAAA,EAAA,MAAA;EAKC,KAAA,CAAA,EAAA,MAAA;;;AAWhC;;AAC8B,UAlEb,gBAAA,CAkEa;EACG;;;EAGV,KAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,IAAA;;;;iBA7DN;;;;;;;;;;;;;;;;;;;;;UA0BA,aAAA;;;;gCAIe;;;;+BAKD;;;;+BAKA;;;;gCAKC;;;;oBAKZ;;;;;UAMH,iBAAA;MAAiB;OACJ;WACG;MACY;UAEnC"}
@@ -0,0 +1,38 @@
1
+ import { RuleSyncConfig, RuleSyncTarget } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/ports/rulesync.d.ts
4
+
5
+ interface RuleSyncOptions {
6
+ /** Root directory of the workspace */
7
+ cwd: string;
8
+ /** Configuration for rule synchronization */
9
+ config: RuleSyncConfig;
10
+ /** Specific targets to sync (overrides config.targets if provided) */
11
+ targets?: RuleSyncTarget[];
12
+ /** Dry run mode (don't write files) */
13
+ dryRun?: boolean;
14
+ }
15
+ interface RuleSyncResult {
16
+ /** Whether the synchronization was successful */
17
+ success: boolean;
18
+ /** List of files created or updated */
19
+ files: string[];
20
+ /** Errors encountered during synchronization */
21
+ errors?: string[];
22
+ /** Optional logs from the synchronization process */
23
+ logs?: string[];
24
+ }
25
+ interface RuleSyncPort {
26
+ /**
27
+ * Synchronize rules based on the provided options.
28
+ */
29
+ sync(options: RuleSyncOptions): Promise<RuleSyncResult>;
30
+ /**
31
+ * Generate the rulesync configuration without executing the sync.
32
+ * Useful for "ejecting" to raw rulesync usage.
33
+ */
34
+ generateConfig(options: RuleSyncOptions): Promise<string>;
35
+ }
36
+ //#endregion
37
+ export { RuleSyncOptions, RuleSyncPort, RuleSyncResult };
38
+ //# sourceMappingURL=rulesync.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rulesync.d.mts","names":[],"sources":["../../src/ports/rulesync.ts"],"sourcesContent":[],"mappings":";;;;AAoBiB,UAXA,eAAA,CAWc;EAWd;EAID,GAAA,EAAA,MAAA;EAA0B;EAAR,MAAA,EAtBxB,cAsBwB;EAMR;EAAkB,OAAA,CAAA,EA1BhC,cA0BgC,EAAA;EAAO;;;UArBlC,cAAA;;;;;;;;;;UAWA,YAAA;;;;gBAID,kBAAkB,QAAQ;;;;;0BAMhB,kBAAkB"}
@@ -0,0 +1,52 @@
1
+ //#region src/ports/watcher.d.ts
2
+ /**
3
+ * File watcher adapter port.
4
+ */
5
+ /**
6
+ * Watcher event types.
7
+ */
8
+ type WatchEventType = 'add' | 'change' | 'unlink';
9
+ /**
10
+ * Watcher event.
11
+ */
12
+ interface WatchEvent {
13
+ type: WatchEventType;
14
+ path: string;
15
+ }
16
+ /**
17
+ * Watcher event handler.
18
+ */
19
+ type WatchEventHandler = (event: WatchEvent) => void | Promise<void>;
20
+ /**
21
+ * Options for file watching.
22
+ */
23
+ interface WatchOptions {
24
+ pattern: string;
25
+ ignore?: string[];
26
+ debounceMs?: number;
27
+ }
28
+ /**
29
+ * Watcher instance.
30
+ */
31
+ interface Watcher {
32
+ /**
33
+ * Register event handler.
34
+ */
35
+ on(handler: WatchEventHandler): void;
36
+ /**
37
+ * Stop watching.
38
+ */
39
+ close(): Promise<void>;
40
+ }
41
+ /**
42
+ * File watcher adapter interface.
43
+ */
44
+ interface WatcherAdapter {
45
+ /**
46
+ * Start watching files matching pattern.
47
+ */
48
+ watch(options: WatchOptions): Watcher;
49
+ }
50
+ //#endregion
51
+ export { WatchEvent, WatchEventHandler, WatchEventType, WatchOptions, Watcher, WatcherAdapter };
52
+ //# sourceMappingURL=watcher.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watcher.d.mts","names":[],"sources":["../../src/ports/watcher.ts"],"sourcesContent":[],"mappings":";;AAOA;AAKA;AAQA;AAKA;AASA;AAeiB,KA1CL,cAAA,GA0CmB,KAId,GAAA,QAAA,GAAe,QAAO;;;;UAzCtB,UAAA;QACT;;;;;;KAOI,iBAAA,WAA4B,sBAAsB;;;;UAK7C,YAAA;;;;;;;;UASA,OAAA;;;;cAIH;;;;WAKH;;;;;UAMM,cAAA;;;;iBAIA,eAAe"}
@@ -0,0 +1,35 @@
1
+ import { AgentAdapter } from "../types.mjs";
2
+ import { AnyOperationSpec } from "@contractspec/lib.contracts";
3
+ import { AgentPrompt, ImplementationPlan } from "@contractspec/lib.contracts/llm";
4
+
5
+ //#region src/services/agent-guide/adapters/claude-code.d.ts
6
+
7
+ /**
8
+ * Claude Code adapter implementation.
9
+ * Optimized for Claude's extended thinking and code generation capabilities.
10
+ */
11
+ declare class ClaudeCodeAdapter implements AgentAdapter {
12
+ agentType: "claude-code";
13
+ /**
14
+ * Format an implementation plan for Claude Code.
15
+ * Uses structured markdown with clear sections and checklists.
16
+ */
17
+ formatPlan(plan: ImplementationPlan): AgentPrompt;
18
+ /**
19
+ * Generate agent-specific configuration.
20
+ * For Claude Code, this generates a prompt that can be used as context.
21
+ */
22
+ generateConfig(spec: AnyOperationSpec): string;
23
+ /**
24
+ * Parse Claude Code output to extract generated code.
25
+ */
26
+ parseOutput(output: string): {
27
+ code?: string;
28
+ errors?: string[];
29
+ };
30
+ }
31
+ /** Singleton instance */
32
+ declare const claudeCodeAdapter: ClaudeCodeAdapter;
33
+ //#endregion
34
+ export { ClaudeCodeAdapter, claudeCodeAdapter };
35
+ //# sourceMappingURL=claude-code.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.d.mts","names":[],"sources":["../../../../src/services/agent-guide/adapters/claude-code.ts"],"sourcesContent":[],"mappings":";;;;;;;;AAoNA;;cAjMa,iBAAA,YAA6B;;;;;;mBAOvB,qBAAqB;;;;;uBAyHjB;;;;;;;;;;cAiEV,mBAAiB"}
@@ -0,0 +1,144 @@
1
+ import { AGENT_SYSTEM_PROMPTS } from "@contractspec/lib.contracts/llm";
2
+
3
+ //#region src/services/agent-guide/adapters/claude-code.ts
4
+ /**
5
+ * Claude Code adapter implementation.
6
+ * Optimized for Claude's extended thinking and code generation capabilities.
7
+ */
8
+ var ClaudeCodeAdapter = class {
9
+ agentType = "claude-code";
10
+ /**
11
+ * Format an implementation plan for Claude Code.
12
+ * Uses structured markdown with clear sections and checklists.
13
+ */
14
+ formatPlan(plan) {
15
+ const lines = [];
16
+ lines.push(`# Implement: ${plan.target.key}.v${plan.target.version}`);
17
+ lines.push("");
18
+ lines.push("## Context");
19
+ lines.push("");
20
+ lines.push(`**Goal:** ${plan.context.goal}`);
21
+ lines.push("");
22
+ lines.push(`**Description:** ${plan.context.description}`);
23
+ lines.push("");
24
+ if (plan.context.background) {
25
+ lines.push(`**Background:**`);
26
+ lines.push(plan.context.background);
27
+ lines.push("");
28
+ }
29
+ lines.push("## Specification");
30
+ lines.push("");
31
+ lines.push(plan.specMarkdown);
32
+ lines.push("");
33
+ if (plan.fileStructure.length > 0) {
34
+ lines.push("## Files to Create/Modify");
35
+ lines.push("");
36
+ for (const file of plan.fileStructure) {
37
+ const icon = file.type === "create" ? "📝" : "✏️";
38
+ lines.push(`${icon} \`${file.path}\``);
39
+ lines.push(` ${file.purpose}`);
40
+ lines.push("");
41
+ }
42
+ }
43
+ lines.push("## Implementation Steps");
44
+ lines.push("");
45
+ for (const step of plan.steps) {
46
+ lines.push(`### ${step.order}. ${step.title}`);
47
+ lines.push("");
48
+ lines.push(step.description);
49
+ lines.push("");
50
+ lines.push("**Acceptance Criteria:**");
51
+ for (const criteria of step.acceptanceCriteria) lines.push(`- [ ] ${criteria}`);
52
+ lines.push("");
53
+ }
54
+ if (plan.constraints.policy.length > 0 || plan.constraints.security.length > 0 || plan.constraints.pii.length > 0) {
55
+ lines.push("## Constraints");
56
+ lines.push("");
57
+ if (plan.constraints.policy.length > 0) {
58
+ lines.push("### Policy");
59
+ for (const p of plan.constraints.policy) lines.push(`- ${p}`);
60
+ lines.push("");
61
+ }
62
+ if (plan.constraints.security.length > 0) {
63
+ lines.push("### Security");
64
+ for (const s of plan.constraints.security) lines.push(`- ⚠️ ${s}`);
65
+ lines.push("");
66
+ }
67
+ if (plan.constraints.pii.length > 0) {
68
+ lines.push("### PII Handling");
69
+ lines.push("The following fields contain personally identifiable information:");
70
+ for (const pii of plan.constraints.pii) lines.push(`- \`${pii}\``);
71
+ lines.push("");
72
+ }
73
+ }
74
+ lines.push("## Verification Checklist");
75
+ lines.push("");
76
+ lines.push("Before submitting, verify:");
77
+ for (const check of plan.verificationChecklist) lines.push(`- [ ] ${check}`);
78
+ lines.push("");
79
+ lines.push("## Instructions");
80
+ lines.push("");
81
+ lines.push("1. Implement each step in order");
82
+ lines.push("2. Use TypeScript with strict typing (no `any`)");
83
+ lines.push("3. Include JSDoc comments for public APIs");
84
+ lines.push("4. Handle all error cases defined in the spec");
85
+ lines.push("5. Emit events as specified");
86
+ lines.push("6. Mark checklist items as you complete them");
87
+ lines.push("");
88
+ return {
89
+ agent: "claude-code",
90
+ systemPrompt: AGENT_SYSTEM_PROMPTS["claude-code"],
91
+ taskPrompt: lines.join("\n")
92
+ };
93
+ }
94
+ /**
95
+ * Generate agent-specific configuration.
96
+ * For Claude Code, this generates a prompt that can be used as context.
97
+ */
98
+ generateConfig(spec) {
99
+ const lines = [];
100
+ lines.push("# ContractSpec Implementation Context");
101
+ lines.push("");
102
+ lines.push("This codebase uses ContractSpec for spec-first development.");
103
+ lines.push("");
104
+ lines.push("## Spec Details");
105
+ lines.push("");
106
+ lines.push(`- **Name:** ${spec.meta.key}`);
107
+ lines.push(`- **Version:** ${spec.meta.version}`);
108
+ lines.push(`- **Kind:** ${spec.meta.kind}`);
109
+ lines.push(`- **Stability:** ${spec.meta.stability}`);
110
+ lines.push("");
111
+ lines.push("## Implementation Requirements");
112
+ lines.push("");
113
+ lines.push("1. Match input/output types exactly");
114
+ lines.push("2. Handle all defined error cases");
115
+ lines.push("3. Emit events as specified");
116
+ lines.push("4. Respect policy constraints");
117
+ lines.push("");
118
+ return lines.join("\n");
119
+ }
120
+ /**
121
+ * Parse Claude Code output to extract generated code.
122
+ */
123
+ parseOutput(output) {
124
+ const codeBlockMatch = output.match(/```(?:typescript|ts|tsx)?\n([\s\S]*?)\n```/);
125
+ if (codeBlockMatch?.[1]) return { code: codeBlockMatch[1] };
126
+ const errors = [];
127
+ for (const pattern of [
128
+ /error:\s*(.+)/gi,
129
+ /failed:\s*(.+)/gi,
130
+ /cannot\s+(.+)/gi
131
+ ]) {
132
+ const matches = output.matchAll(pattern);
133
+ for (const match of matches) if (match[1]) errors.push(match[1]);
134
+ }
135
+ if (errors.length > 0) return { errors };
136
+ return { code: output };
137
+ }
138
+ };
139
+ /** Singleton instance */
140
+ const claudeCodeAdapter = new ClaudeCodeAdapter();
141
+
142
+ //#endregion
143
+ export { ClaudeCodeAdapter, claudeCodeAdapter };
144
+ //# sourceMappingURL=claude-code.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-code.mjs","names":[],"sources":["../../../../src/services/agent-guide/adapters/claude-code.ts"],"sourcesContent":["/**\n * Claude Code Agent Adapter\n *\n * Formats implementation plans and prompts for Claude Code (Anthropic's\n * advanced coding agent mode).\n */\n\nimport type { AnyOperationSpec } from '@contractspec/lib.contracts';\nimport type {\n AgentPrompt,\n ImplementationPlan,\n} from '@contractspec/lib.contracts/llm';\nimport { AGENT_SYSTEM_PROMPTS } from '@contractspec/lib.contracts/llm';\nimport type { AgentAdapter } from '../types';\n\n/**\n * Claude Code adapter implementation.\n * Optimized for Claude's extended thinking and code generation capabilities.\n */\nexport class ClaudeCodeAdapter implements AgentAdapter {\n agentType = 'claude-code' as const;\n\n /**\n * Format an implementation plan for Claude Code.\n * Uses structured markdown with clear sections and checklists.\n */\n formatPlan(plan: ImplementationPlan): AgentPrompt {\n const lines: string[] = [];\n\n // Header\n lines.push(`# Implement: ${plan.target.key}.v${plan.target.version}`);\n lines.push('');\n\n // Context section\n lines.push('## Context');\n lines.push('');\n lines.push(`**Goal:** ${plan.context.goal}`);\n lines.push('');\n lines.push(`**Description:** ${plan.context.description}`);\n lines.push('');\n if (plan.context.background) {\n lines.push(`**Background:**`);\n lines.push(plan.context.background);\n lines.push('');\n }\n\n // Full specification\n lines.push('## Specification');\n lines.push('');\n lines.push(plan.specMarkdown);\n lines.push('');\n\n // File structure\n if (plan.fileStructure.length > 0) {\n lines.push('## Files to Create/Modify');\n lines.push('');\n for (const file of plan.fileStructure) {\n const icon = file.type === 'create' ? '📝' : '✏️';\n lines.push(`${icon} \\`${file.path}\\``);\n lines.push(` ${file.purpose}`);\n lines.push('');\n }\n }\n\n // Implementation steps\n lines.push('## Implementation Steps');\n lines.push('');\n for (const step of plan.steps) {\n lines.push(`### ${step.order}. ${step.title}`);\n lines.push('');\n lines.push(step.description);\n lines.push('');\n lines.push('**Acceptance Criteria:**');\n for (const criteria of step.acceptanceCriteria) {\n lines.push(`- [ ] ${criteria}`);\n }\n lines.push('');\n }\n\n // Constraints\n if (\n plan.constraints.policy.length > 0 ||\n plan.constraints.security.length > 0 ||\n plan.constraints.pii.length > 0\n ) {\n lines.push('## Constraints');\n lines.push('');\n\n if (plan.constraints.policy.length > 0) {\n lines.push('### Policy');\n for (const p of plan.constraints.policy) {\n lines.push(`- ${p}`);\n }\n lines.push('');\n }\n\n if (plan.constraints.security.length > 0) {\n lines.push('### Security');\n for (const s of plan.constraints.security) {\n lines.push(`- ⚠️ ${s}`);\n }\n lines.push('');\n }\n\n if (plan.constraints.pii.length > 0) {\n lines.push('### PII Handling');\n lines.push(\n 'The following fields contain personally identifiable information:'\n );\n for (const pii of plan.constraints.pii) {\n lines.push(`- \\`${pii}\\``);\n }\n lines.push('');\n }\n }\n\n // Verification checklist\n lines.push('## Verification Checklist');\n lines.push('');\n lines.push('Before submitting, verify:');\n for (const check of plan.verificationChecklist) {\n lines.push(`- [ ] ${check}`);\n }\n lines.push('');\n\n // Instructions\n lines.push('## Instructions');\n lines.push('');\n lines.push('1. Implement each step in order');\n lines.push('2. Use TypeScript with strict typing (no `any`)');\n lines.push('3. Include JSDoc comments for public APIs');\n lines.push('4. Handle all error cases defined in the spec');\n lines.push('5. Emit events as specified');\n lines.push('6. Mark checklist items as you complete them');\n lines.push('');\n\n return {\n agent: 'claude-code',\n systemPrompt: AGENT_SYSTEM_PROMPTS['claude-code'],\n taskPrompt: lines.join('\\n'),\n };\n }\n\n /**\n * Generate agent-specific configuration.\n * For Claude Code, this generates a prompt that can be used as context.\n */\n generateConfig(spec: AnyOperationSpec): string {\n const lines: string[] = [];\n\n lines.push('# ContractSpec Implementation Context');\n lines.push('');\n lines.push('This codebase uses ContractSpec for spec-first development.');\n lines.push('');\n lines.push('## Spec Details');\n lines.push('');\n lines.push(`- **Name:** ${spec.meta.key}`);\n lines.push(`- **Version:** ${spec.meta.version}`);\n lines.push(`- **Kind:** ${spec.meta.kind}`);\n lines.push(`- **Stability:** ${spec.meta.stability}`);\n lines.push('');\n lines.push('## Implementation Requirements');\n lines.push('');\n lines.push('1. Match input/output types exactly');\n lines.push('2. Handle all defined error cases');\n lines.push('3. Emit events as specified');\n lines.push('4. Respect policy constraints');\n lines.push('');\n\n return lines.join('\\n');\n }\n\n /**\n * Parse Claude Code output to extract generated code.\n */\n parseOutput(output: string): { code?: string; errors?: string[] } {\n // Extract code from markdown code blocks\n const codeBlockMatch = output.match(\n /```(?:typescript|ts|tsx)?\\n([\\s\\S]*?)\\n```/\n );\n\n if (codeBlockMatch?.[1]) {\n return { code: codeBlockMatch[1] };\n }\n\n // Check for error indicators\n const errors: string[] = [];\n const errorPatterns = [\n /error:\\s*(.+)/gi,\n /failed:\\s*(.+)/gi,\n /cannot\\s+(.+)/gi,\n ];\n\n for (const pattern of errorPatterns) {\n const matches = output.matchAll(pattern);\n for (const match of matches) {\n if (match[1]) {\n errors.push(match[1]);\n }\n }\n }\n\n if (errors.length > 0) {\n return { errors };\n }\n\n // Return raw output if no code block found\n return { code: output };\n }\n}\n\n/** Singleton instance */\nexport const claudeCodeAdapter = new ClaudeCodeAdapter();\n"],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import { AgentAdapter } from "../types.mjs";
2
+ import { AnyOperationSpec } from "@contractspec/lib.contracts";
3
+ import { AgentPrompt, ImplementationPlan } from "@contractspec/lib.contracts/llm";
4
+
5
+ //#region src/services/agent-guide/adapters/cursor-cli.d.ts
6
+
7
+ /**
8
+ * Cursor CLI adapter implementation.
9
+ * Optimized for Cursor's background/composer mode.
10
+ */
11
+ declare class CursorCLIAdapter implements AgentAdapter {
12
+ agentType: "cursor-cli";
13
+ /**
14
+ * Format an implementation plan for Cursor CLI.
15
+ * Uses concise format optimized for Cursor's context window.
16
+ */
17
+ formatPlan(plan: ImplementationPlan): AgentPrompt;
18
+ /**
19
+ * Generate Cursor rules (.mdc format) for a spec.
20
+ * Can be saved to .cursor/rules/ to provide persistent context.
21
+ */
22
+ generateConfig(spec: AnyOperationSpec): string;
23
+ /**
24
+ * Generate a cursor rules file path for a spec.
25
+ */
26
+ getCursorRulesPath(spec: AnyOperationSpec): string;
27
+ /**
28
+ * Parse Cursor output to extract generated code.
29
+ */
30
+ parseOutput(output: string): {
31
+ code?: string;
32
+ errors?: string[];
33
+ };
34
+ }
35
+ /** Singleton instance */
36
+ declare const cursorCLIAdapter: CursorCLIAdapter;
37
+ //#endregion
38
+ export { CursorCLIAdapter, cursorCLIAdapter };
39
+ //# sourceMappingURL=cursor-cli.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-cli.d.mts","names":[],"sources":["../../../../src/services/agent-guide/adapters/cursor-cli.ts"],"sourcesContent":[],"mappings":";;;;;;;;;AAqNA;cAlMa,gBAAA,YAA4B;;;;;;mBAOtB,qBAAqB;;;;;uBAoEjB;;;;2BA+FI;;;;;;;;;;cAwBd,kBAAgB"}
@@ -0,0 +1,135 @@
1
+ import { AGENT_SYSTEM_PROMPTS } from "@contractspec/lib.contracts/llm";
2
+
3
+ //#region src/services/agent-guide/adapters/cursor-cli.ts
4
+ /**
5
+ * Cursor CLI adapter implementation.
6
+ * Optimized for Cursor's background/composer mode.
7
+ */
8
+ var CursorCLIAdapter = class {
9
+ agentType = "cursor-cli";
10
+ /**
11
+ * Format an implementation plan for Cursor CLI.
12
+ * Uses concise format optimized for Cursor's context window.
13
+ */
14
+ formatPlan(plan) {
15
+ const lines = [];
16
+ lines.push(`# ${plan.target.key}.v${plan.target.version}`);
17
+ lines.push("");
18
+ lines.push(`> ${plan.context.goal}`);
19
+ lines.push("");
20
+ if (plan.fileStructure.length > 0) {
21
+ lines.push("## Files");
22
+ lines.push("");
23
+ for (const file of plan.fileStructure) lines.push(`- ${file.type}: \`${file.path}\` - ${file.purpose}`);
24
+ lines.push("");
25
+ }
26
+ lines.push("## Spec");
27
+ lines.push("");
28
+ lines.push(plan.specMarkdown);
29
+ lines.push("");
30
+ lines.push("## Steps");
31
+ lines.push("");
32
+ for (const step of plan.steps) lines.push(`${step.order}. **${step.title}**: ${step.description}`);
33
+ lines.push("");
34
+ const constraints = [...plan.constraints.policy, ...plan.constraints.security.map((s) => `⚠️ ${s}`)];
35
+ if (constraints.length > 0) {
36
+ lines.push("## Constraints");
37
+ lines.push("");
38
+ for (const c of constraints) lines.push(`- ${c}`);
39
+ lines.push("");
40
+ }
41
+ if (plan.constraints.pii.length > 0) {
42
+ lines.push("## PII Fields");
43
+ lines.push("");
44
+ lines.push(`Handle carefully: ${plan.constraints.pii.map((p) => `\`${p}\``).join(", ")}`);
45
+ lines.push("");
46
+ }
47
+ return {
48
+ agent: "cursor-cli",
49
+ systemPrompt: AGENT_SYSTEM_PROMPTS["cursor-cli"],
50
+ taskPrompt: lines.join("\n")
51
+ };
52
+ }
53
+ /**
54
+ * Generate Cursor rules (.mdc format) for a spec.
55
+ * Can be saved to .cursor/rules/ to provide persistent context.
56
+ */
57
+ generateConfig(spec) {
58
+ const m = spec.meta;
59
+ const lines = [];
60
+ lines.push("---");
61
+ lines.push(`description: Implementation rules for ${m.key}.v${m.version}`);
62
+ lines.push(`globs: ["**/${m.key.replace(/\./g, "/")}/**"]`);
63
+ lines.push("alwaysApply: false");
64
+ lines.push("---");
65
+ lines.push("");
66
+ lines.push(`# ${m.key} Implementation Rules`);
67
+ lines.push("");
68
+ lines.push(`This ${m.kind} operation must follow the ContractSpec specification.`);
69
+ lines.push("");
70
+ lines.push("## Goal");
71
+ lines.push("");
72
+ lines.push(m.goal);
73
+ lines.push("");
74
+ lines.push("## Requirements");
75
+ lines.push("");
76
+ lines.push("1. Input/output types MUST match the spec schema exactly");
77
+ lines.push("2. All error cases MUST be handled");
78
+ if (spec.sideEffects?.emits?.length) lines.push("3. Events MUST be emitted as specified");
79
+ lines.push(`4. Auth level: ${spec.policy.auth}`);
80
+ if (spec.policy.idempotent !== void 0) lines.push(`5. Idempotency: ${spec.policy.idempotent}`);
81
+ lines.push("");
82
+ if (spec.io.errors && Object.keys(spec.io.errors).length > 0) {
83
+ lines.push("## Error Cases");
84
+ lines.push("");
85
+ for (const [code, err] of Object.entries(spec.io.errors)) lines.push(`- \`${code}\` (HTTP ${err.http ?? 400}): ${err.when}`);
86
+ lines.push("");
87
+ }
88
+ if (spec.sideEffects?.emits?.length) {
89
+ lines.push("## Events to Emit");
90
+ lines.push("");
91
+ for (const e of spec.sideEffects.emits) if ("ref" in e) lines.push(`- \`${e.ref.key}.v${e.ref.version}\`: ${e.when}`);
92
+ else lines.push(`- \`${e.key}.v${e.version}\`: ${e.when}`);
93
+ lines.push("");
94
+ }
95
+ if (spec.policy.pii?.length) {
96
+ lines.push("## PII Handling");
97
+ lines.push("");
98
+ lines.push("These fields contain PII and must be handled with care:");
99
+ for (const field of spec.policy.pii) lines.push(`- \`${field}\``);
100
+ lines.push("");
101
+ }
102
+ if (spec.acceptance?.scenarios?.length) {
103
+ lines.push("## Acceptance Scenarios");
104
+ lines.push("");
105
+ for (const s of spec.acceptance.scenarios) {
106
+ lines.push(`### ${s.key}`);
107
+ lines.push(`- Given: ${s.given.join("; ")}`);
108
+ lines.push(`- When: ${s.when.join("; ")}`);
109
+ lines.push(`- Then: ${s.then.join("; ")}`);
110
+ lines.push("");
111
+ }
112
+ }
113
+ return lines.join("\n");
114
+ }
115
+ /**
116
+ * Generate a cursor rules file path for a spec.
117
+ */
118
+ getCursorRulesPath(spec) {
119
+ return `.cursor/rules/${spec.meta.key.replace(/\./g, "-")}.mdc`;
120
+ }
121
+ /**
122
+ * Parse Cursor output to extract generated code.
123
+ */
124
+ parseOutput(output) {
125
+ const codeBlockMatch = output.match(/```(?:typescript|ts|tsx|javascript|js)?\n([\s\S]*?)\n```/);
126
+ if (codeBlockMatch?.[1]) return { code: codeBlockMatch[1] };
127
+ return { code: output };
128
+ }
129
+ };
130
+ /** Singleton instance */
131
+ const cursorCLIAdapter = new CursorCLIAdapter();
132
+
133
+ //#endregion
134
+ export { CursorCLIAdapter, cursorCLIAdapter };
135
+ //# sourceMappingURL=cursor-cli.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cursor-cli.mjs","names":[],"sources":["../../../../src/services/agent-guide/adapters/cursor-cli.ts"],"sourcesContent":["/**\n * Cursor CLI Agent Adapter\n *\n * Formats implementation plans and prompts for Cursor's CLI/background mode.\n * Can also generate .mdc cursor rules files.\n */\n\nimport type { AnyOperationSpec } from '@contractspec/lib.contracts';\nimport type {\n AgentPrompt,\n ImplementationPlan,\n} from '@contractspec/lib.contracts/llm';\nimport { AGENT_SYSTEM_PROMPTS } from '@contractspec/lib.contracts/llm';\nimport type { AgentAdapter } from '../types';\n\n/**\n * Cursor CLI adapter implementation.\n * Optimized for Cursor's background/composer mode.\n */\nexport class CursorCLIAdapter implements AgentAdapter {\n agentType = 'cursor-cli' as const;\n\n /**\n * Format an implementation plan for Cursor CLI.\n * Uses concise format optimized for Cursor's context window.\n */\n formatPlan(plan: ImplementationPlan): AgentPrompt {\n const lines: string[] = [];\n\n // Compact header\n lines.push(`# ${plan.target.key}.v${plan.target.version}`);\n lines.push('');\n lines.push(`> ${plan.context.goal}`);\n lines.push('');\n\n // Files to work on\n if (plan.fileStructure.length > 0) {\n lines.push('## Files');\n lines.push('');\n for (const file of plan.fileStructure) {\n lines.push(`- ${file.type}: \\`${file.path}\\` - ${file.purpose}`);\n }\n lines.push('');\n }\n\n // Compact spec (key sections only)\n lines.push('## Spec');\n lines.push('');\n lines.push(plan.specMarkdown);\n lines.push('');\n\n // Steps as simple list\n lines.push('## Steps');\n lines.push('');\n for (const step of plan.steps) {\n lines.push(`${step.order}. **${step.title}**: ${step.description}`);\n }\n lines.push('');\n\n // Key constraints (compact)\n const constraints = [\n ...plan.constraints.policy,\n ...plan.constraints.security.map((s) => `⚠️ ${s}`),\n ];\n if (constraints.length > 0) {\n lines.push('## Constraints');\n lines.push('');\n for (const c of constraints) {\n lines.push(`- ${c}`);\n }\n lines.push('');\n }\n\n // PII warning\n if (plan.constraints.pii.length > 0) {\n lines.push('## PII Fields');\n lines.push('');\n lines.push(\n `Handle carefully: ${plan.constraints.pii.map((p) => `\\`${p}\\``).join(', ')}`\n );\n lines.push('');\n }\n\n return {\n agent: 'cursor-cli',\n systemPrompt: AGENT_SYSTEM_PROMPTS['cursor-cli'],\n taskPrompt: lines.join('\\n'),\n };\n }\n\n /**\n * Generate Cursor rules (.mdc format) for a spec.\n * Can be saved to .cursor/rules/ to provide persistent context.\n */\n generateConfig(spec: AnyOperationSpec): string {\n const m = spec.meta;\n const lines: string[] = [];\n\n // MDC frontmatter\n lines.push('---');\n lines.push(`description: Implementation rules for ${m.key}.v${m.version}`);\n lines.push(`globs: [\"**/${m.key.replace(/\\./g, '/')}/**\"]`);\n lines.push('alwaysApply: false');\n lines.push('---');\n lines.push('');\n\n // Rule content\n lines.push(`# ${m.key} Implementation Rules`);\n lines.push('');\n lines.push(\n `This ${m.kind} operation must follow the ContractSpec specification.`\n );\n lines.push('');\n\n lines.push('## Goal');\n lines.push('');\n lines.push(m.goal);\n lines.push('');\n\n lines.push('## Requirements');\n lines.push('');\n lines.push('1. Input/output types MUST match the spec schema exactly');\n lines.push('2. All error cases MUST be handled');\n\n if (spec.sideEffects?.emits?.length) {\n lines.push('3. Events MUST be emitted as specified');\n }\n\n lines.push(`4. Auth level: ${spec.policy.auth}`);\n\n if (spec.policy.idempotent !== undefined) {\n lines.push(`5. Idempotency: ${spec.policy.idempotent}`);\n }\n lines.push('');\n\n // Error handling\n if (spec.io.errors && Object.keys(spec.io.errors).length > 0) {\n lines.push('## Error Cases');\n lines.push('');\n for (const [code, err] of Object.entries(spec.io.errors)) {\n lines.push(`- \\`${code}\\` (HTTP ${err.http ?? 400}): ${err.when}`);\n }\n lines.push('');\n }\n\n // Events\n if (spec.sideEffects?.emits?.length) {\n lines.push('## Events to Emit');\n lines.push('');\n for (const e of spec.sideEffects.emits) {\n if ('ref' in e) {\n lines.push(`- \\`${e.ref.key}.v${e.ref.version}\\`: ${e.when}`);\n } else {\n lines.push(`- \\`${e.key}.v${e.version}\\`: ${e.when}`);\n }\n }\n lines.push('');\n }\n\n // PII\n if (spec.policy.pii?.length) {\n lines.push('## PII Handling');\n lines.push('');\n lines.push('These fields contain PII and must be handled with care:');\n for (const field of spec.policy.pii) {\n lines.push(`- \\`${field}\\``);\n }\n lines.push('');\n }\n\n // Acceptance scenarios\n if (spec.acceptance?.scenarios?.length) {\n lines.push('## Acceptance Scenarios');\n lines.push('');\n for (const s of spec.acceptance.scenarios) {\n lines.push(`### ${s.key}`);\n lines.push(`- Given: ${s.given.join('; ')}`);\n lines.push(`- When: ${s.when.join('; ')}`);\n lines.push(`- Then: ${s.then.join('; ')}`);\n lines.push('');\n }\n }\n\n return lines.join('\\n');\n }\n\n /**\n * Generate a cursor rules file path for a spec.\n */\n getCursorRulesPath(spec: AnyOperationSpec): string {\n const safeName = spec.meta.key.replace(/\\./g, '-');\n return `.cursor/rules/${safeName}.mdc`;\n }\n\n /**\n * Parse Cursor output to extract generated code.\n */\n parseOutput(output: string): { code?: string; errors?: string[] } {\n // Cursor typically returns code in markdown blocks\n const codeBlockMatch = output.match(\n /```(?:typescript|ts|tsx|javascript|js)?\\n([\\s\\S]*?)\\n```/\n );\n\n if (codeBlockMatch?.[1]) {\n return { code: codeBlockMatch[1] };\n }\n\n // Return raw output if no code block\n return { code: output };\n }\n}\n\n/** Singleton instance */\nexport const cursorCLIAdapter = new CursorCLIAdapter();\n"],"mappings":"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"}