@planu/cli 0.24.0 → 0.25.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 (374) hide show
  1. package/dist/config/ai-model-pricing.json +81 -0
  2. package/dist/config/framework-registry/csharp-aspnet.json +67 -0
  3. package/dist/config/framework-registry/dart-flutter.json +61 -0
  4. package/dist/config/framework-registry/go-gin.json +62 -0
  5. package/dist/config/framework-registry/index.json +164 -0
  6. package/dist/config/framework-registry/java-springboot.json +67 -0
  7. package/dist/config/framework-registry/php-laravel.json +67 -0
  8. package/dist/config/framework-registry/python-django.json +72 -0
  9. package/dist/config/framework-registry/python-fastapi.json +72 -0
  10. package/dist/config/framework-registry/ruby-rails.json +67 -0
  11. package/dist/config/framework-registry/rust-actix.json +61 -0
  12. package/dist/config/framework-registry/swift-swiftui.json +67 -0
  13. package/dist/config/framework-registry/typescript-angular.json +67 -0
  14. package/dist/config/framework-registry/typescript-astro.json +61 -0
  15. package/dist/config/framework-registry/typescript-express.json +67 -0
  16. package/dist/config/framework-registry/typescript-nestjs.json +62 -0
  17. package/dist/config/framework-registry/typescript-nextjs.json +82 -0
  18. package/dist/config/framework-registry/typescript-nuxt.json +67 -0
  19. package/dist/config/framework-registry/typescript-react.json +77 -0
  20. package/dist/config/framework-registry/typescript-remix.json +61 -0
  21. package/dist/config/framework-registry/typescript-sveltekit.json +67 -0
  22. package/dist/config/framework-registry/typescript-vue.json +72 -0
  23. package/dist/config/license-plans.json +23 -3
  24. package/dist/engine/agile-config-builder.d.ts.map +1 -1
  25. package/dist/engine/agile-config-builder.js +3 -0
  26. package/dist/engine/agile-config-builder.js.map +1 -1
  27. package/dist/engine/ai-cost-estimator/core.d.ts +8 -0
  28. package/dist/engine/ai-cost-estimator/core.d.ts.map +1 -0
  29. package/dist/engine/ai-cost-estimator/core.js +257 -0
  30. package/dist/engine/ai-cost-estimator/core.js.map +1 -0
  31. package/dist/engine/ai-cost-estimator/index.d.ts +4 -0
  32. package/dist/engine/ai-cost-estimator/index.d.ts.map +1 -0
  33. package/dist/engine/ai-cost-estimator/index.js +5 -0
  34. package/dist/engine/ai-cost-estimator/index.js.map +1 -0
  35. package/dist/engine/ai-cost-estimator/model-pricing.d.ts +31 -0
  36. package/dist/engine/ai-cost-estimator/model-pricing.d.ts.map +1 -0
  37. package/dist/engine/ai-cost-estimator/model-pricing.js +96 -0
  38. package/dist/engine/ai-cost-estimator/model-pricing.js.map +1 -0
  39. package/dist/engine/ai-cost-estimator/token-estimator.d.ts +37 -0
  40. package/dist/engine/ai-cost-estimator/token-estimator.d.ts.map +1 -0
  41. package/dist/engine/ai-cost-estimator/token-estimator.js +194 -0
  42. package/dist/engine/ai-cost-estimator/token-estimator.js.map +1 -0
  43. package/dist/engine/ci-generator/context-builders.d.ts +4 -0
  44. package/dist/engine/ci-generator/context-builders.d.ts.map +1 -0
  45. package/dist/engine/ci-generator/context-builders.js +129 -0
  46. package/dist/engine/ci-generator/context-builders.js.map +1 -0
  47. package/dist/engine/ci-generator/index.d.ts +7 -0
  48. package/dist/engine/ci-generator/index.d.ts.map +1 -0
  49. package/dist/engine/ci-generator/index.js +44 -0
  50. package/dist/engine/ci-generator/index.js.map +1 -0
  51. package/dist/engine/ci-generator/stack-detector.d.ts +21 -0
  52. package/dist/engine/ci-generator/stack-detector.d.ts.map +1 -0
  53. package/dist/engine/ci-generator/stack-detector.js +203 -0
  54. package/dist/engine/ci-generator/stack-detector.js.map +1 -0
  55. package/dist/engine/ci-generator/yaml-builder.d.ts +8 -0
  56. package/dist/engine/ci-generator/yaml-builder.d.ts.map +1 -0
  57. package/dist/engine/ci-generator/yaml-builder.js +285 -0
  58. package/dist/engine/ci-generator/yaml-builder.js.map +1 -0
  59. package/dist/engine/dashboard/data-loader.d.ts +21 -0
  60. package/dist/engine/dashboard/data-loader.d.ts.map +1 -0
  61. package/dist/engine/dashboard/data-loader.js +196 -0
  62. package/dist/engine/dashboard/data-loader.js.map +1 -0
  63. package/dist/engine/dashboard/index.d.ts +5 -0
  64. package/dist/engine/dashboard/index.d.ts.map +1 -0
  65. package/dist/engine/dashboard/index.js +6 -0
  66. package/dist/engine/dashboard/index.js.map +1 -0
  67. package/dist/engine/dashboard/routes.d.ts +4 -0
  68. package/dist/engine/dashboard/routes.d.ts.map +1 -0
  69. package/dist/engine/dashboard/routes.js +120 -0
  70. package/dist/engine/dashboard/routes.js.map +1 -0
  71. package/dist/engine/dashboard/server.d.ts +14 -0
  72. package/dist/engine/dashboard/server.d.ts.map +1 -0
  73. package/dist/engine/dashboard/server.js +88 -0
  74. package/dist/engine/dashboard/server.js.map +1 -0
  75. package/dist/engine/dashboard/templates-layout.d.ts +11 -0
  76. package/dist/engine/dashboard/templates-layout.d.ts.map +1 -0
  77. package/dist/engine/dashboard/templates-layout.js +305 -0
  78. package/dist/engine/dashboard/templates-layout.js.map +1 -0
  79. package/dist/engine/dashboard/templates-project.d.ts +10 -0
  80. package/dist/engine/dashboard/templates-project.d.ts.map +1 -0
  81. package/dist/engine/dashboard/templates-project.js +163 -0
  82. package/dist/engine/dashboard/templates-project.js.map +1 -0
  83. package/dist/engine/dashboard/templates.d.ts +3 -0
  84. package/dist/engine/dashboard/templates.d.ts.map +1 -0
  85. package/dist/engine/dashboard/templates.js +4 -0
  86. package/dist/engine/dashboard/templates.js.map +1 -0
  87. package/dist/engine/focus-tracker.d.ts.map +1 -1
  88. package/dist/engine/focus-tracker.js +1 -0
  89. package/dist/engine/focus-tracker.js.map +1 -1
  90. package/dist/engine/hooks/core.d.ts +26 -0
  91. package/dist/engine/hooks/core.d.ts.map +1 -0
  92. package/dist/engine/hooks/core.js +164 -0
  93. package/dist/engine/hooks/core.js.map +1 -0
  94. package/dist/engine/hooks/git-hook-generator.d.ts +14 -0
  95. package/dist/engine/hooks/git-hook-generator.d.ts.map +1 -0
  96. package/dist/engine/hooks/git-hook-generator.js +119 -0
  97. package/dist/engine/hooks/git-hook-generator.js.map +1 -0
  98. package/dist/engine/hooks/index.d.ts +5 -0
  99. package/dist/engine/hooks/index.d.ts.map +1 -0
  100. package/dist/engine/hooks/index.js +6 -0
  101. package/dist/engine/hooks/index.js.map +1 -0
  102. package/dist/engine/hooks/templates.d.ts +14 -0
  103. package/dist/engine/hooks/templates.d.ts.map +1 -0
  104. package/dist/engine/hooks/templates.js +138 -0
  105. package/dist/engine/hooks/templates.js.map +1 -0
  106. package/dist/engine/hooks/triggers.d.ts +27 -0
  107. package/dist/engine/hooks/triggers.d.ts.map +1 -0
  108. package/dist/engine/hooks/triggers.js +104 -0
  109. package/dist/engine/hooks/triggers.js.map +1 -0
  110. package/dist/engine/registry/core.d.ts +32 -0
  111. package/dist/engine/registry/core.d.ts.map +1 -0
  112. package/dist/engine/registry/core.js +85 -0
  113. package/dist/engine/registry/core.js.map +1 -0
  114. package/dist/engine/registry/index.d.ts +6 -0
  115. package/dist/engine/registry/index.d.ts.map +1 -0
  116. package/dist/engine/registry/index.js +8 -0
  117. package/dist/engine/registry/index.js.map +1 -0
  118. package/dist/engine/registry/loader.d.ts +18 -0
  119. package/dist/engine/registry/loader.d.ts.map +1 -0
  120. package/dist/engine/registry/loader.js +81 -0
  121. package/dist/engine/registry/loader.js.map +1 -0
  122. package/dist/engine/registry/matcher.d.ts +19 -0
  123. package/dist/engine/registry/matcher.d.ts.map +1 -0
  124. package/dist/engine/registry/matcher.js +150 -0
  125. package/dist/engine/registry/matcher.js.map +1 -0
  126. package/dist/engine/registry/reporter.d.ts +10 -0
  127. package/dist/engine/registry/reporter.d.ts.map +1 -0
  128. package/dist/engine/registry/reporter.js +132 -0
  129. package/dist/engine/registry/reporter.js.map +1 -0
  130. package/dist/engine/registry/validator.d.ts +17 -0
  131. package/dist/engine/registry/validator.d.ts.map +1 -0
  132. package/dist/engine/registry/validator.js +103 -0
  133. package/dist/engine/registry/validator.js.map +1 -0
  134. package/dist/engine/spec-changelog/core.d.ts +16 -0
  135. package/dist/engine/spec-changelog/core.d.ts.map +1 -0
  136. package/dist/engine/spec-changelog/core.js +175 -0
  137. package/dist/engine/spec-changelog/core.js.map +1 -0
  138. package/dist/engine/spec-changelog/diff.d.ts +18 -0
  139. package/dist/engine/spec-changelog/diff.d.ts.map +1 -0
  140. package/dist/engine/spec-changelog/diff.js +116 -0
  141. package/dist/engine/spec-changelog/diff.js.map +1 -0
  142. package/dist/engine/spec-changelog/index.d.ts +3 -0
  143. package/dist/engine/spec-changelog/index.d.ts.map +1 -0
  144. package/dist/engine/spec-changelog/index.js +4 -0
  145. package/dist/engine/spec-changelog/index.js.map +1 -0
  146. package/dist/engine/spec-coverage/core.d.ts +14 -0
  147. package/dist/engine/spec-coverage/core.d.ts.map +1 -0
  148. package/dist/engine/spec-coverage/core.js +132 -0
  149. package/dist/engine/spec-coverage/core.js.map +1 -0
  150. package/dist/engine/spec-coverage/criteria-mapper.d.ts +18 -0
  151. package/dist/engine/spec-coverage/criteria-mapper.d.ts.map +1 -0
  152. package/dist/engine/spec-coverage/criteria-mapper.js +306 -0
  153. package/dist/engine/spec-coverage/criteria-mapper.js.map +1 -0
  154. package/dist/engine/spec-coverage/index.d.ts +4 -0
  155. package/dist/engine/spec-coverage/index.d.ts.map +1 -0
  156. package/dist/engine/spec-coverage/index.js +5 -0
  157. package/dist/engine/spec-coverage/index.js.map +1 -0
  158. package/dist/engine/spec-coverage/test-finder.d.ts +17 -0
  159. package/dist/engine/spec-coverage/test-finder.d.ts.map +1 -0
  160. package/dist/engine/spec-coverage/test-finder.js +250 -0
  161. package/dist/engine/spec-coverage/test-finder.js.map +1 -0
  162. package/dist/engine/spec-templates/catalog-extra.d.ts +4 -0
  163. package/dist/engine/spec-templates/catalog-extra.d.ts.map +1 -0
  164. package/dist/engine/spec-templates/catalog-extra.js +367 -0
  165. package/dist/engine/spec-templates/catalog-extra.js.map +1 -0
  166. package/dist/engine/spec-templates/catalog.d.ts +4 -0
  167. package/dist/engine/spec-templates/catalog.d.ts.map +1 -0
  168. package/dist/engine/spec-templates/catalog.js +386 -0
  169. package/dist/engine/spec-templates/catalog.js.map +1 -0
  170. package/dist/engine/spec-templates/index.d.ts +4 -0
  171. package/dist/engine/spec-templates/index.d.ts.map +1 -0
  172. package/dist/engine/spec-templates/index.js +5 -0
  173. package/dist/engine/spec-templates/index.js.map +1 -0
  174. package/dist/engine/spec-templates/query.d.ts +14 -0
  175. package/dist/engine/spec-templates/query.d.ts.map +1 -0
  176. package/dist/engine/spec-templates/query.js +56 -0
  177. package/dist/engine/spec-templates/query.js.map +1 -0
  178. package/dist/engine/spec-templates/renderer.d.ts +19 -0
  179. package/dist/engine/spec-templates/renderer.d.ts.map +1 -0
  180. package/dist/engine/spec-templates/renderer.js +45 -0
  181. package/dist/engine/spec-templates/renderer.js.map +1 -0
  182. package/dist/engine/usage-tracker/trial.d.ts +4 -4
  183. package/dist/engine/usage-tracker/trial.d.ts.map +1 -1
  184. package/dist/engine/usage-tracker/trial.js +4 -4
  185. package/dist/engine/usage-tracker/trial.js.map +1 -1
  186. package/dist/engine/webhook/event-handlers.d.ts +25 -0
  187. package/dist/engine/webhook/event-handlers.d.ts.map +1 -0
  188. package/dist/engine/webhook/event-handlers.js +89 -0
  189. package/dist/engine/webhook/event-handlers.js.map +1 -0
  190. package/dist/engine/webhook/index.d.ts +4 -0
  191. package/dist/engine/webhook/index.d.ts.map +1 -0
  192. package/dist/engine/webhook/index.js +5 -0
  193. package/dist/engine/webhook/index.js.map +1 -0
  194. package/dist/engine/webhook/server.d.ts +18 -0
  195. package/dist/engine/webhook/server.d.ts.map +1 -0
  196. package/dist/engine/webhook/server.js +187 -0
  197. package/dist/engine/webhook/server.js.map +1 -0
  198. package/dist/engine/webhook/signature.d.ts +16 -0
  199. package/dist/engine/webhook/signature.d.ts.map +1 -0
  200. package/dist/engine/webhook/signature.js +49 -0
  201. package/dist/engine/webhook/signature.js.map +1 -0
  202. package/dist/index.js +18 -0
  203. package/dist/index.js.map +1 -1
  204. package/dist/storage/hooks-store.d.ts +34 -0
  205. package/dist/storage/hooks-store.d.ts.map +1 -0
  206. package/dist/storage/hooks-store.js +128 -0
  207. package/dist/storage/hooks-store.js.map +1 -0
  208. package/dist/storage/index.d.ts +1 -0
  209. package/dist/storage/index.d.ts.map +1 -1
  210. package/dist/storage/index.js +1 -0
  211. package/dist/storage/index.js.map +1 -1
  212. package/dist/tools/check-spec-accuracy.d.ts +7 -0
  213. package/dist/tools/check-spec-accuracy.d.ts.map +1 -0
  214. package/dist/tools/check-spec-accuracy.js +28 -0
  215. package/dist/tools/check-spec-accuracy.js.map +1 -0
  216. package/dist/tools/ci-generator.d.ts +7 -0
  217. package/dist/tools/ci-generator.d.ts.map +1 -0
  218. package/dist/tools/ci-generator.js +49 -0
  219. package/dist/tools/ci-generator.js.map +1 -0
  220. package/dist/tools/create-spec.d.ts.map +1 -1
  221. package/dist/tools/create-spec.js +4 -0
  222. package/dist/tools/create-spec.js.map +1 -1
  223. package/dist/tools/dashboard.d.ts +6 -0
  224. package/dist/tools/dashboard.d.ts.map +1 -0
  225. package/dist/tools/dashboard.js +48 -0
  226. package/dist/tools/dashboard.js.map +1 -0
  227. package/dist/tools/detect-drift.d.ts.map +1 -1
  228. package/dist/tools/detect-drift.js +6 -0
  229. package/dist/tools/detect-drift.js.map +1 -1
  230. package/dist/tools/estimate-ai-cost.d.ts +8 -0
  231. package/dist/tools/estimate-ai-cost.d.ts.map +1 -0
  232. package/dist/tools/estimate-ai-cost.js +29 -0
  233. package/dist/tools/estimate-ai-cost.js.map +1 -0
  234. package/dist/tools/list-specs.d.ts.map +1 -1
  235. package/dist/tools/list-specs.js +15 -0
  236. package/dist/tools/list-specs.js.map +1 -1
  237. package/dist/tools/manage-hooks.d.ts +5 -0
  238. package/dist/tools/manage-hooks.d.ts.map +1 -0
  239. package/dist/tools/manage-hooks.js +247 -0
  240. package/dist/tools/manage-hooks.js.map +1 -0
  241. package/dist/tools/reconcile-spec.d.ts.map +1 -1
  242. package/dist/tools/reconcile-spec.js +24 -0
  243. package/dist/tools/reconcile-spec.js.map +1 -1
  244. package/dist/tools/register-ai-cost-tools.d.ts +3 -0
  245. package/dist/tools/register-ai-cost-tools.d.ts.map +1 -0
  246. package/dist/tools/register-ai-cost-tools.js +25 -0
  247. package/dist/tools/register-ai-cost-tools.js.map +1 -0
  248. package/dist/tools/register-changelog-tools.d.ts +3 -0
  249. package/dist/tools/register-changelog-tools.d.ts.map +1 -0
  250. package/dist/tools/register-changelog-tools.js +23 -0
  251. package/dist/tools/register-changelog-tools.js.map +1 -0
  252. package/dist/tools/register-ci-tools.d.ts +3 -0
  253. package/dist/tools/register-ci-tools.d.ts.map +1 -0
  254. package/dist/tools/register-ci-tools.js +50 -0
  255. package/dist/tools/register-ci-tools.js.map +1 -0
  256. package/dist/tools/register-coverage-tools.d.ts +7 -0
  257. package/dist/tools/register-coverage-tools.d.ts.map +1 -0
  258. package/dist/tools/register-coverage-tools.js +27 -0
  259. package/dist/tools/register-coverage-tools.js.map +1 -0
  260. package/dist/tools/register-dashboard-tools.d.ts +3 -0
  261. package/dist/tools/register-dashboard-tools.d.ts.map +1 -0
  262. package/dist/tools/register-dashboard-tools.js +29 -0
  263. package/dist/tools/register-dashboard-tools.js.map +1 -0
  264. package/dist/tools/register-hooks-tools.d.ts +3 -0
  265. package/dist/tools/register-hooks-tools.d.ts.map +1 -0
  266. package/dist/tools/register-hooks-tools.js +107 -0
  267. package/dist/tools/register-hooks-tools.js.map +1 -0
  268. package/dist/tools/register-registry-tools.d.ts +3 -0
  269. package/dist/tools/register-registry-tools.d.ts.map +1 -0
  270. package/dist/tools/register-registry-tools.js +43 -0
  271. package/dist/tools/register-registry-tools.js.map +1 -0
  272. package/dist/tools/register-template-tools.d.ts +8 -0
  273. package/dist/tools/register-template-tools.d.ts.map +1 -0
  274. package/dist/tools/register-template-tools.js +71 -0
  275. package/dist/tools/register-template-tools.js.map +1 -0
  276. package/dist/tools/register-webhook-tools.d.ts +3 -0
  277. package/dist/tools/register-webhook-tools.d.ts.map +1 -0
  278. package/dist/tools/register-webhook-tools.js +49 -0
  279. package/dist/tools/register-webhook-tools.js.map +1 -0
  280. package/dist/tools/schemas/index.d.ts +1 -0
  281. package/dist/tools/schemas/index.d.ts.map +1 -1
  282. package/dist/tools/schemas/index.js +1 -0
  283. package/dist/tools/schemas/index.js.map +1 -1
  284. package/dist/tools/schemas/registry.d.ts +41 -0
  285. package/dist/tools/schemas/registry.d.ts.map +1 -0
  286. package/dist/tools/schemas/registry.js +62 -0
  287. package/dist/tools/schemas/registry.js.map +1 -0
  288. package/dist/tools/spec-coverage.d.ts +3 -0
  289. package/dist/tools/spec-coverage.d.ts.map +1 -0
  290. package/dist/tools/spec-coverage.js +176 -0
  291. package/dist/tools/spec-coverage.js.map +1 -0
  292. package/dist/tools/spec-history.d.ts +3 -0
  293. package/dist/tools/spec-history.d.ts.map +1 -0
  294. package/dist/tools/spec-history.js +67 -0
  295. package/dist/tools/spec-history.js.map +1 -0
  296. package/dist/tools/spec-templates.d.ts +10 -0
  297. package/dist/tools/spec-templates.d.ts.map +1 -0
  298. package/dist/tools/spec-templates.js +155 -0
  299. package/dist/tools/spec-templates.js.map +1 -0
  300. package/dist/tools/update-registry.d.ts +8 -0
  301. package/dist/tools/update-registry.d.ts.map +1 -0
  302. package/dist/tools/update-registry.js +53 -0
  303. package/dist/tools/update-registry.js.map +1 -0
  304. package/dist/tools/update-status.d.ts.map +1 -1
  305. package/dist/tools/update-status.js +24 -0
  306. package/dist/tools/update-status.js.map +1 -1
  307. package/dist/tools/webhook.d.ts +6 -0
  308. package/dist/tools/webhook.d.ts.map +1 -0
  309. package/dist/tools/webhook.js +150 -0
  310. package/dist/tools/webhook.js.map +1 -0
  311. package/dist/types/ai-cost.d.ts +98 -0
  312. package/dist/types/ai-cost.d.ts.map +1 -0
  313. package/dist/types/ai-cost.js +4 -0
  314. package/dist/types/ai-cost.js.map +1 -0
  315. package/dist/types/analysis.d.ts +64 -0
  316. package/dist/types/analysis.d.ts.map +1 -1
  317. package/dist/types/changelog.d.ts +49 -0
  318. package/dist/types/changelog.d.ts.map +1 -0
  319. package/dist/types/changelog.js +3 -0
  320. package/dist/types/changelog.js.map +1 -0
  321. package/dist/types/ci.d.ts +105 -0
  322. package/dist/types/ci.d.ts.map +1 -0
  323. package/dist/types/ci.js +3 -0
  324. package/dist/types/ci.js.map +1 -0
  325. package/dist/types/coverage.d.ts +95 -0
  326. package/dist/types/coverage.d.ts.map +1 -0
  327. package/dist/types/coverage.js +4 -0
  328. package/dist/types/coverage.js.map +1 -0
  329. package/dist/types/hooks.d.ts +139 -0
  330. package/dist/types/hooks.d.ts.map +1 -0
  331. package/dist/types/hooks.js +3 -0
  332. package/dist/types/hooks.js.map +1 -0
  333. package/dist/types/index.d.ts +8 -0
  334. package/dist/types/index.d.ts.map +1 -1
  335. package/dist/types/index.js +8 -0
  336. package/dist/types/index.js.map +1 -1
  337. package/dist/types/registry.d.ts +90 -0
  338. package/dist/types/registry.d.ts.map +1 -0
  339. package/dist/types/registry.js +5 -0
  340. package/dist/types/registry.js.map +1 -0
  341. package/dist/types/spec-templates.d.ts +87 -0
  342. package/dist/types/spec-templates.d.ts.map +1 -0
  343. package/dist/types/spec-templates.js +3 -0
  344. package/dist/types/spec-templates.js.map +1 -0
  345. package/dist/types/ui.d.ts +76 -0
  346. package/dist/types/ui.d.ts.map +1 -1
  347. package/dist/types/webhook.d.ts +62 -0
  348. package/dist/types/webhook.d.ts.map +1 -0
  349. package/dist/types/webhook.js +4 -0
  350. package/dist/types/webhook.js.map +1 -0
  351. package/package.json +1 -1
  352. package/src/config/ai-model-pricing.json +81 -0
  353. package/src/config/framework-registry/csharp-aspnet.json +67 -0
  354. package/src/config/framework-registry/dart-flutter.json +61 -0
  355. package/src/config/framework-registry/go-gin.json +62 -0
  356. package/src/config/framework-registry/index.json +164 -0
  357. package/src/config/framework-registry/java-springboot.json +67 -0
  358. package/src/config/framework-registry/php-laravel.json +67 -0
  359. package/src/config/framework-registry/python-django.json +72 -0
  360. package/src/config/framework-registry/python-fastapi.json +72 -0
  361. package/src/config/framework-registry/ruby-rails.json +67 -0
  362. package/src/config/framework-registry/rust-actix.json +61 -0
  363. package/src/config/framework-registry/swift-swiftui.json +67 -0
  364. package/src/config/framework-registry/typescript-angular.json +67 -0
  365. package/src/config/framework-registry/typescript-astro.json +61 -0
  366. package/src/config/framework-registry/typescript-express.json +67 -0
  367. package/src/config/framework-registry/typescript-nestjs.json +62 -0
  368. package/src/config/framework-registry/typescript-nextjs.json +82 -0
  369. package/src/config/framework-registry/typescript-nuxt.json +67 -0
  370. package/src/config/framework-registry/typescript-react.json +77 -0
  371. package/src/config/framework-registry/typescript-remix.json +61 -0
  372. package/src/config/framework-registry/typescript-sveltekit.json +67 -0
  373. package/src/config/framework-registry/typescript-vue.json +72 -0
  374. package/src/config/license-plans.json +23 -3
