gherkin-ai 2.6.4 → 3.0.0

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 (705) hide show
  1. package/CHANGELOG.md +231 -0
  2. package/README.md +108 -60
  3. package/SECURITY.md +55 -0
  4. package/SUPPORT.md +54 -0
  5. package/bin/gherkin-ai.js +5 -2
  6. package/dist/commands/add.d.ts.map +1 -1
  7. package/dist/commands/add.js +7 -5
  8. package/dist/commands/add.js.map +1 -1
  9. package/dist/commands/agent-log.d.ts.map +1 -1
  10. package/dist/commands/agent-log.js +5 -1
  11. package/dist/commands/agent-log.js.map +1 -1
  12. package/dist/commands/audit-export.d.ts +14 -0
  13. package/dist/commands/audit-export.d.ts.map +1 -0
  14. package/dist/commands/audit-export.js +59 -0
  15. package/dist/commands/audit-export.js.map +1 -0
  16. package/dist/commands/audit.d.ts +1 -0
  17. package/dist/commands/audit.d.ts.map +1 -1
  18. package/dist/commands/audit.js +51 -2
  19. package/dist/commands/audit.js.map +1 -1
  20. package/dist/commands/autopilot.d.ts +2 -0
  21. package/dist/commands/autopilot.d.ts.map +1 -1
  22. package/dist/commands/autopilot.js +19 -16
  23. package/dist/commands/autopilot.js.map +1 -1
  24. package/dist/commands/bench.d.ts +10 -0
  25. package/dist/commands/bench.d.ts.map +1 -0
  26. package/dist/commands/bench.js +58 -0
  27. package/dist/commands/bench.js.map +1 -0
  28. package/dist/commands/config.d.ts +7 -0
  29. package/dist/commands/config.d.ts.map +1 -0
  30. package/dist/commands/config.js +69 -0
  31. package/dist/commands/config.js.map +1 -0
  32. package/dist/commands/converge.d.ts.map +1 -1
  33. package/dist/commands/converge.js +6 -3
  34. package/dist/commands/converge.js.map +1 -1
  35. package/dist/commands/diff.d.ts.map +1 -1
  36. package/dist/commands/diff.js +5 -4
  37. package/dist/commands/diff.js.map +1 -1
  38. package/dist/commands/doc.d.ts.map +1 -1
  39. package/dist/commands/doc.js +2 -2
  40. package/dist/commands/doc.js.map +1 -1
  41. package/dist/commands/evaluate.d.ts.map +1 -1
  42. package/dist/commands/evaluate.js +2 -1
  43. package/dist/commands/evaluate.js.map +1 -1
  44. package/dist/commands/firewall.d.ts +21 -0
  45. package/dist/commands/firewall.d.ts.map +1 -0
  46. package/dist/commands/firewall.js +139 -0
  47. package/dist/commands/firewall.js.map +1 -0
  48. package/dist/commands/generate.d.ts.map +1 -1
  49. package/dist/commands/generate.js +56 -16
  50. package/dist/commands/generate.js.map +1 -1
  51. package/dist/commands/graph.d.ts +10 -0
  52. package/dist/commands/graph.d.ts.map +1 -0
  53. package/dist/commands/graph.js +98 -0
  54. package/dist/commands/graph.js.map +1 -0
  55. package/dist/commands/impact.d.ts.map +1 -1
  56. package/dist/commands/impact.js +7 -5
  57. package/dist/commands/impact.js.map +1 -1
  58. package/dist/commands/implement.d.ts.map +1 -1
  59. package/dist/commands/implement.js +7 -1
  60. package/dist/commands/implement.js.map +1 -1
  61. package/dist/commands/init.d.ts +2 -0
  62. package/dist/commands/init.d.ts.map +1 -1
  63. package/dist/commands/init.js +90 -10
  64. package/dist/commands/init.js.map +1 -1
  65. package/dist/commands/lint.d.ts.map +1 -1
  66. package/dist/commands/lint.js +4 -2
  67. package/dist/commands/lint.js.map +1 -1
  68. package/dist/commands/login.d.ts +16 -18
  69. package/dist/commands/login.d.ts.map +1 -1
  70. package/dist/commands/login.js +133 -74
  71. package/dist/commands/login.js.map +1 -1
  72. package/dist/commands/mcp.d.ts +3 -1
  73. package/dist/commands/mcp.d.ts.map +1 -1
  74. package/dist/commands/mcp.js +4 -4
  75. package/dist/commands/mcp.js.map +1 -1
  76. package/dist/commands/pr-review.d.ts.map +1 -1
  77. package/dist/commands/pr-review.js +9 -10
  78. package/dist/commands/pr-review.js.map +1 -1
  79. package/dist/commands/quality.d.ts.map +1 -1
  80. package/dist/commands/quality.js +19 -4
  81. package/dist/commands/quality.js.map +1 -1
  82. package/dist/commands/risk.d.ts +8 -0
  83. package/dist/commands/risk.d.ts.map +1 -0
  84. package/dist/commands/risk.js +64 -0
  85. package/dist/commands/risk.js.map +1 -0
  86. package/dist/commands/sbom.d.ts.map +1 -1
  87. package/dist/commands/sbom.js +2 -1
  88. package/dist/commands/sbom.js.map +1 -1
  89. package/dist/commands/speckit.d.ts +8 -0
  90. package/dist/commands/speckit.d.ts.map +1 -0
  91. package/dist/commands/speckit.js +89 -0
  92. package/dist/commands/speckit.js.map +1 -0
  93. package/dist/commands/upgrade.d.ts +62 -0
  94. package/dist/commands/upgrade.d.ts.map +1 -0
  95. package/dist/commands/upgrade.js +393 -0
  96. package/dist/commands/upgrade.js.map +1 -0
  97. package/dist/commands/validate.d.ts.map +1 -1
  98. package/dist/commands/validate.js +2 -1
  99. package/dist/commands/validate.js.map +1 -1
  100. package/dist/commands/verify.d.ts +5 -0
  101. package/dist/commands/verify.d.ts.map +1 -1
  102. package/dist/commands/verify.js +255 -147
  103. package/dist/commands/verify.js.map +1 -1
  104. package/dist/commands/web.d.ts.map +1 -1
  105. package/dist/commands/web.js +3 -4
  106. package/dist/commands/web.js.map +1 -1
  107. package/dist/core/agent-adapter.d.ts +19 -10
  108. package/dist/core/agent-adapter.d.ts.map +1 -1
  109. package/dist/core/agent-adapter.js +109 -208
  110. package/dist/core/agent-adapter.js.map +1 -1
  111. package/dist/core/bench/harness.d.ts +78 -0
  112. package/dist/core/bench/harness.d.ts.map +1 -0
  113. package/dist/core/bench/harness.js +252 -0
  114. package/dist/core/bench/harness.js.map +1 -0
  115. package/dist/core/config/index.d.ts +23 -0
  116. package/dist/core/config/index.d.ts.map +1 -0
  117. package/dist/core/config/index.js +98 -0
  118. package/dist/core/config/index.js.map +1 -0
  119. package/dist/core/config/json-schema.d.ts +3 -0
  120. package/dist/core/config/json-schema.d.ts.map +1 -0
  121. package/dist/core/config/json-schema.js +19 -0
  122. package/dist/core/config/json-schema.js.map +1 -0
  123. package/dist/core/config/loader.d.ts +30 -0
  124. package/dist/core/config/loader.d.ts.map +1 -0
  125. package/dist/core/config/loader.js +228 -0
  126. package/dist/core/config/loader.js.map +1 -0
  127. package/dist/core/config/schema.d.ts +1949 -0
  128. package/dist/core/config/schema.d.ts.map +1 -0
  129. package/dist/core/config/schema.js +223 -0
  130. package/dist/core/config/schema.js.map +1 -0
  131. package/dist/core/context-security.d.ts +5 -24
  132. package/dist/core/context-security.d.ts.map +1 -1
  133. package/dist/core/context-security.js +7 -148
  134. package/dist/core/context-security.js.map +1 -1
  135. package/dist/core/convergence-engine.d.ts +8 -2
  136. package/dist/core/convergence-engine.d.ts.map +1 -1
  137. package/dist/core/convergence-engine.js +190 -61
  138. package/dist/core/convergence-engine.js.map +1 -1
  139. package/dist/core/coverage-integration.d.ts +11 -0
  140. package/dist/core/coverage-integration.d.ts.map +1 -0
  141. package/dist/core/coverage-integration.js +134 -0
  142. package/dist/core/coverage-integration.js.map +1 -0
  143. package/dist/core/error-parser.d.ts.map +1 -1
  144. package/dist/core/error-parser.js +32 -5
  145. package/dist/core/error-parser.js.map +1 -1
  146. package/dist/core/errors.d.ts +59 -0
  147. package/dist/core/errors.d.ts.map +1 -0
  148. package/dist/core/errors.js +84 -0
  149. package/dist/core/errors.js.map +1 -0
  150. package/dist/core/execution-sandbox.d.ts +18 -1
  151. package/dist/core/execution-sandbox.d.ts.map +1 -1
  152. package/dist/core/execution-sandbox.js +57 -22
  153. package/dist/core/execution-sandbox.js.map +1 -1
  154. package/dist/core/gherkin-parser.d.ts +4 -29
  155. package/dist/core/gherkin-parser.d.ts.map +1 -1
  156. package/dist/core/gherkin-parser.js +37 -3
  157. package/dist/core/gherkin-parser.js.map +1 -1
  158. package/dist/core/governance/agent-firewall.d.ts +60 -0
  159. package/dist/core/governance/agent-firewall.d.ts.map +1 -0
  160. package/dist/core/governance/agent-firewall.js +198 -0
  161. package/dist/core/governance/agent-firewall.js.map +1 -0
  162. package/dist/core/governance/write-guard.d.ts +23 -0
  163. package/dist/core/governance/write-guard.d.ts.map +1 -0
  164. package/dist/core/governance/write-guard.js +80 -0
  165. package/dist/core/governance/write-guard.js.map +1 -0
  166. package/dist/core/graph/repository-graph.d.ts +55 -0
  167. package/dist/core/graph/repository-graph.d.ts.map +1 -0
  168. package/dist/core/graph/repository-graph.js +296 -0
  169. package/dist/core/graph/repository-graph.js.map +1 -0
  170. package/dist/core/interop/speckit.d.ts +41 -0
  171. package/dist/core/interop/speckit.d.ts.map +1 -0
  172. package/dist/core/interop/speckit.js +182 -0
  173. package/dist/core/interop/speckit.js.map +1 -0
  174. package/dist/core/ir-builder.d.ts +3 -1
  175. package/dist/core/ir-builder.d.ts.map +1 -1
  176. package/dist/core/ir-builder.js +14 -4
  177. package/dist/core/ir-builder.js.map +1 -1
  178. package/dist/core/llm/credentials.d.ts +30 -0
  179. package/dist/core/llm/credentials.d.ts.map +1 -0
  180. package/dist/core/llm/credentials.js +118 -0
  181. package/dist/core/llm/credentials.js.map +1 -0
  182. package/dist/core/llm/defaults.d.ts +9 -0
  183. package/dist/core/llm/defaults.d.ts.map +1 -0
  184. package/dist/core/llm/defaults.js +25 -0
  185. package/dist/core/llm/defaults.js.map +1 -0
  186. package/dist/core/llm/index.d.ts +30 -0
  187. package/dist/core/llm/index.d.ts.map +1 -0
  188. package/dist/core/llm/index.js +154 -0
  189. package/dist/core/llm/index.js.map +1 -0
  190. package/dist/core/llm/providers/anthropic.d.ts +20 -0
  191. package/dist/core/llm/providers/anthropic.d.ts.map +1 -0
  192. package/dist/core/llm/providers/anthropic.js +118 -0
  193. package/dist/core/llm/providers/anthropic.js.map +1 -0
  194. package/dist/core/llm/providers/gemini.d.ts +11 -0
  195. package/dist/core/llm/providers/gemini.d.ts.map +1 -0
  196. package/dist/core/llm/providers/gemini.js +71 -0
  197. package/dist/core/llm/providers/gemini.js.map +1 -0
  198. package/dist/core/llm/providers/ollama.d.ts +10 -0
  199. package/dist/core/llm/providers/ollama.d.ts.map +1 -0
  200. package/dist/core/llm/providers/ollama.js +30 -0
  201. package/dist/core/llm/providers/ollama.js.map +1 -0
  202. package/dist/core/llm/providers/openai.d.ts +12 -0
  203. package/dist/core/llm/providers/openai.d.ts.map +1 -0
  204. package/dist/core/llm/providers/openai.js +132 -0
  205. package/dist/core/llm/providers/openai.js.map +1 -0
  206. package/dist/core/llm/resolve.d.ts +10 -0
  207. package/dist/core/llm/resolve.d.ts.map +1 -0
  208. package/dist/core/llm/resolve.js +92 -0
  209. package/dist/core/llm/resolve.js.map +1 -0
  210. package/dist/core/llm/retry.d.ts +9 -0
  211. package/dist/core/llm/retry.d.ts.map +1 -0
  212. package/dist/core/llm/retry.js +67 -0
  213. package/dist/core/llm/retry.js.map +1 -0
  214. package/dist/core/llm/types.d.ts +55 -0
  215. package/dist/core/llm/types.d.ts.map +1 -0
  216. package/dist/core/llm/types.js +6 -0
  217. package/dist/core/llm/types.js.map +1 -0
  218. package/dist/core/net.d.ts +15 -0
  219. package/dist/core/net.d.ts.map +1 -0
  220. package/dist/core/net.js +73 -0
  221. package/dist/core/net.js.map +1 -0
  222. package/dist/core/parsers/markdown-ears-parser.d.ts +5 -0
  223. package/dist/core/parsers/markdown-ears-parser.d.ts.map +1 -0
  224. package/dist/core/parsers/markdown-ears-parser.js +106 -0
  225. package/dist/core/parsers/markdown-ears-parser.js.map +1 -0
  226. package/dist/core/parsers/specification-interface.d.ts +42 -0
  227. package/dist/core/parsers/specification-interface.d.ts.map +1 -0
  228. package/dist/core/parsers/specification-interface.js +6 -0
  229. package/dist/core/parsers/specification-interface.js.map +1 -0
  230. package/dist/core/plugin-system.d.ts +7 -0
  231. package/dist/core/plugin-system.d.ts.map +1 -1
  232. package/dist/core/plugin-system.js +47 -0
  233. package/dist/core/plugin-system.js.map +1 -1
  234. package/dist/core/pr-reviewer.d.ts.map +1 -1
  235. package/dist/core/pr-reviewer.js +6 -3
  236. package/dist/core/pr-reviewer.js.map +1 -1
  237. package/dist/core/risk-engine.d.ts +31 -0
  238. package/dist/core/risk-engine.d.ts.map +1 -1
  239. package/dist/core/risk-engine.js +225 -87
  240. package/dist/core/risk-engine.js.map +1 -1
  241. package/dist/core/run-context.d.ts +20 -0
  242. package/dist/core/run-context.d.ts.map +1 -0
  243. package/dist/core/run-context.js +43 -0
  244. package/dist/core/run-context.js.map +1 -0
  245. package/dist/core/security/index.d.ts +45 -0
  246. package/dist/core/security/index.d.ts.map +1 -0
  247. package/dist/core/security/index.js +192 -0
  248. package/dist/core/security/index.js.map +1 -0
  249. package/dist/core/security-sanitizer.d.ts +2 -7
  250. package/dist/core/security-sanitizer.d.ts.map +1 -1
  251. package/dist/core/security-sanitizer.js +6 -70
  252. package/dist/core/security-sanitizer.js.map +1 -1
  253. package/dist/core/stack-setup.d.ts.map +1 -1
  254. package/dist/core/stack-setup.js +6 -1
  255. package/dist/core/stack-setup.js.map +1 -1
  256. package/dist/core/telemetry.d.ts +38 -14
  257. package/dist/core/telemetry.d.ts.map +1 -1
  258. package/dist/core/telemetry.js +116 -77
  259. package/dist/core/telemetry.js.map +1 -1
  260. package/dist/core/upgrade/index.d.ts +65 -0
  261. package/dist/core/upgrade/index.d.ts.map +1 -0
  262. package/dist/core/upgrade/index.js +376 -0
  263. package/dist/core/upgrade/index.js.map +1 -0
  264. package/dist/core/validators/distributed-topology-validator.d.ts.map +1 -1
  265. package/dist/core/validators/distributed-topology-validator.js +10 -0
  266. package/dist/core/validators/distributed-topology-validator.js.map +1 -1
  267. package/dist/generators/contracts-csharp.d.ts.map +1 -1
  268. package/dist/generators/contracts-csharp.js +4 -8
  269. package/dist/generators/contracts-csharp.js.map +1 -1
  270. package/dist/generators/contracts-go.d.ts.map +1 -1
  271. package/dist/generators/contracts-go.js +6 -4
  272. package/dist/generators/contracts-go.js.map +1 -1
  273. package/dist/generators/contracts-kotlin.d.ts +5 -0
  274. package/dist/generators/contracts-kotlin.d.ts.map +1 -0
  275. package/dist/generators/contracts-kotlin.js +70 -0
  276. package/dist/generators/contracts-kotlin.js.map +1 -0
  277. package/dist/generators/contracts-php.d.ts.map +1 -1
  278. package/dist/generators/contracts-php.js +7 -4
  279. package/dist/generators/contracts-php.js.map +1 -1
  280. package/dist/generators/contracts-python.d.ts.map +1 -1
  281. package/dist/generators/contracts-python.js +4 -2
  282. package/dist/generators/contracts-python.js.map +1 -1
  283. package/dist/generators/contracts.d.ts.map +1 -1
  284. package/dist/generators/contracts.js +142 -34
  285. package/dist/generators/contracts.js.map +1 -1
  286. package/dist/generators/dotnet/cqrs-handlers-generator.d.ts.map +1 -1
  287. package/dist/generators/dotnet/cqrs-handlers-generator.js +4 -2
  288. package/dist/generators/dotnet/cqrs-handlers-generator.js.map +1 -1
  289. package/dist/generators/dotnet/dotnet-testcontainers-generator.d.ts.map +1 -1
  290. package/dist/generators/dotnet/dotnet-testcontainers-generator.js +2 -0
  291. package/dist/generators/dotnet/dotnet-testcontainers-generator.js.map +1 -1
  292. package/dist/generators/dotnet/idempotency-generator.d.ts.map +1 -1
  293. package/dist/generators/dotnet/idempotency-generator.js +168 -27
  294. package/dist/generators/dotnet/idempotency-generator.js.map +1 -1
  295. package/dist/generators/dotnet/opentelemetry-generator.d.ts.map +1 -1
  296. package/dist/generators/dotnet/opentelemetry-generator.js +1 -0
  297. package/dist/generators/dotnet/opentelemetry-generator.js.map +1 -1
  298. package/dist/generators/dotnet/saga-generator.d.ts +1 -1
  299. package/dist/generators/dotnet/saga-generator.d.ts.map +1 -1
  300. package/dist/generators/dotnet/saga-generator.js +30 -27
  301. package/dist/generators/dotnet/saga-generator.js.map +1 -1
  302. package/dist/generators/fixtures.d.ts.map +1 -1
  303. package/dist/generators/fixtures.js +2 -1
  304. package/dist/generators/fixtures.js.map +1 -1
  305. package/dist/generators/frontend/kernel/angular.d.ts +4 -0
  306. package/dist/generators/frontend/kernel/angular.d.ts.map +1 -0
  307. package/dist/generators/frontend/kernel/angular.js +281 -0
  308. package/dist/generators/frontend/kernel/angular.js.map +1 -0
  309. package/dist/generators/frontend/kernel/client.d.ts +9 -0
  310. package/dist/generators/frontend/kernel/client.d.ts.map +1 -0
  311. package/dist/generators/frontend/kernel/client.js +153 -0
  312. package/dist/generators/frontend/kernel/client.js.map +1 -0
  313. package/dist/generators/frontend/kernel/flutter.d.ts +8 -0
  314. package/dist/generators/frontend/kernel/flutter.d.ts.map +1 -0
  315. package/dist/generators/frontend/kernel/flutter.js +446 -0
  316. package/dist/generators/frontend/kernel/flutter.js.map +1 -0
  317. package/dist/generators/frontend/kernel/nextjs.d.ts +4 -0
  318. package/dist/generators/frontend/kernel/nextjs.d.ts.map +1 -0
  319. package/dist/generators/frontend/kernel/nextjs.js +173 -0
  320. package/dist/generators/frontend/kernel/nextjs.js.map +1 -0
  321. package/dist/generators/frontend/kernel/react-native.d.ts +4 -0
  322. package/dist/generators/frontend/kernel/react-native.d.ts.map +1 -0
  323. package/dist/generators/frontend/kernel/react-native.js +119 -0
  324. package/dist/generators/frontend/kernel/react-native.js.map +1 -0
  325. package/dist/generators/frontend/kernel/react.d.ts +4 -0
  326. package/dist/generators/frontend/kernel/react.d.ts.map +1 -0
  327. package/dist/generators/frontend/kernel/react.js +245 -0
  328. package/dist/generators/frontend/kernel/react.js.map +1 -0
  329. package/dist/generators/frontend/kernel/vue.d.ts +4 -0
  330. package/dist/generators/frontend/kernel/vue.d.ts.map +1 -0
  331. package/dist/generators/frontend/kernel/vue.js +195 -0
  332. package/dist/generators/frontend/kernel/vue.js.map +1 -0
  333. package/dist/generators/go/go-idempotency-generator.d.ts +5 -0
  334. package/dist/generators/go/go-idempotency-generator.d.ts.map +1 -0
  335. package/dist/generators/go/go-idempotency-generator.js +264 -0
  336. package/dist/generators/go/go-idempotency-generator.js.map +1 -0
  337. package/dist/generators/go/go-multitenancy-generator.d.ts +5 -0
  338. package/dist/generators/go/go-multitenancy-generator.d.ts.map +1 -0
  339. package/dist/generators/go/go-multitenancy-generator.js +93 -0
  340. package/dist/generators/go/go-multitenancy-generator.js.map +1 -0
  341. package/dist/generators/go/go-outbox-generator.d.ts +5 -0
  342. package/dist/generators/go/go-outbox-generator.d.ts.map +1 -0
  343. package/dist/generators/go/go-outbox-generator.js +215 -0
  344. package/dist/generators/go/go-outbox-generator.js.map +1 -0
  345. package/dist/generators/go/go-saga-generator.d.ts +5 -0
  346. package/dist/generators/go/go-saga-generator.d.ts.map +1 -0
  347. package/dist/generators/go/go-saga-generator.js +235 -0
  348. package/dist/generators/go/go-saga-generator.js.map +1 -0
  349. package/dist/generators/infra.d.ts +1 -0
  350. package/dist/generators/infra.d.ts.map +1 -1
  351. package/dist/generators/infra.js +6 -52
  352. package/dist/generators/infra.js.map +1 -1
  353. package/dist/generators/infrastructure/aws-cdk-generator.d.ts +12 -0
  354. package/dist/generators/infrastructure/aws-cdk-generator.d.ts.map +1 -1
  355. package/dist/generators/infrastructure/aws-cdk-generator.js +188 -42
  356. package/dist/generators/infrastructure/aws-cdk-generator.js.map +1 -1
  357. package/dist/generators/java/java-cqrs-generator.d.ts +4 -1
  358. package/dist/generators/java/java-cqrs-generator.d.ts.map +1 -1
  359. package/dist/generators/java/java-cqrs-generator.js +95 -41
  360. package/dist/generators/java/java-cqrs-generator.js.map +1 -1
  361. package/dist/generators/java/java-idempotency-generator.d.ts.map +1 -1
  362. package/dist/generators/java/java-idempotency-generator.js +113 -22
  363. package/dist/generators/java/java-idempotency-generator.js.map +1 -1
  364. package/dist/generators/java/java-multitenancy-generator.d.ts +5 -0
  365. package/dist/generators/java/java-multitenancy-generator.d.ts.map +1 -0
  366. package/dist/generators/java/java-multitenancy-generator.js +86 -0
  367. package/dist/generators/java/java-multitenancy-generator.js.map +1 -0
  368. package/dist/generators/java/java-outbox-generator.d.ts.map +1 -1
  369. package/dist/generators/java/java-outbox-generator.js +3 -0
  370. package/dist/generators/java/java-outbox-generator.js.map +1 -1
  371. package/dist/generators/java/java-saga-generator.d.ts +1 -1
  372. package/dist/generators/java/java-saga-generator.d.ts.map +1 -1
  373. package/dist/generators/java/java-saga-generator.js +114 -54
  374. package/dist/generators/java/java-saga-generator.js.map +1 -1
  375. package/dist/generators/kernel/api-contracts.d.ts +10 -0
  376. package/dist/generators/kernel/api-contracts.d.ts.map +1 -0
  377. package/dist/generators/kernel/api-contracts.js +118 -0
  378. package/dist/generators/kernel/api-contracts.js.map +1 -0
  379. package/dist/generators/kernel/csharp.d.ts +7 -0
  380. package/dist/generators/kernel/csharp.d.ts.map +1 -0
  381. package/dist/generators/kernel/csharp.js +187 -0
  382. package/dist/generators/kernel/csharp.js.map +1 -0
  383. package/dist/generators/kernel/domain-model.d.ts +43 -0
  384. package/dist/generators/kernel/domain-model.d.ts.map +1 -0
  385. package/dist/generators/kernel/domain-model.js +116 -0
  386. package/dist/generators/kernel/domain-model.js.map +1 -0
  387. package/dist/generators/kernel/elixir.d.ts +15 -0
  388. package/dist/generators/kernel/elixir.d.ts.map +1 -0
  389. package/dist/generators/kernel/elixir.js +471 -0
  390. package/dist/generators/kernel/elixir.js.map +1 -0
  391. package/dist/generators/kernel/go.d.ts +8 -0
  392. package/dist/generators/kernel/go.d.ts.map +1 -0
  393. package/dist/generators/kernel/go.js +372 -0
  394. package/dist/generators/kernel/go.js.map +1 -0
  395. package/dist/generators/kernel/java.d.ts +11 -0
  396. package/dist/generators/kernel/java.d.ts.map +1 -0
  397. package/dist/generators/kernel/java.js +386 -0
  398. package/dist/generators/kernel/java.js.map +1 -0
  399. package/dist/generators/kernel/kotlin.d.ts +8 -0
  400. package/dist/generators/kernel/kotlin.d.ts.map +1 -0
  401. package/dist/generators/kernel/kotlin.js +286 -0
  402. package/dist/generators/kernel/kotlin.js.map +1 -0
  403. package/dist/generators/kernel/php.d.ts +10 -0
  404. package/dist/generators/kernel/php.d.ts.map +1 -0
  405. package/dist/generators/kernel/php.js +418 -0
  406. package/dist/generators/kernel/php.js.map +1 -0
  407. package/dist/generators/kernel/python.d.ts +16 -0
  408. package/dist/generators/kernel/python.d.ts.map +1 -0
  409. package/dist/generators/kernel/python.js +218 -0
  410. package/dist/generators/kernel/python.js.map +1 -0
  411. package/dist/generators/kernel/ruby.d.ts +8 -0
  412. package/dist/generators/kernel/ruby.d.ts.map +1 -0
  413. package/dist/generators/kernel/ruby.js +253 -0
  414. package/dist/generators/kernel/ruby.js.map +1 -0
  415. package/dist/generators/kernel/runtime/csharp.d.ts +10 -0
  416. package/dist/generators/kernel/runtime/csharp.d.ts.map +1 -0
  417. package/dist/generators/kernel/runtime/csharp.js +682 -0
  418. package/dist/generators/kernel/runtime/csharp.js.map +1 -0
  419. package/dist/generators/kernel/runtime/elixir.d.ts +10 -0
  420. package/dist/generators/kernel/runtime/elixir.d.ts.map +1 -0
  421. package/dist/generators/kernel/runtime/elixir.js +650 -0
  422. package/dist/generators/kernel/runtime/elixir.js.map +1 -0
  423. package/dist/generators/kernel/runtime/go.d.ts +7 -0
  424. package/dist/generators/kernel/runtime/go.d.ts.map +1 -0
  425. package/dist/generators/kernel/runtime/go.js +969 -0
  426. package/dist/generators/kernel/runtime/go.js.map +1 -0
  427. package/dist/generators/kernel/runtime/jvm.d.ts +10 -0
  428. package/dist/generators/kernel/runtime/jvm.d.ts.map +1 -0
  429. package/dist/generators/kernel/runtime/jvm.js +809 -0
  430. package/dist/generators/kernel/runtime/jvm.js.map +1 -0
  431. package/dist/generators/kernel/runtime/php.d.ts +16 -0
  432. package/dist/generators/kernel/runtime/php.d.ts.map +1 -0
  433. package/dist/generators/kernel/runtime/php.js +785 -0
  434. package/dist/generators/kernel/runtime/php.js.map +1 -0
  435. package/dist/generators/kernel/runtime/python.d.ts +10 -0
  436. package/dist/generators/kernel/runtime/python.d.ts.map +1 -0
  437. package/dist/generators/kernel/runtime/python.js +609 -0
  438. package/dist/generators/kernel/runtime/python.js.map +1 -0
  439. package/dist/generators/kernel/runtime/ruby.d.ts +8 -0
  440. package/dist/generators/kernel/runtime/ruby.d.ts.map +1 -0
  441. package/dist/generators/kernel/runtime/ruby.js +532 -0
  442. package/dist/generators/kernel/runtime/ruby.js.map +1 -0
  443. package/dist/generators/kernel/runtime/rust.d.ts +12 -0
  444. package/dist/generators/kernel/runtime/rust.d.ts.map +1 -0
  445. package/dist/generators/kernel/runtime/rust.js +985 -0
  446. package/dist/generators/kernel/runtime/rust.js.map +1 -0
  447. package/dist/generators/kernel/runtime/shared.d.ts +20 -0
  448. package/dist/generators/kernel/runtime/shared.d.ts.map +1 -0
  449. package/dist/generators/kernel/runtime/shared.js +41 -0
  450. package/dist/generators/kernel/runtime/shared.js.map +1 -0
  451. package/dist/generators/kernel/runtime/typescript.d.ts +21 -0
  452. package/dist/generators/kernel/runtime/typescript.d.ts.map +1 -0
  453. package/dist/generators/kernel/runtime/typescript.js +596 -0
  454. package/dist/generators/kernel/runtime/typescript.js.map +1 -0
  455. package/dist/generators/kernel/rust.d.ts +7 -0
  456. package/dist/generators/kernel/rust.d.ts.map +1 -0
  457. package/dist/generators/kernel/rust.js +368 -0
  458. package/dist/generators/kernel/rust.js.map +1 -0
  459. package/dist/generators/kernel/typescript.d.ts +21 -0
  460. package/dist/generators/kernel/typescript.d.ts.map +1 -0
  461. package/dist/generators/kernel/typescript.js +217 -0
  462. package/dist/generators/kernel/typescript.js.map +1 -0
  463. package/dist/generators/nestjs/idempotency-generator.d.ts.map +1 -1
  464. package/dist/generators/nestjs/idempotency-generator.js +119 -22
  465. package/dist/generators/nestjs/idempotency-generator.js.map +1 -1
  466. package/dist/generators/nestjs/multitenancy-generator.d.ts +6 -0
  467. package/dist/generators/nestjs/multitenancy-generator.d.ts.map +1 -0
  468. package/dist/generators/nestjs/multitenancy-generator.js +99 -0
  469. package/dist/generators/nestjs/multitenancy-generator.js.map +1 -0
  470. package/dist/generators/nestjs/opentelemetry-generator.d.ts.map +1 -1
  471. package/dist/generators/nestjs/opentelemetry-generator.js +6 -0
  472. package/dist/generators/nestjs/opentelemetry-generator.js.map +1 -1
  473. package/dist/generators/nestjs/outbox-generator.d.ts.map +1 -1
  474. package/dist/generators/nestjs/outbox-generator.js +96 -20
  475. package/dist/generators/nestjs/outbox-generator.js.map +1 -1
  476. package/dist/generators/nestjs/saga-generator.d.ts +5 -0
  477. package/dist/generators/nestjs/saga-generator.d.ts.map +1 -0
  478. package/dist/generators/nestjs/saga-generator.js +167 -0
  479. package/dist/generators/nestjs/saga-generator.js.map +1 -0
  480. package/dist/generators/node-profile.d.ts +46 -0
  481. package/dist/generators/node-profile.d.ts.map +1 -0
  482. package/dist/generators/node-profile.js +152 -0
  483. package/dist/generators/node-profile.js.map +1 -0
  484. package/dist/generators/preset-csharp-dotnet.d.ts.map +1 -1
  485. package/dist/generators/preset-csharp-dotnet.js +66 -43
  486. package/dist/generators/preset-csharp-dotnet.js.map +1 -1
  487. package/dist/generators/preset-elixir-phoenix.d.ts +7 -0
  488. package/dist/generators/preset-elixir-phoenix.d.ts.map +1 -0
  489. package/dist/generators/preset-elixir-phoenix.js +22 -0
  490. package/dist/generators/preset-elixir-phoenix.js.map +1 -0
  491. package/dist/generators/preset-flutter.d.ts +3 -1
  492. package/dist/generators/preset-flutter.d.ts.map +1 -1
  493. package/dist/generators/preset-flutter.js +17 -25
  494. package/dist/generators/preset-flutter.js.map +1 -1
  495. package/dist/generators/preset-go.d.ts +3 -1
  496. package/dist/generators/preset-go.d.ts.map +1 -1
  497. package/dist/generators/preset-go.js +28 -46
  498. package/dist/generators/preset-go.js.map +1 -1
  499. package/dist/generators/preset-java-spring.d.ts +4 -1
  500. package/dist/generators/preset-java-spring.d.ts.map +1 -1
  501. package/dist/generators/preset-java-spring.js +47 -58
  502. package/dist/generators/preset-java-spring.js.map +1 -1
  503. package/dist/generators/preset-kotlin-spring.d.ts +7 -0
  504. package/dist/generators/preset-kotlin-spring.d.ts.map +1 -0
  505. package/dist/generators/preset-kotlin-spring.js +31 -0
  506. package/dist/generators/preset-kotlin-spring.js.map +1 -0
  507. package/dist/generators/preset-node-express.d.ts +7 -0
  508. package/dist/generators/preset-node-express.d.ts.map +1 -0
  509. package/dist/generators/preset-node-express.js +103 -0
  510. package/dist/generators/preset-node-express.js.map +1 -0
  511. package/dist/generators/preset-node-nestjs.d.ts +2 -1
  512. package/dist/generators/preset-node-nestjs.d.ts.map +1 -1
  513. package/dist/generators/preset-node-nestjs.js +63 -61
  514. package/dist/generators/preset-node-nestjs.js.map +1 -1
  515. package/dist/generators/preset-php-laravel.d.ts +2 -1
  516. package/dist/generators/preset-php-laravel.d.ts.map +1 -1
  517. package/dist/generators/preset-php-laravel.js +16 -40
  518. package/dist/generators/preset-php-laravel.js.map +1 -1
  519. package/dist/generators/preset-python-django.d.ts +7 -0
  520. package/dist/generators/preset-python-django.d.ts.map +1 -0
  521. package/dist/generators/preset-python-django.js +232 -0
  522. package/dist/generators/preset-python-django.js.map +1 -0
  523. package/dist/generators/preset-python-fastapi.d.ts +2 -1
  524. package/dist/generators/preset-python-fastapi.d.ts.map +1 -1
  525. package/dist/generators/preset-python-fastapi.js +95 -26
  526. package/dist/generators/preset-python-fastapi.js.map +1 -1
  527. package/dist/generators/preset-ruby-rails.d.ts +2 -1
  528. package/dist/generators/preset-ruby-rails.d.ts.map +1 -1
  529. package/dist/generators/preset-ruby-rails.js +15 -19
  530. package/dist/generators/preset-ruby-rails.js.map +1 -1
  531. package/dist/generators/preset-rust-axum.d.ts +2 -1
  532. package/dist/generators/preset-rust-axum.d.ts.map +1 -1
  533. package/dist/generators/preset-rust-axum.js +12 -32
  534. package/dist/generators/preset-rust-axum.js.map +1 -1
  535. package/dist/generators/presets.d.ts +7 -1
  536. package/dist/generators/presets.d.ts.map +1 -1
  537. package/dist/generators/presets.js +81 -52
  538. package/dist/generators/presets.js.map +1 -1
  539. package/dist/generators/prisma-generator.d.ts.map +1 -1
  540. package/dist/generators/prisma-generator.js +63 -14
  541. package/dist/generators/prisma-generator.js.map +1 -1
  542. package/dist/generators/prisma-stack.d.ts.map +1 -1
  543. package/dist/generators/prisma-stack.js +64 -20
  544. package/dist/generators/prisma-stack.js.map +1 -1
  545. package/dist/generators/prompts.d.ts.map +1 -1
  546. package/dist/generators/prompts.js +2 -2
  547. package/dist/generators/prompts.js.map +1 -1
  548. package/dist/generators/python/python-common.d.ts +13 -0
  549. package/dist/generators/python/python-common.d.ts.map +1 -0
  550. package/dist/generators/python/python-common.js +114 -0
  551. package/dist/generators/python/python-common.js.map +1 -0
  552. package/dist/generators/python/python-idempotency-generator.d.ts +5 -0
  553. package/dist/generators/python/python-idempotency-generator.d.ts.map +1 -0
  554. package/dist/generators/python/python-idempotency-generator.js +167 -0
  555. package/dist/generators/python/python-idempotency-generator.js.map +1 -0
  556. package/dist/generators/python/python-multitenancy-generator.d.ts +5 -0
  557. package/dist/generators/python/python-multitenancy-generator.d.ts.map +1 -0
  558. package/dist/generators/python/python-multitenancy-generator.js +83 -0
  559. package/dist/generators/python/python-multitenancy-generator.js.map +1 -0
  560. package/dist/generators/python/python-outbox-generator.d.ts +5 -0
  561. package/dist/generators/python/python-outbox-generator.d.ts.map +1 -0
  562. package/dist/generators/python/python-outbox-generator.js +134 -0
  563. package/dist/generators/python/python-outbox-generator.js.map +1 -0
  564. package/dist/generators/python/python-saga-generator.d.ts +5 -0
  565. package/dist/generators/python/python-saga-generator.d.ts.map +1 -0
  566. package/dist/generators/python/python-saga-generator.js +111 -0
  567. package/dist/generators/python/python-saga-generator.js.map +1 -0
  568. package/dist/generators/stack-support.d.ts +17 -0
  569. package/dist/generators/stack-support.d.ts.map +1 -0
  570. package/dist/generators/stack-support.js +107 -0
  571. package/dist/generators/stack-support.js.map +1 -0
  572. package/dist/generators/toolchains.d.ts +18 -0
  573. package/dist/generators/toolchains.d.ts.map +1 -0
  574. package/dist/generators/toolchains.js +117 -0
  575. package/dist/generators/toolchains.js.map +1 -0
  576. package/dist/index.d.ts +1 -1
  577. package/dist/index.d.ts.map +1 -1
  578. package/dist/index.js +336 -93
  579. package/dist/index.js.map +1 -1
  580. package/dist/mcp/mcp-installer.d.ts.map +1 -1
  581. package/dist/mcp/mcp-installer.js +3 -1
  582. package/dist/mcp/mcp-installer.js.map +1 -1
  583. package/dist/mcp/mcp-operation-safety.d.ts +16 -0
  584. package/dist/mcp/mcp-operation-safety.d.ts.map +1 -0
  585. package/dist/mcp/mcp-operation-safety.js +96 -0
  586. package/dist/mcp/mcp-operation-safety.js.map +1 -0
  587. package/dist/mcp/mcp-server.d.ts +28 -1
  588. package/dist/mcp/mcp-server.d.ts.map +1 -1
  589. package/dist/mcp/mcp-server.js +138 -752
  590. package/dist/mcp/mcp-server.js.map +1 -1
  591. package/dist/mcp/stdout-guard.d.ts +19 -0
  592. package/dist/mcp/stdout-guard.d.ts.map +1 -0
  593. package/dist/mcp/stdout-guard.js +83 -0
  594. package/dist/mcp/stdout-guard.js.map +1 -0
  595. package/dist/mcp/tools/analysis.d.ts +3 -0
  596. package/dist/mcp/tools/analysis.d.ts.map +1 -0
  597. package/dist/mcp/tools/analysis.js +227 -0
  598. package/dist/mcp/tools/analysis.js.map +1 -0
  599. package/dist/mcp/tools/execution.d.ts +3 -0
  600. package/dist/mcp/tools/execution.d.ts.map +1 -0
  601. package/dist/mcp/tools/execution.js +52 -0
  602. package/dist/mcp/tools/execution.js.map +1 -0
  603. package/dist/mcp/tools/project.d.ts +3 -0
  604. package/dist/mcp/tools/project.d.ts.map +1 -0
  605. package/dist/mcp/tools/project.js +123 -0
  606. package/dist/mcp/tools/project.js.map +1 -0
  607. package/dist/mcp/tools/types.d.ts +20 -0
  608. package/dist/mcp/tools/types.d.ts.map +1 -0
  609. package/dist/mcp/tools/types.js +10 -0
  610. package/dist/mcp/tools/types.js.map +1 -0
  611. package/dist/plugins/core-generators-plugin.d.ts +11 -0
  612. package/dist/plugins/core-generators-plugin.d.ts.map +1 -1
  613. package/dist/plugins/core-generators-plugin.js +44 -31
  614. package/dist/plugins/core-generators-plugin.js.map +1 -1
  615. package/dist/ui/public/index.html +25 -2
  616. package/dist/ui/public/vendor/fontawesome/css/all.min.css +9 -0
  617. package/dist/ui/public/vendor/fontawesome/webfonts/fa-brands-400.ttf +0 -0
  618. package/dist/ui/public/vendor/fontawesome/webfonts/fa-brands-400.woff2 +0 -0
  619. package/dist/ui/public/vendor/fontawesome/webfonts/fa-regular-400.ttf +0 -0
  620. package/dist/ui/public/vendor/fontawesome/webfonts/fa-regular-400.woff2 +0 -0
  621. package/dist/ui/public/vendor/fontawesome/webfonts/fa-solid-900.ttf +0 -0
  622. package/dist/ui/public/vendor/fontawesome/webfonts/fa-solid-900.woff2 +0 -0
  623. package/dist/ui/public/vendor/fontawesome/webfonts/fa-v4compatibility.ttf +0 -0
  624. package/dist/ui/public/vendor/fontawesome/webfonts/fa-v4compatibility.woff2 +0 -0
  625. package/dist/ui/public/vendor/tailwind.css +2 -0
  626. package/dist/ui/server.d.ts +8 -1
  627. package/dist/ui/server.d.ts.map +1 -1
  628. package/dist/ui/server.js +86 -42
  629. package/dist/ui/server.js.map +1 -1
  630. package/dist/utils/file-system.d.ts +5 -0
  631. package/dist/utils/file-system.d.ts.map +1 -1
  632. package/dist/utils/file-system.js +10 -0
  633. package/dist/utils/file-system.js.map +1 -1
  634. package/dist/utils/gitignore-manager.d.ts.map +1 -1
  635. package/dist/utils/gitignore-manager.js +31 -6
  636. package/dist/utils/gitignore-manager.js.map +1 -1
  637. package/dist/utils/glob.d.ts +5 -0
  638. package/dist/utils/glob.d.ts.map +1 -0
  639. package/dist/utils/glob.js +59 -0
  640. package/dist/utils/glob.js.map +1 -0
  641. package/dist/utils/i18n-cli.d.ts.map +1 -1
  642. package/dist/utils/i18n-cli.js +3 -2
  643. package/dist/utils/i18n-cli.js.map +1 -1
  644. package/dist/utils/logger.d.ts +20 -6
  645. package/dist/utils/logger.d.ts.map +1 -1
  646. package/dist/utils/logger.js +108 -36
  647. package/dist/utils/logger.js.map +1 -1
  648. package/dist/utils/naming.d.ts +18 -0
  649. package/dist/utils/naming.d.ts.map +1 -0
  650. package/dist/utils/naming.js +58 -0
  651. package/dist/utils/naming.js.map +1 -0
  652. package/dist/utils/output.d.ts +13 -0
  653. package/dist/utils/output.d.ts.map +1 -0
  654. package/dist/utils/output.js +58 -0
  655. package/dist/utils/output.js.map +1 -0
  656. package/dist/utils/path-guard.d.ts +4 -0
  657. package/dist/utils/path-guard.d.ts.map +1 -0
  658. package/dist/utils/path-guard.js +42 -0
  659. package/dist/utils/path-guard.js.map +1 -0
  660. package/dist/utils/workspace-detector.d.ts +1 -0
  661. package/dist/utils/workspace-detector.d.ts.map +1 -1
  662. package/dist/utils/workspace-detector.js +11 -9
  663. package/dist/utils/workspace-detector.js.map +1 -1
  664. package/dist/version.d.ts +4 -0
  665. package/dist/version.d.ts.map +1 -0
  666. package/dist/version.js +10 -0
  667. package/dist/version.js.map +1 -0
  668. package/docs/ARCHITECTURE.md +36 -66
  669. package/docs/COMMANDS.md +97 -151
  670. package/docs/ENTERPRISE.md +485 -0
  671. package/docs/EVALUATION_REPORT.md +120 -91
  672. package/docs/MCP_GUIDE.md +33 -47
  673. package/docs/MIGRATION-3.0.md +155 -0
  674. package/docs/RUNTIME-KERNEL.md +78 -0
  675. package/docs/USAGE_GUIDE.md +30 -77
  676. package/package.json +33 -10
  677. package/schemas/config.schema.json +546 -0
  678. package/dist/core/config.d.ts +0 -50
  679. package/dist/core/config.d.ts.map +0 -1
  680. package/dist/core/config.js +0 -72
  681. package/dist/core/config.js.map +0 -1
  682. package/dist/core/quality-score.d.ts +0 -15
  683. package/dist/core/quality-score.d.ts.map +0 -1
  684. package/dist/core/quality-score.js +0 -154
  685. package/dist/core/quality-score.js.map +0 -1
  686. package/dist/generators/frontend/angular-ngrx-generator.d.ts +0 -2
  687. package/dist/generators/frontend/angular-ngrx-generator.d.ts.map +0 -1
  688. package/dist/generators/frontend/angular-ngrx-generator.js +0 -167
  689. package/dist/generators/frontend/angular-ngrx-generator.js.map +0 -1
  690. package/dist/generators/frontend/angular-signalr-service.d.ts +0 -2
  691. package/dist/generators/frontend/angular-signalr-service.d.ts.map +0 -1
  692. package/dist/generators/frontend/angular-signalr-service.js +0 -75
  693. package/dist/generators/frontend/angular-signalr-service.js.map +0 -1
  694. package/dist/generators/frontend/react-generator.d.ts +0 -2
  695. package/dist/generators/frontend/react-generator.d.ts.map +0 -1
  696. package/dist/generators/frontend/react-generator.js +0 -94
  697. package/dist/generators/frontend/react-generator.js.map +0 -1
  698. package/dist/generators/frontend/vue-pinia-generator.d.ts +0 -3
  699. package/dist/generators/frontend/vue-pinia-generator.d.ts.map +0 -1
  700. package/dist/generators/frontend/vue-pinia-generator.js +0 -118
  701. package/dist/generators/frontend/vue-pinia-generator.js.map +0 -1
  702. package/dist/generators/preset-react-playwright.d.ts +0 -6
  703. package/dist/generators/preset-react-playwright.d.ts.map +0 -1
  704. package/dist/generators/preset-react-playwright.js +0 -28
  705. package/dist/generators/preset-react-playwright.js.map +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,231 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
