@decibelsystems/tools 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (478) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +342 -0
  3. package/dist/agentic/compiler.d.ts +21 -0
  4. package/dist/agentic/compiler.d.ts.map +1 -0
  5. package/dist/agentic/compiler.js +267 -0
  6. package/dist/agentic/compiler.js.map +1 -0
  7. package/dist/agentic/golden.d.ts +25 -0
  8. package/dist/agentic/golden.d.ts.map +1 -0
  9. package/dist/agentic/golden.js +255 -0
  10. package/dist/agentic/golden.js.map +1 -0
  11. package/dist/agentic/index.d.ts +17 -0
  12. package/dist/agentic/index.d.ts.map +1 -0
  13. package/dist/agentic/index.js +153 -0
  14. package/dist/agentic/index.js.map +1 -0
  15. package/dist/agentic/linter.d.ts +20 -0
  16. package/dist/agentic/linter.d.ts.map +1 -0
  17. package/dist/agentic/linter.js +340 -0
  18. package/dist/agentic/linter.js.map +1 -0
  19. package/dist/agentic/renderer.d.ts +17 -0
  20. package/dist/agentic/renderer.d.ts.map +1 -0
  21. package/dist/agentic/renderer.js +277 -0
  22. package/dist/agentic/renderer.js.map +1 -0
  23. package/dist/agentic/types.d.ts +199 -0
  24. package/dist/agentic/types.d.ts.map +1 -0
  25. package/dist/agentic/types.js +8 -0
  26. package/dist/agentic/types.js.map +1 -0
  27. package/dist/architectAdrs.d.ts +32 -0
  28. package/dist/architectAdrs.d.ts.map +1 -0
  29. package/dist/architectAdrs.js +162 -0
  30. package/dist/architectAdrs.js.map +1 -0
  31. package/dist/client/facade-client.d.ts +41 -0
  32. package/dist/client/facade-client.d.ts.map +1 -0
  33. package/dist/client/facade-client.js +243 -0
  34. package/dist/client/facade-client.js.map +1 -0
  35. package/dist/client/index.d.ts +4 -0
  36. package/dist/client/index.d.ts.map +1 -0
  37. package/dist/client/index.js +18 -0
  38. package/dist/client/index.js.map +1 -0
  39. package/dist/client/transports.d.ts +78 -0
  40. package/dist/client/transports.d.ts.map +1 -0
  41. package/dist/client/transports.js +258 -0
  42. package/dist/client/transports.js.map +1 -0
  43. package/dist/client/types.d.ts +49 -0
  44. package/dist/client/types.d.ts.map +1 -0
  45. package/dist/client/types.js +8 -0
  46. package/dist/client/types.js.map +1 -0
  47. package/dist/config.d.ts +8 -0
  48. package/dist/config.d.ts.map +1 -0
  49. package/dist/config.js +19 -0
  50. package/dist/config.js.map +1 -0
  51. package/dist/daemon.d.ts +77 -0
  52. package/dist/daemon.d.ts.map +1 -0
  53. package/dist/daemon.js +374 -0
  54. package/dist/daemon.js.map +1 -0
  55. package/dist/daemonConfig.d.ts +43 -0
  56. package/dist/daemonConfig.d.ts.map +1 -0
  57. package/dist/daemonConfig.js +113 -0
  58. package/dist/daemonConfig.js.map +1 -0
  59. package/dist/dataRoot.d.ts +5 -0
  60. package/dist/dataRoot.d.ts.map +1 -0
  61. package/dist/dataRoot.js +23 -0
  62. package/dist/dataRoot.js.map +1 -0
  63. package/dist/decibelPaths.d.ts +42 -0
  64. package/dist/decibelPaths.d.ts.map +1 -0
  65. package/dist/decibelPaths.js +150 -0
  66. package/dist/decibelPaths.js.map +1 -0
  67. package/dist/facades/definitions.d.ts +6 -0
  68. package/dist/facades/definitions.d.ts.map +1 -0
  69. package/dist/facades/definitions.js +450 -0
  70. package/dist/facades/definitions.js.map +1 -0
  71. package/dist/facades/index.d.ts +27 -0
  72. package/dist/facades/index.d.ts.map +1 -0
  73. package/dist/facades/index.js +124 -0
  74. package/dist/facades/index.js.map +1 -0
  75. package/dist/facades/types.d.ts +38 -0
  76. package/dist/facades/types.d.ts.map +1 -0
  77. package/dist/facades/types.js +8 -0
  78. package/dist/facades/types.js.map +1 -0
  79. package/dist/httpServer.d.ts +66 -0
  80. package/dist/httpServer.d.ts.map +1 -0
  81. package/dist/httpServer.js +1723 -0
  82. package/dist/httpServer.js.map +1 -0
  83. package/dist/kernel.d.ts +87 -0
  84. package/dist/kernel.d.ts.map +1 -0
  85. package/dist/kernel.js +256 -0
  86. package/dist/kernel.js.map +1 -0
  87. package/dist/lib/agent-services/assumptions.d.ts +16 -0
  88. package/dist/lib/agent-services/assumptions.d.ts.map +1 -0
  89. package/dist/lib/agent-services/assumptions.js +284 -0
  90. package/dist/lib/agent-services/assumptions.js.map +1 -0
  91. package/dist/lib/agent-services/context-pack.d.ts +6 -0
  92. package/dist/lib/agent-services/context-pack.d.ts.map +1 -0
  93. package/dist/lib/agent-services/context-pack.js +354 -0
  94. package/dist/lib/agent-services/context-pack.js.map +1 -0
  95. package/dist/lib/agent-services/drift-guard.d.ts +14 -0
  96. package/dist/lib/agent-services/drift-guard.d.ts.map +1 -0
  97. package/dist/lib/agent-services/drift-guard.js +355 -0
  98. package/dist/lib/agent-services/drift-guard.js.map +1 -0
  99. package/dist/lib/agent-services/index.d.ts +5 -0
  100. package/dist/lib/agent-services/index.d.ts.map +1 -0
  101. package/dist/lib/agent-services/index.js +10 -0
  102. package/dist/lib/agent-services/index.js.map +1 -0
  103. package/dist/lib/benchmark.d.ts +110 -0
  104. package/dist/lib/benchmark.d.ts.map +1 -0
  105. package/dist/lib/benchmark.js +338 -0
  106. package/dist/lib/benchmark.js.map +1 -0
  107. package/dist/lib/supabase.d.ts +123 -0
  108. package/dist/lib/supabase.d.ts.map +1 -0
  109. package/dist/lib/supabase.js +91 -0
  110. package/dist/lib/supabase.js.map +1 -0
  111. package/dist/license.d.ts +30 -0
  112. package/dist/license.d.ts.map +1 -0
  113. package/dist/license.js +131 -0
  114. package/dist/license.js.map +1 -0
  115. package/dist/projectPaths.d.ts +27 -0
  116. package/dist/projectPaths.d.ts.map +1 -0
  117. package/dist/projectPaths.js +86 -0
  118. package/dist/projectPaths.js.map +1 -0
  119. package/dist/projectRegistry.d.ts +97 -0
  120. package/dist/projectRegistry.d.ts.map +1 -0
  121. package/dist/projectRegistry.js +374 -0
  122. package/dist/projectRegistry.js.map +1 -0
  123. package/dist/sentinelIssues.d.ts +65 -0
  124. package/dist/sentinelIssues.d.ts.map +1 -0
  125. package/dist/sentinelIssues.js +297 -0
  126. package/dist/sentinelIssues.js.map +1 -0
  127. package/dist/server.d.ts +3 -0
  128. package/dist/server.d.ts.map +1 -0
  129. package/dist/server.js +195 -0
  130. package/dist/server.js.map +1 -0
  131. package/dist/test.d.ts +7 -0
  132. package/dist/test.d.ts.map +1 -0
  133. package/dist/test.js +77 -0
  134. package/dist/test.js.map +1 -0
  135. package/dist/tools/agentic/index.d.ts +7 -0
  136. package/dist/tools/agentic/index.d.ts.map +1 -0
  137. package/dist/tools/agentic/index.js +203 -0
  138. package/dist/tools/agentic/index.js.map +1 -0
  139. package/dist/tools/architect/index.d.ts +11 -0
  140. package/dist/tools/architect/index.d.ts.map +1 -0
  141. package/dist/tools/architect/index.js +506 -0
  142. package/dist/tools/architect/index.js.map +1 -0
  143. package/dist/tools/architect.d.ts +19 -0
  144. package/dist/tools/architect.d.ts.map +1 -0
  145. package/dist/tools/architect.js +88 -0
  146. package/dist/tools/architect.js.map +1 -0
  147. package/dist/tools/auditor/index.d.ts +10 -0
  148. package/dist/tools/auditor/index.d.ts.map +1 -0
  149. package/dist/tools/auditor/index.js +310 -0
  150. package/dist/tools/auditor/index.js.map +1 -0
  151. package/dist/tools/auditor.d.ts +149 -0
  152. package/dist/tools/auditor.d.ts.map +1 -0
  153. package/dist/tools/auditor.js +775 -0
  154. package/dist/tools/auditor.js.map +1 -0
  155. package/dist/tools/bench/index.d.ts +3 -0
  156. package/dist/tools/bench/index.d.ts.map +1 -0
  157. package/dist/tools/bench/index.js +220 -0
  158. package/dist/tools/bench/index.js.map +1 -0
  159. package/dist/tools/bench.d.ts +89 -0
  160. package/dist/tools/bench.d.ts.map +1 -0
  161. package/dist/tools/bench.js +826 -0
  162. package/dist/tools/bench.js.map +1 -0
  163. package/dist/tools/context/index.d.ts +11 -0
  164. package/dist/tools/context/index.d.ts.map +1 -0
  165. package/dist/tools/context/index.js +482 -0
  166. package/dist/tools/context/index.js.map +1 -0
  167. package/dist/tools/context.d.ts +146 -0
  168. package/dist/tools/context.d.ts.map +1 -0
  169. package/dist/tools/context.js +481 -0
  170. package/dist/tools/context.js.map +1 -0
  171. package/dist/tools/coordinator/coordinator.d.ts +168 -0
  172. package/dist/tools/coordinator/coordinator.d.ts.map +1 -0
  173. package/dist/tools/coordinator/coordinator.js +535 -0
  174. package/dist/tools/coordinator/coordinator.js.map +1 -0
  175. package/dist/tools/coordinator/index.d.ts +12 -0
  176. package/dist/tools/coordinator/index.d.ts.map +1 -0
  177. package/dist/tools/coordinator/index.js +381 -0
  178. package/dist/tools/coordinator/index.js.map +1 -0
  179. package/dist/tools/corpus/index.d.ts +5 -0
  180. package/dist/tools/corpus/index.d.ts.map +1 -0
  181. package/dist/tools/corpus/index.js +105 -0
  182. package/dist/tools/corpus/index.js.map +1 -0
  183. package/dist/tools/corpus.d.ts +33 -0
  184. package/dist/tools/corpus.d.ts.map +1 -0
  185. package/dist/tools/corpus.js +180 -0
  186. package/dist/tools/corpus.js.map +1 -0
  187. package/dist/tools/crit.d.ts +63 -0
  188. package/dist/tools/crit.d.ts.map +1 -0
  189. package/dist/tools/crit.js +159 -0
  190. package/dist/tools/crit.js.map +1 -0
  191. package/dist/tools/data-inspector.d.ts +189 -0
  192. package/dist/tools/data-inspector.d.ts.map +1 -0
  193. package/dist/tools/data-inspector.js +669 -0
  194. package/dist/tools/data-inspector.js.map +1 -0
  195. package/dist/tools/deck.d.ts +11 -0
  196. package/dist/tools/deck.d.ts.map +1 -0
  197. package/dist/tools/deck.js +188 -0
  198. package/dist/tools/deck.js.map +1 -0
  199. package/dist/tools/designer/index.d.ts +11 -0
  200. package/dist/tools/designer/index.d.ts.map +1 -0
  201. package/dist/tools/designer/index.js +442 -0
  202. package/dist/tools/designer/index.js.map +1 -0
  203. package/dist/tools/designer/lateral-tools.d.ts +6 -0
  204. package/dist/tools/designer/lateral-tools.d.ts.map +1 -0
  205. package/dist/tools/designer/lateral-tools.js +190 -0
  206. package/dist/tools/designer/lateral-tools.js.map +1 -0
  207. package/dist/tools/designer.d.ts +122 -0
  208. package/dist/tools/designer.d.ts.map +1 -0
  209. package/dist/tools/designer.js +495 -0
  210. package/dist/tools/designer.js.map +1 -0
  211. package/dist/tools/dojo/index.d.ts +13 -0
  212. package/dist/tools/dojo/index.d.ts.map +1 -0
  213. package/dist/tools/dojo/index.js +613 -0
  214. package/dist/tools/dojo/index.js.map +1 -0
  215. package/dist/tools/dojo.d.ts +254 -0
  216. package/dist/tools/dojo.d.ts.map +1 -0
  217. package/dist/tools/dojo.js +933 -0
  218. package/dist/tools/dojo.js.map +1 -0
  219. package/dist/tools/dojoBench.d.ts +49 -0
  220. package/dist/tools/dojoBench.d.ts.map +1 -0
  221. package/dist/tools/dojoBench.js +205 -0
  222. package/dist/tools/dojoBench.js.map +1 -0
  223. package/dist/tools/dojoGraduated.d.ts +50 -0
  224. package/dist/tools/dojoGraduated.d.ts.map +1 -0
  225. package/dist/tools/dojoGraduated.js +174 -0
  226. package/dist/tools/dojoGraduated.js.map +1 -0
  227. package/dist/tools/dojoPolicy.d.ts +65 -0
  228. package/dist/tools/dojoPolicy.d.ts.map +1 -0
  229. package/dist/tools/dojoPolicy.js +263 -0
  230. package/dist/tools/dojoPolicy.js.map +1 -0
  231. package/dist/tools/feedback/index.d.ts +5 -0
  232. package/dist/tools/feedback/index.d.ts.map +1 -0
  233. package/dist/tools/feedback/index.js +153 -0
  234. package/dist/tools/feedback/index.js.map +1 -0
  235. package/dist/tools/feedback.d.ts +61 -0
  236. package/dist/tools/feedback.d.ts.map +1 -0
  237. package/dist/tools/feedback.js +209 -0
  238. package/dist/tools/feedback.js.map +1 -0
  239. package/dist/tools/forecast/index.d.ts +8 -0
  240. package/dist/tools/forecast/index.d.ts.map +1 -0
  241. package/dist/tools/forecast/index.js +283 -0
  242. package/dist/tools/forecast/index.js.map +1 -0
  243. package/dist/tools/forecast.d.ts +147 -0
  244. package/dist/tools/forecast.d.ts.map +1 -0
  245. package/dist/tools/forecast.js +417 -0
  246. package/dist/tools/forecast.js.map +1 -0
  247. package/dist/tools/friction/index.d.ts +7 -0
  248. package/dist/tools/friction/index.d.ts.map +1 -0
  249. package/dist/tools/friction/index.js +265 -0
  250. package/dist/tools/friction/index.js.map +1 -0
  251. package/dist/tools/friction.d.ts +82 -0
  252. package/dist/tools/friction.d.ts.map +1 -0
  253. package/dist/tools/friction.js +331 -0
  254. package/dist/tools/friction.js.map +1 -0
  255. package/dist/tools/git/index.d.ts +9 -0
  256. package/dist/tools/git/index.d.ts.map +1 -0
  257. package/dist/tools/git/index.js +237 -0
  258. package/dist/tools/git/index.js.map +1 -0
  259. package/dist/tools/git-sentinel/index.d.ts +7 -0
  260. package/dist/tools/git-sentinel/index.d.ts.map +1 -0
  261. package/dist/tools/git-sentinel/index.js +178 -0
  262. package/dist/tools/git-sentinel/index.js.map +1 -0
  263. package/dist/tools/git-sentinel.d.ts +78 -0
  264. package/dist/tools/git-sentinel.d.ts.map +1 -0
  265. package/dist/tools/git-sentinel.js +391 -0
  266. package/dist/tools/git-sentinel.js.map +1 -0
  267. package/dist/tools/git.d.ts +134 -0
  268. package/dist/tools/git.d.ts.map +1 -0
  269. package/dist/tools/git.js +374 -0
  270. package/dist/tools/git.js.map +1 -0
  271. package/dist/tools/guardian/index.d.ts +8 -0
  272. package/dist/tools/guardian/index.d.ts.map +1 -0
  273. package/dist/tools/guardian/index.js +171 -0
  274. package/dist/tools/guardian/index.js.map +1 -0
  275. package/dist/tools/guardian.d.ts +62 -0
  276. package/dist/tools/guardian.d.ts.map +1 -0
  277. package/dist/tools/guardian.js +332 -0
  278. package/dist/tools/guardian.js.map +1 -0
  279. package/dist/tools/hygiene/codebase-scanner.d.ts +38 -0
  280. package/dist/tools/hygiene/codebase-scanner.d.ts.map +1 -0
  281. package/dist/tools/hygiene/codebase-scanner.js +411 -0
  282. package/dist/tools/hygiene/codebase-scanner.js.map +1 -0
  283. package/dist/tools/hygiene/config-scanner.d.ts +33 -0
  284. package/dist/tools/hygiene/config-scanner.d.ts.map +1 -0
  285. package/dist/tools/hygiene/config-scanner.js +482 -0
  286. package/dist/tools/hygiene/config-scanner.js.map +1 -0
  287. package/dist/tools/hygiene/coverage-scanner.d.ts +41 -0
  288. package/dist/tools/hygiene/coverage-scanner.d.ts.map +1 -0
  289. package/dist/tools/hygiene/coverage-scanner.js +331 -0
  290. package/dist/tools/hygiene/coverage-scanner.js.map +1 -0
  291. package/dist/tools/hygiene/index.d.ts +7 -0
  292. package/dist/tools/hygiene/index.d.ts.map +1 -0
  293. package/dist/tools/hygiene/index.js +291 -0
  294. package/dist/tools/hygiene/index.js.map +1 -0
  295. package/dist/tools/hygiene/oracle-hygiene.d.ts +68 -0
  296. package/dist/tools/hygiene/oracle-hygiene.d.ts.map +1 -0
  297. package/dist/tools/hygiene/oracle-hygiene.js +324 -0
  298. package/dist/tools/hygiene/oracle-hygiene.js.map +1 -0
  299. package/dist/tools/index.d.ts +6 -0
  300. package/dist/tools/index.d.ts.map +1 -0
  301. package/dist/tools/index.js +130 -0
  302. package/dist/tools/index.js.map +1 -0
  303. package/dist/tools/lateral.d.ts +114 -0
  304. package/dist/tools/lateral.d.ts.map +1 -0
  305. package/dist/tools/lateral.js +536 -0
  306. package/dist/tools/lateral.js.map +1 -0
  307. package/dist/tools/learnings/index.d.ts +5 -0
  308. package/dist/tools/learnings/index.d.ts.map +1 -0
  309. package/dist/tools/learnings/index.js +138 -0
  310. package/dist/tools/learnings/index.js.map +1 -0
  311. package/dist/tools/learnings.d.ts +41 -0
  312. package/dist/tools/learnings.d.ts.map +1 -0
  313. package/dist/tools/learnings.js +149 -0
  314. package/dist/tools/learnings.js.map +1 -0
  315. package/dist/tools/oracle/index.d.ts +6 -0
  316. package/dist/tools/oracle/index.d.ts.map +1 -0
  317. package/dist/tools/oracle/index.js +217 -0
  318. package/dist/tools/oracle/index.js.map +1 -0
  319. package/dist/tools/oracle.d.ts +90 -0
  320. package/dist/tools/oracle.d.ts.map +1 -0
  321. package/dist/tools/oracle.js +529 -0
  322. package/dist/tools/oracle.js.map +1 -0
  323. package/dist/tools/policy.d.ts +119 -0
  324. package/dist/tools/policy.d.ts.map +1 -0
  325. package/dist/tools/policy.js +406 -0
  326. package/dist/tools/policy.js.map +1 -0
  327. package/dist/tools/provenance/index.d.ts +4 -0
  328. package/dist/tools/provenance/index.d.ts.map +1 -0
  329. package/dist/tools/provenance/index.js +63 -0
  330. package/dist/tools/provenance/index.js.map +1 -0
  331. package/dist/tools/provenance.d.ts +75 -0
  332. package/dist/tools/provenance.d.ts.map +1 -0
  333. package/dist/tools/provenance.js +224 -0
  334. package/dist/tools/provenance.js.map +1 -0
  335. package/dist/tools/rateLimiter.d.ts +45 -0
  336. package/dist/tools/rateLimiter.d.ts.map +1 -0
  337. package/dist/tools/rateLimiter.js +91 -0
  338. package/dist/tools/rateLimiter.js.map +1 -0
  339. package/dist/tools/registry/index.d.ts +10 -0
  340. package/dist/tools/registry/index.d.ts.map +1 -0
  341. package/dist/tools/registry/index.js +506 -0
  342. package/dist/tools/registry/index.js.map +1 -0
  343. package/dist/tools/registry.d.ts +3 -0
  344. package/dist/tools/registry.d.ts.map +1 -0
  345. package/dist/tools/registry.js +189 -0
  346. package/dist/tools/registry.js.map +1 -0
  347. package/dist/tools/roadmap/index.d.ts +11 -0
  348. package/dist/tools/roadmap/index.d.ts.map +1 -0
  349. package/dist/tools/roadmap/index.js +364 -0
  350. package/dist/tools/roadmap/index.js.map +1 -0
  351. package/dist/tools/roadmap.d.ts +103 -0
  352. package/dist/tools/roadmap.d.ts.map +1 -0
  353. package/dist/tools/roadmap.js +407 -0
  354. package/dist/tools/roadmap.js.map +1 -0
  355. package/dist/tools/senken.d.ts +11 -0
  356. package/dist/tools/senken.d.ts.map +1 -0
  357. package/dist/tools/senken.js +482 -0
  358. package/dist/tools/senken.js.map +1 -0
  359. package/dist/tools/sentinel/index.d.ts +21 -0
  360. package/dist/tools/sentinel/index.d.ts.map +1 -0
  361. package/dist/tools/sentinel/index.js +1067 -0
  362. package/dist/tools/sentinel/index.js.map +1 -0
  363. package/dist/tools/sentinel-scan-data.d.ts +90 -0
  364. package/dist/tools/sentinel-scan-data.d.ts.map +1 -0
  365. package/dist/tools/sentinel-scan-data.js +122 -0
  366. package/dist/tools/sentinel-scan-data.js.map +1 -0
  367. package/dist/tools/sentinel.d.ts +156 -0
  368. package/dist/tools/sentinel.d.ts.map +1 -0
  369. package/dist/tools/sentinel.js +603 -0
  370. package/dist/tools/sentinel.js.map +1 -0
  371. package/dist/tools/shared/index.d.ts +5 -0
  372. package/dist/tools/shared/index.d.ts.map +1 -0
  373. package/dist/tools/shared/index.js +8 -0
  374. package/dist/tools/shared/index.js.map +1 -0
  375. package/dist/tools/shared/project.d.ts +17 -0
  376. package/dist/tools/shared/project.d.ts.map +1 -0
  377. package/dist/tools/shared/project.js +36 -0
  378. package/dist/tools/shared/project.js.map +1 -0
  379. package/dist/tools/shared/response.d.ts +15 -0
  380. package/dist/tools/shared/response.d.ts.map +1 -0
  381. package/dist/tools/shared/response.js +77 -0
  382. package/dist/tools/shared/response.js.map +1 -0
  383. package/dist/tools/shared/runTracker.d.ts +87 -0
  384. package/dist/tools/shared/runTracker.d.ts.map +1 -0
  385. package/dist/tools/shared/runTracker.js +225 -0
  386. package/dist/tools/shared/runTracker.js.map +1 -0
  387. package/dist/tools/shared/validation.d.ts +10 -0
  388. package/dist/tools/shared/validation.d.ts.map +1 -0
  389. package/dist/tools/shared/validation.js +26 -0
  390. package/dist/tools/shared/validation.js.map +1 -0
  391. package/dist/tools/studio/cloud-spine.d.ts +27 -0
  392. package/dist/tools/studio/cloud-spine.d.ts.map +1 -0
  393. package/dist/tools/studio/cloud-spine.js +845 -0
  394. package/dist/tools/studio/cloud-spine.js.map +1 -0
  395. package/dist/tools/studio/index.d.ts +154 -0
  396. package/dist/tools/studio/index.d.ts.map +1 -0
  397. package/dist/tools/studio/index.js +541 -0
  398. package/dist/tools/studio/index.js.map +1 -0
  399. package/dist/tools/testSpec.d.ts +122 -0
  400. package/dist/tools/testSpec.d.ts.map +1 -0
  401. package/dist/tools/testSpec.js +525 -0
  402. package/dist/tools/testSpec.js.map +1 -0
  403. package/dist/tools/toolsIndex.d.ts +5 -0
  404. package/dist/tools/toolsIndex.d.ts.map +1 -0
  405. package/dist/tools/toolsIndex.js +37 -0
  406. package/dist/tools/toolsIndex.js.map +1 -0
  407. package/dist/tools/types.d.ts +47 -0
  408. package/dist/tools/types.d.ts.map +1 -0
  409. package/dist/tools/types.js +7 -0
  410. package/dist/tools/types.js.map +1 -0
  411. package/dist/tools/vector/index.d.ts +13 -0
  412. package/dist/tools/vector/index.d.ts.map +1 -0
  413. package/dist/tools/vector/index.js +592 -0
  414. package/dist/tools/vector/index.js.map +1 -0
  415. package/dist/tools/vector.d.ts +189 -0
  416. package/dist/tools/vector.d.ts.map +1 -0
  417. package/dist/tools/vector.js +570 -0
  418. package/dist/tools/vector.js.map +1 -0
  419. package/dist/tools/velocity/index.d.ts +9 -0
  420. package/dist/tools/velocity/index.d.ts.map +1 -0
  421. package/dist/tools/velocity/index.js +306 -0
  422. package/dist/tools/velocity/index.js.map +1 -0
  423. package/dist/tools/velocity.d.ts +143 -0
  424. package/dist/tools/velocity.d.ts.map +1 -0
  425. package/dist/tools/velocity.js +628 -0
  426. package/dist/tools/velocity.js.map +1 -0
  427. package/dist/tools/voice/index.d.ts +8 -0
  428. package/dist/tools/voice/index.d.ts.map +1 -0
  429. package/dist/tools/voice/index.js +203 -0
  430. package/dist/tools/voice/index.js.map +1 -0
  431. package/dist/tools/voice.d.ts +291 -0
  432. package/dist/tools/voice.d.ts.map +1 -0
  433. package/dist/tools/voice.js +734 -0
  434. package/dist/tools/voice.js.map +1 -0
  435. package/dist/tools/workflow/index.d.ts +8 -0
  436. package/dist/tools/workflow/index.d.ts.map +1 -0
  437. package/dist/tools/workflow/index.js +199 -0
  438. package/dist/tools/workflow/index.js.map +1 -0
  439. package/dist/tools/workflow.d.ts +123 -0
  440. package/dist/tools/workflow.d.ts.map +1 -0
  441. package/dist/tools/workflow.js +647 -0
  442. package/dist/tools/workflow.js.map +1 -0
  443. package/dist/transports/bridge.d.ts +22 -0
  444. package/dist/transports/bridge.d.ts.map +1 -0
  445. package/dist/transports/bridge.js +177 -0
  446. package/dist/transports/bridge.js.map +1 -0
  447. package/dist/transports/http.d.ts +9 -0
  448. package/dist/transports/http.d.ts.map +1 -0
  449. package/dist/transports/http.js +35 -0
  450. package/dist/transports/http.js.map +1 -0
  451. package/dist/transports/index.d.ts +6 -0
  452. package/dist/transports/index.d.ts.map +1 -0
  453. package/dist/transports/index.js +8 -0
  454. package/dist/transports/index.js.map +1 -0
  455. package/dist/transports/mcp.d.ts +9 -0
  456. package/dist/transports/mcp.d.ts.map +1 -0
  457. package/dist/transports/mcp.js +51 -0
  458. package/dist/transports/mcp.js.map +1 -0
  459. package/dist/transports/stdio.d.ts +9 -0
  460. package/dist/transports/stdio.d.ts.map +1 -0
  461. package/dist/transports/stdio.js +26 -0
  462. package/dist/transports/stdio.js.map +1 -0
  463. package/dist/transports/types.d.ts +27 -0
  464. package/dist/transports/types.d.ts.map +1 -0
  465. package/dist/transports/types.js +8 -0
  466. package/dist/transports/types.js.map +1 -0
  467. package/dist/types/agent-services.d.ts +193 -0
  468. package/dist/types/agent-services.d.ts.map +1 -0
  469. package/dist/types/agent-services.js +8 -0
  470. package/dist/types/agent-services.js.map +1 -0
  471. package/dist/types/index.d.ts +2 -0
  472. package/dist/types/index.d.ts.map +1 -0
  473. package/dist/types/index.js +7 -0
  474. package/dist/types/index.js.map +1 -0
  475. package/package.json +72 -0
  476. package/templates/AGENT.md +87 -0
  477. package/templates/com.decibel.daemon.plist +47 -0
  478. package/templates/sentinel/ISSUE_TEMPLATE.md +20 -0
