@planu/cli 1.1.1 → 1.2.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 (459) hide show
  1. package/dist/config/license-plans.json +110 -9
  2. package/dist/config/spec-cookbook.json +341 -0
  3. package/dist/engine/asana-sync.d.ts +12 -0
  4. package/dist/engine/asana-sync.d.ts.map +1 -0
  5. package/dist/engine/asana-sync.js +72 -0
  6. package/dist/engine/asana-sync.js.map +1 -0
  7. package/dist/engine/code-impact-analyzer.d.ts +6 -0
  8. package/dist/engine/code-impact-analyzer.d.ts.map +1 -0
  9. package/dist/engine/code-impact-analyzer.js +152 -0
  10. package/dist/engine/code-impact-analyzer.js.map +1 -0
  11. package/dist/engine/compliance-reporter.d.ts +11 -0
  12. package/dist/engine/compliance-reporter.d.ts.map +1 -0
  13. package/dist/engine/compliance-reporter.js +245 -0
  14. package/dist/engine/compliance-reporter.js.map +1 -0
  15. package/dist/engine/context-manager.d.ts +7 -0
  16. package/dist/engine/context-manager.d.ts.map +1 -0
  17. package/dist/engine/context-manager.js +76 -0
  18. package/dist/engine/context-manager.js.map +1 -0
  19. package/dist/engine/cost-budget-manager.d.ts +10 -0
  20. package/dist/engine/cost-budget-manager.d.ts.map +1 -0
  21. package/dist/engine/cost-budget-manager.js +165 -0
  22. package/dist/engine/cost-budget-manager.js.map +1 -0
  23. package/dist/engine/dependency-impact-analyzer.d.ts +14 -0
  24. package/dist/engine/dependency-impact-analyzer.d.ts.map +1 -0
  25. package/dist/engine/dependency-impact-analyzer.js +133 -0
  26. package/dist/engine/dependency-impact-analyzer.js.map +1 -0
  27. package/dist/engine/diff-spec-generator.d.ts +6 -0
  28. package/dist/engine/diff-spec-generator.d.ts.map +1 -0
  29. package/dist/engine/diff-spec-generator.js +181 -0
  30. package/dist/engine/diff-spec-generator.js.map +1 -0
  31. package/dist/engine/drift-monitor.d.ts +5 -0
  32. package/dist/engine/drift-monitor.d.ts.map +1 -0
  33. package/dist/engine/drift-monitor.js +92 -0
  34. package/dist/engine/drift-monitor.js.map +1 -0
  35. package/dist/engine/global-rules-manager.d.ts +10 -0
  36. package/dist/engine/global-rules-manager.d.ts.map +1 -0
  37. package/dist/engine/global-rules-manager.js +214 -0
  38. package/dist/engine/global-rules-manager.js.map +1 -0
  39. package/dist/engine/knowledge-base.d.ts +12 -0
  40. package/dist/engine/knowledge-base.d.ts.map +1 -0
  41. package/dist/engine/knowledge-base.js +250 -0
  42. package/dist/engine/knowledge-base.js.map +1 -0
  43. package/dist/engine/monday-sync.d.ts +10 -0
  44. package/dist/engine/monday-sync.d.ts.map +1 -0
  45. package/dist/engine/monday-sync.js +56 -0
  46. package/dist/engine/monday-sync.js.map +1 -0
  47. package/dist/engine/notion-sync.d.ts +13 -0
  48. package/dist/engine/notion-sync.d.ts.map +1 -0
  49. package/dist/engine/notion-sync.js +87 -0
  50. package/dist/engine/notion-sync.js.map +1 -0
  51. package/dist/engine/onboarding-engine.d.ts +11 -0
  52. package/dist/engine/onboarding-engine.d.ts.map +1 -0
  53. package/dist/engine/onboarding-engine.js +575 -0
  54. package/dist/engine/onboarding-engine.js.map +1 -0
  55. package/dist/engine/parallel-safety-engine.d.ts +8 -0
  56. package/dist/engine/parallel-safety-engine.d.ts.map +1 -0
  57. package/dist/engine/parallel-safety-engine.js +106 -0
  58. package/dist/engine/parallel-safety-engine.js.map +1 -0
  59. package/dist/engine/schema-generator.d.ts +6 -0
  60. package/dist/engine/schema-generator.d.ts.map +1 -0
  61. package/dist/engine/schema-generator.js +321 -0
  62. package/dist/engine/schema-generator.js.map +1 -0
  63. package/dist/engine/spec-cookbook.d.ts +12 -0
  64. package/dist/engine/spec-cookbook.d.ts.map +1 -0
  65. package/dist/engine/spec-cookbook.js +176 -0
  66. package/dist/engine/spec-cookbook.js.map +1 -0
  67. package/dist/engine/spec-diff-engine.d.ts +8 -0
  68. package/dist/engine/spec-diff-engine.d.ts.map +1 -0
  69. package/dist/engine/spec-diff-engine.js +321 -0
  70. package/dist/engine/spec-diff-engine.js.map +1 -0
  71. package/dist/engine/spec-hooks-engine.d.ts +12 -0
  72. package/dist/engine/spec-hooks-engine.d.ts.map +1 -0
  73. package/dist/engine/spec-hooks-engine.js +79 -0
  74. package/dist/engine/spec-hooks-engine.js.map +1 -0
  75. package/dist/engine/spec-lint-engine.d.ts +6 -0
  76. package/dist/engine/spec-lint-engine.d.ts.map +1 -0
  77. package/dist/engine/spec-lint-engine.js +164 -0
  78. package/dist/engine/spec-lint-engine.js.map +1 -0
  79. package/dist/engine/spec-scheduler.d.ts +13 -0
  80. package/dist/engine/spec-scheduler.d.ts.map +1 -0
  81. package/dist/engine/spec-scheduler.js +154 -0
  82. package/dist/engine/spec-scheduler.js.map +1 -0
  83. package/dist/engine/spec-source-sync.d.ts +14 -0
  84. package/dist/engine/spec-source-sync.d.ts.map +1 -0
  85. package/dist/engine/spec-source-sync.js +148 -0
  86. package/dist/engine/spec-source-sync.js.map +1 -0
  87. package/dist/engine/tech-debt-manager.d.ts +12 -0
  88. package/dist/engine/tech-debt-manager.d.ts.map +1 -0
  89. package/dist/engine/tech-debt-manager.js +152 -0
  90. package/dist/engine/tech-debt-manager.js.map +1 -0
  91. package/dist/engine/validation-loop.d.ts +4 -0
  92. package/dist/engine/validation-loop.d.ts.map +1 -0
  93. package/dist/engine/validation-loop.js +133 -0
  94. package/dist/engine/validation-loop.js.map +1 -0
  95. package/dist/engine/webhook-server.d.ts +19 -0
  96. package/dist/engine/webhook-server.d.ts.map +1 -0
  97. package/dist/engine/webhook-server.js +169 -0
  98. package/dist/engine/webhook-server.js.map +1 -0
  99. package/dist/engine/workspace-manager.d.ts +8 -0
  100. package/dist/engine/workspace-manager.d.ts.map +1 -0
  101. package/dist/engine/workspace-manager.js +255 -0
  102. package/dist/engine/workspace-manager.js.map +1 -0
  103. package/dist/index.js +50 -0
  104. package/dist/index.js.map +1 -1
  105. package/dist/storage/api-surfaces-store.d.ts +8 -0
  106. package/dist/storage/api-surfaces-store.d.ts.map +1 -0
  107. package/dist/storage/api-surfaces-store.js +31 -0
  108. package/dist/storage/api-surfaces-store.js.map +1 -0
  109. package/dist/storage/asana-config-store.d.ts +9 -0
  110. package/dist/storage/asana-config-store.d.ts.map +1 -0
  111. package/dist/storage/asana-config-store.js +51 -0
  112. package/dist/storage/asana-config-store.js.map +1 -0
  113. package/dist/storage/context-config-store.d.ts +4 -0
  114. package/dist/storage/context-config-store.d.ts.map +1 -0
  115. package/dist/storage/context-config-store.js +20 -0
  116. package/dist/storage/context-config-store.js.map +1 -0
  117. package/dist/storage/cost-budget-store.d.ts +6 -0
  118. package/dist/storage/cost-budget-store.d.ts.map +1 -0
  119. package/dist/storage/cost-budget-store.js +42 -0
  120. package/dist/storage/cost-budget-store.js.map +1 -0
  121. package/dist/storage/drift-monitor-store.d.ts +9 -0
  122. package/dist/storage/drift-monitor-store.d.ts.map +1 -0
  123. package/dist/storage/drift-monitor-store.js +45 -0
  124. package/dist/storage/drift-monitor-store.js.map +1 -0
  125. package/dist/storage/monday-config-store.d.ts +9 -0
  126. package/dist/storage/monday-config-store.d.ts.map +1 -0
  127. package/dist/storage/monday-config-store.js +51 -0
  128. package/dist/storage/monday-config-store.js.map +1 -0
  129. package/dist/storage/notion-config-store.d.ts +9 -0
  130. package/dist/storage/notion-config-store.d.ts.map +1 -0
  131. package/dist/storage/notion-config-store.js +51 -0
  132. package/dist/storage/notion-config-store.js.map +1 -0
  133. package/dist/storage/onboarding-store.d.ts +4 -0
  134. package/dist/storage/onboarding-store.d.ts.map +1 -0
  135. package/dist/storage/onboarding-store.js +14 -0
  136. package/dist/storage/onboarding-store.js.map +1 -0
  137. package/dist/storage/retention-policy-store.d.ts +4 -0
  138. package/dist/storage/retention-policy-store.d.ts.map +1 -0
  139. package/dist/storage/retention-policy-store.js +20 -0
  140. package/dist/storage/retention-policy-store.js.map +1 -0
  141. package/dist/storage/spec-bindings-store.d.ts +8 -0
  142. package/dist/storage/spec-bindings-store.d.ts.map +1 -0
  143. package/dist/storage/spec-bindings-store.js +44 -0
  144. package/dist/storage/spec-bindings-store.js.map +1 -0
  145. package/dist/storage/spec-hooks-store.d.ts +8 -0
  146. package/dist/storage/spec-hooks-store.d.ts.map +1 -0
  147. package/dist/storage/spec-hooks-store.js +56 -0
  148. package/dist/storage/spec-hooks-store.js.map +1 -0
  149. package/dist/storage/spec-lint-rules-store.d.ts +5 -0
  150. package/dist/storage/spec-lint-rules-store.d.ts.map +1 -0
  151. package/dist/storage/spec-lint-rules-store.js +40 -0
  152. package/dist/storage/spec-lint-rules-store.js.map +1 -0
  153. package/dist/storage/tech-debt-store.d.ts +12 -0
  154. package/dist/storage/tech-debt-store.d.ts.map +1 -0
  155. package/dist/storage/tech-debt-store.js +51 -0
  156. package/dist/storage/tech-debt-store.js.map +1 -0
  157. package/dist/storage/webhook-server-store.d.ts +5 -0
  158. package/dist/storage/webhook-server-store.d.ts.map +1 -0
  159. package/dist/storage/webhook-server-store.js +14 -0
  160. package/dist/storage/webhook-server-store.js.map +1 -0
  161. package/dist/tools/asana-handler.d.ts +6 -0
  162. package/dist/tools/asana-handler.d.ts.map +1 -0
  163. package/dist/tools/asana-handler.js +199 -0
  164. package/dist/tools/asana-handler.js.map +1 -0
  165. package/dist/tools/code-impact-handler.d.ts +6 -0
  166. package/dist/tools/code-impact-handler.d.ts.map +1 -0
  167. package/dist/tools/code-impact-handler.js +158 -0
  168. package/dist/tools/code-impact-handler.js.map +1 -0
  169. package/dist/tools/compliance-audit-handler.d.ts +6 -0
  170. package/dist/tools/compliance-audit-handler.d.ts.map +1 -0
  171. package/dist/tools/compliance-audit-handler.js +87 -0
  172. package/dist/tools/compliance-audit-handler.js.map +1 -0
  173. package/dist/tools/context-manager-handler.d.ts +8 -0
  174. package/dist/tools/context-manager-handler.d.ts.map +1 -0
  175. package/dist/tools/context-manager-handler.js +180 -0
  176. package/dist/tools/context-manager-handler.js.map +1 -0
  177. package/dist/tools/cost-budget-handler.d.ts +7 -0
  178. package/dist/tools/cost-budget-handler.d.ts.map +1 -0
  179. package/dist/tools/cost-budget-handler.js +242 -0
  180. package/dist/tools/cost-budget-handler.js.map +1 -0
  181. package/dist/tools/dependency-impact-handler.d.ts +6 -0
  182. package/dist/tools/dependency-impact-handler.d.ts.map +1 -0
  183. package/dist/tools/dependency-impact-handler.js +100 -0
  184. package/dist/tools/dependency-impact-handler.js.map +1 -0
  185. package/dist/tools/diff-spec-generator-handler.d.ts +22 -0
  186. package/dist/tools/diff-spec-generator-handler.d.ts.map +1 -0
  187. package/dist/tools/diff-spec-generator-handler.js +87 -0
  188. package/dist/tools/diff-spec-generator-handler.js.map +1 -0
  189. package/dist/tools/drift-monitor-handler.d.ts +25 -0
  190. package/dist/tools/drift-monitor-handler.d.ts.map +1 -0
  191. package/dist/tools/drift-monitor-handler.js +95 -0
  192. package/dist/tools/drift-monitor-handler.js.map +1 -0
  193. package/dist/tools/global-rules-handler.d.ts +17 -0
  194. package/dist/tools/global-rules-handler.d.ts.map +1 -0
  195. package/dist/tools/global-rules-handler.js +178 -0
  196. package/dist/tools/global-rules-handler.js.map +1 -0
  197. package/dist/tools/incoming-webhook-handler.d.ts +6 -0
  198. package/dist/tools/incoming-webhook-handler.d.ts.map +1 -0
  199. package/dist/tools/incoming-webhook-handler.js +247 -0
  200. package/dist/tools/incoming-webhook-handler.js.map +1 -0
  201. package/dist/tools/knowledge-base-handler.d.ts +7 -0
  202. package/dist/tools/knowledge-base-handler.d.ts.map +1 -0
  203. package/dist/tools/knowledge-base-handler.js +137 -0
  204. package/dist/tools/knowledge-base-handler.js.map +1 -0
  205. package/dist/tools/monday-handler.d.ts +6 -0
  206. package/dist/tools/monday-handler.d.ts.map +1 -0
  207. package/dist/tools/monday-handler.js +190 -0
  208. package/dist/tools/monday-handler.js.map +1 -0
  209. package/dist/tools/notion-handler.d.ts +6 -0
  210. package/dist/tools/notion-handler.d.ts.map +1 -0
  211. package/dist/tools/notion-handler.js +197 -0
  212. package/dist/tools/notion-handler.js.map +1 -0
  213. package/dist/tools/onboarding-handler.d.ts +7 -0
  214. package/dist/tools/onboarding-handler.d.ts.map +1 -0
  215. package/dist/tools/onboarding-handler.js +59 -0
  216. package/dist/tools/onboarding-handler.js.map +1 -0
  217. package/dist/tools/parallel-safety-handler.d.ts +7 -0
  218. package/dist/tools/parallel-safety-handler.d.ts.map +1 -0
  219. package/dist/tools/parallel-safety-handler.js +29 -0
  220. package/dist/tools/parallel-safety-handler.js.map +1 -0
  221. package/dist/tools/register-asana-tools.d.ts +3 -0
  222. package/dist/tools/register-asana-tools.d.ts.map +1 -0
  223. package/dist/tools/register-asana-tools.js +74 -0
  224. package/dist/tools/register-asana-tools.js.map +1 -0
  225. package/dist/tools/register-code-impact-tools.d.ts +3 -0
  226. package/dist/tools/register-code-impact-tools.d.ts.map +1 -0
  227. package/dist/tools/register-code-impact-tools.js +58 -0
  228. package/dist/tools/register-code-impact-tools.js.map +1 -0
  229. package/dist/tools/register-compliance-audit-tools.d.ts +3 -0
  230. package/dist/tools/register-compliance-audit-tools.d.ts.map +1 -0
  231. package/dist/tools/register-compliance-audit-tools.js +106 -0
  232. package/dist/tools/register-compliance-audit-tools.js.map +1 -0
  233. package/dist/tools/register-context-manager-tools.d.ts +3 -0
  234. package/dist/tools/register-context-manager-tools.d.ts.map +1 -0
  235. package/dist/tools/register-context-manager-tools.js +138 -0
  236. package/dist/tools/register-context-manager-tools.js.map +1 -0
  237. package/dist/tools/register-cost-budget-tools.d.ts +3 -0
  238. package/dist/tools/register-cost-budget-tools.d.ts.map +1 -0
  239. package/dist/tools/register-cost-budget-tools.js +98 -0
  240. package/dist/tools/register-cost-budget-tools.js.map +1 -0
  241. package/dist/tools/register-dependency-impact-tools.d.ts +3 -0
  242. package/dist/tools/register-dependency-impact-tools.d.ts.map +1 -0
  243. package/dist/tools/register-dependency-impact-tools.js +63 -0
  244. package/dist/tools/register-dependency-impact-tools.js.map +1 -0
  245. package/dist/tools/register-diff-spec-tools.d.ts +3 -0
  246. package/dist/tools/register-diff-spec-tools.d.ts.map +1 -0
  247. package/dist/tools/register-diff-spec-tools.js +55 -0
  248. package/dist/tools/register-diff-spec-tools.js.map +1 -0
  249. package/dist/tools/register-drift-monitor-tools.d.ts +3 -0
  250. package/dist/tools/register-drift-monitor-tools.d.ts.map +1 -0
  251. package/dist/tools/register-drift-monitor-tools.js +64 -0
  252. package/dist/tools/register-drift-monitor-tools.js.map +1 -0
  253. package/dist/tools/register-global-rules-tools.d.ts +3 -0
  254. package/dist/tools/register-global-rules-tools.d.ts.map +1 -0
  255. package/dist/tools/register-global-rules-tools.js +44 -0
  256. package/dist/tools/register-global-rules-tools.js.map +1 -0
  257. package/dist/tools/register-incoming-webhook-tools.d.ts +3 -0
  258. package/dist/tools/register-incoming-webhook-tools.d.ts.map +1 -0
  259. package/dist/tools/register-incoming-webhook-tools.js +50 -0
  260. package/dist/tools/register-incoming-webhook-tools.js.map +1 -0
  261. package/dist/tools/register-knowledge-base-tools.d.ts +3 -0
  262. package/dist/tools/register-knowledge-base-tools.d.ts.map +1 -0
  263. package/dist/tools/register-knowledge-base-tools.js +66 -0
  264. package/dist/tools/register-knowledge-base-tools.js.map +1 -0
  265. package/dist/tools/register-monday-tools.d.ts +3 -0
  266. package/dist/tools/register-monday-tools.d.ts.map +1 -0
  267. package/dist/tools/register-monday-tools.js +69 -0
  268. package/dist/tools/register-monday-tools.js.map +1 -0
  269. package/dist/tools/register-notion-tools.d.ts +3 -0
  270. package/dist/tools/register-notion-tools.d.ts.map +1 -0
  271. package/dist/tools/register-notion-tools.js +76 -0
  272. package/dist/tools/register-notion-tools.js.map +1 -0
  273. package/dist/tools/register-onboarding-tools.d.ts +3 -0
  274. package/dist/tools/register-onboarding-tools.d.ts.map +1 -0
  275. package/dist/tools/register-onboarding-tools.js +70 -0
  276. package/dist/tools/register-onboarding-tools.js.map +1 -0
  277. package/dist/tools/register-parallel-safety-tools.d.ts +3 -0
  278. package/dist/tools/register-parallel-safety-tools.d.ts.map +1 -0
  279. package/dist/tools/register-parallel-safety-tools.js +18 -0
  280. package/dist/tools/register-parallel-safety-tools.js.map +1 -0
  281. package/dist/tools/register-schema-generator-tools.d.ts +3 -0
  282. package/dist/tools/register-schema-generator-tools.d.ts.map +1 -0
  283. package/dist/tools/register-schema-generator-tools.js +46 -0
  284. package/dist/tools/register-schema-generator-tools.js.map +1 -0
  285. package/dist/tools/register-spec-cookbook-tools.d.ts +3 -0
  286. package/dist/tools/register-spec-cookbook-tools.d.ts.map +1 -0
  287. package/dist/tools/register-spec-cookbook-tools.js +90 -0
  288. package/dist/tools/register-spec-cookbook-tools.js.map +1 -0
  289. package/dist/tools/register-spec-diff-tools.d.ts +3 -0
  290. package/dist/tools/register-spec-diff-tools.d.ts.map +1 -0
  291. package/dist/tools/register-spec-diff-tools.js +67 -0
  292. package/dist/tools/register-spec-diff-tools.js.map +1 -0
  293. package/dist/tools/register-spec-hooks-tools.d.ts +3 -0
  294. package/dist/tools/register-spec-hooks-tools.d.ts.map +1 -0
  295. package/dist/tools/register-spec-hooks-tools.js +124 -0
  296. package/dist/tools/register-spec-hooks-tools.js.map +1 -0
  297. package/dist/tools/register-spec-lint-tools.d.ts +3 -0
  298. package/dist/tools/register-spec-lint-tools.d.ts.map +1 -0
  299. package/dist/tools/register-spec-lint-tools.js +79 -0
  300. package/dist/tools/register-spec-lint-tools.js.map +1 -0
  301. package/dist/tools/register-spec-scheduler-tools.d.ts +3 -0
  302. package/dist/tools/register-spec-scheduler-tools.d.ts.map +1 -0
  303. package/dist/tools/register-spec-scheduler-tools.js +73 -0
  304. package/dist/tools/register-spec-scheduler-tools.js.map +1 -0
  305. package/dist/tools/register-spec-source-tools.d.ts +3 -0
  306. package/dist/tools/register-spec-source-tools.d.ts.map +1 -0
  307. package/dist/tools/register-spec-source-tools.js +48 -0
  308. package/dist/tools/register-spec-source-tools.js.map +1 -0
  309. package/dist/tools/register-tech-debt-tools.d.ts +3 -0
  310. package/dist/tools/register-tech-debt-tools.d.ts.map +1 -0
  311. package/dist/tools/register-tech-debt-tools.js +95 -0
  312. package/dist/tools/register-tech-debt-tools.js.map +1 -0
  313. package/dist/tools/register-validation-loop-tools.d.ts +3 -0
  314. package/dist/tools/register-validation-loop-tools.d.ts.map +1 -0
  315. package/dist/tools/register-validation-loop-tools.js +77 -0
  316. package/dist/tools/register-validation-loop-tools.js.map +1 -0
  317. package/dist/tools/register-workspace-dashboard-tools.d.ts +3 -0
  318. package/dist/tools/register-workspace-dashboard-tools.d.ts.map +1 -0
  319. package/dist/tools/register-workspace-dashboard-tools.js +98 -0
  320. package/dist/tools/register-workspace-dashboard-tools.js.map +1 -0
  321. package/dist/tools/schema-generator-handler.d.ts +4 -0
  322. package/dist/tools/schema-generator-handler.d.ts.map +1 -0
  323. package/dist/tools/schema-generator-handler.js +129 -0
  324. package/dist/tools/schema-generator-handler.js.map +1 -0
  325. package/dist/tools/spec-cookbook-handler.d.ts +7 -0
  326. package/dist/tools/spec-cookbook-handler.d.ts.map +1 -0
  327. package/dist/tools/spec-cookbook-handler.js +83 -0
  328. package/dist/tools/spec-cookbook-handler.js.map +1 -0
  329. package/dist/tools/spec-hooks-handler.d.ts +7 -0
  330. package/dist/tools/spec-hooks-handler.d.ts.map +1 -0
  331. package/dist/tools/spec-hooks-handler.js +112 -0
  332. package/dist/tools/spec-hooks-handler.js.map +1 -0
  333. package/dist/tools/spec-lint-handler.d.ts +6 -0
  334. package/dist/tools/spec-lint-handler.d.ts.map +1 -0
  335. package/dist/tools/spec-lint-handler.js +165 -0
  336. package/dist/tools/spec-lint-handler.js.map +1 -0
  337. package/dist/tools/spec-scheduler-handler.d.ts +6 -0
  338. package/dist/tools/spec-scheduler-handler.d.ts.map +1 -0
  339. package/dist/tools/spec-scheduler-handler.js +108 -0
  340. package/dist/tools/spec-scheduler-handler.js.map +1 -0
  341. package/dist/tools/spec-source-handler.d.ts +21 -0
  342. package/dist/tools/spec-source-handler.d.ts.map +1 -0
  343. package/dist/tools/spec-source-handler.js +75 -0
  344. package/dist/tools/spec-source-handler.js.map +1 -0
  345. package/dist/tools/spec-visual-diff-handler.d.ts +7 -0
  346. package/dist/tools/spec-visual-diff-handler.d.ts.map +1 -0
  347. package/dist/tools/spec-visual-diff-handler.js +130 -0
  348. package/dist/tools/spec-visual-diff-handler.js.map +1 -0
  349. package/dist/tools/tech-debt-handler.d.ts +8 -0
  350. package/dist/tools/tech-debt-handler.d.ts.map +1 -0
  351. package/dist/tools/tech-debt-handler.js +150 -0
  352. package/dist/tools/tech-debt-handler.js.map +1 -0
  353. package/dist/tools/validation-loop-handler.d.ts +5 -0
  354. package/dist/tools/validation-loop-handler.d.ts.map +1 -0
  355. package/dist/tools/validation-loop-handler.js +59 -0
  356. package/dist/tools/validation-loop-handler.js.map +1 -0
  357. package/dist/tools/workspace-dashboard-handler.d.ts +8 -0
  358. package/dist/tools/workspace-dashboard-handler.d.ts.map +1 -0
  359. package/dist/tools/workspace-dashboard-handler.js +108 -0
  360. package/dist/tools/workspace-dashboard-handler.js.map +1 -0
  361. package/dist/types/code-impact.d.ts +57 -0
  362. package/dist/types/code-impact.d.ts.map +1 -0
  363. package/dist/types/code-impact.js +3 -0
  364. package/dist/types/code-impact.js.map +1 -0
  365. package/dist/types/compliance-audit.d.ts +55 -0
  366. package/dist/types/compliance-audit.d.ts.map +1 -0
  367. package/dist/types/compliance-audit.js +3 -0
  368. package/dist/types/compliance-audit.js.map +1 -0
  369. package/dist/types/context-manager.d.ts +57 -0
  370. package/dist/types/context-manager.d.ts.map +1 -0
  371. package/dist/types/context-manager.js +3 -0
  372. package/dist/types/context-manager.js.map +1 -0
  373. package/dist/types/cost-budget.d.ts +84 -0
  374. package/dist/types/cost-budget.d.ts.map +1 -0
  375. package/dist/types/cost-budget.js +3 -0
  376. package/dist/types/cost-budget.js.map +1 -0
  377. package/dist/types/dependency-impact.d.ts +45 -0
  378. package/dist/types/dependency-impact.d.ts.map +1 -0
  379. package/dist/types/dependency-impact.js +3 -0
  380. package/dist/types/dependency-impact.js.map +1 -0
  381. package/dist/types/diff-spec-types.d.ts +39 -0
  382. package/dist/types/diff-spec-types.d.ts.map +1 -0
  383. package/dist/types/diff-spec-types.js +3 -0
  384. package/dist/types/diff-spec-types.js.map +1 -0
  385. package/dist/types/drift-monitor-types.d.ts +47 -0
  386. package/dist/types/drift-monitor-types.d.ts.map +1 -0
  387. package/dist/types/drift-monitor-types.js +3 -0
  388. package/dist/types/drift-monitor-types.js.map +1 -0
  389. package/dist/types/global-rules-types.d.ts +31 -0
  390. package/dist/types/global-rules-types.d.ts.map +1 -0
  391. package/dist/types/global-rules-types.js +3 -0
  392. package/dist/types/global-rules-types.js.map +1 -0
  393. package/dist/types/incoming-webhook.d.ts +40 -0
  394. package/dist/types/incoming-webhook.d.ts.map +1 -0
  395. package/dist/types/incoming-webhook.js +3 -0
  396. package/dist/types/incoming-webhook.js.map +1 -0
  397. package/dist/types/index.d.ts +23 -0
  398. package/dist/types/index.d.ts.map +1 -1
  399. package/dist/types/index.js +23 -0
  400. package/dist/types/index.js.map +1 -1
  401. package/dist/types/knowledge-base.d.ts +57 -0
  402. package/dist/types/knowledge-base.d.ts.map +1 -0
  403. package/dist/types/knowledge-base.js +3 -0
  404. package/dist/types/knowledge-base.js.map +1 -0
  405. package/dist/types/notion-asana-monday.d.ts +196 -0
  406. package/dist/types/notion-asana-monday.d.ts.map +1 -0
  407. package/dist/types/notion-asana-monday.js +3 -0
  408. package/dist/types/notion-asana-monday.js.map +1 -0
  409. package/dist/types/onboarding-types.d.ts +69 -0
  410. package/dist/types/onboarding-types.d.ts.map +1 -0
  411. package/dist/types/onboarding-types.js +3 -0
  412. package/dist/types/onboarding-types.js.map +1 -0
  413. package/dist/types/parallel-safety-types.d.ts +14 -0
  414. package/dist/types/parallel-safety-types.d.ts.map +1 -0
  415. package/dist/types/parallel-safety-types.js +3 -0
  416. package/dist/types/parallel-safety-types.js.map +1 -0
  417. package/dist/types/schema-generator.d.ts +61 -0
  418. package/dist/types/schema-generator.d.ts.map +1 -0
  419. package/dist/types/schema-generator.js +3 -0
  420. package/dist/types/schema-generator.js.map +1 -0
  421. package/dist/types/spec-cookbook-types.d.ts +45 -0
  422. package/dist/types/spec-cookbook-types.d.ts.map +1 -0
  423. package/dist/types/spec-cookbook-types.js +3 -0
  424. package/dist/types/spec-cookbook-types.js.map +1 -0
  425. package/dist/types/spec-diff-visual-types.d.ts +75 -0
  426. package/dist/types/spec-diff-visual-types.d.ts.map +1 -0
  427. package/dist/types/spec-diff-visual-types.js +3 -0
  428. package/dist/types/spec-diff-visual-types.js.map +1 -0
  429. package/dist/types/spec-hooks.d.ts +62 -0
  430. package/dist/types/spec-hooks.d.ts.map +1 -0
  431. package/dist/types/spec-hooks.js +3 -0
  432. package/dist/types/spec-hooks.js.map +1 -0
  433. package/dist/types/spec-lint.d.ts +79 -0
  434. package/dist/types/spec-lint.d.ts.map +1 -0
  435. package/dist/types/spec-lint.js +3 -0
  436. package/dist/types/spec-lint.js.map +1 -0
  437. package/dist/types/spec-scheduler.d.ts +58 -0
  438. package/dist/types/spec-scheduler.d.ts.map +1 -0
  439. package/dist/types/spec-scheduler.js +3 -0
  440. package/dist/types/spec-scheduler.js.map +1 -0
  441. package/dist/types/spec-source-types.d.ts +37 -0
  442. package/dist/types/spec-source-types.d.ts.map +1 -0
  443. package/dist/types/spec-source-types.js +3 -0
  444. package/dist/types/spec-source-types.js.map +1 -0
  445. package/dist/types/tech-debt.d.ts +66 -0
  446. package/dist/types/tech-debt.d.ts.map +1 -0
  447. package/dist/types/tech-debt.js +3 -0
  448. package/dist/types/tech-debt.js.map +1 -0
  449. package/dist/types/validation-loop.d.ts +39 -0
  450. package/dist/types/validation-loop.d.ts.map +1 -0
  451. package/dist/types/validation-loop.js +3 -0
  452. package/dist/types/validation-loop.js.map +1 -0
  453. package/dist/types/workspace-dashboard-types.d.ts +74 -0
  454. package/dist/types/workspace-dashboard-types.d.ts.map +1 -0
  455. package/dist/types/workspace-dashboard-types.js +3 -0
  456. package/dist/types/workspace-dashboard-types.js.map +1 -0
  457. package/package.json +2 -1
  458. package/src/config/license-plans.json +110 -9
  459. package/src/config/spec-cookbook.json +341 -0
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ import { safeLicensed } from './safe-handler.js';
3
+ import { handleVisualSpecDiff, handleThreeWayMerge, handleSmartMergeConflictResolver, handleMergePreview, handleApplyMerge, } from './spec-visual-diff-handler.js';
4
+ export function registerSpecDiffVisualTools(server) {
5
+ // visual_spec_diff
6
+ server.registerTool('visual_spec_diff', {
7
+ description: 'Compute a visual line-by-line diff between two spec texts using LCS algorithm. Returns HTML output (default) or text format with +/- markers.',
8
+ inputSchema: {
9
+ textA: z.string().max(500000).describe('First spec text (base/original)'),
10
+ textB: z.string().max(500000).describe('Second spec text (new/modified)'),
11
+ labelA: z.string().max(100).optional().describe('Label for textA (default: A)'),
12
+ labelB: z.string().max(100).optional().describe('Label for textB (default: B)'),
13
+ outputFormat: z
14
+ .enum(['html', 'text'])
15
+ .optional()
16
+ .describe('Output format: html (default) or text'),
17
+ },
18
+ annotations: { readOnlyHint: true },
19
+ }, safeLicensed('visual_spec_diff', (args) => handleVisualSpecDiff(args)));
20
+ // three_way_merge
21
+ server.registerTool('three_way_merge', {
22
+ description: 'Perform a 3-way merge of two spec texts against a common base. Returns merged text with conflict markers (<<<<<<< A, =======, >>>>>>> B) where conflicts exist.',
23
+ inputSchema: {
24
+ base: z.string().max(500000).describe('Common base text'),
25
+ textA: z.string().max(500000).describe('First branch text'),
26
+ textB: z.string().max(500000).describe('Second branch text'),
27
+ labelA: z.string().max(100).optional().describe('Label for textA (default: A)'),
28
+ labelB: z.string().max(100).optional().describe('Label for textB (default: B)'),
29
+ },
30
+ annotations: { readOnlyHint: true },
31
+ }, safeLicensed('three_way_merge', (args) => handleThreeWayMerge(args)));
32
+ // smart_merge_conflict_resolver
33
+ server.registerTool('smart_merge_conflict_resolver', {
34
+ description: 'Automatically resolve simple merge conflicts: identical content on both sides, or whitespace-only differences. Remaining conflicts kept as-is for manual resolution.',
35
+ inputSchema: {
36
+ mergedText: z
37
+ .string()
38
+ .max(500000)
39
+ .describe('Text containing conflict markers from three_way_merge'),
40
+ },
41
+ annotations: { readOnlyHint: true },
42
+ }, safeLicensed('smart_merge_conflict_resolver', (args) => handleSmartMergeConflictResolver(args)));
43
+ // merge_preview
44
+ server.registerTool('merge_preview', {
45
+ description: 'Preview the result of merging two spec texts against a base. Shows whether auto-merge is possible and the merged content.',
46
+ inputSchema: {
47
+ base: z.string().max(500000).describe('Common base text'),
48
+ textA: z.string().max(500000).describe('First branch text'),
49
+ textB: z.string().max(500000).describe('Second branch text'),
50
+ },
51
+ annotations: { readOnlyHint: true },
52
+ }, safeLicensed('merge_preview', (args) => handleMergePreview(args)));
53
+ // apply_merge
54
+ server.registerTool('apply_merge', {
55
+ description: 'Apply merged spec content to a spec file on disk. Fails if unresolved conflict markers are present.',
56
+ inputSchema: {
57
+ mergedText: z
58
+ .string()
59
+ .max(500000)
60
+ .describe('Fully resolved merged text (no conflict markers)'),
61
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root'),
62
+ specId: z.string().min(1).max(100).describe('Spec ID to update (e.g. SPEC-001)'),
63
+ },
64
+ annotations: { readOnlyHint: false, destructiveHint: true },
65
+ }, safeLicensed('apply_merge', async (args) => handleApplyMerge(args)));
66
+ }
67
+ //# sourceMappingURL=register-spec-diff-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-diff-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-diff-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 registerSpecHooksTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-spec-hooks-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-hooks-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-hooks-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAuBzE,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyJ9D"}
@@ -0,0 +1,124 @@
1
+ // tools/register-spec-hooks-tools.ts — SPEC-368: Register spec lifecycle hook tools
2
+ import { z } from 'zod';
3
+ import { safeLicensed } from './safe-handler.js';
4
+ import { handleConfigureSpecHooks, handleListSpecHooks, handleTestSpecHook, handleDisableSpecHook, handleEnableSpecHook, } from './spec-hooks-handler.js';
5
+ const EVENT_DESCRIBE = 'Event that triggers the hook. Valid values: on-status-change | on-create | on-approve | on-done | on-drift-alert | on-validation-fail';
6
+ const ACTION_DESCRIBE = 'Action to execute. Valid values: challenge-spec | check-readiness | notify-slack | create-git-branch | generate-changelog | send-email-digest | run-validate';
7
+ export function registerSpecHooksTools(server) {
8
+ server.registerTool('configure_spec_hooks', {
9
+ description: 'Configure an event-driven hook for the spec lifecycle. ' +
10
+ 'Hooks automatically trigger actions when spec events fire (status change, creation, approval, etc.). ' +
11
+ 'Examples: auto-challenge high-risk specs on approve, auto-create git branch on implementing.',
12
+ inputSchema: {
13
+ projectPath: z
14
+ .string()
15
+ .min(1)
16
+ .max(4096)
17
+ .describe('Absolute path to the project root directory'),
18
+ hookName: z
19
+ .string()
20
+ .min(1)
21
+ .max(200)
22
+ .describe('Unique name for this hook (e.g. "auto-challenge-on-approve")'),
23
+ event: z
24
+ .enum([
25
+ 'on-status-change',
26
+ 'on-create',
27
+ 'on-approve',
28
+ 'on-done',
29
+ 'on-drift-alert',
30
+ 'on-validation-fail',
31
+ ])
32
+ .describe(EVENT_DESCRIBE),
33
+ action: z
34
+ .enum([
35
+ 'challenge-spec',
36
+ 'check-readiness',
37
+ 'notify-slack',
38
+ 'create-git-branch',
39
+ 'generate-changelog',
40
+ 'send-email-digest',
41
+ 'run-validate',
42
+ ])
43
+ .describe(ACTION_DESCRIBE),
44
+ filter: z
45
+ .object({
46
+ tags: z.array(z.string().max(100)).optional().describe('Only fire for specs with these tags'),
47
+ priority: z.string().max(50).optional().describe('Only fire for specs with this priority'),
48
+ fromStatus: z.string().max(50).optional().describe('Only fire when status changes FROM this value'),
49
+ toStatus: z.string().max(50).optional().describe('Only fire when status changes TO this value'),
50
+ })
51
+ .optional()
52
+ .describe('Optional filter conditions — hook only fires when all conditions match'),
53
+ enabled: z.boolean().optional().describe('Whether the hook is active (default: true)'),
54
+ },
55
+ annotations: {
56
+ title: 'Configure Spec Hook',
57
+ readOnlyHint: false,
58
+ },
59
+ }, safeLicensed('configure_spec_hooks', async (args) => handleConfigureSpecHooks(args)));
60
+ server.registerTool('list_spec_hooks', {
61
+ description: 'List all configured spec lifecycle hooks with their run statistics ' +
62
+ '(runCount, failCount, lastRunAt) and current enabled/disabled status.',
63
+ inputSchema: {
64
+ projectPath: z
65
+ .string()
66
+ .min(1)
67
+ .max(4096)
68
+ .describe('Absolute path to the project root directory'),
69
+ },
70
+ annotations: {
71
+ title: 'List Spec Hooks',
72
+ readOnlyHint: true,
73
+ },
74
+ }, safeLicensed('list_spec_hooks', async (args) => handleListSpecHooks(args)));
75
+ server.registerTool('test_spec_hook', {
76
+ description: 'Simulate a spec lifecycle event and describe what hooks would fire and what actions ' +
77
+ 'would be triggered — without executing any side effects. ' +
78
+ 'Use this to verify hook configuration before it fires in production.',
79
+ inputSchema: {
80
+ projectPath: z
81
+ .string()
82
+ .min(1)
83
+ .max(4096)
84
+ .describe('Absolute path to the project root directory'),
85
+ hookName: z.string().min(1).max(200).describe('Name of the hook to test'),
86
+ specId: z.string().min(1).max(200).describe('Spec ID to use in the simulation (e.g. SPEC-001)'),
87
+ },
88
+ annotations: {
89
+ title: 'Test Spec Hook (Simulation)',
90
+ readOnlyHint: true,
91
+ },
92
+ }, safeLicensed('test_spec_hook', async (args) => handleTestSpecHook(args)));
93
+ server.registerTool('disable_spec_hook', {
94
+ description: 'Disable a spec lifecycle hook so it no longer fires. The hook config is preserved and can be re-enabled.',
95
+ inputSchema: {
96
+ projectPath: z
97
+ .string()
98
+ .min(1)
99
+ .max(4096)
100
+ .describe('Absolute path to the project root directory'),
101
+ hookName: z.string().min(1).max(200).describe('Name of the hook to disable'),
102
+ },
103
+ annotations: {
104
+ title: 'Disable Spec Hook',
105
+ readOnlyHint: false,
106
+ },
107
+ }, safeLicensed('disable_spec_hook', async (args) => handleDisableSpecHook(args)));
108
+ server.registerTool('enable_spec_hook', {
109
+ description: 'Enable a previously disabled spec lifecycle hook.',
110
+ inputSchema: {
111
+ projectPath: z
112
+ .string()
113
+ .min(1)
114
+ .max(4096)
115
+ .describe('Absolute path to the project root directory'),
116
+ hookName: z.string().min(1).max(200).describe('Name of the hook to enable'),
117
+ },
118
+ annotations: {
119
+ title: 'Enable Spec Hook',
120
+ readOnlyHint: false,
121
+ },
122
+ }, safeLicensed('enable_spec_hook', async (args) => handleEnableSpecHook(args)));
123
+ }
124
+ //# sourceMappingURL=register-spec-hooks-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-hooks-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-hooks-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 registerSpecLintTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-spec-lint-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-lint-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-lint-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AA4CzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6E7D"}
@@ -0,0 +1,79 @@
1
+ // tools/register-spec-lint-tools.ts — Registers Custom Spec Lint Rules tools (SPEC-364)
2
+ import { z } from 'zod';
3
+ import { safeTracked } from './safe-handler.js';
4
+ import { handleDefineLintRule, handleListLintRules, handleRunSpecLint, handleDeleteLintRule, } from './spec-lint-handler.js';
5
+ const LintConditionSchema = z.object({
6
+ field: z
7
+ .enum(['tags', 'acceptanceCriteria', 'estimatedHours', 'priority', 'description', 'title'])
8
+ .describe('Field to check. Values: tags, acceptanceCriteria, estimatedHours, priority, description, title.'),
9
+ operator: z
10
+ .enum([
11
+ 'includes',
12
+ 'not-includes',
13
+ 'min-length',
14
+ 'max-length',
15
+ 'any-contains',
16
+ 'none-contain',
17
+ 'greater-than',
18
+ 'less-than',
19
+ 'exists',
20
+ 'not-exists',
21
+ ])
22
+ .describe('Operator. Values: includes, not-includes, min-length, max-length, any-contains, none-contain, greater-than, less-than, exists, not-exists.'),
23
+ value: z
24
+ .union([z.string(), z.number()])
25
+ .optional()
26
+ .describe('Value to compare against. Not required for exists/not-exists operators.'),
27
+ });
28
+ export function registerSpecLintTools(server) {
29
+ server.registerTool('define_spec_lint_rule', {
30
+ description: 'Define a custom lint rule for specs. Rules check that specs satisfy structural or content conditions. ' +
31
+ 'Use "when" for a guard condition (rule only applies when guard is true), ' +
32
+ '"then" for the condition that must be satisfied. ' +
33
+ 'Use appliesTo.all=true to apply to all specs, or appliesTo.tags to target specific tags.',
34
+ inputSchema: {
35
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
36
+ name: z.string().min(1).max(200).describe('Human-readable name for the rule.'),
37
+ description: z.string().min(1).max(500).describe('What this rule checks.'),
38
+ when: LintConditionSchema.optional().describe('Optional guard condition. Rule only activates when this is true.'),
39
+ then: LintConditionSchema.describe('Condition that MUST be satisfied.'),
40
+ severity: z.enum(['warning', 'error']).describe('Severity. Values: warning, error.'),
41
+ appliesTo: z
42
+ .object({
43
+ tags: z.array(z.string()).optional().describe('Spec tags this rule applies to.'),
44
+ all: z.boolean().optional().describe('If true, applies to all specs.'),
45
+ })
46
+ .describe('Scope of the rule.'),
47
+ },
48
+ annotations: { title: 'Define Spec Lint Rule' },
49
+ }, safeTracked('define_spec_lint_rule', (args) => handleDefineLintRule(args)));
50
+ server.registerTool('list_spec_lint_rules', {
51
+ description: 'List all custom lint rules defined for a project.',
52
+ inputSchema: {
53
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
54
+ },
55
+ annotations: { title: 'List Spec Lint Rules', readOnlyHint: true },
56
+ }, safeTracked('list_spec_lint_rules', (args) => handleListLintRules(args)));
57
+ server.registerTool('run_spec_lint', {
58
+ description: 'Run all custom lint rules against specs in a project. ' +
59
+ 'If specId is provided, only that spec is linted. Otherwise all specs are checked. ' +
60
+ 'Returns a list of violations with severity, field, and message.',
61
+ inputSchema: {
62
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
63
+ specId: z
64
+ .string()
65
+ .optional()
66
+ .describe('Optional spec ID to lint (e.g. SPEC-042). Omit to lint all specs.'),
67
+ },
68
+ annotations: { title: 'Run Spec Lint', readOnlyHint: true },
69
+ }, safeTracked('run_spec_lint', (args) => handleRunSpecLint(args)));
70
+ server.registerTool('delete_spec_lint_rule', {
71
+ description: 'Delete a custom lint rule by ID.',
72
+ inputSchema: {
73
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
74
+ ruleId: z.string().min(1).max(100).describe('ID of the rule to delete (e.g. rule-abc123).'),
75
+ },
76
+ annotations: { title: 'Delete Spec Lint Rule', destructiveHint: true },
77
+ }, safeTracked('delete_spec_lint_rule', (args) => handleDeleteLintRule(args)));
78
+ }
79
+ //# sourceMappingURL=register-spec-lint-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-lint-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-lint-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 registerSpecSchedulerTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-spec-scheduler-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-scheduler-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-scheduler-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAUzE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6FlE"}
@@ -0,0 +1,73 @@
1
+ import { z } from 'zod';
2
+ import { safeTracked } from './safe-handler.js';
3
+ import { handleSimulateParallelExecution, handleCriticalPathAnalyzer, handleParallelEfficiencyScore, handleOptimizeSpecScheduling, } from './spec-scheduler-handler.js';
4
+ export function registerSpecSchedulerTools(server) {
5
+ // simulate_parallel_execution
6
+ server.registerTool('simulate_parallel_execution', {
7
+ description: 'Simulate parallel execution of a set of specs across multiple agents. Returns a timeline with Gantt chart and critical path.',
8
+ annotations: { readOnlyHint: true },
9
+ inputSchema: {
10
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
11
+ specIds: z
12
+ .array(z.string())
13
+ .min(1)
14
+ .describe('List of spec IDs to include in the simulation.'),
15
+ numAgents: z
16
+ .number()
17
+ .int()
18
+ .min(1)
19
+ .max(20)
20
+ .describe('Number of agents (parallel workers) to simulate.'),
21
+ },
22
+ }, safeTracked('simulate_parallel_execution', async (args) => handleSimulateParallelExecution(args)));
23
+ // critical_path_analyzer
24
+ server.registerTool('critical_path_analyzer', {
25
+ description: 'Identify the critical path (longest chain of specs by estimated hours) for a project or a subset of specs.',
26
+ annotations: { readOnlyHint: true },
27
+ inputSchema: {
28
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
29
+ specIds: z
30
+ .array(z.string())
31
+ .optional()
32
+ .describe('Optional subset of spec IDs. Omit to analyze all project specs.'),
33
+ },
34
+ }, safeTracked('critical_path_analyzer', async (args) => handleCriticalPathAnalyzer(args)));
35
+ // parallel_efficiency_score
36
+ server.registerTool('parallel_efficiency_score', {
37
+ description: 'Calculate the parallel efficiency (utilization ratio) for executing a set of specs with N agents. Returns a score and interpretation.',
38
+ annotations: { readOnlyHint: true },
39
+ inputSchema: {
40
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
41
+ specIds: z
42
+ .array(z.string())
43
+ .min(1)
44
+ .describe('List of spec IDs to include in the efficiency calculation.'),
45
+ numAgents: z
46
+ .number()
47
+ .int()
48
+ .min(1)
49
+ .max(20)
50
+ .describe('Number of agents to calculate efficiency for.'),
51
+ },
52
+ }, safeTracked('parallel_efficiency_score', async (args) => handleParallelEfficiencyScore(args)));
53
+ // optimize_spec_scheduling
54
+ server.registerTool('optimize_spec_scheduling', {
55
+ description: 'Suggest an optimized scheduling order for specs to minimize agent idle time when executing in parallel.',
56
+ annotations: { readOnlyHint: true },
57
+ inputSchema: {
58
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
59
+ specIds: z
60
+ .array(z.string())
61
+ .optional()
62
+ .describe('Optional subset of spec IDs. Omit to optimize all project specs.'),
63
+ numAgents: z
64
+ .number()
65
+ .int()
66
+ .min(1)
67
+ .max(20)
68
+ .optional()
69
+ .describe('Number of agents (default: 2).'),
70
+ },
71
+ }, safeTracked('optimize_spec_scheduling', async (args) => handleOptimizeSpecScheduling(args)));
72
+ }
73
+ //# sourceMappingURL=register-spec-scheduler-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-scheduler-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-scheduler-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 registerSpecSourceTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-spec-source-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-source-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-spec-source-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAkE/D"}
@@ -0,0 +1,48 @@
1
+ import { z } from 'zod';
2
+ import { safeTracked } from './safe-handler.js';
3
+ import { handleSyncSpecFromCode, handleMarkAsSpecSource, handleListSpecBindings, } from './spec-source-handler.js';
4
+ export function registerSpecSourceTools(server) {
5
+ server.registerTool('sync_spec_from_code', {
6
+ description: 'Scan source files for @spec markers and sync them with the spec bindings store. Detects // @spec SPEC-XXX comments in code.',
7
+ inputSchema: {
8
+ projectPath: z.string().describe('Absolute path to the project root.'),
9
+ filePaths: z
10
+ .array(z.string())
11
+ .describe('List of absolute file paths to scan for @spec markers.'),
12
+ },
13
+ annotations: { title: 'Sync Spec from Code', destructiveHint: false },
14
+ }, safeTracked('sync_spec_from_code', async (args) => handleSyncSpecFromCode(args)));
15
+ server.registerTool('mark_as_spec_source', {
16
+ description: 'Mark a source file as implementing a specific spec by creating a binding. Also shows the marker comment to add to the file.',
17
+ inputSchema: {
18
+ projectPath: z.string().describe('Absolute path to the project root.'),
19
+ specId: z.string().describe('Spec ID to bind (e.g. SPEC-001).'),
20
+ filePath: z.string().describe('Absolute path to the source file implementing the spec.'),
21
+ lineNumber: z
22
+ .number()
23
+ .optional()
24
+ .describe('Optional line number where the implementation starts.'),
25
+ },
26
+ annotations: { title: 'Mark as Spec Source', destructiveHint: false },
27
+ }, safeTracked('mark_as_spec_source', async (args) => handleMarkAsSpecSource(args)));
28
+ server.registerTool('list_spec_bindings', {
29
+ description: 'List all spec-to-code bindings for a project. Optionally filter by spec ID or unmark a binding.',
30
+ inputSchema: {
31
+ projectPath: z.string().describe('Absolute path to the project root.'),
32
+ specId: z
33
+ .string()
34
+ .optional()
35
+ .describe('Filter bindings to a specific spec ID (e.g. SPEC-001).'),
36
+ action: z
37
+ .enum(['list', 'unmark'])
38
+ .optional()
39
+ .describe('Action to perform. Values: list (default), unmark.'),
40
+ bindingId: z
41
+ .string()
42
+ .optional()
43
+ .describe('Binding ID to remove. Required for unmark action.'),
44
+ },
45
+ annotations: { title: 'List Spec Bindings', readOnlyHint: true },
46
+ }, safeTracked('list_spec_bindings', async (args) => handleListSpecBindings(args)));
47
+ }
48
+ //# sourceMappingURL=register-spec-source-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-spec-source-tools.js","sourceRoot":"","sources":["../../src/tools/register-spec-source-tools.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,GAIvB,MAAM,0BAA0B,CAAC;AAElC,MAAM,UAAU,uBAAuB,CAAC,MAAiB;IACvD,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,SAAS,EAAE,CAAC;iBACT,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,CAAC,wDAAwD,CAAC;SACtE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,WAAW,EACT,6HAA6H;QAC/H,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;YAC/D,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yDAAyD,CAAC;YACxF,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uDAAuD,CAAC;SACrE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,KAAK,EAAE;KACtE,EACD,WAAW,CAAC,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAChD,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,WAAW,EACT,iGAAiG;QACnG,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;YACtE,MAAM,EAAE,CAAC;iBACN,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,wDAAwD,CAAC;YACrE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACxB,QAAQ,EAAE;iBACV,QAAQ,CAAC,oDAAoD,CAAC;YACjE,SAAS,EAAE,CAAC;iBACT,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,mDAAmD,CAAC;SACjE;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE;KACjE,EACD,WAAW,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,CAC/C,sBAAsB,CAAC,IAA6B,CAAC,CACtD,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
+ export declare function registerTechDebtTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-tech-debt-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-tech-debt-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-tech-debt-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAwBzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAmH7D"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ import { safeTracked } from './safe-handler.js';
3
+ import { handleTrackTechDebt, handleTechDebtBudget, handleListTechDebt, handleDebtForecast, handleResolveTechDebt, handleTechDebtReport, } from './tech-debt-handler.js';
4
+ const SEVERITY_ENUM = z
5
+ .enum(['low', 'medium', 'high', 'critical'])
6
+ .describe('Severity level. Values: low, medium, high, critical.');
7
+ const CATEGORY_ENUM = z
8
+ .enum(['testing', 'documentation', 'refactoring', 'architecture', 'security'])
9
+ .describe('Category. Values: testing, documentation, refactoring, architecture, security.');
10
+ const STATUS_ENUM = z
11
+ .enum(['open', 'resolved', 'all'])
12
+ .describe('Filter by status. Values: open, resolved, all.');
13
+ export function registerTechDebtTools(server) {
14
+ // track_tech_debt
15
+ server.registerTool('track_tech_debt', {
16
+ description: 'Track a new tech debt item for a project. Records description, estimated hours, severity, and category.',
17
+ inputSchema: {
18
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
19
+ description: z.string().min(1).max(500).describe('Description of the tech debt.'),
20
+ estimatedHours: z
21
+ .number()
22
+ .min(0.5)
23
+ .max(1000)
24
+ .describe('Estimated hours to resolve this debt.'),
25
+ severity: SEVERITY_ENUM,
26
+ category: CATEGORY_ENUM,
27
+ specId: z.string().optional().describe('Optional spec ID this debt is linked to.'),
28
+ },
29
+ }, safeTracked('track_tech_debt', async (args) => handleTrackTechDebt(args)));
30
+ // tech_debt_budget
31
+ server.registerTool('tech_debt_budget', {
32
+ description: 'Configure tech debt budget limits: max hours allowed, max percent of backlog, and alert threshold.',
33
+ inputSchema: {
34
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
35
+ maxHours: z
36
+ .number()
37
+ .min(1)
38
+ .optional()
39
+ .describe('Maximum total open hours of tech debt allowed.'),
40
+ maxPercentOfBacklog: z
41
+ .number()
42
+ .min(1)
43
+ .max(100)
44
+ .optional()
45
+ .describe('Maximum tech debt as a percentage of backlog hours.'),
46
+ alertThreshold: z
47
+ .number()
48
+ .min(1)
49
+ .max(100)
50
+ .optional()
51
+ .describe('Percentage of budget that triggers an alert.'),
52
+ },
53
+ }, safeTracked('tech_debt_budget', async (args) => handleTechDebtBudget(args)));
54
+ // list_tech_debt
55
+ server.registerTool('list_tech_debt', {
56
+ description: 'List tech debt items for a project, optionally filtered by status, severity, or category.',
57
+ annotations: { readOnlyHint: true },
58
+ inputSchema: {
59
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
60
+ status: STATUS_ENUM.optional().default('open'),
61
+ severity: SEVERITY_ENUM.optional(),
62
+ category: CATEGORY_ENUM.optional(),
63
+ },
64
+ }, safeTracked('list_tech_debt', async (args) => handleListTechDebt(args)));
65
+ // debt_forecast
66
+ server.registerTool('debt_forecast', {
67
+ description: 'Forecast tech debt growth based on historical accumulation rate. Projects weeks until budget is exceeded.',
68
+ annotations: { readOnlyHint: true },
69
+ inputSchema: {
70
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
71
+ },
72
+ }, safeTracked('debt_forecast', async (args) => handleDebtForecast(args)));
73
+ // resolve_tech_debt
74
+ server.registerTool('resolve_tech_debt', {
75
+ description: 'Mark a tech debt item as resolved.',
76
+ inputSchema: {
77
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
78
+ id: z.string().min(1).describe('ID of the tech debt item to resolve.'),
79
+ resolvedNotes: z
80
+ .string()
81
+ .max(500)
82
+ .optional()
83
+ .describe('Optional notes on how it was resolved.'),
84
+ },
85
+ }, safeTracked('resolve_tech_debt', async (args) => handleResolveTechDebt(args)));
86
+ // tech_debt_report
87
+ server.registerTool('tech_debt_report', {
88
+ description: 'Generate an HTML report of all tech debt items with metrics and forecast summary.',
89
+ annotations: { readOnlyHint: true },
90
+ inputSchema: {
91
+ projectPath: z.string().min(1).max(4096).describe('Absolute path to the project root.'),
92
+ },
93
+ }, safeTracked('tech_debt_report', async (args) => handleTechDebtReport(args)));
94
+ }
95
+ //# sourceMappingURL=register-tech-debt-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-tech-debt-tools.js","sourceRoot":"","sources":["../../src/tools/register-tech-debt-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 registerValidationLoopTools(server: McpServer): void;
3
+ //# sourceMappingURL=register-validation-loop-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register-validation-loop-tools.d.ts","sourceRoot":"","sources":["../../src/tools/register-validation-loop-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAczE,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA8FnE"}