@@ -0,0 +1,150 @@
1
+ // tools/webhook.ts — Handlers for webhook management MCP tools.
2
+ // start_webhook, stop_webhook, webhook_status
3
+ import { startWebhookServer, stopWebhookServer, getWebhookState, setWebhookSecret, } from '../engine/webhook/index.js';
4
+ // ---------------------------------------------------------------------------
5
+ // Tool handlers
6
+ // ---------------------------------------------------------------------------
7
+ export async function handleStartWebhook(args) {
8
+ const port = args.port ?? 2358;
9
+ const secret = args.secret ?? '';
10
+ if (port < 1 || port > 65535) {
11
+ return {
12
+ content: [{ type: 'text', text: 'Error: port must be between 1 and 65535.' }],
13
+ isError: true,
14
+ };
15
+ }
16
+ const current = getWebhookState();
17
+ if (current.running) {
18
+ return {
19
+ content: [
20
+ {
21
+ type: 'text',
22
+ text: [
23
+ 'Webhook server is already running.',
24
+ `Port: ${String(current.port)}`,
25
+ `Started: ${current.startedAt ?? 'unknown'}`,
26
+ '',
27
+ 'Use stop_webhook first to restart on a different port.',
28
+ ].join('\n'),
29
+ },
30
+ ],
31
+ };
32
+ }
33
+ if (secret) {
34
+ setWebhookSecret(secret);
35
+ }
36
+ try {
37
+ const state = await startWebhookServer(port);
38
+ const secretMsg = secret
39
+ ? 'HMAC-SHA256 signature validation enabled.'
40
+ : 'Warning: no webhook secret set — all requests will be accepted.';
41
+ return {
42
+ content: [
43
+ {
44
+ type: 'text',
45
+ text: [
46
+ 'Webhook server started.',
47
+ `URL: http://localhost:${String(state.port)}/`,
48
+ `Port: ${String(state.port)}`,
49
+ `Started: ${state.startedAt ?? 'unknown'}`,
50
+ '',
51
+ secretMsg,
52
+ '',
53
+ 'Configure this URL in your Lemon Squeezy dashboard under:',
54
+ ' Settings > Webhooks > Add webhook',
55
+ '',
56
+ 'Supported events:',
57
+ ' • subscription_cancelled',
58
+ ' • subscription_updated',
59
+ ' • license_key_created',
60
+ ].join('\n'),
61
+ },
62
+ ],
63
+ };
64
+ }
65
+ catch (err) {
66
+ const message = err instanceof Error ? err.message : String(err);
67
+ return {
68
+ content: [
69
+ {
70
+ type: 'text',
71
+ text: [
72
+ `Failed to start webhook server: ${message}`,
73
+ '',
74
+ 'Common causes:',
75
+ `• Port ${String(port)} is already in use — try a different port`,
76
+ '• Insufficient permissions for ports below 1024',
77
+ ].join('\n'),
78
+ },
79
+ ],
80
+ isError: true,
81
+ };
82
+ }
83
+ }
84
+ export async function handleStopWebhook(_args) {
85
+ const current = getWebhookState();
86
+ if (!current.running) {
87
+ return {
88
+ content: [{ type: 'text', text: 'Webhook server is not running.' }],
89
+ };
90
+ }
91
+ // force flag reserved for future use (e.g., drop active connections)
92
+ try {
93
+ await stopWebhookServer();
94
+ return {
95
+ content: [
96
+ {
97
+ type: 'text',
98
+ text: [
99
+ 'Webhook server stopped.',
100
+ `Events processed during session: ${String(current.eventsProcessed)}`,
101
+ ].join('\n'),
102
+ },
103
+ ],
104
+ };
105
+ }
106
+ catch (err) {
107
+ const message = err instanceof Error ? err.message : String(err);
108
+ return {
109
+ content: [{ type: 'text', text: `Failed to stop webhook server: ${message}` }],
110
+ isError: true,
111
+ };
112
+ }
113
+ }
114
+ export function handleWebhookStatus(args) {
115
+ const state = getWebhookState();
116
+ const includeEvents = args.includeEvents ?? true;
117
+ const lines = [
118
+ `Status: ${state.running ? 'RUNNING' : 'STOPPED'}`,
119
+ `Port: ${String(state.port)}`,
120
+ `Started: ${state.startedAt ?? 'N/A'}`,
121
+ `Events processed: ${String(state.eventsProcessed)}`,
122
+ ];
123
+ if (includeEvents && state.recentEvents.length > 0) {
124
+ lines.push('', 'Recent events:');
125
+ for (const event of state.recentEvents) {
126
+ const status = event.processed ? 'OK' : 'FAIL';
127
+ lines.push(` [${status}] ${event.receivedAt} | ${event.eventType} | ${event.summary}`);
128
+ }
129
+ }
130
+ else if (includeEvents) {
131
+ lines.push('', 'No events received yet.');
132
+ }
133
+ if (!state.running) {
134
+ lines.push('', 'Use start_webhook to begin receiving Lemon Squeezy events.');
135
+ }
136
+ return {
137
+ content: [{ type: 'text', text: lines.join('\n') }],
138
+ };
139
+ }
140
+ // ---------------------------------------------------------------------------
141
+ // Internal helper (exported for testing)
142
+ // ---------------------------------------------------------------------------
143
+ export function formatStateForDisplay(state) {
144
+ return [
145
+ `running=${String(state.running)}`,
146
+ `port=${String(state.port)}`,
147
+ `eventsProcessed=${String(state.eventsProcessed)}`,
148
+ ].join(', ');
149
+ }
150
+ //# sourceMappingURL=webhook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../src/tools/webhook.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,8CAA8C;AAS9C,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,GACjB,MAAM,4BAA4B,CAAC;AAEpC,8EAA8E;AAC9E,gBAAgB;AAChB,8EAA8E;AAE9E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAuB;IAC9D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IAEjC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;QAC7B,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAC;YAC7E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAClC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,oCAAoC;wBACpC,SAAS,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;wBAC/B,YAAY,OAAO,CAAC,SAAS,IAAI,SAAS,EAAE;wBAC5C,EAAE;wBACF,wDAAwD;qBACzD,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM;YACtB,CAAC,CAAC,2CAA2C;YAC7C,CAAC,CAAC,iEAAiE,CAAC;QAEtE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,yBAAyB;wBACzB,yBAAyB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;wBAC9C,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;wBAC7B,YAAY,KAAK,CAAC,SAAS,IAAI,SAAS,EAAE;wBAC1C,EAAE;wBACF,SAAS;wBACT,EAAE;wBACF,2DAA2D;wBAC3D,qCAAqC;wBACrC,EAAE;wBACF,mBAAmB;wBACnB,4BAA4B;wBAC5B,0BAA0B;wBAC1B,yBAAyB;qBAC1B,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,mCAAmC,OAAO,EAAE;wBAC5C,EAAE;wBACF,gBAAgB;wBAChB,UAAU,MAAM,CAAC,IAAI,CAAC,2CAA2C;wBACjE,iDAAiD;qBAClD,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;YACD,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAuB;IAC7D,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;IAElC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;SACpE,CAAC;IACJ,CAAC;IAED,qEAAqE;IAErE,IAAI,CAAC;QACH,MAAM,iBAAiB,EAAE,CAAC;QAC1B,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,yBAAyB;wBACzB,oCAAoC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE;qBACtE,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kCAAkC,OAAO,EAAE,EAAE,CAAC;YAC9E,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAwB;IAC1D,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;IAEjD,MAAM,KAAK,GAAa;QACtB,WAAW,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC7B,YAAY,KAAK,CAAC,SAAS,IAAI,KAAK,EAAE;QACtC,qBAAqB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;KACrD,CAAC;IAEF,IAAI,aAAa,IAAI,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,MAAM,MAAM,KAAK,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;SAAM,IAAI,aAAa,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,yBAAyB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,4DAA4D,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,yCAAyC;AACzC,8EAA8E;AAE9E,MAAM,UAAU,qBAAqB,CAAC,KAAyB;IAC7D,OAAO;QACL,WAAW,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;QAClC,QAAQ,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;QAC5B,mBAAmB,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,EAAE;KACnD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -0,0 +1,98 @@
1
+ export interface AiModelConfig {
2
+ /** Unique model identifier (e.g., "claude-opus-4") */
3
+ readonly id: string;
4
+ /** Human-readable display name */
5
+ readonly displayName: string;
6
+ /** AI provider */
7
+ readonly provider: 'Anthropic' | 'OpenAI' | 'Google';
8
+ /** USD cost per million input tokens */
9
+ readonly inputPricePerMillion: number;
10
+ /** USD cost per million output tokens */
11
+ readonly outputPricePerMillion: number;
12
+ /** Average lines of code generated per agent turn */
13
+ readonly avgThroughputLOCPerTurn: number;
14
+ /** Context window size in thousands of tokens */
15
+ readonly contextWindowK: number;
16
+ }
17
+ export interface LanguageTokenRatio {
18
+ /** Language identifier (e.g., "typescript") */
19
+ readonly language: string;
20
+ /** Average tokens per character for this language */
21
+ readonly tokensPerChar: number;
22
+ }
23
+ export interface TokenEstimate {
24
+ /** Total input tokens (context + spec + tools) */
25
+ readonly inputTokens: number;
26
+ /** Total output tokens (code to generate) */
27
+ readonly outputTokens: number;
28
+ /** Tokens from codebase context scan */
29
+ readonly codebaseContextTokens: number;
30
+ /** Tokens from reading HU.md + FICHA-TECNICA.md */
31
+ readonly specContentTokens: number;
32
+ /** Tokens from MCP tool definitions overhead */
33
+ readonly toolDefinitionsTokens: number;
34
+ /** Estimated lines of code to generate */
35
+ readonly locToGenerate: number;
36
+ /** Detected language of the project */
37
+ readonly language: string;
38
+ /** Whether usage.json data was used to calibrate output tokens */
39
+ readonly calibratedFromUsage: boolean;
40
+ }
41
+ export interface AiCostEstimate {
42
+ /** Model identifier */
43
+ readonly modelId: string;
44
+ /** Human-readable model name */
45
+ readonly displayName: string;
46
+ /** Input tokens for this estimation */
47
+ readonly inputTokens: number;
48
+ /** Output tokens for this estimation */
49
+ readonly outputTokens: number;
50
+ /** Estimated cost in USD */
51
+ readonly estimatedCostUsd: number;
52
+ /** Confidence range as percentage (e.g., 30 means ±30%) */
53
+ readonly confidenceRangePct: number;
54
+ /** Estimated number of agent turns needed */
55
+ readonly agentTurns: number;
56
+ }
57
+ export interface AiCostEstimateResult {
58
+ /** Spec identifier that was estimated */
59
+ readonly specId: string;
60
+ /** Per-model cost estimates */
61
+ readonly estimates: readonly AiCostEstimate[];
62
+ /** Recommended model ID */
63
+ readonly recommendedModelId: string;
64
+ /** Reason for the recommendation */
65
+ readonly recommendationReason: string;
66
+ /** Estimated savings vs the most expensive model (USD) */
67
+ readonly savingsVsExpensiveModel: number;
68
+ /** Formatted markdown table for display */
69
+ readonly markdownTable: string;
70
+ }
71
+ export interface AiModelPricingConfig {
72
+ /** JSON schema URL */
73
+ readonly $schema?: string;
74
+ /** Config version */
75
+ readonly version: string;
76
+ /** ISO date of last price update */
77
+ readonly lastUpdated: string;
78
+ /** All model configurations */
79
+ readonly models: readonly AiModelConfig[];
80
+ /** Tokens-per-character ratios by language */
81
+ readonly languageTokenRatios: Readonly<Record<string, number>>;
82
+ /** Fixed constants used in estimation */
83
+ readonly constants: {
84
+ /** Fixed token overhead for MCP tool definitions */
85
+ readonly toolDefinitionsOverheadTokens: number;
86
+ /** Average characters per token (used for text→token conversion) */
87
+ readonly charsPerToken: number;
88
+ /** Average characters per line of code */
89
+ readonly avgLOCChars: number;
90
+ };
91
+ }
92
+ export interface EstimateAiCostInput {
93
+ /** Spec ID to estimate (e.g., "SPEC-069") */
94
+ readonly specId: string;
95
+ /** Optional path to the project directory for codebase context scanning */
96
+ readonly projectPath?: string;
97
+ }
98
+ //# sourceMappingURL=ai-cost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-cost.d.ts","sourceRoot":"","sources":["../../src/types/ai-cost.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,kBAAkB;IAClB,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrD,wCAAwC;IACxC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,yCAAyC;IACzC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,qDAAqD;IACrD,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,iDAAiD;IACjD,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;CACjC;AAMD,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAMD,MAAM,WAAW,aAAa;IAC5B,kDAAkD;IAClD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,wCAAwC;IACxC,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,mDAAmD;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,gDAAgD;IAChD,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;IACvC,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,kEAAkE;IAClE,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAMD,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gCAAgC;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,2DAA2D;IAC3D,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,6CAA6C;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;CAC7B;AAMD,MAAM,WAAW,oBAAoB;IACnC,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IAC9C,2BAA2B;IAC3B,QAAQ,CAAC,kBAAkB,EAAE,MAAM,CAAC;IACpC,oCAAoC;IACpC,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;IACtC,0DAA0D;IAC1D,QAAQ,CAAC,uBAAuB,EAAE,MAAM,CAAC;IACzC,2CAA2C;IAC3C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAMD,MAAM,WAAW,oBAAoB;IACnC,sBAAsB;IACtB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,CAAC;IAC1C,8CAA8C;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/D,yCAAyC;IACzC,QAAQ,CAAC,SAAS,EAAE;QAClB,oDAAoD;QACpD,QAAQ,CAAC,6BAA6B,EAAE,MAAM,CAAC;QAC/C,oEAAoE;QACpE,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,0CAA0C;QAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;AAMD,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B"}
@@ -0,0 +1,4 @@
1
+ // types/ai-cost.ts — AI cost estimation types for Planu SDD MCP Server.
2
+ // Supports estimating token counts and USD costs across multiple AI providers.
3
+ export {};
4
+ //# sourceMappingURL=ai-cost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-cost.js","sourceRoot":"","sources":["../../src/types/ai-cost.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,+EAA+E"}
@@ -163,4 +163,68 @@ export interface FunctionInfo {
163
163
  startLine: number;
164
164
  length: number;
165
165
  }