@@ -0,0 +1,442 @@
1
+ // ============================================================================
2
+ // Designer Domain Tools
3
+ // ============================================================================
4
+ // Tools for design decisions and creative feedback (crits).
5
+ // ============================================================================
6
+ import { toolSuccess, toolError, requireFields, withRunTracking, summaryGenerators } from '../shared/index.js';
7
+ import { recordDesignDecision, syncTokens, reviewFigma, upsertPrinciple, listPrinciples, checkParity, } from '../designer.js';
8
+ import { logCrit, listCrits, } from '../crit.js';
9
+ import { lateralTools } from './lateral-tools.js';
10
+ // ============================================================================
11
+ // Types
12
+ // ============================================================================
13
+ const VALID_SENTIMENTS = ['positive', 'negative', 'neutral', 'question'];
14
+ // ============================================================================
15
+ // Helper: Normalize project_id → projectId
16
+ // ============================================================================
17
+ function normalizeProjectId(args) {
18
+ if (!args.projectId && args.project_id) {
19
+ args.projectId = args.project_id;
20
+ }
21
+ }
22
+ // ============================================================================
23
+ // Record Design Decision Tool
24
+ // ============================================================================
25
+ export const designerRecordDecisionTool = {
26
+ definition: {
27
+ name: 'designer_record_design_decision',
28
+ description: 'Record a design decision for a project. Automatically saves a markdown file to .decibel/designer/decisions/ with frontmatter. No separate file writing needed.',
29
+ annotations: {
30
+ title: 'Record Design Decision',
31
+ readOnlyHint: false,
32
+ destructiveHint: false,
33
+ idempotentHint: false,
34
+ },
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ projectId: {
39
+ type: 'string',
40
+ description: 'Optional project identifier. Uses default project if not specified.',
41
+ },
42
+ area: {
43
+ type: 'string',
44
+ description: 'The area or domain of the design decision (e.g., "UI", "API", "Database")',
45
+ },
46
+ summary: {
47
+ type: 'string',
48
+ description: 'A brief summary of the design decision',
49
+ },
50
+ details: {
51
+ type: 'string',
52
+ description: 'Optional detailed explanation of the design decision',
53
+ },
54
+ },
55
+ required: ['area', 'summary'],
56
+ },
57
+ },
58
+ handler: withRunTracking(async (args) => {
59
+ try {
60
+ const rawInput = args;
61
+ normalizeProjectId(rawInput);
62
+ const input = rawInput;
63
+ requireFields(input, 'area', 'summary');
64
+ const result = await recordDesignDecision(input);
65
+ return toolSuccess(result);
66
+ }
67
+ catch (err) {
68
+ return toolError(err instanceof Error ? err.message : String(err));
69
+ }
70
+ }, {
71
+ toolName: 'designer_record_design_decision',
72
+ getProjectId: (args) => args.projectId || args.project_id,
73
+ getSummary: summaryGenerators.designDecision,
74
+ }),
75
+ };
76
+ // ============================================================================
77
+ // Crit Tool (Log Creative Feedback)
78
+ // ============================================================================
79
+ export const designerCritTool = {
80
+ definition: {
81
+ name: 'designer_crit',
82
+ description: 'Log early creative feedback before decisions crystallize. Use for gut reactions, observations, questions, and hunches during exploration phases.',
83
+ annotations: {
84
+ title: 'Log Crit',
85
+ readOnlyHint: false,
86
+ destructiveHint: false,
87
+ idempotentHint: false,
88
+ },
89
+ inputSchema: {
90
+ type: 'object',
91
+ properties: {
92
+ project_id: {
93
+ type: 'string',
94
+ description: 'The project identifier',
95
+ },
96
+ area: {
97
+ type: 'string',
98
+ description: 'Area being critiqued (e.g., "3D", "motion", "layout", "ux")',
99
+ },
100
+ observation: {
101
+ type: 'string',
102
+ description: 'The crit itself - what you noticed, felt, or wondered',
103
+ },
104
+ sentiment: {
105
+ type: 'string',
106
+ enum: ['positive', 'negative', 'neutral', 'question'],
107
+ description: 'The tone of the observation (default: neutral)',
108
+ },
109
+ context: {
110
+ type: 'string',
111
+ description: 'Optional context - what were you testing/looking at?',
112
+ },
113
+ tags: {
114
+ type: 'array',
115
+ items: { type: 'string' },
116
+ description: 'Optional tags for filtering',
117
+ },
118
+ },
119
+ required: ['project_id', 'area', 'observation'],
120
+ },
121
+ },
122
+ handler: async (args) => {
123
+ try {
124
+ const rawInput = args;
125
+ normalizeProjectId(rawInput);
126
+ const input = rawInput;
127
+ requireFields(input, 'area', 'observation');
128
+ if (input.sentiment && !VALID_SENTIMENTS.includes(input.sentiment)) {
129
+ throw new Error(`Invalid sentiment. Must be one of: ${VALID_SENTIMENTS.join(', ')}`);
130
+ }
131
+ const result = await logCrit(input);
132
+ return toolSuccess(result);
133
+ }
134
+ catch (err) {
135
+ return toolError(err instanceof Error ? err.message : String(err));
136
+ }
137
+ },
138
+ };
139
+ // ============================================================================
140
+ // List Crits Tool
141
+ // ============================================================================
142
+ export const designerListCritsTool = {
143
+ definition: {
144
+ name: 'designer_list_crits',
145
+ description: 'List crit observations for a project, optionally filtered by area or sentiment.',
146
+ annotations: {
147
+ title: 'List Crits',
148
+ readOnlyHint: true,
149
+ destructiveHint: false,
150
+ },
151
+ inputSchema: {
152
+ type: 'object',
153
+ properties: {
154
+ project_id: {
155
+ type: 'string',
156
+ description: 'The project identifier',
157
+ },
158
+ area: {
159
+ type: 'string',
160
+ description: 'Filter by area (e.g., "3D", "motion")',
161
+ },
162
+ sentiment: {
163
+ type: 'string',
164
+ enum: ['positive', 'negative', 'neutral', 'question'],
165
+ description: 'Filter by sentiment',
166
+ },
167
+ limit: {
168
+ type: 'integer',
169
+ description: 'Maximum number of entries to return (most recent first)',
170
+ },
171
+ },
172
+ required: ['project_id'],
173
+ },
174
+ },
175
+ handler: async (args) => {
176
+ try {
177
+ const rawInput = args;
178
+ normalizeProjectId(rawInput);
179
+ const input = rawInput;
180
+ if (input.sentiment && !VALID_SENTIMENTS.includes(input.sentiment)) {
181
+ throw new Error(`Invalid sentiment. Must be one of: ${VALID_SENTIMENTS.join(', ')}`);
182
+ }
183
+ const result = await listCrits(input);
184
+ return toolSuccess(result);
185
+ }
186
+ catch (err) {
187
+ return toolError(err instanceof Error ? err.message : String(err));
188
+ }
189
+ },
190
+ };
191
+ // ============================================================================
192
+ // Sync Tokens Tool
193
+ // ============================================================================
194
+ export const designerSyncTokensTool = {
195
+ definition: {
196
+ name: 'designer_sync_tokens',
197
+ description: 'Sync design tokens from a Figma file. Fetches variables and saves them to .decibel/designer/tokens/. Requires FIGMA_ACCESS_TOKEN env var.',
198
+ annotations: {
199
+ title: 'Sync Design Tokens',
200
+ readOnlyHint: false,
201
+ destructiveHint: false,
202
+ openWorldHint: true,
203
+ },
204
+ inputSchema: {
205
+ type: 'object',
206
+ properties: {
207
+ projectId: {
208
+ type: 'string',
209
+ description: 'Optional project identifier. Uses default project if not specified.',
210
+ },
211
+ fileKey: {
212
+ type: 'string',
213
+ description: 'Figma file key (the part after /file/ in the URL)',
214
+ },
215
+ forceRefresh: {
216
+ type: 'boolean',
217
+ description: 'Bypass cache and fetch fresh data (default: false)',
218
+ },
219
+ },
220
+ required: ['fileKey'],
221
+ },
222
+ },
223
+ handler: async (args) => {
224
+ try {
225
+ const rawInput = args;
226
+ normalizeProjectId(rawInput);
227
+ const input = rawInput;
228
+ requireFields(input, 'fileKey');
229
+ const result = await syncTokens(input);
230
+ return toolSuccess(result);
231
+ }
232
+ catch (err) {
233
+ return toolError(err instanceof Error ? err.message : String(err));
234
+ }
235
+ },
236
+ };
237
+ // ============================================================================
238
+ // Review Figma Tool
239
+ // ============================================================================
240
+ export const designerReviewFigmaTool = {
241
+ definition: {
242
+ name: 'designer_review_figma',
243
+ description: 'Review a Figma component against project design principles. Checks accessibility, consistency, and custom principles. Requires FIGMA_ACCESS_TOKEN env var.',
244
+ annotations: {
245
+ title: 'Review Figma Component',
246
+ readOnlyHint: true,
247
+ destructiveHint: false,
248
+ openWorldHint: true,
249
+ },
250
+ inputSchema: {
251
+ type: 'object',
252
+ properties: {
253
+ projectId: {
254
+ type: 'string',
255
+ description: 'Optional project identifier. Uses default project if not specified.',
256
+ },
257
+ fileKey: {
258
+ type: 'string',
259
+ description: 'Figma file key (the part after /file/ in the URL)',
260
+ },
261
+ nodeId: {
262
+ type: 'string',
263
+ description: 'Component node ID (from the URL when component is selected)',
264
+ },
265
+ scope: {
266
+ type: 'string',
267
+ enum: ['full', 'accessibility', 'consistency'],
268
+ description: 'Review scope: full (all checks), accessibility (a11y only), consistency (design system alignment)',
269
+ },
270
+ },
271
+ required: ['fileKey', 'nodeId'],
272
+ },
273
+ },
274
+ handler: async (args) => {
275
+ try {
276
+ const rawInput = args;
277
+ normalizeProjectId(rawInput);
278
+ const input = rawInput;
279
+ requireFields(input, 'fileKey', 'nodeId');
280
+ const result = await reviewFigma(input);
281
+ return toolSuccess(result);
282
+ }
283
+ catch (err) {
284
+ return toolError(err instanceof Error ? err.message : String(err));
285
+ }
286
+ },
287
+ };
288
+ // ============================================================================
289
+ // Upsert Principle Tool
290
+ // ============================================================================
291
+ export const designerUpsertPrincipleTool = {
292
+ definition: {
293
+ name: 'designer_upsert_principle',
294
+ description: 'Create or update a design principle. Principles are used by designer_review_figma to check components.',
295
+ annotations: {
296
+ title: 'Upsert Principle',
297
+ readOnlyHint: false,
298
+ destructiveHint: false,
299
+ idempotentHint: true,
300
+ },
301
+ inputSchema: {
302
+ type: 'object',
303
+ properties: {
304
+ projectId: {
305
+ type: 'string',
306
+ description: 'Optional project identifier. Uses default project if not specified.',
307
+ },
308
+ id: {
309
+ type: 'string',
310
+ description: 'Principle ID. If provided, updates existing. If omitted, creates new.',
311
+ },
312
+ title: {
313
+ type: 'string',
314
+ description: 'Principle title (e.g., "4px Grid System")',
315
+ },
316
+ description: {
317
+ type: 'string',
318
+ description: 'Full description of the principle',
319
+ },
320
+ category: {
321
+ type: 'string',
322
+ description: 'Category: spacing, color, typography, accessibility, etc.',
323
+ },
324
+ checks: {
325
+ type: 'array',
326
+ items: { type: 'string' },
327
+ description: 'Things to verify (e.g., ["spacing must be multiples of 4"])',
328
+ },
329
+ },
330
+ required: ['title', 'description', 'category'],
331
+ },
332
+ },
333
+ handler: async (args) => {
334
+ try {
335
+ const rawInput = args;
336
+ normalizeProjectId(rawInput);
337
+ const input = rawInput;
338
+ requireFields(input, 'title', 'description', 'category');
339
+ const result = await upsertPrinciple(input);
340
+ return toolSuccess(result);
341
+ }
342
+ catch (err) {
343
+ return toolError(err instanceof Error ? err.message : String(err));
344
+ }
345
+ },
346
+ };
347
+ // ============================================================================
348
+ // List Principles Tool
349
+ // ============================================================================
350
+ export const designerListPrinciplesTool = {
351
+ definition: {
352
+ name: 'designer_list_principles',
353
+ description: 'List design principles for a project, optionally filtered by category.',
354
+ annotations: {
355
+ title: 'List Principles',
356
+ readOnlyHint: true,
357
+ destructiveHint: false,
358
+ },
359
+ inputSchema: {
360
+ type: 'object',
361
+ properties: {
362
+ projectId: {
363
+ type: 'string',
364
+ description: 'Optional project identifier. Uses default project if not specified.',
365
+ },
366
+ category: {
367
+ type: 'string',
368
+ description: 'Filter by category (e.g., "spacing", "color")',
369
+ },
370
+ },
371
+ },
372
+ },
373
+ handler: async (args) => {
374
+ try {
375
+ const rawInput = args;
376
+ normalizeProjectId(rawInput);
377
+ const input = rawInput;
378
+ const result = await listPrinciples(input);
379
+ return toolSuccess(result);
380
+ }
381
+ catch (err) {
382
+ return toolError(err instanceof Error ? err.message : String(err));
383
+ }
384
+ },
385
+ };
386
+ // ============================================================================
387
+ // Check Parity Tool (Figma drift detection)
388
+ // ============================================================================
389
+ export const designerCheckParityTool = {
390
+ definition: {
391
+ name: 'designer_check_parity',
392
+ description: 'Compare last-synced design tokens against current Figma state to detect drift. Reports added, removed, and changed tokens without modifying tokens.yaml. Run sync_tokens first to establish a baseline.',
393
+ annotations: {
394
+ title: 'Check Token Parity',
395
+ readOnlyHint: true,
396
+ destructiveHint: false,
397
+ openWorldHint: true,
398
+ },
399
+ inputSchema: {
400
+ type: 'object',
401
+ properties: {
402
+ projectId: {
403
+ type: 'string',
404
+ description: 'Optional project identifier. Uses default project if not specified.',
405
+ },
406
+ fileKey: {
407
+ type: 'string',
408
+ description: 'Figma file key (the part after /file/ in the URL)',
409
+ },
410
+ },
411
+ required: ['fileKey'],
412
+ },
413
+ },
414
+ handler: async (args) => {
415
+ try {
416
+ const rawInput = args;
417
+ normalizeProjectId(rawInput);
418
+ const input = rawInput;
419
+ requireFields(input, 'fileKey');
420
+ const result = await checkParity(input);
421
+ return toolSuccess(result);
422
+ }
423
+ catch (err) {
424
+ return toolError(err instanceof Error ? err.message : String(err));
425
+ }
426
+ },
427
+ };
428
+ // ============================================================================
429
+ // Export All Tools
430
+ // ============================================================================
431
+ export const designerTools = [
432
+ designerRecordDecisionTool,
433
+ designerCritTool,
434
+ designerListCritsTool,
435
+ designerSyncTokensTool,
436
+ designerReviewFigmaTool,
437
+ designerCheckParityTool,
438
+ designerUpsertPrincipleTool,
439
+ designerListPrinciplesTool,
440
+ ...lateralTools,
441
+ ];
442
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/designer/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const designerLateralSessionTool: ToolSpec;
3
+ export declare const designerLateralApplyTool: ToolSpec;
4
+ export declare const designerLateralCloseTool: ToolSpec;
5
+ export declare const lateralTools: ToolSpec[];
6
+ //# sourceMappingURL=lateral-tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lateral-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/designer/lateral-tools.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA2BvC,eAAO,MAAM,0BAA0B,EAAE,QAoDxC,CAAC;AAMF,eAAO,MAAM,wBAAwB,EAAE,QAsDtC,CAAC;AAMF,eAAO,MAAM,wBAAwB,EAAE,QA6DtC,CAAC;AAMF,eAAO,MAAM,YAAY,EAAE,QAAQ,EAIlC,CAAC"}
@@ -0,0 +1,190 @@
1
+ // ============================================================================
2
+ // Lateral Thinking Tools — MCP Tool Definitions
3
+ // ============================================================================
4
+ // Three tools for structured lateral thinking sessions.
5
+ // ============================================================================
6
+ import { toolSuccess, toolError, requireFields, withRunTracking, summaryGenerators } from '../shared/index.js';
7
+ import { startSession, applyTechnique, closeSession, VALID_TECHNIQUES, } from '../lateral.js';
8
+ // ============================================================================
9
+ // Helper: Normalize project_id → projectId
10
+ // ============================================================================
11
+ function normalizeProjectId(args) {
12
+ if (!args.projectId && args.project_id) {
13
+ args.projectId = args.project_id;
14
+ }
15
+ }
16
+ // ============================================================================
17
+ // designer_lateral_session — Start or resume
18
+ // ============================================================================
19
+ export const designerLateralSessionTool = {
20
+ definition: {
21
+ name: 'designer_lateral_session',
22
+ description: 'Start or resume a lateral thinking session. Provides structured scaffolding for creative exploration using de Bono\'s methods (Six Hats, Provocation, Random Entry, Challenge, Alternatives, Reversal). Sessions persist as YAML artifacts in .decibel/designer/lateral/.',
23
+ annotations: {
24
+ title: 'Lateral Thinking Session',
25
+ readOnlyHint: false,
26
+ destructiveHint: false,
27
+ idempotentHint: false,
28
+ },
29
+ inputSchema: {
30
+ type: 'object',
31
+ properties: {
32
+ project_id: {
33
+ type: 'string',
34
+ description: 'Optional project identifier. Uses default project if not specified.',
35
+ },
36
+ session_id: {
37
+ type: 'string',
38
+ description: 'Resume an existing session by ID (e.g. LAT-20260209T143022).',
39
+ },
40
+ problem: {
41
+ type: 'string',
42
+ description: 'The design problem or challenge to explore. Required for new sessions.',
43
+ },
44
+ context: {
45
+ type: 'string',
46
+ description: 'Optional context about the problem (constraints, prior work, stakeholders).',
47
+ },
48
+ },
49
+ },
50
+ },
51
+ handler: withRunTracking(async (args) => {
52
+ try {
53
+ const rawInput = args;
54
+ normalizeProjectId(rawInput);
55
+ const input = rawInput;
56
+ const result = await startSession(input);
57
+ return toolSuccess(result);
58
+ }
59
+ catch (err) {
60
+ return toolError(err instanceof Error ? err.message : String(err));
61
+ }
62
+ }, {
63
+ toolName: 'designer_lateral_session',
64
+ getProjectId: (args) => args.projectId || args.project_id,
65
+ getSummary: summaryGenerators.lateralSession,
66
+ }),
67
+ };
68
+ // ============================================================================
69
+ // designer_lateral_apply — Apply a technique
70
+ // ============================================================================
71
+ export const designerLateralApplyTool = {
72
+ definition: {
73
+ name: 'designer_lateral_apply',
74
+ description: 'Apply a lateral thinking technique to an open session. Returns structured guidance on what to do next. Techniques: six_hats (parallel thinking), provocation (Po statements), random_entry (forced associations), challenge (question assumptions), alternatives (concept fan), reversal (flip the problem).',
75
+ annotations: {
76
+ title: 'Apply Lateral Technique',
77
+ readOnlyHint: false,
78
+ destructiveHint: false,
79
+ idempotentHint: false,
80
+ },
81
+ inputSchema: {
82
+ type: 'object',
83
+ properties: {
84
+ project_id: {
85
+ type: 'string',
86
+ description: 'Optional project identifier.',
87
+ },
88
+ session_id: {
89
+ type: 'string',
90
+ description: 'The session ID to apply the technique to.',
91
+ },
92
+ technique: {
93
+ type: 'string',
94
+ enum: VALID_TECHNIQUES,
95
+ description: 'The lateral thinking technique to apply.',
96
+ },
97
+ input: {
98
+ type: 'object',
99
+ description: 'Technique-specific input. six_hats: {hat, thinking}. provocation: {po_statement, movement, insights[]}. random_entry: {stimulus?, connections[], promising_leads[]}. challenge: {assumption, why_exists, what_if_false, alternative_framing}. alternatives: {focus, concept_level, alternatives[{idea, approach}]}. reversal: {original, reversed, insights_from_reversal[]}.',
100
+ },
101
+ },
102
+ required: ['session_id', 'technique', 'input'],
103
+ },
104
+ },
105
+ handler: async (args) => {
106
+ try {
107
+ const rawInput = args;
108
+ normalizeProjectId(rawInput);
109
+ const input = rawInput;
110
+ requireFields(input, 'session_id', 'technique', 'input');
111
+ if (!VALID_TECHNIQUES.includes(input.technique)) {
112
+ throw new Error(`Invalid technique. Must be one of: ${VALID_TECHNIQUES.join(', ')}`);
113
+ }
114
+ const result = await applyTechnique(input);
115
+ return toolSuccess(result);
116
+ }
117
+ catch (err) {
118
+ return toolError(err instanceof Error ? err.message : String(err));
119
+ }
120
+ },
121
+ };
122
+ // ============================================================================
123
+ // designer_lateral_close — Synthesize and close
124
+ // ============================================================================
125
+ export const designerLateralCloseTool = {
126
+ definition: {
127
+ name: 'designer_lateral_close',
128
+ description: 'Synthesize insights and close a lateral thinking session. Generates a readable markdown summary and emits a provenance event. The summary groups entries by technique with full context.',
129
+ annotations: {
130
+ title: 'Close Lateral Session',
131
+ readOnlyHint: false,
132
+ destructiveHint: false,
133
+ idempotentHint: false,
134
+ },
135
+ inputSchema: {
136
+ type: 'object',
137
+ properties: {
138
+ project_id: {
139
+ type: 'string',
140
+ description: 'Optional project identifier.',
141
+ },
142
+ session_id: {
143
+ type: 'string',
144
+ description: 'The session ID to close.',
145
+ },
146
+ synthesis: {
147
+ type: 'string',
148
+ description: 'Your synthesis of the session — key insights, conclusions, and recommended direction.',
149
+ },
150
+ action_items: {
151
+ type: 'array',
152
+ items: { type: 'string' },
153
+ description: 'Optional list of concrete next steps arising from the session.',
154
+ },
155
+ link_to: {
156
+ type: 'array',
157
+ items: { type: 'string' },
158
+ description: 'Optional artifact references to link (e.g. ADR IDs, design decision files, issue IDs).',
159
+ },
160
+ },
161
+ required: ['session_id', 'synthesis'],
162
+ },
163
+ },
164
+ handler: withRunTracking(async (args) => {
165
+ try {
166
+ const rawInput = args;
167
+ normalizeProjectId(rawInput);
168
+ const input = rawInput;
169
+ requireFields(input, 'session_id', 'synthesis');
170
+ const result = await closeSession(input);
171
+ return toolSuccess(result);
172
+ }
173
+ catch (err) {
174
+ return toolError(err instanceof Error ? err.message : String(err));
175
+ }
176
+ }, {
177
+ toolName: 'designer_lateral_close',
178
+ getProjectId: (args) => args.projectId || args.project_id,
179
+ getSummary: summaryGenerators.lateralSession,
180
+ }),
181
+ };
182
+ // ============================================================================
183
+ // Export All Lateral Tools
184
+ // ============================================================================
185
+ export const lateralTools = [
186
+ designerLateralSessionTool,
187
+ designerLateralApplyTool,
188
+ designerLateralCloseTool,
189
+ ];
190
+ //# sourceMappingURL=lateral-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lateral-tools.js","sourceRoot":"","sources":["../../../src/tools/designer/lateral-tools.ts"],"names":[],"mappings":"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"}