@planu/cli 0.43.1 → 0.45.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 (433) hide show
  1. package/dist/cli/colors.d.ts +14 -0
  2. package/dist/cli/colors.d.ts.map +1 -0
  3. package/dist/cli/colors.js +26 -0
  4. package/dist/cli/colors.js.map +1 -0
  5. package/dist/cli/commands/audit.d.ts +3 -0
  6. package/dist/cli/commands/audit.d.ts.map +1 -0
  7. package/dist/cli/commands/audit.js +38 -0
  8. package/dist/cli/commands/audit.js.map +1 -0
  9. package/dist/cli/commands/create.d.ts +3 -0
  10. package/dist/cli/commands/create.d.ts.map +1 -0
  11. package/dist/cli/commands/create.js +50 -0
  12. package/dist/cli/commands/create.js.map +1 -0
  13. package/dist/cli/commands/dashboard.d.ts +3 -0
  14. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  15. package/dist/cli/commands/dashboard.js +29 -0
  16. package/dist/cli/commands/dashboard.js.map +1 -0
  17. package/dist/cli/commands/estimate.d.ts +3 -0
  18. package/dist/cli/commands/estimate.d.ts.map +1 -0
  19. package/dist/cli/commands/estimate.js +36 -0
  20. package/dist/cli/commands/estimate.js.map +1 -0
  21. package/dist/cli/commands/handoff.d.ts +3 -0
  22. package/dist/cli/commands/handoff.d.ts.map +1 -0
  23. package/dist/cli/commands/handoff.js +49 -0
  24. package/dist/cli/commands/handoff.js.map +1 -0
  25. package/dist/cli/commands/init.d.ts +3 -0
  26. package/dist/cli/commands/init.d.ts.map +1 -0
  27. package/dist/cli/commands/init.js +43 -0
  28. package/dist/cli/commands/init.js.map +1 -0
  29. package/dist/cli/commands/list.d.ts +3 -0
  30. package/dist/cli/commands/list.d.ts.map +1 -0
  31. package/dist/cli/commands/list.js +36 -0
  32. package/dist/cli/commands/list.js.map +1 -0
  33. package/dist/cli/commands/serve.d.ts +3 -0
  34. package/dist/cli/commands/serve.d.ts.map +1 -0
  35. package/dist/cli/commands/serve.js +34 -0
  36. package/dist/cli/commands/serve.js.map +1 -0
  37. package/dist/cli/commands/status.d.ts +3 -0
  38. package/dist/cli/commands/status.d.ts.map +1 -0
  39. package/dist/cli/commands/status.js +49 -0
  40. package/dist/cli/commands/status.js.map +1 -0
  41. package/dist/cli/commands/validate.d.ts +3 -0
  42. package/dist/cli/commands/validate.d.ts.map +1 -0
  43. package/dist/cli/commands/validate.js +36 -0
  44. package/dist/cli/commands/validate.js.map +1 -0
  45. package/dist/cli/commands/watch.d.ts +3 -0
  46. package/dist/cli/commands/watch.d.ts.map +1 -0
  47. package/dist/cli/commands/watch.js +156 -0
  48. package/dist/cli/commands/watch.js.map +1 -0
  49. package/dist/cli/formatter.d.ts +18 -0
  50. package/dist/cli/formatter.d.ts.map +1 -0
  51. package/dist/cli/formatter.js +78 -0
  52. package/dist/cli/formatter.js.map +1 -0
  53. package/dist/cli/index.d.ts +6 -0
  54. package/dist/cli/index.d.ts.map +1 -0
  55. package/dist/cli/index.js +7 -0
  56. package/dist/cli/index.js.map +1 -0
  57. package/dist/cli/interactive.d.ts +13 -0
  58. package/dist/cli/interactive.d.ts.map +1 -0
  59. package/dist/cli/interactive.js +42 -0
  60. package/dist/cli/interactive.js.map +1 -0
  61. package/dist/cli/project-detector.d.ts +6 -0
  62. package/dist/cli/project-detector.d.ts.map +1 -0
  63. package/dist/cli/project-detector.js +12 -0
  64. package/dist/cli/project-detector.js.map +1 -0
  65. package/dist/cli/router.d.ts +5 -0
  66. package/dist/cli/router.d.ts.map +1 -0
  67. package/dist/cli/router.js +104 -0
  68. package/dist/cli/router.js.map +1 -0
  69. package/dist/config/hook-defaults.json +19 -0
  70. package/dist/config/license-plans.json +23 -2
  71. package/dist/config/registry-categories.json +20 -0
  72. package/dist/config/registry-stacks.json +16 -0
  73. package/dist/config/tool-groups.json +12 -1
  74. package/dist/engine/analyzer/analyze-project.d.ts +15 -0
  75. package/dist/engine/analyzer/analyze-project.d.ts.map +1 -0
  76. package/dist/engine/analyzer/analyze-project.js +101 -0
  77. package/dist/engine/analyzer/analyze-project.js.map +1 -0
  78. package/dist/engine/analyzer/completeness-checker.d.ts +6 -0
  79. package/dist/engine/analyzer/completeness-checker.d.ts.map +1 -0
  80. package/dist/engine/analyzer/completeness-checker.js +79 -0
  81. package/dist/engine/analyzer/completeness-checker.js.map +1 -0
  82. package/dist/engine/analyzer/db-engine.d.ts +9 -0
  83. package/dist/engine/analyzer/db-engine.d.ts.map +1 -0
  84. package/dist/engine/analyzer/db-engine.js +137 -0
  85. package/dist/engine/analyzer/db-engine.js.map +1 -0
  86. package/dist/engine/analyzer/detectors.d.ts +7 -0
  87. package/dist/engine/analyzer/detectors.d.ts.map +1 -0
  88. package/dist/engine/analyzer/detectors.js +234 -0
  89. package/dist/engine/analyzer/detectors.js.map +1 -0
  90. package/dist/engine/analyzer/env-setup.d.ts +6 -0
  91. package/dist/engine/analyzer/env-setup.d.ts.map +1 -0
  92. package/dist/engine/analyzer/env-setup.js +174 -0
  93. package/dist/engine/analyzer/env-setup.js.map +1 -0
  94. package/dist/engine/analyzer/index.d.ts +6 -0
  95. package/dist/engine/analyzer/index.d.ts.map +1 -0
  96. package/dist/engine/analyzer/index.js +8 -0
  97. package/dist/engine/analyzer/index.js.map +1 -0
  98. package/dist/engine/analyzer-db.d.ts +1 -8
  99. package/dist/engine/analyzer-db.d.ts.map +1 -1
  100. package/dist/engine/analyzer-db.js +3 -136
  101. package/dist/engine/analyzer-db.js.map +1 -1
  102. package/dist/engine/analyzer-detectors.d.ts +1 -6
  103. package/dist/engine/analyzer-detectors.d.ts.map +1 -1
  104. package/dist/engine/analyzer-detectors.js +3 -231
  105. package/dist/engine/analyzer-detectors.js.map +1 -1
  106. package/dist/engine/analyzer-env.d.ts +1 -5
  107. package/dist/engine/analyzer-env.d.ts.map +1 -1
  108. package/dist/engine/analyzer-env.js +3 -173
  109. package/dist/engine/analyzer-env.js.map +1 -1
  110. package/dist/engine/analyzer.d.ts +2 -18
  111. package/dist/engine/analyzer.d.ts.map +1 -1
  112. package/dist/engine/analyzer.js +4 -172
  113. package/dist/engine/analyzer.js.map +1 -1
  114. package/dist/engine/dashboard/data-loader.d.ts +16 -1
  115. package/dist/engine/dashboard/data-loader.d.ts.map +1 -1
  116. package/dist/engine/dashboard/data-loader.js +140 -2
  117. package/dist/engine/dashboard/data-loader.js.map +1 -1
  118. package/dist/engine/dashboard/index.d.ts +2 -0
  119. package/dist/engine/dashboard/index.d.ts.map +1 -1
  120. package/dist/engine/dashboard/index.js +2 -0
  121. package/dist/engine/dashboard/index.js.map +1 -1
  122. package/dist/engine/dashboard/kanban-logic.d.ts +31 -0
  123. package/dist/engine/dashboard/kanban-logic.d.ts.map +1 -0
  124. package/dist/engine/dashboard/kanban-logic.js +122 -0
  125. package/dist/engine/dashboard/kanban-logic.js.map +1 -0
  126. package/dist/engine/dashboard/routes.d.ts +2 -0
  127. package/dist/engine/dashboard/routes.d.ts.map +1 -1
  128. package/dist/engine/dashboard/routes.js +112 -23
  129. package/dist/engine/dashboard/routes.js.map +1 -1
  130. package/dist/engine/dashboard/server.d.ts +5 -0
  131. package/dist/engine/dashboard/server.d.ts.map +1 -1
  132. package/dist/engine/dashboard/server.js +48 -0
  133. package/dist/engine/dashboard/server.js.map +1 -1
  134. package/dist/engine/dashboard/spec-updater.d.ts +8 -0
  135. package/dist/engine/dashboard/spec-updater.d.ts.map +1 -0
  136. package/dist/engine/dashboard/spec-updater.js +37 -0
  137. package/dist/engine/dashboard/spec-updater.js.map +1 -0
  138. package/dist/engine/dashboard/templates-kanban.d.ts +6 -0
  139. package/dist/engine/dashboard/templates-kanban.d.ts.map +1 -0
  140. package/dist/engine/dashboard/templates-kanban.js +100 -0
  141. package/dist/engine/dashboard/templates-kanban.js.map +1 -0
  142. package/dist/engine/dashboard/templates-layout.d.ts +3 -3
  143. package/dist/engine/dashboard/templates-layout.d.ts.map +1 -1
  144. package/dist/engine/dashboard/templates-layout.js +167 -44
  145. package/dist/engine/dashboard/templates-layout.js.map +1 -1
  146. package/dist/engine/dashboard/templates-project.d.ts +1 -1
  147. package/dist/engine/dashboard/templates-project.d.ts.map +1 -1
  148. package/dist/engine/dashboard/templates-project.js +109 -3
  149. package/dist/engine/dashboard/templates-project.js.map +1 -1
  150. package/dist/engine/dashboard/templates.d.ts +1 -0
  151. package/dist/engine/dashboard/templates.d.ts.map +1 -1
  152. package/dist/engine/dashboard/templates.js +1 -0
  153. package/dist/engine/dashboard/templates.js.map +1 -1
  154. package/dist/engine/hooks/config-loader.d.ts +36 -0
  155. package/dist/engine/hooks/config-loader.d.ts.map +1 -0
  156. package/dist/engine/hooks/config-loader.js +142 -0
  157. package/dist/engine/hooks/config-loader.js.map +1 -0
  158. package/dist/engine/hooks/debouncer.d.ts +30 -0
  159. package/dist/engine/hooks/debouncer.d.ts.map +1 -0
  160. package/dist/engine/hooks/debouncer.js +124 -0
  161. package/dist/engine/hooks/debouncer.js.map +1 -0
  162. package/dist/engine/hooks/event-bus.d.ts +40 -0
  163. package/dist/engine/hooks/event-bus.d.ts.map +1 -0
  164. package/dist/engine/hooks/event-bus.js +83 -0
  165. package/dist/engine/hooks/event-bus.js.map +1 -0
  166. package/dist/engine/hooks/file-watcher.d.ts +48 -0
  167. package/dist/engine/hooks/file-watcher.d.ts.map +1 -0
  168. package/dist/engine/hooks/file-watcher.js +193 -0
  169. package/dist/engine/hooks/file-watcher.js.map +1 -0
  170. package/dist/engine/hooks/handlers/on-commit.d.ts +26 -0
  171. package/dist/engine/hooks/handlers/on-commit.d.ts.map +1 -0
  172. package/dist/engine/hooks/handlers/on-commit.js +198 -0
  173. package/dist/engine/hooks/handlers/on-commit.js.map +1 -0
  174. package/dist/engine/hooks/handlers/on-create.d.ts +8 -0
  175. package/dist/engine/hooks/handlers/on-create.d.ts.map +1 -0
  176. package/dist/engine/hooks/handlers/on-create.js +30 -0
  177. package/dist/engine/hooks/handlers/on-create.js.map +1 -0
  178. package/dist/engine/hooks/handlers/on-delete.d.ts +9 -0
  179. package/dist/engine/hooks/handlers/on-delete.d.ts.map +1 -0
  180. package/dist/engine/hooks/handlers/on-delete.js +33 -0
  181. package/dist/engine/hooks/handlers/on-delete.js.map +1 -0
  182. package/dist/engine/hooks/handlers/on-save.d.ts +29 -0
  183. package/dist/engine/hooks/handlers/on-save.d.ts.map +1 -0
  184. package/dist/engine/hooks/handlers/on-save.js +118 -0
  185. package/dist/engine/hooks/handlers/on-save.js.map +1 -0
  186. package/dist/engine/hooks/handlers/on-test-pass.d.ts +33 -0
  187. package/dist/engine/hooks/handlers/on-test-pass.d.ts.map +1 -0
  188. package/dist/engine/hooks/handlers/on-test-pass.js +103 -0
  189. package/dist/engine/hooks/handlers/on-test-pass.js.map +1 -0
  190. package/dist/engine/hooks/hook-engine.d.ts +50 -0
  191. package/dist/engine/hooks/hook-engine.d.ts.map +1 -0
  192. package/dist/engine/hooks/hook-engine.js +159 -0
  193. package/dist/engine/hooks/hook-engine.js.map +1 -0
  194. package/dist/engine/hooks/index.d.ts +10 -0
  195. package/dist/engine/hooks/index.d.ts.map +1 -1
  196. package/dist/engine/hooks/index.js +12 -0
  197. package/dist/engine/hooks/index.js.map +1 -1
  198. package/dist/engine/living-spec/annotation-parser.d.ts +18 -0
  199. package/dist/engine/living-spec/annotation-parser.d.ts.map +1 -0
  200. package/dist/engine/living-spec/annotation-parser.js +105 -0
  201. package/dist/engine/living-spec/annotation-parser.js.map +1 -0
  202. package/dist/engine/living-spec/auto-reconciler.d.ts +28 -0
  203. package/dist/engine/living-spec/auto-reconciler.d.ts.map +1 -0
  204. package/dist/engine/living-spec/auto-reconciler.js +103 -0
  205. package/dist/engine/living-spec/auto-reconciler.js.map +1 -0
  206. package/dist/engine/living-spec/bidirectional-sync.d.ts +26 -0
  207. package/dist/engine/living-spec/bidirectional-sync.d.ts.map +1 -0
  208. package/dist/engine/living-spec/bidirectional-sync.js +160 -0
  209. package/dist/engine/living-spec/bidirectional-sync.js.map +1 -0
  210. package/dist/engine/living-spec/dashboard-collector.d.ts +22 -0
  211. package/dist/engine/living-spec/dashboard-collector.d.ts.map +1 -0
  212. package/dist/engine/living-spec/dashboard-collector.js +97 -0
  213. package/dist/engine/living-spec/dashboard-collector.js.map +1 -0
  214. package/dist/engine/living-spec/drift-watcher.d.ts +15 -0
  215. package/dist/engine/living-spec/drift-watcher.d.ts.map +1 -0
  216. package/dist/engine/living-spec/drift-watcher.js +126 -0
  217. package/dist/engine/living-spec/drift-watcher.js.map +1 -0
  218. package/dist/engine/living-spec/hash-tracker.d.ts +24 -0
  219. package/dist/engine/living-spec/hash-tracker.d.ts.map +1 -0
  220. package/dist/engine/living-spec/hash-tracker.js +123 -0
  221. package/dist/engine/living-spec/hash-tracker.js.map +1 -0
  222. package/dist/engine/living-spec/index.d.ts +9 -0
  223. package/dist/engine/living-spec/index.d.ts.map +1 -0
  224. package/dist/engine/living-spec/index.js +10 -0
  225. package/dist/engine/living-spec/index.js.map +1 -0
  226. package/dist/engine/living-spec/signature-tracker.d.ts +18 -0
  227. package/dist/engine/living-spec/signature-tracker.d.ts.map +1 -0
  228. package/dist/engine/living-spec/signature-tracker.js +136 -0
  229. package/dist/engine/living-spec/signature-tracker.js.map +1 -0
  230. package/dist/engine/living-spec/test-coverage-correlator.d.ts +22 -0
  231. package/dist/engine/living-spec/test-coverage-correlator.d.ts.map +1 -0
  232. package/dist/engine/living-spec/test-coverage-correlator.js +130 -0
  233. package/dist/engine/living-spec/test-coverage-correlator.js.map +1 -0
  234. package/dist/engine/plugins/extensions/worker-extension.d.ts.map +1 -1
  235. package/dist/engine/plugins/extensions/worker-extension.js +3 -1
  236. package/dist/engine/plugins/extensions/worker-extension.js.map +1 -1
  237. package/dist/engine/safety/file-mutex.d.ts.map +1 -1
  238. package/dist/engine/safety/file-mutex.js +3 -0
  239. package/dist/engine/safety/file-mutex.js.map +1 -1
  240. package/dist/engine/spec-registry/adapter.d.ts +9 -0
  241. package/dist/engine/spec-registry/adapter.d.ts.map +1 -0
  242. package/dist/engine/spec-registry/adapter.js +303 -0
  243. package/dist/engine/spec-registry/adapter.js.map +1 -0
  244. package/dist/engine/spec-registry/client.d.ts +8 -0
  245. package/dist/engine/spec-registry/client.d.ts.map +1 -0
  246. package/dist/engine/spec-registry/client.js +194 -0
  247. package/dist/engine/spec-registry/client.js.map +1 -0
  248. package/dist/engine/spec-registry/index.d.ts +7 -0
  249. package/dist/engine/spec-registry/index.d.ts.map +1 -0
  250. package/dist/engine/spec-registry/index.js +7 -0
  251. package/dist/engine/spec-registry/index.js.map +1 -0
  252. package/dist/engine/spec-registry/packager.d.ts +24 -0
  253. package/dist/engine/spec-registry/packager.d.ts.map +1 -0
  254. package/dist/engine/spec-registry/packager.js +122 -0
  255. package/dist/engine/spec-registry/packager.js.map +1 -0
  256. package/dist/engine/spec-registry/scorer.d.ts +10 -0
  257. package/dist/engine/spec-registry/scorer.d.ts.map +1 -0
  258. package/dist/engine/spec-registry/scorer.js +151 -0
  259. package/dist/engine/spec-registry/scorer.js.map +1 -0
  260. package/dist/engine/spec-registry/validator.d.ts +11 -0
  261. package/dist/engine/spec-registry/validator.d.ts.map +1 -0
  262. package/dist/engine/spec-registry/validator.js +144 -0
  263. package/dist/engine/spec-registry/validator.js.map +1 -0
  264. package/dist/index.js +31 -0
  265. package/dist/index.js.map +1 -1
  266. package/dist/storage/hash-snapshot-store.d.ts +18 -0
  267. package/dist/storage/hash-snapshot-store.d.ts.map +1 -0
  268. package/dist/storage/hash-snapshot-store.js +43 -0
  269. package/dist/storage/hash-snapshot-store.js.map +1 -0
  270. package/dist/storage/index.d.ts +3 -0
  271. package/dist/storage/index.d.ts.map +1 -1
  272. package/dist/storage/index.js +3 -0
  273. package/dist/storage/index.js.map +1 -1
  274. package/dist/storage/living-dashboard-store.d.ts +10 -0
  275. package/dist/storage/living-dashboard-store.d.ts.map +1 -0
  276. package/dist/storage/living-dashboard-store.js +31 -0
  277. package/dist/storage/living-dashboard-store.js.map +1 -0
  278. package/dist/storage/sync-log-store.d.ts +26 -0
  279. package/dist/storage/sync-log-store.d.ts.map +1 -0
  280. package/dist/storage/sync-log-store.js +60 -0
  281. package/dist/storage/sync-log-store.js.map +1 -0
  282. package/dist/tools/auto-reconcile.d.ts +3 -0
  283. package/dist/tools/auto-reconcile.d.ts.map +1 -0
  284. package/dist/tools/auto-reconcile.js +81 -0
  285. package/dist/tools/auto-reconcile.js.map +1 -0
  286. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.d.ts.map +1 -1
  287. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js +6 -0
  288. package/dist/tools/challenge-spec/platform-challenge-scenarios-b2.js.map +1 -1
  289. package/dist/tools/create-spec/spec-builder.js +2 -0
  290. package/dist/tools/create-spec/spec-builder.js.map +1 -1
  291. package/dist/tools/dashboard.d.ts.map +1 -1
  292. package/dist/tools/dashboard.js +20 -13
  293. package/dist/tools/dashboard.js.map +1 -1
  294. package/dist/tools/generate-annotations.d.ts +3 -0
  295. package/dist/tools/generate-annotations.d.ts.map +1 -0
  296. package/dist/tools/generate-annotations.js +70 -0
  297. package/dist/tools/generate-annotations.js.map +1 -0
  298. package/dist/tools/generate-execution-plan.d.ts.map +1 -1
  299. package/dist/tools/generate-execution-plan.js +1 -0
  300. package/dist/tools/generate-execution-plan.js.map +1 -1
  301. package/dist/tools/github-pr-handler.d.ts.map +1 -1
  302. package/dist/tools/github-pr-handler.js +1 -0
  303. package/dist/tools/github-pr-handler.js.map +1 -1
  304. package/dist/tools/github-review-handler.d.ts.map +1 -1
  305. package/dist/tools/github-review-handler.js +1 -0
  306. package/dist/tools/github-review-handler.js.map +1 -1
  307. package/dist/tools/ide-config-handler.d.ts.map +1 -1
  308. package/dist/tools/ide-config-handler.js +3 -0
  309. package/dist/tools/ide-config-handler.js.map +1 -1
  310. package/dist/tools/init-project/handler.d.ts.map +1 -1
  311. package/dist/tools/init-project/handler.js +0 -3
  312. package/dist/tools/init-project/handler.js.map +1 -1
  313. package/dist/tools/living-spec-coverage.d.ts +3 -0
  314. package/dist/tools/living-spec-coverage.d.ts.map +1 -0
  315. package/dist/tools/living-spec-coverage.js +100 -0
  316. package/dist/tools/living-spec-coverage.js.map +1 -0
  317. package/dist/tools/living-spec-watch.d.ts +4 -0
  318. package/dist/tools/living-spec-watch.d.ts.map +1 -0
  319. package/dist/tools/living-spec-watch.js +94 -0
  320. package/dist/tools/living-spec-watch.js.map +1 -0
  321. package/dist/tools/manage-plugins-handler.d.ts.map +1 -1
  322. package/dist/tools/manage-plugins-handler.js +2 -1
  323. package/dist/tools/manage-plugins-handler.js.map +1 -1
  324. package/dist/tools/orchestrate-distribution.d.ts.map +1 -1
  325. package/dist/tools/orchestrate-distribution.js +1 -0
  326. package/dist/tools/orchestrate-distribution.js.map +1 -1
  327. package/dist/tools/orchestrate-runtime.js +2 -0
  328. package/dist/tools/orchestrate-runtime.js.map +1 -1
  329. package/dist/tools/plan-team-distribution.d.ts.map +1 -1
  330. package/dist/tools/plan-team-distribution.js +2 -0
  331. package/dist/tools/plan-team-distribution.js.map +1 -1
  332. package/dist/tools/register-dashboard-tools.d.ts.map +1 -1
  333. package/dist/tools/register-dashboard-tools.js +5 -1
  334. package/dist/tools/register-dashboard-tools.js.map +1 -1
  335. package/dist/tools/register-hooks-tools.d.ts.map +1 -1
  336. package/dist/tools/register-hooks-tools.js +82 -1
  337. package/dist/tools/register-hooks-tools.js.map +1 -1
  338. package/dist/tools/register-living-spec-advanced-tools.d.ts +6 -0
  339. package/dist/tools/register-living-spec-advanced-tools.d.ts.map +1 -0
  340. package/dist/tools/register-living-spec-advanced-tools.js +113 -0
  341. package/dist/tools/register-living-spec-advanced-tools.js.map +1 -0
  342. package/dist/tools/register-living-spec-tools.d.ts +6 -0
  343. package/dist/tools/register-living-spec-tools.d.ts.map +1 -0
  344. package/dist/tools/register-living-spec-tools.js +67 -0
  345. package/dist/tools/register-living-spec-tools.js.map +1 -0
  346. package/dist/tools/register-spec-registry-tools.d.ts +3 -0
  347. package/dist/tools/register-spec-registry-tools.d.ts.map +1 -0
  348. package/dist/tools/register-spec-registry-tools.js +91 -0
  349. package/dist/tools/register-spec-registry-tools.js.map +1 -0
  350. package/dist/tools/registry/auth.d.ts +17 -0
  351. package/dist/tools/registry/auth.d.ts.map +1 -0
  352. package/dist/tools/registry/auth.js +132 -0
  353. package/dist/tools/registry/auth.js.map +1 -0
  354. package/dist/tools/registry/index.d.ts +5 -0
  355. package/dist/tools/registry/index.d.ts.map +1 -0
  356. package/dist/tools/registry/index.js +6 -0
  357. package/dist/tools/registry/index.js.map +1 -0
  358. package/dist/tools/registry/install.d.ts +7 -0
  359. package/dist/tools/registry/install.d.ts.map +1 -0
  360. package/dist/tools/registry/install.js +125 -0
  361. package/dist/tools/registry/install.js.map +1 -0
  362. package/dist/tools/registry/publish.d.ts +7 -0
  363. package/dist/tools/registry/publish.d.ts.map +1 -0
  364. package/dist/tools/registry/publish.js +96 -0
  365. package/dist/tools/registry/publish.js.map +1 -0
  366. package/dist/tools/registry/search.d.ts +7 -0
  367. package/dist/tools/registry/search.d.ts.map +1 -0
  368. package/dist/tools/registry/search.js +79 -0
  369. package/dist/tools/registry/search.js.map +1 -0
  370. package/dist/tools/resolve-sync-conflict.d.ts +3 -0
  371. package/dist/tools/resolve-sync-conflict.d.ts.map +1 -0
  372. package/dist/tools/resolve-sync-conflict.js +38 -0
  373. package/dist/tools/resolve-sync-conflict.js.map +1 -0
  374. package/dist/tools/schemas/index.d.ts +1 -0
  375. package/dist/tools/schemas/index.d.ts.map +1 -1
  376. package/dist/tools/schemas/index.js +1 -0
  377. package/dist/tools/schemas/index.js.map +1 -1
  378. package/dist/tools/schemas/spec-registry-schemas.d.ts +39 -0
  379. package/dist/tools/schemas/spec-registry-schemas.d.ts.map +1 -0
  380. package/dist/tools/schemas/spec-registry-schemas.js +72 -0
  381. package/dist/tools/schemas/spec-registry-schemas.js.map +1 -0
  382. package/dist/tools/snapshot-spec-hashes.d.ts +3 -0
  383. package/dist/tools/snapshot-spec-hashes.d.ts.map +1 -0
  384. package/dist/tools/snapshot-spec-hashes.js +100 -0
  385. package/dist/tools/snapshot-spec-hashes.js.map +1 -0
  386. package/dist/tools/spec-diff.d.ts +3 -0
  387. package/dist/tools/spec-diff.d.ts.map +1 -0
  388. package/dist/tools/spec-diff.js +58 -0
  389. package/dist/tools/spec-diff.js.map +1 -0
  390. package/dist/tools/start-hooks.d.ts +17 -0
  391. package/dist/tools/start-hooks.d.ts.map +1 -0
  392. package/dist/tools/start-hooks.js +209 -0
  393. package/dist/tools/start-hooks.js.map +1 -0
  394. package/dist/tools/sync-code-to-spec.d.ts +3 -0
  395. package/dist/tools/sync-code-to-spec.d.ts.map +1 -0
  396. package/dist/tools/sync-code-to-spec.js +51 -0
  397. package/dist/tools/sync-code-to-spec.js.map +1 -0
  398. package/dist/tools/sync-spec-to-code.d.ts +3 -0
  399. package/dist/tools/sync-spec-to-code.d.ts.map +1 -0
  400. package/dist/tools/sync-spec-to-code.js +58 -0
  401. package/dist/tools/sync-spec-to-code.js.map +1 -0
  402. package/dist/tools/validate-annotations.d.ts +3 -0
  403. package/dist/tools/validate-annotations.d.ts.map +1 -0
  404. package/dist/tools/validate-annotations.js +90 -0
  405. package/dist/tools/validate-annotations.js.map +1 -0
  406. package/dist/types/cli.d.ts +14 -0
  407. package/dist/types/cli.d.ts.map +1 -0
  408. package/dist/types/cli.js +3 -0
  409. package/dist/types/cli.js.map +1 -0
  410. package/dist/types/dashboard.d.ts +86 -1
  411. package/dist/types/dashboard.d.ts.map +1 -1
  412. package/dist/types/file-hooks.d.ts +230 -0
  413. package/dist/types/file-hooks.d.ts.map +1 -0
  414. package/dist/types/file-hooks.js +3 -0
  415. package/dist/types/file-hooks.js.map +1 -0
  416. package/dist/types/index.d.ts +4 -0
  417. package/dist/types/index.d.ts.map +1 -1
  418. package/dist/types/index.js +4 -0
  419. package/dist/types/index.js.map +1 -1
  420. package/dist/types/living-spec.d.ts +382 -0
  421. package/dist/types/living-spec.d.ts.map +1 -0
  422. package/dist/types/living-spec.js +3 -0
  423. package/dist/types/living-spec.js.map +1 -0
  424. package/dist/types/spec-registry.d.ts +194 -0
  425. package/dist/types/spec-registry.d.ts.map +1 -0
  426. package/dist/types/spec-registry.js +3 -0
  427. package/dist/types/spec-registry.js.map +1 -0
  428. package/package.json +1 -1
  429. package/src/config/hook-defaults.json +19 -0
  430. package/src/config/license-plans.json +23 -2
  431. package/src/config/registry-categories.json +20 -0
  432. package/src/config/registry-stacks.json +16 -0
  433. package/src/config/tool-groups.json +12 -1