166
+ /** A single pattern entry — correct, deprecated, or common mistake. */
167
+ export interface FrameworkPattern {
168
+ /** Human-readable description of the pattern. */
169
+ pattern: string;
170
+ /** Optional code example illustrating the pattern. */
171
+ example?: string;
172
+ /** Framework version since which this pattern applies (for correctPatterns). */
173
+ since?: string;
174
+ /** The replacement for deprecated/mistake patterns. */
175
+ replacedBy?: string;
176
+ /** Severity when the pattern is problematic (deprecated / mistake). */
177
+ severity?: 'error' | 'warning';
178
+ }
179
+ /** Full registry entry for one framework. */
180
+ export interface RegistryEntry {
181
+ /** Unique machine-friendly ID, e.g. "nextjs". */
182
+ framework: string;
183
+ /** Human-readable name, e.g. "Next.js". */
184
+ displayName: string;
185
+ /** Reference version range, e.g. "14.x". */
186
+ frameworkVersion: string;
187
+ /** ISO date of last manual update. */
188
+ lastUpdated: string;
189
+ /** Language/platform ecosystem, e.g. "typescript", "python". */
190
+ ecosystem: string;
191
+ /** Patterns that are correct and recommended in this version. */
192
+ correctPatterns: FrameworkPattern[];
193
+ /** Patterns that are outdated / removed. */
194
+ deprecatedPatterns: FrameworkPattern[];
195
+ /** Common LLM hallucinations or misuses. */
196
+ commonMistakes: FrameworkPattern[];
197
+ /** true when added by the user via update_registry, not shipped with Planu. */
198
+ customEntry: boolean;
199
+ }
200
+ /** A single accuracy problem detected in a spec. */
201
+ export interface SpecAccuracyIssue {
202
+ /** Category of the problem. */
203
+ type: 'invalid-api' | 'deprecated-pattern' | 'unknown-framework';
204
+ /** The framework this issue belongs to. */
205
+ framework: string;
206
+ /** The exact text snippet that triggered the issue. */
207
+ reference: string;
208
+ /** Human-readable correction hint. */
209
+ suggestion?: string;
210
+ /** How critical the issue is. */
211
+ severity: 'error' | 'warning' | 'info';
212
+ }
213
+ /** Full accuracy report returned by check_spec_accuracy. */
214
+ export interface SpecAccuracyReport {
215
+ /** Confidence score 0-100 (100 = all references validated). */
216
+ score: number;
217
+ /** All detected issues. */
218
+ issues: SpecAccuracyIssue[];
219
+ /** Framework IDs auto-detected in the spec text. */
220
+ frameworksDetected: string[];
221
+ /** Framework names mentioned in the spec that are not in the registry. */
222
+ frameworksNotInRegistry: string[];
223
+ /** Total number of API/pattern references examined. */
224
+ totalReferencesChecked: number;
225
+ /** How many of those references were found in the registry. */
226
+ validatedReferences: number;
227
+ /** Framework IDs whose registry entry is older than 180 days. */
228
+ staleRegistryEntries: string[];
229
+ }
166
230
  //# sourceMappingURL=analysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../../src/types/analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ export type ChangelogEntryType = 'criteria_added' | 'criteria_removed' | 'status_changed' | 'scope_changed' | 'progress_updated' | 'reconciled';