4
+
5
+ ## [3.0.0] - 2026-10-05
6
+
7
+ Enterprise-readiness release, driven by the reviews of 2.6.x. Contains breaking changes: see `docs/MIGRATION-3.0.md`. For operators: `docs/ENTERPRISE.md`. Support and versioning policy: `SUPPORT.md`.
8
+
9
+ ### Added
10
+ - **Runtime kernel for every backend:**
11
+ - **What it is.** A verified path for persistence, messaging and tracing (`docs/RUNTIME-KERNEL.md`):
12
+ - a PostgreSQL command service with idempotency claims and a transactional outbox;
13
+ - an outbox relay with `FOR UPDATE SKIP LOCKED` leases and publisher confirms;
14
+ - an inbox consumer with deduplication and a dead-letter queue;
15
+ - a saga orchestrator with reverse compensation;
16
+ - W3C trace context across the command, publish and consume spans.
17
+ - **Where.** Implemented with each language's standard driver, AMQP client and OpenTelemetry SDK: NestJS, Express, ASP.NET Core, Spring Boot (Java, Kotlin), FastAPI, Django, Go, Laravel, Rails, Phoenix and Axum.
18
+ - **Verification.** The integration suite (IT1–IT7) runs in every backend golden build against PostgreSQL 17 and RabbitMQ 4.
19
+ - **OpenTelemetry in the frontends:** the generated API clients (React, Vue, Angular, Next.js, React Native, Flutter) send a `traceparent` header, and their generated tests assert it.
20
+ - **Agent firewall:**
21
+ - **What it decides.** One decision point for agent writes, commands, network access, secrets and MCP tools: ALLOW, REQUIRE_APPROVAL or DENY.
22
+ - **Policy sources.** Built-in rules, `policy.firewall`, `.ghkgovernance.yaml` and the impact scope of the feature being implemented.
23
+ - **Where it applies.** The MCP server, `verify --auto-fix --apply` and `autopilot --apply` (blocked files become proposals), and `ghk firewall check|policy|hook`, including a Claude Code `PreToolUse` hook.
24
+ - **Self-protection.** Agents cannot edit `.ghkgovernance.yaml`.
25
+ - **Delivery risk (`ghk risk`):**
26
+ - **Input.** The git change set, an explicit file list or the working tree.
27
+ - **Scoring.** LOW to CRITICAL across six weighted dimensions, each with evidence: security, business criticality, change radius, test weakness, contract drift and architecture drift.
28
+ - **Policy and CI.** `policy.risk.requireApprovalAt` and `policy.risk.criticalPaths` configure approval; `--fail-on` gates CI with exit code 4.
29
+ - **Traceability graph (`ghk graph`):**
30
+ - **What it links.** Feature → scenario → command / event / endpoint, connected to the files and tests that reference them.
31
+ - **Output.** A summary, JSON, Mermaid or DOT; `--trace` for one symbol and `--scope` for a feature's change scope.
32
+ - **GitHub Spec Kit interop:** `ghk speckit import` (spec.md → .feature) and `ghk speckit export`, round-tripping user stories, priorities and FR-### requirements.
33
+ - **A/B benchmark harness (`ghk bench`):**
34
+ - **What it compares.** The same agent on the same task, with and without gherkin-ai.
35
+ - **Scoring.** Deterministic: build, tests, hidden acceptance tests (copied in after the agent finishes), convergence, files changed and time.
36
+ - **Cost.** No LLM is called by the harness itself.
37
+ - **Hardened Docker sandbox for `verify --docker`:**
38
+ - no network by default (`--docker-network`);
39
+ - memory, CPU and process limits;
40
+ - all capabilities dropped, `no-new-privileges` and a read-only root filesystem;
41
+ - the stack's verified toolchain image;
42
+ - configurable in `sandbox.*`.
43
+ - **AWS CDK infrastructure is opt-in** (`infrastructure.awsCdk`, default on for SQS/SNS messaging). The generated app (EKS with IRSA, DLQ alarm) has its own golden build with CDK assertions and `cdk synth`.
44
+ - **`converge` measures generated contracts:** OpenAPI operations and status codes, AsyncAPI events, and domain types in the generated sources. Each dimension reports its basis (`artifacts`, `specification` or `reports`).
45
+ - `SUPPORT.md` (semver contract and support windows) and issue templates.
46
+ - **Layered, validated configuration:** defaults → organization (`GHK_ORG_CONFIG`) → user → project → environment, validated with zod; organization `locked` paths; published JSON Schema (`schemas/config.schema.json`); `ghk config show|validate|schema`.
47
+ - **LLM providers:** Azure OpenAI (API key or Entra ID), Amazon Bedrock, Google Gemini and Vertex AI, OpenAI-compatible gateways (`llm.baseUrl` + `llm.headers`), alongside OpenAI, Anthropic and Ollama. Per-request timeouts, a single retry layer honoring `Retry-After`, per-run token budgets, and allow-lists for providers, models and endpoints.
48
+ - **Corporate networking:** `HTTPS_PROXY`/`NO_PROXY` and `network.proxy` for all providers; extra trusted CAs via `network.caFile`.
49
+ - **Credentials:** OS keychain storage (`ghk login`, `--api-key-stdin`), `ghk logout`, `ghk auth status`.
50
+ - **Automation contract:** documented exit codes (2 usage, 3 config, 4 gate, 5 policy, 6 provider, 7 drift); `--json` prints exactly one JSON document on stdout for every command; `--quiet`; `NO_COLOR`.
51
+ - **Audit and telemetry:** structured `audit.jsonl` and `telemetry.jsonl` (local only) with execution ids; LLM calls, MCP calls, agent write decisions and plugin loads are audited; `ghk audit export --format jsonl|csv --since`.
52
+ - **Agent write guards:** `autopilot` is dry-run by default (`--apply`); `--apply` is refused in CI (`--allow-unattended-writes`) and on protected branches (`--force-branch`).
53
+ - **Governed plugins:** `plugins.load` with an organization allow-list (`plugins.allow`).
54
+ - **Every stack is stable:** 13 backends (NestJS, Express, ASP.NET Core, Spring Boot Java and Kotlin, FastAPI, Django, Go, Laravel 13, Rails 8, Phoenix, Axum, Flutter), 7 frontends (React, Vue, Angular 22, Next.js 16, React Native/Expo 57, Flutter, Phoenix LiveView) and gRPC/GraphQL contracts. CI generates each one and builds it and runs its generated tests in the stack's official Docker image (`scripts/golden-build.js`); `ghk stacks` lists them.
55
+ - **Shared domain kernel:** every stack renders the same aggregate, unit tests, HTTP contract test and pending BDD steps bound to the feature file.
56
+ - **Opt-in gRPC and GraphQL contracts** (`contracts.grpc`, `contracts.graphql`), validated with buf and graphql-js.
57
+ - **Web Studio works offline:** Tailwind and Font Awesome are bundled instead of loaded from a CDN; Playwright end-to-end tests assert that no external request is made.
58
+ - **CI/release:** OS × Node 22/24 matrix, blocking `npm audit`, golden builds, CLI contract tests against the built binary, and a release workflow with npm provenance and a CycloneDX SBOM.
59
+ - `--threshold` for `lint` and `converge`.
60
+ - **`ghk upgrade`: assisted upgrade of 2.x projects.**
61
+ - Reports what the project needs: generated-file versions, config, CI scripts, MCP clients and legacy credential files.
62
+ - With `--apply`, regenerates on a new git branch and removes stale generated files only when they were never edited.
63
+ - `--check` gates CI.
64
+ - **NestJS 12 and Prisma 7 (opt-in):**
65
+ - New config keys `stack.frameworkVersion` (`"11"` default, `"12"`) and `stack.ormVersion` (`"6"` default, `"7"`), also settable with `ghk init --frameworkVersion/--ormVersion`.
66
+ - NestJS 12 projects are generated as ES modules.
67
+ - Prisma 7 projects use the `prisma-client` generator, `prisma.config.ts` and the driver adapter for the configured database.
68
+ - All four NestJS combinations and Express with Prisma 7 have their own golden build.
69
+ - **`@aggregate:Name` feature tag** sets the type name used by every generator, instead of the name derived from a long feature title.
70
+
71
+ ### Changed
72
+ - **Startup time** reduced from about 0.7 s to about 0.15 s: command handlers and networking are loaded lazily.
73
+ - **MCP server rebuilt on `@modelcontextprotocol/sdk`:**
74
+ - Read-only by default; write tools need `mcp.allowWrite`, and destructive tools also need `GHK_ALLOW_DESTRUCTIVE`.
75
+ - Central path containment, agent policy and auditing on every call.
76
+ - Command output is captured instead of corrupting the stdio protocol.
77
+ - Commands are invoked in-process, so the server works when installed globally.
78
+ - `ghk mcp install` pins the package version.
79
+ - **Web Studio:** per-session token, exact Host and Origin checks, path containment, no shell execution.
80
+ - **Security patterns unified** in `src/core/security`. Secrets are redacted from LLM prompts, log files and audit records.
81
+ - **Logger:** levels, stderr for diagnostics, opt-in rotated log file; no longer writes `.ghe/logs` into the working directory on every run.
82
+ - **Single version source:** the CLI banner, `--version` and the MCP `serverInfo` all read the version from `package.json`. The MCP server previously reported a hardcoded value.
83
+ - **Package contents:** `CHANGELOG.md`, `LICENSE`, `SECURITY.md` and `schemas/` are now published.
84
+ - **Generated NestJS and Express projects use current dependencies:**
85
+ - NestJS 11, Express 5, Prisma 6.19, Zod 4 (`z.uuid()`, `z.email()`, `z.iso.datetime()`), Jest 30, Cucumber 13, TypeScript 6 (`module: nodenext`), `@types/node` 22.
86
+ - Step definitions load through `tsx` instead of the unmaintained `ts-node`.
87
+ - Tenant scoping moved from the removed Prisma `$use` middleware to a client extension (`PrismaService.tenant`). The generated repository uses it.
88
+ - NestJS 12 and Prisma 7 are opt-in (see Added). NestJS 11 and Prisma 6 stay the defaults.
89
+ - **TypeScript projects without a NestJS or Express backend:**
90
+ - A frontend framework in `stack.framework` (`react`, `vue`, `angular`, `nextjs`, `react-native`) generates that stable frontend project.
91
+ - Other backends (`fastify`, `node-native`) generate contracts and prompts only, and are reported as experimental.
92
+ - Previously both got a Playwright spec containing only comments. `nest` is accepted as an alias of `nestjs`.
93
+
94
+ ### Fixed
95
+ - **`autopilot --apply` skipped the CI and protected-branch guards.** It imported the write guard but never called it, and did not pass `--allow-unattended-writes` / `--force-branch` on to its verify step.
96
+ - **`.ghkgovernance.yaml` `allowedPaths` was never enforced.** Only protected paths were checked. The glob matcher also accepted any path containing the pattern text.
97
+ - **Documentation:** the architecture page listed MCP tools that do not exist; the README listed container images the CLI does not use; the evaluation report was a self-scored rubric. They were replaced by documents that match the code and by reproducible evidence (`docs/EVALUATION_REPORT.md`).
98
+ - **Credential leak between providers:** a key belonging to another provider could be sent to the selected one (for example, the OpenAI key sent to Anthropic). `--apiKey` was silently ignored.
99
+ - **NestJS idempotency race:** expired or failed keys could be re-claimed by two concurrent requests.
100
+ - **Generated NestJS projects did not compile:**
101
+ - inconsistent `PrismaService` paths;
102
+ - missing dependencies;
103
+ - escaped `\n` inside step definitions;
104
+ - missing Prisma models;
105
+ - wrong Prisma delegate casing.
106
+ - **Generated .NET projects did not compile:**
107
+ - non-existent `Microsoft.EntityFrameworkCore.PostgreSQL` package;
108
+ - invalid root namespace for hyphenated project names;
109
+ - Aspire AppHost compiled into the API project;
110
+ - wrong command namespaces;
111
+ - missing event record;
112
+ - missing OpenTelemetry, Testcontainers, ServiceDiscovery and Swashbuckle packages.
113
+ - **Unhandled async errors:** `program.parse()` → `parseAsync()`.
114
+ - **Help and workspace detection:** workspace detection no longer prompts or changes directory for `--help` or in CI. `--project` no longer creates directories (except for `init`).
115
+ - **Web Studio path traversal:** `/api/features/*` and `/api/file` were affected (sibling-prefix bypass).
116
+ - **Portability:** `verify` no longer shells out to `sleep`, which is not available on Windows.
117
+ - **Dependency vulnerabilities:** resolved transitive advisories (brace-expansion, fast-uri, hono, ip-address).
118
+
119
+ ### Fixed (generation)
120
+ - Localized features (`# language: es` or any leading comment) were parsed as Markdown, producing names like `LanguageEs`.
121
+ - Identifiers kept broken fragments of accented words (`CreaciN`); one-letter words were glued to the next (`yrenderizado`).
122
+ - Decimal amounts before a quoted value produced invalid field types (`00DTO`).
123
+ - Connection URLs without credentials (`amqp://rabbitmq:5672`) were rejected as leaked secrets.
124
+ - Generators derived the feature's type names differently, so .NET handlers referenced commands and read models the contracts never declared; all generators now share one naming helper.
125
+ - Features outside `outputDir` were not found by the generated test runners; they are now copied into `<outputDir>/features/`.
126
+ - Go contracts imported `uuid` without using it when a feature declared no events (`go vet` failure).
127
+ - Prisma schemas redeclared `id`/`tenantId` when the feature mentioned an `ID` value.
128
+ - Ruby and Elixir step definitions double-escaped `/` and `|`, breaking steps that contain URL paths; Go dropped backticks from step patterns.
129
+
130
+ ### Removed
131
+ - **Node.js 20 support** (end-of-life); the CLI requires Node.js 22.12 or later.
132
+ - Superseded frontend generators (`react-generator`, `vue-pinia-generator`, `angular-ngrx-generator`, `angular-signalr-service`) and the classic NgRx store mode.
133
+ - `ghk login --apiKey/--token/--user/--endpoint/--server` and the `auth` alias of `login`.
134
+ - MCP tool `run_cli_login`; `clear` on `run_cli_audit`.
135
+ - Legacy hook manager `src/core/hooks.ts`.
136
+ - Stray development files from the repository root (`cdk-test-out.ts`, `scratch/`, `specs/`, pack logs).
137
+
138
+ ## [2.6.5] - 2026-09-28
139
+
140
+ > Published to npm without a changelog entry; reconstructed from git history.
141
+
142
+ ### Added
143
+ - Kotlin contract generation integrated with the contract generation system.
144
+ - Markdown EARS parser (`src/core/parsers/markdown-ears-parser.ts`).
145
+ - Plugin management in `ghk generate`.
146
+ - AWS CDK infrastructure stack (SNS, SQS, DynamoDB, EKS, Secrets Manager).
147
+ - Multi-tenancy support for Go, Java, Python and NestJS generators; Prisma multi-tenancy and relation tracking.
148
+ - OpenTelemetry Jaeger exporter and additional instrumentations.
149
+ - `ghk audit` HTML report generation.
150
+ - Coverage analysis in `ghk quality` and `--isolated` mode in `ghk verify`.
151
+
152
+ ### Changed
153
+ - NestJS Outbox and Saga infrastructure with atomic claims and idempotency patterns.
154
+ - API keys are no longer persisted in `auth.json`; Row-Level Security enforcement and governance checks for destructive MCP operations.
155
+ - Deprecation warnings for manual prompt workflows.
156
+
157
+ ## [2.6.4] - 2026-09-16
158
+
159
+ ### Fixed
160
+ - README explicitly included in the npm bundle.
161
+
162
+ ### Docs
163
+ - Multi-stack evaluation report (`docs/EVALUATION_REPORT.md`) and updated command documentation.
164
+
165
+ ## [2.6.3](https://github.com/FennerEduardo/gherkin-ai-cli/compare/v2.6.2...v2.6.3) (2026-09-15)
166
+
167
+
168
+ ### Bug Fixes
169
+
170
+ * correct package.json files array to ensure npm registry parses README.md ([78f34fa](https://github.com/FennerEduardo/gherkin-ai-cli/commit/78f34fa5fe41b4cd718b7341aa3a42f8e24e0c71))
171
+
172
+ ## [2.6.2] - 2026-09-15
173
+
174
+ ### Added
175
+ - **Docker Validation Script (`validate.sh`):** C# and .NET generators now emit a `validate.sh` script to verify compilation cleanly inside an isolated Docker container without relying on host SDKs.
176
+ - **Git Commit Suggester:** `ghk generate` now intelligently outputs a draft commit message in `.ghe/suggested_commit.md` documenting the scaffolds, features generated, and CI validations.
177
+ - **Atomic Concurrency Handlers (C#):** Replaced in-memory Idempotency and Outbox implementations with robust PostgreSQL atomic locks (`FOR UPDATE SKIP LOCKED` and `TryAddAsync`).
178
+
179
+ ### Changed
180
+ - **BDD Framework Migration:** Replaced deprecated `SpecFlow.xUnit` with `Reqnroll.xUnit` as the standard BDD C# framework for generated step definitions.
181
+ - **Improved C# Scaffolding:** Cleaned up stubs (`Task.CompletedTask`) and replaced them with functional Entity Framework Core snippets (`ApplicationDbContext`, DbSets) and explicit Scaffolding exceptions to pass the internal Anti-Stub Guardrail.
182
+ - **Dynamic Brokers:** `preset-csharp-dotnet.ts` now injects `MassTransit` configuration (RabbitMQ vs SQS) dynamically based on `gherkin-ai.config.json` instead of hardcoding.
183
+ - **Docker Compose Security:** Database passwords are no longer hardcoded in `docker-compose.yml`; the generator now uses shell variables (`${POSTGRES_PASSWORD:-dev_password}`).
184
+
185
+ ### Fixed
186
+ - **CS0111 Step Duplication:** C# Step Definitions generator now uses a `Set` to prevent duplicate method generation when scenarios share the same BDD steps.
187
+ - **MediatR Contract Constraints:** Fixed `IRequest` inheritance bounds for Commands and Queries in C# contracts to satisfy MediatR `IRequestHandler` type constraints.
188
+ - **AWS CDK Naming Bug:** Fixed PascalCase conversion for project names with hyphens (e.g., `transactional-system` -> `TransactionalSystemInfrastructureStack`) to prevent invalid TS identifiers in CDK.
189
+ - **Artifact Sprawl:** Forced default `outputDir` in config to `./` to prevent split-brain architecture where `.feature` files live in the root and code lives inside a nested `generated-specs` folder.
190
+ - **TS Leak in C#:** Prevented Node.js/Zod `contracts.ts` files from being incorrectly emitted into C# project trees.
191
+
192
+ ## [2.6.1] - 2026-09-07
193
+
194
+ ### Fixed
195
+ - Added `@vitest/coverage-v8` to devDependencies.
196
+ - Migrated Vitest configuration to `vitest.config.mts` for native ESM compatibility.
197
+ - Updated local `publish:prod` script to remove `--provenance` flag for CLI terminal execution.
198
+
199
+ ## [2.6.0] - 2026-09-07 - Official Enterprise Release
200
+
201
+ ### Added
202
+ - **Semantic Intermediate Representation (IR Engine):** Rich 37KB AST & NLP extractor (`src/core/ir-builder.ts`) for state machines, domain events, invariants, and traceability.
203
+ - **Enterprise Constitution & Guardrails (`.gherkin-ai/`):** Full YAML governance schema (`src/core/constitution.ts`), agent role permissions, LLM policies, and compliance framework schemas.
204
+ - **Specification Linter (`ghk lint`):** 14 linting rules for Gherkin specifications with quality scoring and CLI diagnostic outputs.
205
+ - **Specification Convergence Engine (`ghk converge`):** 6-dimensional spec-to-code alignment verification system with CONVERGED / DIVERGED status badges.
206
+ - **OpenAPI Schema Validator (`src/core/openapi-validator.ts`):** Validates generated OpenAPI 3.0 specs against Gherkin endpoints.
207
+ - **Plugin Architecture (`src/core/plugin-system.ts`):** Extensible plugin interface for third-party generators and presets.
208
+ - **Impact Analysis (`ghk impact`) & PR Reviewer (`ghk pr-review`):** Blast radius analyzer and automated PR review bot.
209
+ - **Prisma Schema & Zod Generator (`src/generators/prisma-generator.ts`):** Auto-generates `schema.prisma` from IR entities and state machines, with conditional `npx prisma format` execution.
210
+ - **Failed Attempt Diagnostics Logging:** Automatically logs raw prompts, responses, and diffs to `.gherkin-ai/logs/autopilot/` pre-rollback on agent failures.
211
+ - **Supply Chain Security & Provenance:** Published with npm `--provenance` and included GitHub Actions CI workflow generator.
212
+
213
+ ### Fixed
214
+ - **Dynamic Spec Directory Resolver (`src/utils/spec-dir-resolver.ts`):** Fixed critical `ENOENT: specs/` bug by auto-resolving `features/`, `specs/`, or `specDir` in configuration.
215
+ - **Non-Interactive CI Mode:** Automatic directory suggestion/selection in headless mode without prompt locks.
216
+ - **Clean Architecture Import Compliance:** Removed `@nestjs/common` imports from step definition presets to guarantee 0 layer violations in `ghk validate`.
217
+
218
+ ## [2.3.1] - 2026-09-02
219
+ ### Changed
220
+ - Promoted self-healing engine from beta to stable.
221
+ - Minor performance patches.
222
+
223
+ ## [2.2.0] - 2026-08-15
224
+ ### Added
225
+ - Web Studio UI (`ghk web`) for visual orchestrating.
226
+ - AST Step Definitions Indexer for hallucination prevention via `ts-morph`.
227
+ - DOM & Data Model Anchor for precise test generation.
228
+ - `ghk skill` command for IDE (.cursorrules) integration.
229
+ - Headless CI/CD Mode.
230
+ - Official `@cucumber/gherkin` parser support.
231
+ - Initial multi-stack templates (Rust, Go, Mobile, React, Java).
package/README.md CHANGED
@@ -1,78 +1,126 @@
1
- # 🥒 `gherkin-ai` CLI & Agentic Verification Engine
1
+ # gherkin-ai
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/gherkin-ai.svg)](https://www.npmjs.com/package/gherkin-ai)
4
- [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
+ [![CI](https://github.com/FennerEduardo/gherkin-ai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/FennerEduardo/gherkin-ai-cli/actions/workflows/ci.yml)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
6
 
6
- > **The Closed-Loop Agentic Testing & Orchestration Engine for Full-Stack Applications.**
7
- > Turn product requirements into verifiable Gherkin specifications, execute 15+ multi-stack implementations (React/Vue/Angular + Java / Kotlin / Go / Elixir / PHP / Ruby / Python / .NET / Flutter / React Native, plus gRPC & GraphQL contracts), and experiment with self-healing agent loops.
8
- >
9
- > [![CI](https://github.com/FennerEduardo/gherkin-ai-cli/actions/workflows/ci.yml/badge.svg)](https://github.com/FennerEduardo/gherkin-ai-cli/actions/workflows/ci.yml)
10
- > [![Coverage Status](https://img.shields.io/badge/coverage-100%25-brightgreen.svg)]()
7
+ **Spec-driven verification and governance for AI-assisted software delivery.**
11
8
 
12
- ---
9
+ gherkin-ai turns requirements into executable Gherkin specifications and generates verified contracts and code for 20+ stacks. It gates changes on specification quality, drift and delivery risk, and controls what AI coding agents may change.
13
10
 
14
- ## 🌟 Strategic Capabilities
11
+ - **Specify.** Write or import (GitHub Spec Kit) `.feature` files, lint them, and build a semantic model of commands, events, endpoints, states and rules.
12
+ - **Generate.** Contracts, a domain kernel, tests bound to the feature, and a runtime for persistence, messaging and tracing. Every stable stack is built and tested in CI.
13
+ - **Govern.** An agent firewall for MCP clients, IDE agents and the CLI's own agent loops. Risk scoring of every change, traceability from requirement to code to tests, and a local audit trail.
14
+ - **Verify.** Spec-to-code convergence, drift detection and sandboxed test runs, with stable exit codes and `--json` for CI.
15
15
 
16
- While basic AI spec tools only generate text prompts, `gherkin-ai` acts as an **executable contract and verification harness** between Product Intent, AI Agents (Cursor, Antigravity, Claude Code, Windsurf, Copilot), Code Implementation, and CI/CD Quality Gates:
16
+ Rolling it out in a company? Start with [docs/ENTERPRISE.md](docs/ENTERPRISE.md). Upgrading from 2.x? See [docs/MIGRATION-3.0.md](docs/MIGRATION-3.0.md).
17
17
 
18
- - 🤖 **AI Agent Implementation Orchestration (`ghk implement`)**: Compiles `.ghkgovernance.yaml`, domain contracts (`*.contract.php`, `.ts`, `.py`, `.java`, `.go`, `.ex`, `.kt`, `.proto`, `.graphql`), ADRs, and Gherkin features into a copy-pasteable Master Agent Implementation Prompt.
19
- - 🐳 **Docker Container Sandbox & Host Protection (`--docker`)**: Generates stack-specific dev container environments (`mcr.microsoft.com/dotnet/sdk`, `eclipse-temurin:21`, `elixir:1.16`, `golang:1.22`, `php:8.3`, `python:3.12`, `ruby:3.3`, `node:20`) so AI agents run tests inside isolated Docker containers without polluting host OS.
20
- - 📋 **Feature Inventory & Developer Audit Trail (`ghk audit`)**: Auto-detects developer identity (`git config user.name`/`email`), SHA-256 spec & prompt hashes, timestamps, and execution records stored in `.ghe/inventory.json` with LRU retention limit (`maxEntries: 50`) and `--json` export for CI/CD audit pipelines.
21
- - ⚡ **Token Efficiency & Ultra-Compact Mode (`-C, --compact`)**: Uses direct `@` context pointers (`@.ghkgovernance.yaml`, `@features/*.feature`) for on-demand resolution to radically reduce token footprint vs. code dumping, providing an ultra-compact prompt mode for cost-sensitive LLMs.
22
- - 🌐 **Multilingual CLI & English Prompt Rationale (`ghk lang`)**: Full interactive CLI support in Spanish (`es`) and English (`en`). Master AI Prompts are intentionally generated in **English** for maximum BPE token density (~30% cheaper) and LLM reasoning accuracy.
23
- - 🤖 **True Agentic Engine & Self-Healing (EXPERIMENTAL - `ghk verify --auto-fix` & `ghk autopilot`)**: Connects natively with LLMs (OpenAI, Anthropic, Ollama), modifies source code, intercepts test failures, and recursively applies repairs in a true **Closed-Loop**. *Note: Agentic execution is currently experimental and should be run with human supervision.*
24
- - 🌐 **Web Studio UI (`ghk web`)**: Launch a premium local graphical interface to interactively generate your Gherkin specifications, detect your stack, and orchestrate agent prompts visually.
25
- - 🌳 **Official Cucumber AST Parser**: 100% compliant with the Gherkin standard using the official `@cucumber/gherkin` package.
18
+ ## Installation
26
19
 
27
- ---
28
-
29
- ## 📥 Installation & Execution
20
+ Requires Node.js 22.12 or later.
30
21
 
31
22
  ```bash
32
- # Global Installation
33
- npm install -g gherkin-ai
34
-
35
- # Or Zero-Install On-Demand
36
- npx -y gherkin-ai implement --feature ./features/01-customer-management.feature
23
+ npm install -g gherkin-ai # installs the `gherkin-ai` and `ghk` commands
24
+ npx -y gherkin-ai@3 --help # or run without installing
37
25
  ```
38
26
 
39
- ---
40
-
41
- ## 🚀 Quick Start Commands
27
+ ## Quick start
42
28
 
43
29
  ```bash
44
- # 1. Initialize Stack Architecture (Supports 14+ Stacks)
45
- ghk init --stack=java-springboot_vue-pinia
46
-
47
- # 2. Generate Master Agent Implementation Prompt (Docker Sandbox & Compact Mode)
48
- ghk implement --docker -C --feature ./features/01-customer-management.feature --contract ./contracts/customer.contract.java
49
-
50
- # 3. View Feature Inventory & Developer Audit Trail History
51
- ghk audit
52
-
53
- # 4. Export Audit History as JSON for CI/CD Compliance Pipelines
54
- ghk audit --json
55
-
56
- # 5. Configure CLI Language (English or Spanish)
57
- ghk lang --set en
58
-
59
- # 6. Run Closed-Loop Test Verification with Auto-Fix Loop
60
- ghk verify --docker --auto-fix
30
+ ghk init --yes -l typescript -f nestjs # project configuration (gherkin-ai.config.json)
31
+ ghk create # write a feature interactively, or:
32
+ ghk speckit import # convert Spec Kit specs/NNN-*/spec.md into features
33
+ ghk lint --threshold 80 # specification quality gate (exit 4 below threshold)
34
+ ghk generate -f features/orders.feature # contracts, domain kernel, tests, runtime
35
+ ghk implement -f features/orders.feature # implementation prompt and context for your agent
36
+ ghk converge --threshold 80 # spec-to-code convergence (exit 7 below threshold)
37
+ ghk risk --base origin/main --fail-on HIGH # delivery risk of the change (exit 4 at HIGH or above)
38
+ ghk graph --trace OrderPlaced # requirement -> code -> tests
61
39
  ```
62
40
 
63
- ---
64
-
65
- ## 📖 Comprehensive Documentation
66
-
67
- - [Multi-Stack Evaluation Report (15 Projects)](docs/EVALUATION_REPORT.md)
68
- - [CLI Commands Reference Guide](docs/COMMANDS.md)
69
- - [Model Context Protocol (MCP) Integration Guide](docs/MCP_GUIDE.md)
70
- - [Closed-Loop Verification & Auto-Repair Guide](docs/USAGE_GUIDE.md)
71
- - [Architecture & Agent Pipeline Design](docs/ARCHITECTURE.md)
72
- - [Live Web SPA Playground](https://fennereduardo.com/pages/gherkin-ai-agent-architect)
41
+ Connect your coding agent:
73
42
 
74
- ---
75
-
76
- ## 📄 License
43
+ ```bash
44
+ ghk mcp install # least-privilege MCP server for Cursor, Claude Desktop and others
45
+ ghk firewall check --exec "npm test && git push" # what an agent may write, run, reach and read
46
+ ```
77
47
 
78
- Distributed under the [MIT License](LICENSE). Created by [Fenner Eduardo](https://fennereduardo.com).
48
+ ## Capabilities
49
+
50
+ | Capability | Commands | Status |
51
+ |---|---|---|
52
+ | Specification lint, semantic model, validation | `lint`, `validate`, `create`, `export` | Stable |
53
+ | Code generation for the supported stacks | `init`, `generate`, `add`, `upgrade` | Stable |
54
+ | Runtime kernel: PostgreSQL, RabbitMQ outbox/inbox, sagas, OpenTelemetry | generated with each backend | Stable |
55
+ | Spec-to-code convergence and drift | `converge`, `diff`, `impact` | Stable |
56
+ | Agent prompts and context packages | `implement`, `context`, `skill` | Stable |
57
+ | MCP server (read-only by default) | `mcp` | Stable |
58
+ | Agent firewall (MCP, CLI agent loops, Claude Code hook) | `firewall` | Stable |
59
+ | Configuration layers, organization locks, provider policy | `config`, `login`, `auth` | Stable |
60
+ | Audit trail and SIEM export | `audit`, `audit export` | Stable |
61
+ | Delivery risk scoring | `risk`, `quality` | Beta |
62
+ | Traceability graph | `graph` | Beta |
63
+ | GitHub Spec Kit import / export | `speckit` | Beta |
64
+ | A/B benchmark of an agent with and without gherkin-ai | `bench` | Beta |
65
+ | Web Studio (local UI) | `web` | Beta |
66
+ | LLM repair loops | `verify --auto-fix`, `autopilot` | Experimental |
67
+
68
+ - **Stable:** covered by tests and by the golden builds, with the CLI contract (exit codes, `--json`) kept across 3.x.
69
+ - **Beta:** complete and tested; output formats may still change in a minor release.
70
+ - **Experimental:** use with human review only.
71
+
72
+ The LLM repair loops write `.patch` proposals by default. `--apply` is refused in CI and on protected branches unless explicitly allowed, and every file goes through the agent firewall.
73
+
74
+ ## Supported stacks
75
+
76
+ Every stack below is built and tested in CI. A sample project is generated, built in the stack's official Docker image, and its generated test suite is run. For backends, the runtime integration suite also runs against real PostgreSQL and RabbitMQ containers.
77
+
78
+ | Kind | Stacks |
79
+ |---|---|
80
+ | Backends | TypeScript (NestJS 11 or 12, Express 5; Prisma 6 or 7), C# (ASP.NET Core 8), Java and Kotlin (Spring Boot 3), Python (FastAPI, Django), Go (chi), PHP (Laravel 13), Ruby (Rails 8), Elixir (Phoenix), Rust (Axum) |
81
+ | Frontends and apps | React 19, Vue 3, Angular 22, Next.js 16, React Native (Expo 57), Flutter, Phoenix LiveView |
82
+ | Contracts and infrastructure | gRPC (Protobuf, buf-linted), GraphQL SDL, AWS CDK (opt-in, synthesized in CI) |
83
+
84
+ Other combinations generate contracts and prompts only and are reported as experimental. `ghk stacks` lists the current matrix. The evidence behind these claims, and how to reproduce it, is in [docs/EVALUATION_REPORT.md](docs/EVALUATION_REPORT.md).
85
+
86
+ ## Automation contract
87
+
88
+ | Exit code | Meaning |
89
+ |---|---|
90
+ | 0 | success |
91
+ | 2 | usage error |
92
+ | 3 | invalid configuration |
93
+ | 4 | quality gate failed (`lint`, `validate`, `risk --fail-on`, …) |
94
+ | 5 | denied by policy (firewall, organization allow-lists, protected branch) |
95
+ | 6 | LLM provider or network failure |
96
+ | 7 | specification drift |
97
+
98
+ With `--json`, stdout carries exactly one JSON document and diagnostics go to stderr. Details: [docs/ENTERPRISE.md#5-automation-contract-exit-codes-and---json](docs/ENTERPRISE.md#5-automation-contract-exit-codes-and---json).
99
+
100
+ ## Known limitations
101
+
102
+ - **Semantic model.** It is extracted from Gherkin with deterministic rules. Unusual phrasing can produce generic command names. `ghk lint` reports specifications that are too vague to model, and the `@aggregate:Name` tag sets the type name explicitly.
103
+ - **Generated runtime.** It is a verified starting point, not a framework. The runtime kernel covers one aggregate per feature with PostgreSQL and RabbitMQ. Other databases and brokers generate contracts and configuration only.
104
+ - **Traceability graph.** It links code by symbol names. Code that does not use the domain names from the specification is not linked.
105
+ - **Risk scores.** They are heuristics with documented weights and evidence. Calibrate the approval threshold (`policy.risk`) to your organization.
106
+ - **LLM repair loops.** They depend on the model and can fail to converge. They are experimental and always need review.
107
+ - **Benchmarks.** `ghk bench` measures your agent on your tasks. gherkin-ai does not publish model-quality claims of its own.
108
+
109
+ ## Documentation
110
+
111
+ - [Enterprise guide](docs/ENTERPRISE.md): configuration and policy, providers, network, credentials, firewall, risk, MCP, audit, CI
112
+ - [Commands](docs/COMMANDS.md)
113
+ - [Runtime kernel](docs/RUNTIME-KERNEL.md)
114
+ - [Verification evidence](docs/EVALUATION_REPORT.md)
115
+ - [MCP guide](docs/MCP_GUIDE.md)
116
+ - [Architecture](docs/ARCHITECTURE.md)
117
+ - [Migration to 3.0](docs/MIGRATION-3.0.md)
118
+ - [Changelog](CHANGELOG.md)
119
+
120
+ ## Support and security
121
+
122
+ See [SUPPORT.md](SUPPORT.md) for the support and versioning policy and for how to get help. Report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
123
+
124
+ ## License
125
+
126
+ [MIT](LICENSE). Published on npm by the [fenner](https://www.npmjs.com/org/fenner) organization. Product page: <https://fennereduardo.com/pages/gherkin-ai-agent-architect>.
package/SECURITY.md ADDED
@@ -0,0 +1,55 @@
1
+ # Security Policy
2
+
3
+ ## Supported versions
4
+
5
+ | Version | Supported |
6
+ |---|---|
7
+ | 3.x | ✅ security fixes |
8
+ | 2.6.x | ⚠️ critical fixes only, until 2027-03-31 |
9
+ | < 2.6 | ❌ |
10
+
11
+ ## Reporting a vulnerability
12
+
13
+ **Do not open a public issue.** Report privately through one of these channels:
14
+
15
+ 1. GitHub: **Security → Report a vulnerability** on this repository (private advisory). This is the preferred channel.
16
+ 2. Email: **security@gherkin-ai.com**.
17
+
18
+ Please include the affected version, the configuration needed to reproduce, steps or a proof of concept, and the impact you observed.
19
+
20
+ ### What happens next
21
+
22
+ | Step | Target |
23
+ |---|---|
24
+ | Acknowledgement | within 2 business days |
25
+ | Triage and severity (CVSS v3.1) | within 5 business days |
26
+ | Fix for critical / high severity | within 30 days |
27
+ | Fix for medium / low severity | next minor release |
28
+
29
+ Fixes are released as patch versions and published with a GitHub Security Advisory. We request a CVE when one applies. Reporters are credited unless they prefer otherwise. Please give us 90 days, or until a fix is released if sooner, before public disclosure.
30
+
31
+ ## In scope
32
+
33
+ We treat any of the following as a vulnerability:
34
+
35
+ - **MCP:** bypass of the server's least-privilege model, for example
36
+ - running a write or destructive tool while it is disabled;
37
+ - path arguments escaping the workspace;
38
+ - clearing or forging audit records.
39
+ - **Credentials:** API keys written to disk, logs, telemetry or audit files; or a key sent to a provider other than the one it belongs to.
40
+ - **Prompt redaction:** secrets reaching an LLM provider despite redaction.
41
+ - **Web Studio:** access without the session token, cross-origin or DNS-rebinding access, or path traversal.
42
+ - **Agent writes:** LLM output written outside the workspace, or written while the dry-run, unattended-write or protected-branch guards apply.
43
+ - **Organization policy:** bypass of `locked` settings, provider or model allow-lists, or the plugin allow-list.
44
+ - **Supply chain:** issues in our release process, such as provenance or package contents.
45
+
46
+ ## Security controls (overview)
47
+
48
+ Details are in [docs/ENTERPRISE.md](docs/ENTERPRISE.md).
49
+
50
+ - **Credentials.** Keys come from environment variables or the OS keychain only, and are resolved per provider. The CLI never writes them to disk.
51
+ - **Redaction.** Secrets are redacted from LLM prompts, log files and audit details. PII redaction is optional.
52
+ - **MCP.** The server is read-only by default. Write and destructive tools need explicit configuration. Every call checks path containment and the agent policy, and is audited.
53
+ - **Agent-driven changes.** They are dry-run by default. CI and protected-branch guards apply. Model-proposed paths outside the workspace are dropped.
54
+ - **Web Studio.** It binds to localhost and requires a per-session token, an exact Host match and a same-origin Origin. Commands run without a shell.
55
+ - **Releases.** They are published from CI with npm provenance and a CycloneDX SBOM. `npm audit --audit-level=high` blocks CI.
package/SUPPORT.md ADDED
@@ -0,0 +1,54 @@
1
+ # Support
2
+
3
+ ## Getting help
4
+
5
+ | Need | Where |
6
+ |---|---|
7
+ | Bug report | [GitHub issue](../../issues/new?template=bug_report.yml) (use the template, and include `ghk --version` and `ghk config show --sources`) |
8
+ | Feature request | [GitHub issue](../../issues/new?template=feature_request.yml) |
9
+ | Usage question | [GitHub Discussions](../../discussions) |
10
+ | Security vulnerability | **Never a public issue.** Follow [SECURITY.md](SECURITY.md) |
11
+
12
+ Before opening an issue, run the failing command with `--verbose`, and for CI with `--json`. Remove secrets and internal hostnames from what you paste. `ghk auth status` and `ghk config show` never print credentials.
13
+
14
+ ## Versioning
15
+
16
+ gherkin-ai follows [Semantic Versioning](https://semver.org/).
17
+
18
+ **Public contract.** Breaking it requires a major version:
19
+
20
+ - command names, flags and their documented defaults;
21
+ - exit codes (`docs/ENTERPRISE.md` §5);
22
+ - the `--json` envelope, and the documented JSON fields of `lint`, `converge`, `risk`, `firewall`, `graph`, `audit export` and `config`;
23
+ - the configuration schema (`schemas/config.schema.json`): keys are only added in minor versions, and are removed only after a deprecation warning in a previous minor version;
24
+ - MCP tool names and their safety level;
25
+ - the stable stacks listed by `ghk stacks`. A stack is only demoted from stable in a major version.
26
+
27
+ **Not part of the public contract:**
28
+
29
+ - the text of generated code, prompts and human-readable output;
30
+ - the exact weights of the risk dimensions, which are documented and may be calibrated in minor versions;
31
+ - features marked beta or experimental.
32
+
33
+ **Generated projects** record the generator version. `ghk upgrade` reports, and on request applies, the changes between versions on a separate branch.
34
+
35
+ ## Release and support policy
36
+
37
+ | Version | Status | Fixes |
38
+ |---|---|---|
39
+ | 3.x (latest minor) | Active | bug and security fixes |
40
+ | 3.x (previous minor) | Maintenance for 3 months after the next minor | security and critical fixes |
41
+ | 2.6.x | Maintenance until 2027-03-31 | critical security fixes only |
42
+ | < 2.6 | End of life | none |
43
+
44
+ Supported environments:
45
+
46
+ - **Node.js:** active LTS versions (currently 22 and 24).
47
+ - **Operating systems:** Linux, macOS and Windows, all tested in CI.
48
+ - **Toolchains:** the generated stacks follow the toolchain images listed in `docs/ENTERPRISE.md` §11.
49
+
50
+ Releases are cut from CI with npm provenance and a CycloneDX SBOM. Each release is described in [CHANGELOG.md](CHANGELOG.md).
51
+
52
+ ## Commercial and organizational use
53
+
54
+ The package is MIT-licensed and published on npm by the [fenner](https://www.npmjs.com/org/fenner) organization. Product page: <https://fennereduardo.com/pages/gherkin-ai-agent-architect>. For organization-wide rollout (central configuration, policy locks, providers, proxies, audit), see [docs/ENTERPRISE.md](docs/ENTERPRISE.md).
package/bin/gherkin-ai.js CHANGED
@@ -7,15 +7,18 @@ const fs = require('fs');
7
7
  const distIndex = path.join(__dirname, '../dist/index.js');
8
8
  const srcIndex = path.join(__dirname, '../src/index.ts');
9
9
 
10
+ let cli;
10
11
  if (fs.existsSync(distIndex)) {
11
- require(distIndex);
12
+ cli = require(distIndex);
12
13
  } else {
13
14
  try {
14
15
  require('ts-node/register');
15
- require(srcIndex);
16
+ cli = require(srcIndex);
16
17
  } catch (err) {
17
18
  console.error('Error starting gherkin-ai CLI. Please build the project first using "npm run build".');
18
19
  console.error(err);
19
20
  process.exit(1);
20
21
  }
21
22
  }
23
+
24
+ cli.main(process.argv);
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAgBA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsG9J"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"AAmBA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG9J"}
@@ -7,6 +7,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
7
7
  };
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.handleAddCommand = handleAddCommand;
10
+ const errors_1 = require("../core/errors");
11
+ const path_guard_1 = require("../utils/path-guard");
10
12
  const path_1 = __importDefault(require("path"));
11
13
  const config_1 = require("../core/config");
12
14
  const stack_detector_1 = require("../core/stack-detector");
@@ -17,6 +19,7 @@ const ir_builder_1 = require("../core/ir-builder");
17
19
  const create_1 = require("./create");
18
20
  const file_system_1 = require("../utils/file-system");
19
21
  const logger_1 = require("../utils/logger");
22
+ const naming_1 = require("../utils/naming");
20
23
  async function handleAddCommand(options) {
21
24
  logger_1.logger.banner();
22
25
  const { promptOrFallback } = require('../utils/i18n-cli');
@@ -41,7 +44,7 @@ async function handleAddCommand(options) {
41
44
  return;
42
45
  }
43
46
  else {
44
- process.exit(1);
47
+ throw new errors_1.UsageError(`Feature file not found: ${options.feature ?? '(none)'}`, { hint: 'Pass an existing file with --feature or create one with `ghk create`.' });
45
48
  }
46
49
  }
47
50
  // Load config or auto-detect if config doesn't exist
@@ -53,13 +56,12 @@ async function handleAddCommand(options) {
53
56
  logger_1.logger.info(`Reading Gherkin spec from: ${featurePath}`);
54
57
  const gherkinText = (0, file_system_1.readFileSync)(featurePath);
55
58
  const parsed = (0, gherkin_parser_1.parseGherkinText)(gherkinText);
56
- const featurePascal = parsed.featureName.replace(/[^a-zA-Z0-9]/g, '') || 'Feature';
59
+ const featurePascal = (0, naming_1.featurePascalName)(parsed) || 'Feature';
57
60
  let targetDir = options.target
58
61
  ? path_1.default.resolve(process.cwd(), options.target)
59
62
  : path_1.default.resolve(process.cwd(), 'src', 'modules', featurePascal.toLowerCase());
60
- if (!targetDir.startsWith(process.cwd())) {
61
- logger_1.logger.error(`Security Violation: Target path escapes the current workspace: ${targetDir}`);
62
- process.exit(1);
63
+ if (!(0, path_guard_1.isPathInside)(process.cwd(), targetDir)) {
64
+ throw new errors_1.PolicyError(`Security Violation: Target path escapes the current workspace: ${targetDir}`);
63
65
  }
64
66
  (0, file_system_1.ensureDirSync)(targetDir);
65
67
  logger_1.logger.info(`Injecting contracts & AI prompts into: ${targetDir}`);
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sourceRoot":"","sources":["../../src/commands/add.ts"],"names":[],"mappings":"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"}