@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
@@ -1 +1 @@
1
- {"version":3,"file":"plan-team-distribution.js","sourceRoot":"","sources":["../../src/tools/plan-team-distribution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-team-distribution.js","sourceRoot":"","sources":["../../src/tools/plan-team-distribution.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-dashboard-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-dashboard-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiC9D"}
1
+ {"version":3,"file":"register-dashboard-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-dashboard-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAuC9D"}
@@ -15,7 +15,11 @@ export function registerDashboardTools(server) {
15
15
  .min(1024)
16
16
  .max(65535)
17
17
  .optional()
18
- .describe('Port to serve the dashboard on (default: 5050, range: 1024-65535)'),
18
+ .describe('Port to serve the dashboard on (default: 5050, range: 1024-65535). Falls back to port+1, +2, +3 if busy.'),
19
+ open_browser: z
20
+ .boolean()
21
+ .optional()
22
+ .describe('Auto-open the dashboard URL in the default browser (default: false)'),
19
23
  },
20
24
  annotations: { title: 'Start Dashboard', readOnlyHint: true },
21
25
  }, safe(async (args) => handleStartDashboard(args)));
@@ -1 +1 @@
1
- {"version":3,"file":"register-dashboard-tools.js","sourceRoot":"","sources":["../../src/tools/register-dashboard-tools.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAGtG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,qFAAqF;YACrF,+DAA+D;YAC/D,uDAAuD;QACzD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,IAAI,CAAC;iBACT,GAAG,CAAC,KAAK,CAAC;iBACV,QAAQ,EAAE;iBACV,QAAQ,CAAC,mEAAmE,CAAC;SACjF;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE;KAC9D,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;IAEF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE;KAC9D,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-dashboard-tools.js","sourceRoot":"","sources":["../../src/tools/register-dashboard-tools.ts"],"names":[],"mappings":"AAAA,sGAAsG;AAGtG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAE3E,MAAM,UAAU,sBAAsB,CAAC,MAAiB;IACtD,kBAAkB;IAClB,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,WAAW,EACT,qFAAqF;YACrF,+DAA+D;YAC/D,uDAAuD;QACzD,WAAW,EAAE;YACX,IAAI,EAAE,CAAC;iBACJ,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,IAAI,CAAC;iBACT,GAAG,CAAC,KAAK,CAAC;iBACV,QAAQ,EAAE;iBACV,QAAQ,CACP,0GAA0G,CAC3G;YACH,YAAY,EAAE,CAAC;iBACZ,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,qEAAqE,CAAC;SACnF;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,IAAI,EAAE;KAC9D,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CACjD,CAAC;IAEF,iBAAiB;IACjB,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE;KAC9D,EACD,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"register-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6I1D"}
1
+ {"version":3,"file":"register-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAazE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8P1D"}
@@ -1,8 +1,89 @@
1
- // tools/register-hooks-tools.ts — Registers manage_hooks on the MCP server (SPEC-071)
1
+ // tools/register-hooks-tools.ts — Registers manage_hooks + SPEC-130 hook engine tools (SPEC-071, SPEC-130)
2
2
  import { z } from 'zod';
3
3
  import { safeLicensed } from './safe-handler.js';
4
4
  import { handleManageHooks } from './manage-hooks.js';
5
+ import { handleStartHooks, handleStopHooks, handleHookStatus, handleConfigureHooks, } from './start-hooks.js';
5
6
  export function registerHooksTools(server) {
7
+ // ----- SPEC-130: Hook Engine Tools -----
8
+ server.registerTool('start_hooks', {
9
+ description: 'Start the file watcher and hook engine for a project. ' +
10
+ 'Idempotent — if already running, returns current status. ' +
11
+ 'Watches for file changes and dispatches to registered hook handlers.',
12
+ inputSchema: {
13
+ projectPath: z
14
+ .string()
15
+ .max(1000)
16
+ .describe('Absolute path to the project root directory to watch'),
17
+ hooks: z
18
+ .array(z.string().max(100))
19
+ .optional()
20
+ .describe('Hook types to enable. Valid values: on-save | on-create | on-delete | on-test-pass | on-commit. ' +
21
+ 'Defaults to [on-save, on-create, on-delete]'),
22
+ },
23
+ annotations: {
24
+ title: 'Start Hook Engine',
25
+ readOnlyHint: false,
26
+ },
27
+ }, safeLicensed('start_hooks', async (args) => handleStartHooks(args)));
28
+ server.registerTool('stop_hooks', {
29
+ description: 'Stop the file watcher and hook engine. Cleans up all resources including ' +
30
+ 'watchers, timers, and event listeners.',
31
+ inputSchema: {
32
+ reason: z
33
+ .string()
34
+ .max(500)
35
+ .optional()
36
+ .describe('Optional reason for stopping the hook engine'),
37
+ },
38
+ annotations: {
39
+ title: 'Stop Hook Engine',
40
+ readOnlyHint: false,
41
+ },
42
+ }, safeLicensed('stop_hooks', async (args) => handleStopHooks(args)));
43
+ server.registerTool('hook_status', {
44
+ description: 'Get the current status of the hook engine including running state, ' +
45
+ 'active hooks, pending events, telemetry (execution count, avg latency, error rate), ' +
46
+ 'and event history count.',
47
+ inputSchema: {},
48
+ annotations: {
49
+ title: 'Hook Engine Status',
50
+ readOnlyHint: true,
51
+ },
52
+ }, safeLicensed('hook_status', async () => handleHookStatus()));
53
+ server.registerTool('configure_hooks', {
54
+ description: 'View or update hook engine configuration at runtime. ' +
55
+ 'If the engine is running, reloads config from .planu/hooks.json. ' +
56
+ 'If not running, shows current config from disk.',
57
+ inputSchema: {
58
+ projectPath: z.string().max(1000).describe('Absolute path to the project root directory'),
59
+ enabled: z.boolean().optional().describe('Master switch for all hooks (true = enabled)'),
60
+ debounceMs: z
61
+ .number()
62
+ .min(50)
63
+ .max(10000)
64
+ .optional()
65
+ .describe('Debounce window in milliseconds (50-10000, default: 300)'),
66
+ rateLimitPerFileMs: z
67
+ .number()
68
+ .min(1000)
69
+ .max(60000)
70
+ .optional()
71
+ .describe('Rate limit per file in milliseconds (1000-60000, default: 5000)'),
72
+ hooks: z
73
+ .record(z.string().max(100), z.object({
74
+ enabled: z.boolean().optional().describe('Whether this hook type is enabled'),
75
+ include: z.array(z.string().max(500)).optional().describe('Glob patterns to include'),
76
+ exclude: z.array(z.string().max(500)).optional().describe('Glob patterns to exclude'),
77
+ }))
78
+ .optional()
79
+ .describe('Per-hook-type configuration overrides'),
80
+ },
81
+ annotations: {
82
+ title: 'Configure Hooks',
83
+ readOnlyHint: false,
84
+ },
85
+ }, safeLicensed('configure_hooks', async (args) => handleConfigureHooks(args)));
86
+ // ----- SPEC-071: manage_hooks -----
6
87
  server.registerTool('manage_hooks', {
7
88
  description: 'Create, list, delete, enable/disable, and install templates for agent hooks. ' +
8
89
  'Hooks automate actions when Planu events fire (spec created, status change, drift detected, commit). ' +
@@ -1 +1 @@
1
- {"version":3,"file":"register-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAItF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,UAAU,kBAAkB,CAAC,MAAiB;IAClD,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,WAAW,EACT,+EAA+E;YAC/E,uGAAuG;YACvG,qEAAqE;QACvE,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;YACzE,SAAS,EAAE,CAAC;iBACT,IAAI,CAAC;gBACJ,QAAQ;gBACR,MAAM;gBACN,QAAQ;gBACR,QAAQ;gBACR,SAAS;gBACT,kBAAkB;gBAClB,SAAS;gBACT,WAAW;aACZ,CAAC;iBACD,QAAQ,CACP,+FAA+F,CAChG;YACH,IAAI,EAAE,CAAC;iBACJ,MAAM,CAAC;gBACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,0BAA0B,CAAC,CAAC,QAAQ,EAAE;gBACzE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE;gBAC9E,OAAO,EAAE,CAAC;qBACP,IAAI,CAAC,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;qBACpF,QAAQ,CACP,kFAAkF,CACnF;qBACA,QAAQ,EAAE;gBACb,MAAM,EAAE,CAAC;qBACN,MAAM,CAAC;oBACN,UAAU,EAAE,CAAC;yBACV,MAAM,EAAE;yBACR,GAAG,CAAC,GAAG,CAAC;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,yCAAyC,CAAC;oBACtD,QAAQ,EAAE,CAAC;yBACR,MAAM,EAAE;yBACR,GAAG,CAAC,GAAG,CAAC;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,uCAAuC,CAAC;oBACpD,aAAa,EAAE,CAAC;yBACb,MAAM,EAAE;yBACR,GAAG,CAAC,GAAG,CAAC;yBACR,QAAQ,EAAE;yBACV,QAAQ,CAAC,8DAA8D,CAAC;iBAC5E,CAAC;qBACD,QAAQ,EAAE;qBACV,QAAQ,CAAC,mDAAmD,CAAC;gBAChE,OAAO,EAAE,CAAC;qBACP,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;oBACP,IAAI,EAAE,CAAC;yBACJ,IAAI,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;yBAC3D,QAAQ,CAAC,6DAA6D,CAAC;oBAC1E,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;oBACzE,IAAI,EAAE,CAAC;yBACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;yBACxC,QAAQ,EAAE;yBACV,QAAQ,CAAC,0BAA0B,CAAC;oBACvC,OAAO,EAAE,CAAC;yBACP,MAAM,EAAE;yBACR,GAAG,CAAC,MAAM,CAAC;yBACX,QAAQ,EAAE;yBACV,QAAQ,CAAC,2CAA2C,CAAC;oBACxD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;oBAC/E,KAAK,EAAE,CAAC;yBACL,MAAM,EAAE;yBACR,GAAG,CAAC,MAAM,CAAC;yBACX,QAAQ,EAAE;yBACV,QAAQ,CAAC,mCAAmC,CAAC;iBACjD,CAAC,CACH;qBACA,GAAG,CAAC,GAAG,CAAC;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,oDAAoD,CAAC;gBACjE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;aACnF,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,iDAAiD,CAAC;YAC9D,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,yDAAyD,CAAC;YACtE,YAAY,EAAE,CAAC;iBACZ,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,4FAA4F,CAC7F;YACH,aAAa,EAAE,CAAC;iBACb,MAAM,CAAC;gBACN,OAAO,EAAE,CAAC;qBACP,IAAI,CAAC,CAAC,iBAAiB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,WAAW,CAAC,CAAC;qBACpF,QAAQ,CAAC,0BAA0B,CAAC;gBACvC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;gBAC7E,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;gBACvF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;gBACtF,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;gBAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;gBACpF,UAAU,EAAE,CAAC;qBACV,MAAM,EAAE;qBACR,GAAG,CAAC,GAAG,CAAC;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,6CAA6C,CAAC;gBAC1D,QAAQ,EAAE,CAAC;qBACR,MAAM,EAAE;qBACR,GAAG,CAAC,GAAG,CAAC;qBACR,QAAQ,EAAE;qBACV,QAAQ,CAAC,wCAAwC,CAAC;gBACrD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;gBACvF,YAAY,EAAE,CAAC;qBACZ,MAAM,EAAE;qBACR,GAAG,CAAC,MAAM,CAAC;qBACX,QAAQ,EAAE;qBACV,QAAQ,CAAC,uCAAuC,CAAC;gBACpD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;gBAClF,aAAa,EAAE,CAAC;qBACb,MAAM,EAAE;qBACR,GAAG,CAAC,MAAM,CAAC;qBACX,QAAQ,EAAE;qBACV,QAAQ,CAAC,gCAAgC,CAAC;gBAC7C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;aAC/E,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;SAC7D;QACD,WAAW,EAAE;YACX,KAAK,EAAE,oBAAoB;YAC3B,YAAY,EAAE,KAAK;SACpB;KACF,EACD,YAAY,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAwB,CAAC,CAAC,CAC1F,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"register-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-hooks-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers SPEC-121 living spec advanced tools on the MCP server.
4
+ */
5
+ export declare function registerLivingSpecAdvancedTools(server: McpServer): void;
6
+ //# sourceMappingURL=register-living-spec-advanced-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-living-spec-advanced-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-living-spec-advanced-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE;;GAEG;AACH,wBAAgB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4IvE"}
@@ -0,0 +1,113 @@
1
+ // tools/register-living-spec-advanced-tools.ts — SPEC-121 Living Spec Advanced tools
2
+ // Registers: living_spec_watch, living_spec_status, spec_diff, living_spec_coverage,
3
+ // sync_spec_to_code, sync_code_to_spec, resolve_sync_conflict
4
+ import { z } from 'zod';
5
+ import { safeLicensed } from './safe-handler.js';
6
+ import { handleLivingSpecWatch, handleLivingSpecStatus } from './living-spec-watch.js';
7
+ import { handleSpecDiff } from './spec-diff.js';
8
+ import { handleLivingSpecCoverage } from './living-spec-coverage.js';
9
+ import { handleSyncSpecToCode } from './sync-spec-to-code.js';
10
+ import { handleSyncCodeToSpec } from './sync-code-to-spec.js';
11
+ import { handleResolveSyncConflict } from './resolve-sync-conflict.js';
12
+ /**
13
+ * Registers SPEC-121 living spec advanced tools on the MCP server.
14
+ */
15
+ export function registerLivingSpecAdvancedTools(server) {
16
+ // living_spec_watch
17
+ server.registerTool('living_spec_watch', {
18
+ description: 'Start, stop, or check status of the in-memory drift watcher for a project. The watcher caches drift detection results with a configurable TTL to avoid redundant computations.',
19
+ inputSchema: {
20
+ projectId: z.string().max(500).describe('Project ID'),
21
+ action: z
22
+ .enum(['start', 'stop', 'status'])
23
+ .describe('Action to perform. Valid values: "start", "stop", "status"'),
24
+ ttlSeconds: z
25
+ .number()
26
+ .int()
27
+ .min(5)
28
+ .max(3600)
29
+ .optional()
30
+ .describe('Cache TTL in seconds (5-3600). Default: 60. Only used with "start" action'),
31
+ excludePatterns: z
32
+ .array(z.string().max(500))
33
+ .max(50)
34
+ .optional()
35
+ .describe('Glob patterns to exclude from drift watching (e.g., ["node_modules/**", "dist/**"])'),
36
+ },
37
+ }, safeLicensed('living_spec_watch', async (args) => handleLivingSpecWatch(args)));
38
+ // living_spec_status
39
+ server.registerTool('living_spec_status', {
40
+ description: 'Get detailed status of the living spec watcher including cache state and configuration. Read-only diagnostic tool.',
41
+ annotations: { readOnlyHint: true },
42
+ inputSchema: {
43
+ projectId: z.string().max(500).describe('Project ID'),
44
+ specId: z
45
+ .string()
46
+ .max(500)
47
+ .optional()
48
+ .describe('Optional spec ID to get cached drift data for'),
49
+ },
50
+ }, safeLicensed('living_spec_status', async (args) => handleLivingSpecStatus(args)));
51
+ // spec_diff
52
+ server.registerTool('spec_diff', {
53
+ description: 'Compare spec hash snapshots to detect file and signature changes. Shows a Markdown-formatted diff table. Use after snapshot_spec_hashes to see what changed.',
54
+ annotations: { readOnlyHint: true },
55
+ inputSchema: {
56
+ projectId: z.string().max(500).describe('Project ID'),
57
+ specId: z
58
+ .string()
59
+ .max(500)
60
+ .optional()
61
+ .describe('Specific spec ID to diff (if omitted, diffs all specs)'),
62
+ },
63
+ }, safeLicensed('spec_diff', async (args) => handleSpecDiff(args)));
64
+ // living_spec_coverage
65
+ server.registerTool('living_spec_coverage', {
66
+ description: 'Correlate test coverage with spec acceptance criteria. Parses Vitest JSON or JUnit XML reports and groups results by @spec annotations to determine criterion status (verified/regression/untested).',
67
+ annotations: { readOnlyHint: true },
68
+ inputSchema: {
69
+ projectId: z.string().max(500).describe('Project ID'),
70
+ coverageJsonPath: z
71
+ .string()
72
+ .max(4096)
73
+ .optional()
74
+ .describe('Path to Vitest JSON report file'),
75
+ junitXmlPath: z.string().max(4096).optional().describe('Path to JUnit XML report file'),
76
+ },
77
+ }, safeLicensed('living_spec_coverage', async (args) => handleLivingSpecCoverage(args)));
78
+ // sync_spec_to_code
79
+ server.registerTool('sync_spec_to_code', {
80
+ description: 'Sync from spec to code: generate TODO comments for pending acceptance criteria that lack @spec annotations. Also detects conflicts between spec and code state.',
81
+ inputSchema: {
82
+ projectId: z.string().max(500).describe('Project ID'),
83
+ specId: z.string().max(500).describe('Spec ID to sync from'),
84
+ projectPath: z.string().max(4096).describe('Path to the project root directory'),
85
+ },
86
+ }, safeLicensed('sync_spec_to_code', async (args) => handleSyncSpecToCode(args)));
87
+ // sync_code_to_spec
88
+ server.registerTool('sync_code_to_spec', {
89
+ description: 'Sync from code to spec: detect @spec annotations in source code and generate progress updates for the corresponding spec criteria. Also detects conflicts.',
90
+ inputSchema: {
91
+ projectId: z.string().max(500).describe('Project ID'),
92
+ specId: z.string().max(500).describe('Spec ID to sync to'),
93
+ projectPath: z.string().max(4096).describe('Path to the project root directory'),
94
+ },
95
+ }, safeLicensed('sync_code_to_spec', async (args) => handleSyncCodeToSpec(args)));
96
+ // resolve_sync_conflict
97
+ server.registerTool('resolve_sync_conflict', {
98
+ description: 'Resolve a sync conflict detected by sync_spec_to_code or sync_code_to_spec. Choose to accept the code state, accept the spec state, or provide a manual resolution.',
99
+ inputSchema: {
100
+ projectId: z.string().max(500).describe('Project ID'),
101
+ conflictId: z.string().max(100).describe('Conflict ID from the sync result'),
102
+ resolution: z
103
+ .enum(['accept-code', 'accept-spec', 'manual'])
104
+ .describe('Resolution strategy. Valid values: "accept-code", "accept-spec", "manual"'),
105
+ manualResolution: z
106
+ .string()
107
+ .max(2000)
108
+ .optional()
109
+ .describe('Description of manual resolution (required when resolution is "manual")'),
110
+ },
111
+ }, safeLicensed('resolve_sync_conflict', async (args) => handleResolveSyncConflict(args)));
112
+ }
113
+ //# sourceMappingURL=register-living-spec-advanced-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-living-spec-advanced-tools.js","sourceRoot":"","sources":["../../src/tools/register-living-spec-advanced-tools.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,qFAAqF;AACrF,yEAAyE;AAGzE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE;;GAEG;AACH,MAAM,UAAU,+BAA+B,CAAC,MAAiB;IAC/D,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,gLAAgL;QAClL,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACjC,QAAQ,CAAC,4DAA4D,CAAC;YACzE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,GAAG,EAAE;iBACL,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,2EAA2E,CAAC;YACxF,eAAe,EAAE,CAAC;iBACf,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAC1B,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CACP,qFAAqF,CACtF;SACJ;KACF,EACD,YAAY,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAC/E,CAAC;IAEF,qBAAqB;IACrB,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,oHAAoH;QACtH,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;QACnC,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,+CAA+C,CAAC;SAC7D;KACF,EACD,YAAY,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CACjF,CAAC;IAEF,YAAY;IACZ,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,WAAW,EACT,8JAA8J;QAChK,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;QACnC,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;SACtE;KACF,EACD,YAAY,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAChE,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;QACE,WAAW,EACT,sMAAsM;QACxM,WAAW,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE;QACnC,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,iCAAiC,CAAC;YAC9C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;SACxF;KACF,EACD,YAAY,CAAC,sBAAsB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,CACrF,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,iKAAiK;QACnK,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC5D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACjF;KACF,EACD,YAAY,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;IAEF,oBAAoB;IACpB,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,WAAW,EACT,4JAA4J;QAC9J,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC1D,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oCAAoC,CAAC;SACjF;KACF,EACD,YAAY,CAAC,mBAAmB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAC9E,CAAC;IAEF,wBAAwB;IACxB,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,WAAW,EACT,qKAAqK;QACvK,WAAW,EAAE;YACX,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;YACrD,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC5E,UAAU,EAAE,CAAC;iBACV,IAAI,CAAC,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;iBAC9C,QAAQ,CAAC,2EAA2E,CAAC;YACxF,gBAAgB,EAAE,CAAC;iBAChB,MAAM,EAAE;iBACR,GAAG,CAAC,IAAI,CAAC;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,yEAAyE,CAAC;SACvF;KACF,EACD,YAAY,CAAC,uBAAuB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CACvF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ /**
3
+ * Registers living spec tools on the MCP server.
4
+ */
5
+ export declare function registerLivingSpecTools(server: McpServer): void;
6
+ //# sourceMappingURL=register-living-spec-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-living-spec-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-living-spec-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+E/D"}
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ import { safeLicensed } from './safe-handler.js';
3
+ import { handleValidateAnnotations } from './validate-annotations.js';
4
+ import { handleGenerateAnnotations } from './generate-annotations.js';
5
+ import { handleSnapshotSpecHashes } from './snapshot-spec-hashes.js';
6
+ import { handleAutoReconcile } from './auto-reconcile.js';
7
+ /**
8
+ * Registers living spec tools on the MCP server.
9
+ */
10
+ export function registerLivingSpecTools(server) {
11
+ // validate_annotations
12
+ server.registerTool('validate_annotations', {
13
+ description: 'Validate @spec annotations in source code. Checks that all annotated spec IDs exist and criteria numbers are valid. Use after adding annotations to verify correctness.',
14
+ annotations: { readOnlyHint: true },
15
+ inputSchema: {
16
+ projectId: z.string().max(500).describe('Project ID'),
17
+ projectPath: z
18
+ .string()
19
+ .max(4096)
20
+ .describe('Path to the project root directory'),
21
+ specId: z
22
+ .string()
23
+ .max(500)
24
+ .optional()
25
+ .describe('Optional spec ID to filter annotations for a specific spec'),
26
+ },
27
+ }, safeLicensed('validate_annotations', async (args) => handleValidateAnnotations(args)));
28
+ // generate_annotations
29
+ server.registerTool('generate_annotations', {
30
+ description: 'Suggest @spec annotations for unannotated source files. Uses living-spec-analyzer heuristics to match files to spec criteria and generates annotation comments to add.',
31
+ annotations: { readOnlyHint: true },
32
+ inputSchema: {
33
+ projectId: z.string().max(500).describe('Project ID'),
34
+ projectPath: z
35
+ .string()
36
+ .max(4096)
37
+ .describe('Path to the project root directory'),
38
+ specId: z.string().max(500).describe('Spec ID to generate annotations for'),
39
+ },
40
+ }, safeLicensed('generate_annotations', async (args) => handleGenerateAnnotations(args)));
41
+ // snapshot_spec_hashes
42
+ server.registerTool('snapshot_spec_hashes', {
43
+ description: 'Create or update a SHA-256 hash snapshot for a spec. Tracks file hashes and exported function signatures of all files referenced in the spec technical.md File Plan section. Used for drift detection.',
44
+ inputSchema: {
45
+ projectId: z.string().max(500).describe('Project ID'),
46
+ specId: z.string().max(500).describe('Spec ID to snapshot'),
47
+ },
48
+ }, safeLicensed('snapshot_spec_hashes', async (args) => handleSnapshotSpecHashes(args)));
49
+ // auto_reconcile
50
+ server.registerTool('auto_reconcile', {
51
+ description: 'Auto-reconcile specs after code changes. Applies safe changes automatically (completion %, status flip, hash update, timestamp). Unsafe changes (status downgrade, criterion removal) are skipped and require manual approval. Rate-limited: max 1 per spec per 5 minutes.',
52
+ inputSchema: {
53
+ projectId: z.string().max(500).describe('Project ID'),
54
+ specId: z
55
+ .string()
56
+ .max(500)
57
+ .optional()
58
+ .describe('Specific spec ID to reconcile (if omitted, finds affected specs from changedFiles)'),
59
+ changedFiles: z
60
+ .array(z.string().max(4096))
61
+ .max(1000)
62
+ .optional()
63
+ .describe('List of changed file paths to find affected specs'),
64
+ },
65
+ }, safeLicensed('auto_reconcile', async (args) => handleAutoReconcile(args)));
66
+ }
67
+ //# sourceMappingURL=register-living-spec-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-living-spec-tools.js","sourceRoot":"","sources":["../../src/tools/register-living-spec-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerSpecRegistryTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-spec-registry-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-registry-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-registry-tools.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAiBzE,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAsHjE"}
@@ -0,0 +1,91 @@
1
+ // tools/register-spec-registry-tools.ts — Registers SPEC-127 spec registry tools
2
+ // registry_search, registry_install: free tier (safeTracked)
3
+ // registry_publish, registry_login, registry_logout, registry_whoami: pro tier (safeLicensed)
4
+ import { safeTracked, safeLicensed } from './safe-handler.js';
5
+ import { RegistrySearchInputSchema, RegistryInstallInputSchema, RegistryPublishInputSchema, RegistryLoginInputSchema, } from './schemas/spec-registry-schemas.js';
6
+ import { handleRegistrySearch, handleRegistryInstall, handleRegistryPublish, handleRegistryLogin, handleRegistryLogout, handleRegistryWhoami, } from './registry/index.js';
7
+ export function registerSpecRegistryTools(server) {
8
+ // registry_search (free)
9
+ server.registerTool('registry_search', {
10
+ description: 'Search the Planu spec registry for reusable specs. ' +
11
+ 'Filter by stack, category, difficulty, and sort by downloads, rating, or recency. ' +
12
+ 'Returns paginated results with spec metadata.',
13
+ inputSchema: {
14
+ query: RegistrySearchInputSchema.shape.query,
15
+ stack: RegistrySearchInputSchema.shape.stack,
16
+ category: RegistrySearchInputSchema.shape.category,
17
+ difficulty: RegistrySearchInputSchema.shape.difficulty,
18
+ sort: RegistrySearchInputSchema.shape.sort,
19
+ page: RegistrySearchInputSchema.shape.page,
20
+ limit: RegistrySearchInputSchema.shape.limit,
21
+ },
22
+ annotations: {
23
+ title: 'Registry Search',
24
+ readOnlyHint: true,
25
+ },
26
+ }, safeTracked('registry_search', async (args) => handleRegistrySearch(args)));
27
+ // registry_install (free)
28
+ server.registerTool('registry_install', {
29
+ description: 'Install a spec from the Planu registry into a local project. ' +
30
+ 'Resolves the spec version, downloads assets, and optionally adapts the spec ' +
31
+ 'to the detected project stack.',
32
+ inputSchema: {
33
+ specName: RegistryInstallInputSchema.shape.specName,
34
+ version: RegistryInstallInputSchema.shape.version,
35
+ projectPath: RegistryInstallInputSchema.shape.projectPath,
36
+ adapt: RegistryInstallInputSchema.shape.adapt,
37
+ },
38
+ annotations: {
39
+ title: 'Registry Install',
40
+ destructiveHint: false,
41
+ },
42
+ }, safeTracked('registry_install', async (args) => handleRegistryInstall(args)));
43
+ // registry_publish (pro)
44
+ server.registerTool('registry_publish', {
45
+ description: 'Publish a spec to the Planu registry. ' +
46
+ 'Requires authentication via registry_login. ' +
47
+ 'Reads planu-registry.json from the spec directory for metadata.',
48
+ inputSchema: {
49
+ specDir: RegistryPublishInputSchema.shape.specDir,
50
+ projectPath: RegistryPublishInputSchema.shape.projectPath,
51
+ },
52
+ annotations: {
53
+ title: 'Registry Publish',
54
+ destructiveHint: false,
55
+ },
56
+ }, safeLicensed('registry_publish', async (args) => handleRegistryPublish(args)));
57
+ // registry_login (pro)
58
+ server.registerTool('registry_login', {
59
+ description: 'Authenticate with the Planu spec registry using an API token. ' +
60
+ 'Token is obtained from planu.dev account settings. ' +
61
+ 'Credentials are stored locally for subsequent publish operations.',
62
+ inputSchema: {
63
+ token: RegistryLoginInputSchema.shape.token,
64
+ },
65
+ annotations: {
66
+ title: 'Registry Login',
67
+ readOnlyHint: false,
68
+ },
69
+ }, safeLicensed('registry_login', async (args) => handleRegistryLogin(args)));
70
+ // registry_logout (pro)
71
+ server.registerTool('registry_logout', {
72
+ description: 'Remove stored registry credentials. ' +
73
+ 'After logout, registry_login is required again before publishing.',
74
+ inputSchema: {},
75
+ annotations: {
76
+ title: 'Registry Logout',
77
+ destructiveHint: true,
78
+ },
79
+ }, safeLicensed('registry_logout', async (args) => handleRegistryLogout(args)));
80
+ // registry_whoami (pro)
81
+ server.registerTool('registry_whoami', {
82
+ description: 'Show the currently authenticated registry user. ' +
83
+ 'Returns username, email, and organization if logged in.',
84
+ inputSchema: {},
85
+ annotations: {
86
+ title: 'Registry Who Am I',
87
+ readOnlyHint: true,
88
+ },
89
+ }, safeLicensed('registry_whoami', async (args) => handleRegistryWhoami(args)));
90
+ }
91
+ //# sourceMappingURL=register-spec-registry-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-registry-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-registry-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { ToolResult } from '../../types/index.js';
2
+ /**
3
+ * Handle registry_login tool invocation.
4
+ * Stores the given token and user info to ~/.planu/credentials.json with 0o600 permissions.
5
+ */
6
+ export declare function handleRegistryLogin(args: Record<string, unknown>): Promise<ToolResult>;
7
+ /**
8
+ * Handle registry_logout tool invocation.
9
+ * Removes the credentials file.
10
+ */
11
+ export declare function handleRegistryLogout(_args: Record<string, unknown>): Promise<ToolResult>;
12
+ /**
13
+ * Handle registry_whoami tool invocation.
14
+ * Reads and returns stored credentials (without the raw token).
15
+ */
16
+ export declare function handleRegistryWhoami(_args: Record<string, unknown>): Promise<ToolResult>;
17
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/tools/registry/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAuB,MAAM,sBAAsB,CAAC;AAO5E;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAoD5F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAkC9F;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiC9F"}