2
+ export interface CriteriaDiff {
3
+ added: string[];
4
+ removed: string[];
5
+ modified: {
6
+ before: string;
7
+ after: string;
8
+ }[];
9
+ }
10
+ export interface SpecSnapshot {
11
+ criteriaCount: number;
12
+ completedCount: number;
13
+ status: string;
14
+ }
15
+ export interface SpecChangelogEntry {
16
+ timestamp: string;
17
+ type: ChangelogEntryType;
18
+ description: string;
19
+ triggeredBy: string;
20
+ before?: SpecSnapshot;
21
+ after?: SpecSnapshot;
22
+ diff?: CriteriaDiff;
23
+ }
24
+ export interface SpecChangelogData {
25
+ specId: string;
26
+ entries: SpecChangelogEntry[];
27
+ }
28
+ export interface AppendChangelogOptions {
29
+ specDir: string;
30
+ specId: string;
31
+ entry: SpecChangelogEntry;
32
+ }
33
+ export interface ReadChangelogOptions {
34
+ specDir: string;
35
+ specId: string;
36
+ }
37
+ export interface SpecHistoryInput {
38
+ specId: string;
39
+ specDir: string;
40
+ filter?: string;
41
+ }
42
+ export interface SpecHistoryResult {
43
+ specId: string;
44
+ entries: SpecChangelogEntry[];
45
+ totalEntries: number;
46
+ filtered: boolean;
47
+ message: string;
48
+ }
49
+ //# sourceMappingURL=changelog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.d.ts","sourceRoot":"","sources":["../../src/types/changelog.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,kBAAkB,GAC1B,gBAAgB,GAChB,kBAAkB,GAClB,gBAAgB,GAChB,eAAe,GACf,kBAAkB,GAClB,YAAY,CAAC;AAEjB,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,kBAAkB,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,kBAAkB,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,3 @@
1
+ // types/changelog.ts — Changelog and spec diff types for SPEC-067
2
+ export {};
3
+ //# sourceMappingURL=changelog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changelog.js","sourceRoot":"","sources":["../../src/types/changelog.ts"],"names":[],"mappings":"AAAA,kEAAkE"}
@@ -0,0 +1,105 @@
1
+ /** Ecosystems supported for CI workflow generation */
2
+ export type CIEcosystem = 'nodejs' | 'python' | 'go' | 'rust' | 'java' | 'kotlin' | 'ruby' | 'php' | 'dotnet' | 'dart' | 'unknown';
3
+ /** Package managers detected per ecosystem */
4
+ export type NodePackageManager = 'pnpm' | 'npm' | 'yarn' | 'bun';
5
+ export type PythonPackageManager = 'pip' | 'poetry' | 'uv';
6
+ export type JavaBuildTool = 'maven' | 'gradle';
7
+ /** CI job types that can be included in a workflow */
8
+ export type CIJobType = 'lint' | 'test' | 'build' | 'deploy';
9
+ /** GitHub Actions trigger events */
10
+ export type CITriggerEvent = 'push' | 'pull_request' | 'workflow_dispatch' | 'schedule';
11
+ /** Node.js version specifier for matrix or single version */
12
+ export interface NodeVersionConfig {
13
+ version: string;
14
+ useMatrix: boolean;
15
+ matrixVersions?: string[];
16
+ }
17
+ /** Python version specifier */
18
+ export interface PythonVersionConfig {
19
+ version: string;
20
+ useMatrix: boolean;
21
+ matrixVersions?: string[];
22
+ }
23
+ /** Go version specifier */
24
+ export interface GoVersionConfig {
25
+ version: string;
26
+ }
27
+ /** Rust toolchain specifier */
28
+ export interface RustToolchainConfig {
29
+ channel: 'stable' | 'beta' | 'nightly';
30
+ }
31
+ /** Java version specifier */
32
+ export interface JavaVersionConfig {
33
+ version: string;
34
+ distribution: 'temurin' | 'zulu' | 'corretto' | 'microsoft';
35
+ }
36
+ /** Cache configuration for a CI job */
37
+ export interface CICacheConfig {
38
+ enabled: boolean;
39
+ paths: string[];
40
+ keyPrefix: string;
41
+ }
42
+ /** A single step in a CI job */
43
+ export interface CIStep {
44
+ name: string;
45
+ uses?: string;
46
+ run?: string;
47
+ with?: Record<string, string | number | boolean>;
48
+ env?: Record<string, string>;
49
+ if?: string;
50
+ }
51
+ /** A single job in a GitHub Actions workflow */
52
+ export interface CIJob {
53
+ name: string;
54
+ runsOn: string;
55
+ needs?: string[];
56
+ steps: CIStep[];
57
+ env?: Record<string, string>;
58
+ outputs?: Record<string, string>;
59
+ }
60
+ /** Complete GitHub Actions workflow configuration */
61
+ export interface CIWorkflow {
62
+ name: string;
63
+ filename: string;
64
+ triggers: CITriggerEvent[];
65
+ jobs: Record<string, CIJob>;
66
+ }
67
+ /** Detected project stack information for CI generation */
68
+ export interface CIStackContext {
69
+ ecosystem: CIEcosystem;
70
+ language: string;
71
+ packageManager: string;
72
+ testCommand: string;
73
+ lintCommand: string;
74
+ buildCommand: string;
75
+ hasDocker: boolean;
76
+ nodeVersion?: string;
77
+ pythonVersion?: string;
78
+ goVersion?: string;
79
+ rustChannel?: string;
80
+ javaVersion?: string;
81
+ javaDistribution?: string;
82
+ javaBuildTool?: JavaBuildTool;
83
+ }
84
+ /** Result of CI workflow generation */
85
+ export interface GenerateCIResult {
86
+ ecosystem: CIEcosystem;
87
+ workflowPath: string;
88
+ yamlContent: string;
89
+ jobs: CIJobType[];
90
+ stackContext: CIStackContext;
91
+ }
92
+ /** Input arguments for the generate_ci tool */
93
+ export interface GenerateCIInput {
94
+ projectId: string;
95
+ projectPath: string;
96
+ jobs?: CIJobType[];
97
+ triggers?: CITriggerEvent[];
98
+ nodeVersion?: string;
99
+ pythonVersion?: string;
100
+ goVersion?: string;
101
+ rustChannel?: 'stable' | 'beta' | 'nightly';
102
+ javaVersion?: string;
103
+ workflowName?: string;
104
+ }
105
+ //# sourceMappingURL=ci.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Planu — CI/CD types (SPEC-066)
2
+ export {};
3
+ //# sourceMappingURL=ci.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/types/ci.ts"],"names":[],"mappings":"AAAA,iCAAiC"}
@@ -0,0 +1,95 @@
1
+ /** Status of a single criterion based on test coverage analysis. */
2
+ export type CriteriaStatus = 'covered' | 'superficial' | 'uncovered';
3
+ /** Coverage grade derived from score percentage. */
4
+ export type CoverageGrade = 'A' | 'B' | 'C' | 'D';
5
+ /** Strategy used to map a test to a criterion. */
6
+ export type MappingStrategy = 'direct-reference' | 'spec-reference' | 'heuristic';
7
+ /** Raw parsed acceptance criterion from HU.md. */
8
+ export interface RawCriterion {
9
+ /** AC identifier (e.g., "AC-01"). */
10
+ readonly acId: string;
11
+ /** Truncated human-readable description. */
12
+ readonly description: string;
13
+ /** Full raw text from the markdown line. */
14
+ readonly rawText: string;
15
+ }
16
+ /** A single test file discovered in the project (SPEC-068 coverage domain). */
17
+ export interface CoverageTestFile {
18
+ /** Absolute or project-relative path to the test file. */
19
+ readonly file: string;
20
+ /** Ecosystem that owns this test file (e.g., "typescript", "python"). */
21
+ readonly ecosystem: string;
22
+ /** Whether the test file is detected as superficial (empty, skip, todo). */
23
+ readonly isSuperficial: boolean;
24
+ }
25
+ /** A specific test match within a file. */
26
+ export interface TestMatch {
27
+ /** Path to the test file. */
28
+ readonly file: string;
29
+ /** Name of the matching test (describe/it/test block name), if extractable. */
30
+ readonly testName: string;
31
+ /** Strategy that produced this match. */
32
+ readonly strategy: MappingStrategy;
33
+ }
34
+ /** Coverage result for a single acceptance criterion. */
35
+ export interface CriterionCoverage {
36
+ /** Acceptance criterion ID (e.g., "AC-01"). */
37
+ readonly acId: string;
38
+ /** Text of the criterion (truncated to 80 chars). */
39
+ readonly description: string;
40
+ /** Resulting coverage status. */
41
+ readonly status: CriteriaStatus;
42
+ /** Strategy that determined the status (undefined when uncovered). */
43
+ readonly strategy?: MappingStrategy;
44
+ /** Tests mapped to this criterion. */
45
+ readonly tests: readonly TestMatch[];
46
+ }
47
+ /** Detected test runner in the project. */
48
+ export interface TestRunnerInfo {
49
+ /** Runner identifier (e.g., "vitest", "pytest", "go test"). */
50
+ readonly name: string;
51
+ /** Config file that triggered detection. */
52
+ readonly configFile: string;
53
+ /** Ecosystem of the runner. */
54
+ readonly ecosystem: string;
55
+ }
56
+ /** Full coverage analysis result for one spec. */
57
+ export interface SpecCoverageResult {
58
+ /** Spec identifier (e.g., "SPEC-001"). */
59
+ readonly specId: string;
60
+ /** ISO 8601 timestamp of when the analysis was run. */
61
+ readonly analyzedAt: string;
62
+ /** Coverage score (0–100). Only high/medium confidence tests count. */
63
+ readonly score: number;
64
+ /** Letter grade derived from score. */
65
+ readonly grade: CoverageGrade;
66
+ /** Total number of acceptance criteria found in HU.md. */
67
+ readonly totalCriteria: number;
68
+ /** Number of criteria with at least one high/medium confidence test. */
69
+ readonly coveredCriteria: number;
70
+ /** Number of criteria covered only by heuristic (superficial) tests. */
71
+ readonly superficialCriteria: number;
72
+ /** Number of criteria with no tests at all. */
73
+ readonly uncoveredCriteria: number;
74
+ /** Test runners detected in the project. */
75
+ readonly detectedRunners: readonly TestRunnerInfo[];
76
+ /** Per-criterion breakdown. */
77
+ readonly criteria: readonly CriterionCoverage[];
78
+ }
79
+ /** Root structure persisted to data/projects/{hash}/spec-coverage.json. */
80
+ export interface SpecCoverageStore {
81
+ /** Schema version for future migrations. */
82
+ readonly version: 1;
83
+ /** ISO 8601 timestamp of last write. */
84
+ readonly updatedAt: string;
85
+ /** Map of specId → SpecCoverageResult. */
86
+ readonly specs: Record<string, SpecCoverageResult>;
87
+ }
88
+ /** Input schema for the spec_coverage MCP tool. */
89
+ export interface SpecCoverageInput {
90
+ /** Project ID. */
91
+ readonly projectId: string;
92
+ /** Spec ID to analyze, or "all" to analyze every spec in the project. */
93
+ readonly specId: string;
94
+ }
95
+ //# sourceMappingURL=coverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/types/coverage.ts"],"names":[],"mappings":"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"}