@@ -0,0 +1,382 @@
1
+ /** A single @spec annotation extracted from source code. */
2
+ export interface SpecAnnotation {
3
+ /** Spec ID referenced (e.g., "SPEC-120"). */
4
+ specId: string;
5
+ /** Acceptance criteria numbers (e.g., [1, 3, 5] from "AC-1,AC-3,AC-5"). */
6
+ criteria: number[];
7
+ /** Optional description after the dash. */
8
+ description: string;
9
+ /** File where the annotation was found. */
10
+ file: string;
11
+ /** Line number (1-based). */
12
+ line: number;
13
+ /** Raw annotation text as written in the source. */
14
+ raw: string;
15
+ }
16
+ /** Result of parsing all @spec annotations from a set of files. */
17
+ export interface AnnotationParseResult {
18
+ annotations: SpecAnnotation[];
19
+ fileCount: number;
20
+ annotatedFileCount: number;
21
+ }
22
+ /** Result of validating annotations against stored specs. */
23
+ export interface AnnotationValidationResult {
24
+ valid: AnnotationValidationEntry[];
25
+ invalid: AnnotationValidationEntry[];
26
+ totalAnnotations: number;
27
+ validCount: number;
28
+ invalidCount: number;
29
+ }
30
+ /** A single annotation validation entry. */
31
+ export interface AnnotationValidationEntry {
32
+ annotation: SpecAnnotation;
33
+ reason: string;
34
+ }
35
+ /** Suggestion for annotating a file that lacks annotations. */
36
+ export interface AnnotationSuggestion {
37
+ file: string;
38
+ suggestedAnnotation: string;
39
+ reason: string;
40
+ confidence: 'high' | 'medium' | 'low';
41
+ }
42
+ /** SHA-256 hash snapshot of a file. */
43
+ export interface FileHashEntry {
44
+ file: string;
45
+ hash: string;
46
+ /** Size in bytes. */
47
+ size: number;
48
+ /** ISO timestamp of last snapshot. */
49
+ snapshotAt: string;
50
+ }
51
+ /** Exported function signature tracked for drift detection. */
52
+ export interface FunctionSignature {
53
+ name: string;
54
+ params: string;
55
+ returnType: string;
56
+ file: string;
57
+ line: number;
58
+ }
59
+ /** A complete hash snapshot for a spec, including file hashes and function signatures. */
60
+ export interface SpecHashSnapshot {
61
+ specId: string;
62
+ createdAt: string;
63
+ files: FileHashEntry[];
64
+ signatures: FunctionSignature[];
65
+ }
66
+ /** Change classification for function signatures. */
67
+ export type SignatureChangeType = 'added' | 'modified' | 'removed';
68
+ /** A single signature change between two snapshots. */
69
+ export interface SignatureChange {
70
+ name: string;
71
+ file: string;
72
+ changeType: SignatureChangeType;
73
+ /** Previous signature string (empty for 'added'). */
74
+ before: string;
75
+ /** Current signature string (empty for 'removed'). */
76
+ after: string;
77
+ }
78
+ /** File hash diff between two snapshots. */
79
+ export interface FileHashDiff {
80
+ file: string;
81
+ /** Previous hash (empty for new files). */
82
+ previousHash: string;
83
+ /** Current hash (empty for deleted files). */
84
+ currentHash: string;
85
+ /** Criteria linked to this file via annotations. */
86
+ linkedCriteria: number[];
87
+ }
88
+ /** Report of hash and signature changes for a spec. */
89
+ export interface HashDiffReport {
90
+ specId: string;
91
+ changedFiles: FileHashDiff[];
92
+ signatureChanges: SignatureChange[];
93
+ unchangedFileCount: number;
94
+ comparedAt: string;
95
+ }
96
+ /** Extended criterion status that includes annotation-based statuses. */
97
+ export type AnnotatedCriterionStatus = 'met' | 'pending' | 'drift' | 'regression' | 'untracked';
98
+ /** Extended drift report fields for annotation-based mode. */
99
+ export interface AnnotationDriftInfo {
100
+ annotationCoverage: number;
101
+ annotatedCriteria: number;
102
+ totalCriteria: number;
103
+ regressions: string[];
104
+ untrackedCriteria: string[];
105
+ }
106
+ /** Entry in the auto-reconciliation log. */
107
+ export interface ReconcileLogEntry {
108
+ timestamp: string;
109
+ changeType: 'completion-update' | 'status-flip' | 'hash-update' | 'timestamp-update';
110
+ specId: string;
111
+ description: string;
112
+ previousValue: string;
113
+ newValue: string;
114
+ }
115
+ /** Classification of reconciliation changes. */
116
+ export type ReconcileChangeClass = 'safe' | 'unsafe';
117
+ /** Input for the validate_annotations tool. */
118
+ export interface ValidateAnnotationsInput {
119
+ projectId: string;
120
+ projectPath: string;
121
+ specId?: string;
122
+ }
123
+ /** Input for the generate_annotations tool. */
124
+ export interface GenerateAnnotationsInput {
125
+ projectId: string;
126
+ projectPath: string;
127
+ specId: string;
128
+ }
129
+ /** Input for the snapshot_spec_hashes tool. */
130
+ export interface SnapshotSpecHashesInput {
131
+ projectId: string;
132
+ specId: string;
133
+ }
134
+ /** Input for the auto_reconcile tool. */
135
+ export interface AutoReconcileInput {
136
+ projectId: string;
137
+ specId?: string;
138
+ changedFiles?: string[];
139
+ }
140
+ /** Result of auto-reconciliation. */
141
+ export interface AutoReconcileResult {
142
+ specId: string;
143
+ appliedChanges: ReconcileLogEntry[];
144
+ skippedUnsafe: string[];
145
+ rateLimited: boolean;
146
+ reconciledAt: string;
147
+ }
148
+ /** Options for creating a drift watcher. */
149
+ export interface DriftWatcherOptions {
150
+ /** TTL in seconds for cached drift entries. Default 60. */
151
+ ttlSeconds?: number;
152
+ /** Glob patterns to exclude from watching. */
153
+ excludePatterns?: string[];
154
+ /** Project ID to watch. */
155
+ projectId: string;
156
+ }
157
+ /** In-memory state of the drift watcher. */
158
+ export interface DriftWatcherState {
159
+ /** Whether the watcher is currently running. */
160
+ running: boolean;
161
+ /** ISO timestamp when the watcher was started. */
162
+ startedAt: string | null;
163
+ /** Number of cached entries. */
164
+ cacheSize: number;
165
+ /** Project ID being watched. */
166
+ projectId: string;
167
+ }
168
+ /** A single cached drift entry. */
169
+ export interface DriftCacheEntry {
170
+ /** Spec ID this entry is for. */
171
+ specId: string;
172
+ /** Cached drift report data. */
173
+ data: HashDiffReport;
174
+ /** ISO timestamp when the entry was cached. */
175
+ cachedAt: string;
176
+ /** ISO timestamp when the entry expires. */
177
+ expiresAt: string;
178
+ }
179
+ /** Drift watcher instance interface. */
180
+ export interface DriftWatcherInstance {
181
+ start: () => void;
182
+ stop: () => void;
183
+ status: () => DriftWatcherState;
184
+ invalidate: (specId?: string) => void;
185
+ getCachedDrift: (specId: string) => DriftCacheEntry | null;
186
+ setCachedDrift: (specId: string, data: HashDiffReport) => void;
187
+ }
188
+ /** Minimal spec shape needed for dashboard collection. */
189
+ export interface DashboardSpecInput {
190
+ id: string;
191
+ status: string;
192
+ completion: number;
193
+ }
194
+ /** A single spec entry for the living dashboard. */
195
+ export interface DashboardSpecEntry {
196
+ specId: string;
197
+ status: string;
198
+ completion: number;
199
+ driftDetected: boolean;
200
+ changedFileCount: number;
201
+ signatureChangeCount: number;
202
+ lastCheckedAt: string;
203
+ }
204
+ /** Summary statistics for the dashboard. */
205
+ export interface DashboardSummary {
206
+ totalSpecs: number;
207
+ specsWithDrift: number;
208
+ averageCompletion: number;
209
+ healthScore: number;
210
+ generatedAt: string;
211
+ }
212
+ /** A single trend data point. */
213
+ export interface DashboardTrendPoint {
214
+ timestamp: string;
215
+ specsWithDrift: number;
216
+ averageCompletion: number;
217
+ healthScore: number;
218
+ }
219
+ /** A row in the spec diff table. */
220
+ export interface SpecDiffRow {
221
+ specId: string;
222
+ file: string;
223
+ previousHash: string;
224
+ currentHash: string;
225
+ status: 'added' | 'modified' | 'removed';
226
+ }
227
+ /** Status of a criterion's test coverage. */
228
+ export type CriterionCoverageStatus = 'verified' | 'regression' | 'untested';
229
+ /** Coverage information for a group of annotations. */
230
+ export interface AnnotationCoverageGroup {
231
+ specId: string;
232
+ criterion: number;
233
+ status: CriterionCoverageStatus;
234
+ testCount: number;
235
+ passCount: number;
236
+ failCount: number;
237
+ files: string[];
238
+ }
239
+ /** Full test coverage report correlated with specs (living-spec). */
240
+ export interface LivingSpecCoverageReport {
241
+ projectId: string;
242
+ groups: AnnotationCoverageGroup[];
243
+ totalTests: number;
244
+ passedTests: number;
245
+ failedTests: number;
246
+ coveragePercentage: number;
247
+ generatedAt: string;
248
+ }
249
+ /** Minimal shape of a Vitest JSON test result. */
250
+ export interface VitestTestResult {
251
+ name: string;
252
+ status: 'passed' | 'failed' | 'skipped' | 'pending';
253
+ duration?: number;
254
+ }
255
+ /** Minimal shape of a Vitest JSON test file. */
256
+ export interface VitestFileResult {
257
+ filepath: string;
258
+ tests: VitestTestResult[];
259
+ }
260
+ /** Minimal shape of the full Vitest JSON report. */
261
+ export interface VitestJsonReport {
262
+ testResults: VitestFileResult[];
263
+ }
264
+ /** A single test case from JUnit XML. */
265
+ export interface JUnitTestCase {
266
+ name: string;
267
+ classname: string;
268
+ file: string;
269
+ passed: boolean;
270
+ }
271
+ /** A normalized test result for grouping. */
272
+ export interface NormalizedTestResult {
273
+ name: string;
274
+ file: string;
275
+ passed: boolean;
276
+ }
277
+ /** Direction of synchronization. */
278
+ export type SyncDirection = 'spec-to-code' | 'code-to-spec';
279
+ /** Criterion info for TODO generation. */
280
+ export interface CriterionInfo {
281
+ specId: string;
282
+ criterion: number;
283
+ description: string;
284
+ status: string;
285
+ }
286
+ /** A TODO comment to be generated in code. */
287
+ export interface TodoComment {
288
+ file: string;
289
+ line: number;
290
+ text: string;
291
+ specId: string;
292
+ criterion: number;
293
+ }
294
+ /** A progress update to apply to a spec. */
295
+ export interface ProgressUpdate {
296
+ specId: string;
297
+ criterion: number;
298
+ previousStatus: string;
299
+ newStatus: string;
300
+ reason: string;
301
+ }
302
+ /** A conflict detected during sync. */
303
+ export interface SyncConflict {
304
+ id: string;
305
+ specId: string;
306
+ criterion: number;
307
+ direction: SyncDirection;
308
+ description: string;
309
+ codeState: string;
310
+ specState: string;
311
+ detectedAt: string;
312
+ resolved: boolean;
313
+ resolution?: string;
314
+ }
315
+ /** An entry in the sync log. */
316
+ export interface SyncLogEntry {
317
+ timestamp: string;
318
+ direction: SyncDirection;
319
+ specId: string;
320
+ action: string;
321
+ details: string;
322
+ }
323
+ /** Result of a sync operation. */
324
+ export interface SyncResult {
325
+ direction: SyncDirection;
326
+ specId: string;
327
+ todosGenerated: TodoComment[];
328
+ progressUpdates: ProgressUpdate[];
329
+ conflicts: SyncConflict[];
330
+ logEntries: SyncLogEntry[];
331
+ syncedAt: string;
332
+ }
333
+ /** Input for the living_spec_watch tool. */
334
+ export interface LivingSpecWatchInput {
335
+ projectId: string;
336
+ action: 'start' | 'stop' | 'status';
337
+ ttlSeconds?: number;
338
+ excludePatterns?: string[];
339
+ }
340
+ /** Input for the living_spec_status tool. */
341
+ export interface LivingSpecStatusInput {
342
+ projectId: string;
343
+ specId?: string;
344
+ }
345
+ /** Input for the spec_diff tool. */
346
+ export interface SpecDiffInput {
347
+ projectId: string;
348
+ specId?: string;
349
+ }
350
+ /** Input for the living_spec_coverage tool. */
351
+ export interface LivingSpecCoverageInput {
352
+ projectId: string;
353
+ coverageJsonPath?: string;
354
+ junitXmlPath?: string;
355
+ }
356
+ /** Input for the sync_spec_to_code tool. */
357
+ export interface SyncSpecToCodeInput {
358
+ projectId: string;
359
+ specId: string;
360
+ projectPath: string;
361
+ }
362
+ /** Input for the sync_code_to_spec tool. */
363
+ export interface SyncCodeToSpecInput {
364
+ projectId: string;
365
+ specId: string;
366
+ projectPath: string;
367
+ }
368
+ /** Input for the resolve_sync_conflict tool. */
369
+ export interface ResolveSyncConflictInput {
370
+ projectId: string;
371
+ conflictId: string;
372
+ resolution: 'accept-code' | 'accept-spec' | 'manual';
373
+ manualResolution?: string;
374
+ }
375
+ /** Dashboard data persisted to disk. */
376
+ export interface LivingDashboardData {
377
+ entries: DashboardSpecEntry[];
378
+ summary: DashboardSummary;
379
+ trends: DashboardTrendPoint[];
380
+ updatedAt: string;
381
+ }
382
+ //# sourceMappingURL=living-spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"living-spec.d.ts","sourceRoot":"","sources":["../../src/types/living-spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // Planu — Living Spec types: annotations, hashing, signatures, reconciliation
2
+ export {};
3
+ //# sourceMappingURL=living-spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"living-spec.js","sourceRoot":"","sources":["../../src/types/living-spec.ts"],"names":[],"mappings":"AAAA,8EAA8E"}
@@ -0,0 +1,194 @@
1
+ /** Metadata for a published spec in the registry. */
2
+ export interface RegistrySpecMeta {
3
+ /** Unique name in org/name format. */
4
+ name: string;
5
+ /** Organization or user that published the spec. */
6
+ org: string;
7
+ /** Semver version string. */
8
+ version: string;
9
+ /** Short description of what the spec does. */
10
+ description: string;
11
+ /** Category ID from registry-categories.json. */
12
+ category: string;
13
+ /** Technology stack tags (e.g. ["next.js", "prisma"]). */
14
+ stack: string[];
15
+ /** Difficulty level 1-5. */
16
+ difficulty: number;
17
+ /** Estimated implementation hours. */
18
+ estimatedHours: number;
19
+ /** Searchable tags. */
20
+ tags: string[];
21
+ /** Total download count. */
22
+ downloads: number;
23
+ /** Average rating (0-5). */
24
+ rating: number;
25
+ /** Number of ratings received. */
26
+ ratingCount: number;
27
+ /** ISO 8601 creation timestamp. */
28
+ createdAt: string;
29
+ /** ISO 8601 last update timestamp. */
30
+ updatedAt: string;
31
+ /** Whether this spec is deprecated. */
32
+ deprecated?: boolean;
33
+ /** Message explaining why the spec was deprecated. */
34
+ deprecationMessage?: string;
35
+ }
36
+ /** A single item in search results, extends meta with completeness score. */
37
+ export interface RegistrySearchItem extends RegistrySpecMeta {
38
+ /** Completeness score 0-100 based on spec quality metrics. */
39
+ completenessScore: number;
40
+ }
41
+ /** Paginated search result from the registry. */
42
+ export interface RegistrySearchResult {
43
+ /** Array of matching specs. */
44
+ data: RegistrySearchItem[];
45
+ /** Pagination metadata. */
46
+ meta: {
47
+ page: number;
48
+ limit: number;
49
+ total: number;
50
+ };
51
+ }
52
+ /** Result of installing a spec from the registry. */
53
+ export interface RegistryInstallResult {
54
+ /** Local spec ID assigned after install. */
55
+ specId: string;
56
+ /** Slug used for the local spec directory. */
57
+ slug: string;
58
+ /** Absolute path to the installed spec directory. */
59
+ specDir: string;
60
+ /** Source identifier (org/name). */
61
+ source: string;
62
+ /** Installed version. */
63
+ version: string;
64
+ /** Whether stack adaptation was applied. */
65
+ adapted: boolean;
66
+ }
67
+ /** Result of publishing a spec to the registry. */
68
+ export interface RegistryPublishResult {
69
+ /** Whether the publish succeeded. */
70
+ success: boolean;
71
+ /** Organization the spec was published under. */
72
+ org: string;
73
+ /** Spec name in the registry. */
74
+ name: string;
75
+ /** Published version. */
76
+ version: string;
77
+ /** URL to view the published spec. */
78
+ url: string;
79
+ }
80
+ /** Stored credentials for registry authentication. */
81
+ export interface RegistryCredentials {
82
+ /** API token for registry access. */
83
+ token: string;
84
+ /** Username associated with the token. */
85
+ user: string;
86
+ /** Email associated with the account. */
87
+ email: string;
88
+ /** License plan level. */
89
+ plan: 'free' | 'pro';
90
+ /** ISO 8601 token expiration timestamp. */
91
+ expiresAt: string;
92
+ }
93
+ /** Shape of the planu-registry.json manifest file included in published specs. */
94
+ export interface RegistryPackageManifest {
95
+ /** Spec name (without org prefix). */
96
+ name: string;
97
+ /** Organization or user. */
98
+ org: string;
99
+ /** Semver version. */
100
+ version: string;
101
+ /** Short description. */
102
+ description: string;
103
+ /** Category ID. */
104
+ category: string;
105
+ /** Technology stack tags. */
106
+ stack: string[];
107
+ /** Difficulty level 1-5. */
108
+ difficulty: number;
109
+ /** Estimated implementation hours. */
110
+ estimatedHours: number;
111
+ /** Searchable tags. */
112
+ tags: string[];
113
+ /** Stack-specific adaptations: { marker: { targetValue: replacement } }. */
114
+ adaptable?: Record<string, Record<string, string>>;
115
+ }
116
+ /** Filters for searching the registry. */
117
+ export interface RegistrySearchFilters {
118
+ /** Free-text search query. */
119
+ query?: string;
120
+ /** Filter by stack (e.g. "next.js"). */
121
+ stack?: string;
122
+ /** Filter by category ID. */
123
+ category?: string;
124
+ /** Filter by difficulty range. */
125
+ difficulty?: {
126
+ min?: number;
127
+ max?: number;
128
+ };
129
+ /** Sort order for results. */
130
+ sort?: 'downloads' | 'rating' | 'recent';
131
+ /** Page number (1-based). */
132
+ page?: number;
133
+ /** Results per page. */
134
+ limit?: number;
135
+ }
136
+ /** Result of detecting the project's technology stack. */
137
+ export interface StackDetectionResult {
138
+ /** Primary programming language. */
139
+ language: string;
140
+ /** Primary framework. */
141
+ framework: string;
142
+ /** ORM or database library, if detected. */
143
+ orm?: string;
144
+ /** Test runner, if detected. */
145
+ testRunner?: string;
146
+ /** Build tool, if detected. */
147
+ buildTool?: string;
148
+ /** Package manager, if detected. */
149
+ packageManager?: string;
150
+ }
151
+ /** Options for creating a registry API client. */
152
+ export interface RegistryClientOptions {
153
+ token?: string;
154
+ baseUrl?: string;
155
+ }
156
+ /** Registry API client interface returned by createRegistryClient. */
157
+ export interface RegistryClient {
158
+ searchSpecs(filters: RegistrySearchFilters): Promise<RegistrySearchResult>;
159
+ getSpec(org: string, name: string, version?: string): Promise<RegistrySpecMeta>;
160
+ downloadSpec(org: string, name: string, version: string): Promise<Buffer>;
161
+ publishSpec(tarball: Buffer, meta: Record<string, unknown>): Promise<RegistryPublishResult>;
162
+ rateSpec(org: string, name: string, rating: number): Promise<void>;
163
+ }
164
+ /** Internal archive format: JSON with file contents keyed by relative path. */
165
+ export interface SpecArchive {
166
+ files: Record<string, string>;
167
+ }
168
+ /** A single file adaptation applied during spec install. */
169
+ export interface StackAdaptation {
170
+ /** File path relative to spec directory. */
171
+ file: string;
172
+ /** Original content before adaptation. */
173
+ original: string;
174
+ /** Adapted content after stack replacement. */
175
+ adapted: string;
176
+ /** Adaptation marker that was matched. */
177
+ marker?: string;
178
+ }
179
+ /** Breakdown of a spec's completeness score by category. */
180
+ export interface ScoreBreakdown {
181
+ /** Score for acceptance criteria (0-20). */
182
+ acceptanceCriteria: number;
183
+ /** Score for risk documentation (0-15). */
184
+ risksDocumented: number;
185
+ /** Score for testing strategy (0-15). */
186
+ testingStrategy: number;
187
+ /** Score for key files listing (0-15). */
188
+ keyFiles: number;
189
+ /** Score for technical.md completeness (0-20). */
190
+ technicalCompleteness: number;
191
+ /** Score for frontmatter fields (0-15). */
192
+ frontmatterFields: number;
193
+ }
194
+ //# sourceMappingURL=spec-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-registry.d.ts","sourceRoot":"","sources":["../../src/types/spec-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // types/spec-registry.ts — SPEC-127: Spec Registry (marketplace) domain types
2
+ export {};
3
+ //# sourceMappingURL=spec-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spec-registry.js","sourceRoot":"","sources":["../../src/types/spec-registry.ts"],"names":[],"mappings":"AAAA,8EAA8E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@planu/cli",
3
- "version": "0.43.1",
3
+ "version": "0.45.0",
4
4
  "description": "Planu — MCP Server for Spec Driven Development. Manages specs, estimations, reverse engineering, and auto-learning across any language/framework.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,19 @@
1
+ {
2
+ "enabled": true,
3
+ "debounceMs": 300,
4
+ "rateLimitPerFileMs": 5000,
5
+ "hooks": {
6
+ "on-save": {
7
+ "enabled": true,
8
+ "include": ["src/**/*.ts"],
9
+ "exclude": ["**/*.test.ts"]
10
+ },
11
+ "on-create": {
12
+ "enabled": true,
13
+ "include": ["src/**/*.ts"]
14
+ },
15
+ "on-delete": {
16
+ "enabled": true
17
+ }
18
+ }
19
+ }