@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,381 @@
1
+ // ============================================================================
2
+ // Coordinator Domain Tools (ADR-0004)
3
+ // ============================================================================
4
+ // Minimal multi-chat coordination: locks, agents, event log.
5
+ // Design: single-writer per resource, fail loud on conflicts.
6
+ // ============================================================================
7
+ import { toolSuccess, toolError, requireFields, withRunTracking } from '../shared/index.js';
8
+ import { coordRegister, coordHeartbeat, coordLock, coordUnlock, coordStatus, coordLog, coordSend, coordInbox, coordAck, isCoordError, } from './coordinator.js';
9
+ // ============================================================================
10
+ // coord_register
11
+ // ============================================================================
12
+ export const coordRegisterTool = {
13
+ definition: {
14
+ name: 'coord_register',
15
+ description: 'Register an agent with the coordinator. Call this when an agent starts up to announce its presence and capabilities.',
16
+ annotations: {
17
+ title: 'Register Agent',
18
+ readOnlyHint: false,
19
+ destructiveHint: false,
20
+ idempotentHint: true,
21
+ },
22
+ inputSchema: {
23
+ type: 'object',
24
+ properties: {
25
+ agent_id: {
26
+ type: 'string',
27
+ description: 'Unique identifier for this agent (e.g., "cymoril-code", "cymoril-test")',
28
+ },
29
+ capabilities: {
30
+ type: 'array',
31
+ items: { type: 'string' },
32
+ description: 'What this agent can do (e.g., ["code", "architecture", "refactor"])',
33
+ },
34
+ project_id: {
35
+ type: 'string',
36
+ description: 'Optional project identifier. Uses default project if not specified.',
37
+ },
38
+ },
39
+ required: ['agent_id', 'capabilities'],
40
+ },
41
+ },
42
+ handler: withRunTracking(async (args) => {
43
+ const input = args;
44
+ requireFields(input, 'agent_id', 'capabilities');
45
+ const result = await coordRegister(input);
46
+ if (isCoordError(result)) {
47
+ return toolError(result.error, result.message);
48
+ }
49
+ return toolSuccess(result);
50
+ }, { toolName: 'coord_register' }),
51
+ };
52
+ // ============================================================================
53
+ // coord_heartbeat
54
+ // ============================================================================
55
+ export const coordHeartbeatTool = {
56
+ definition: {
57
+ name: 'coord_heartbeat',
58
+ description: 'Send a heartbeat to keep agent alive and optionally update status. Also cleans up stale agents and releases their locks. Call every 60s.',
59
+ annotations: {
60
+ title: 'Agent Heartbeat',
61
+ readOnlyHint: false,
62
+ destructiveHint: false,
63
+ idempotentHint: true,
64
+ },
65
+ inputSchema: {
66
+ type: 'object',
67
+ properties: {
68
+ agent_id: {
69
+ type: 'string',
70
+ description: 'The agent sending the heartbeat',
71
+ },
72
+ current_task: {
73
+ type: 'string',
74
+ description: 'What the agent is currently working on',
75
+ },
76
+ status: {
77
+ type: 'string',
78
+ enum: ['active', 'busy', 'idle'],
79
+ description: 'Current agent status',
80
+ },
81
+ project_id: {
82
+ type: 'string',
83
+ description: 'Optional project identifier. Uses default project if not specified.',
84
+ },
85
+ },
86
+ required: ['agent_id'],
87
+ },
88
+ },
89
+ handler: withRunTracking(async (args) => {
90
+ const input = args;
91
+ requireFields(input, 'agent_id');
92
+ const result = await coordHeartbeat(input);
93
+ if (isCoordError(result)) {
94
+ return toolError(result.error, result.message);
95
+ }
96
+ return toolSuccess(result);
97
+ }, { toolName: 'coord_heartbeat' }),
98
+ };
99
+ // ============================================================================
100
+ // coord_lock
101
+ // ============================================================================
102
+ export const coordLockTool = {
103
+ definition: {
104
+ name: 'coord_lock',
105
+ description: 'Acquire an exclusive lock on a resource. FAILS LOUD if already held by another agent. Locks expire after 10 minutes. Re-locking same resource by same agent refreshes the lock (idempotent).',
106
+ annotations: {
107
+ title: 'Acquire Lock',
108
+ readOnlyHint: false,
109
+ destructiveHint: false,
110
+ idempotentHint: true,
111
+ },
112
+ inputSchema: {
113
+ type: 'object',
114
+ properties: {
115
+ agent_id: {
116
+ type: 'string',
117
+ description: 'The agent requesting the lock',
118
+ },
119
+ resource: {
120
+ type: 'string',
121
+ description: 'Resource to lock (file path, tool name, or domain like "domain:testing")',
122
+ },
123
+ reason: {
124
+ type: 'string',
125
+ description: 'Why you need this lock (for audit trail)',
126
+ },
127
+ project_id: {
128
+ type: 'string',
129
+ description: 'Optional project identifier. Uses default project if not specified.',
130
+ },
131
+ },
132
+ required: ['agent_id', 'resource'],
133
+ },
134
+ },
135
+ handler: withRunTracking(async (args) => {
136
+ const input = args;
137
+ requireFields(input, 'agent_id', 'resource');
138
+ const result = await coordLock(input);
139
+ if (isCoordError(result)) {
140
+ return toolError(result.error, result.message);
141
+ }
142
+ return toolSuccess(result);
143
+ }, { toolName: 'coord_lock' }),
144
+ };
145
+ // ============================================================================
146
+ // coord_unlock
147
+ // ============================================================================
148
+ export const coordUnlockTool = {
149
+ definition: {
150
+ name: 'coord_unlock',
151
+ description: 'Release a lock on a resource. Only the lock owner can release it. No-op if not held (idempotent).',
152
+ annotations: {
153
+ title: 'Release Lock',
154
+ readOnlyHint: false,
155
+ destructiveHint: false,
156
+ idempotentHint: true,
157
+ },
158
+ inputSchema: {
159
+ type: 'object',
160
+ properties: {
161
+ agent_id: {
162
+ type: 'string',
163
+ description: 'The agent releasing the lock',
164
+ },
165
+ resource: {
166
+ type: 'string',
167
+ description: 'Resource to unlock',
168
+ },
169
+ project_id: {
170
+ type: 'string',
171
+ description: 'Optional project identifier. Uses default project if not specified.',
172
+ },
173
+ },
174
+ required: ['agent_id', 'resource'],
175
+ },
176
+ },
177
+ handler: withRunTracking(async (args) => {
178
+ const input = args;
179
+ requireFields(input, 'agent_id', 'resource');
180
+ const result = await coordUnlock(input);
181
+ if (isCoordError(result)) {
182
+ return toolError(result.error, result.message);
183
+ }
184
+ return toolSuccess(result);
185
+ }, { toolName: 'coord_unlock' }),
186
+ };
187
+ // ============================================================================
188
+ // coord_status
189
+ // ============================================================================
190
+ export const coordStatusTool = {
191
+ definition: {
192
+ name: 'coord_status',
193
+ description: 'Get current coordination status: all registered agents, active locks, and stale agents.',
194
+ annotations: {
195
+ title: 'Coordination Status',
196
+ readOnlyHint: true,
197
+ destructiveHint: false,
198
+ idempotentHint: true,
199
+ },
200
+ inputSchema: {
201
+ type: 'object',
202
+ properties: {
203
+ project_id: {
204
+ type: 'string',
205
+ description: 'Optional project identifier. Uses default project if not specified.',
206
+ },
207
+ },
208
+ required: [],
209
+ },
210
+ },
211
+ handler: withRunTracking(async (args) => {
212
+ const input = args;
213
+ const result = await coordStatus(input);
214
+ if (isCoordError(result)) {
215
+ return toolError(result.error, result.message);
216
+ }
217
+ return toolSuccess(result);
218
+ }, { toolName: 'coord_status' }),
219
+ };
220
+ // ============================================================================
221
+ // coord_log
222
+ // ============================================================================
223
+ export const coordLogTool = {
224
+ definition: {
225
+ name: 'coord_log',
226
+ description: 'Query coordination event log. Returns recent events, optionally filtered by agent or action type.',
227
+ annotations: {
228
+ title: 'Query Event Log',
229
+ readOnlyHint: true,
230
+ destructiveHint: false,
231
+ idempotentHint: true,
232
+ },
233
+ inputSchema: {
234
+ type: 'object',
235
+ properties: {
236
+ project_id: {
237
+ type: 'string',
238
+ description: 'Optional project identifier. Uses default project if not specified.',
239
+ },
240
+ limit: {
241
+ type: 'number',
242
+ description: 'Maximum events to return (default: 50)',
243
+ },
244
+ agent_id: {
245
+ type: 'string',
246
+ description: 'Filter by agent ID',
247
+ },
248
+ action: {
249
+ type: 'string',
250
+ description: 'Filter by action (e.g., "lock_acquired", "lock_denied", "registered")',
251
+ },
252
+ },
253
+ required: [],
254
+ },
255
+ },
256
+ handler: withRunTracking(async (args) => {
257
+ const input = args;
258
+ const result = await coordLog(input);
259
+ if (isCoordError(result)) {
260
+ return toolError(result.error, result.message);
261
+ }
262
+ return toolSuccess(result);
263
+ }, { toolName: 'coord_log' }),
264
+ };
265
+ // ============================================================================
266
+ // coord_send (4a: agent messaging)
267
+ // ============================================================================
268
+ export const coordSendTool = {
269
+ definition: {
270
+ name: 'coord_send',
271
+ description: 'Send a message to another agent\'s persistent inbox. Messages persist across restarts. Use reply_to for request-reply patterns.',
272
+ annotations: {
273
+ title: 'Send Message',
274
+ readOnlyHint: false,
275
+ destructiveHint: false,
276
+ idempotentHint: false,
277
+ },
278
+ inputSchema: {
279
+ type: 'object',
280
+ properties: {
281
+ to: { type: 'string', description: 'Target agent ID' },
282
+ from: { type: 'string', description: 'Sender agent ID' },
283
+ intent: { type: 'string', description: 'Message intent (e.g., "delegate_task", "request_review", "notify")' },
284
+ payload: { type: 'object', description: 'Message payload (action-specific data)', additionalProperties: true },
285
+ reply_to: { type: 'string', description: 'Message ID this is replying to (for request-reply)' },
286
+ ttl_ms: { type: 'number', description: 'Time-to-live in ms (default: 24 hours)' },
287
+ project_id: { type: 'string', description: 'Optional project identifier' },
288
+ },
289
+ required: ['to', 'from', 'intent', 'payload'],
290
+ },
291
+ },
292
+ handler: withRunTracking(async (args) => {
293
+ const input = args;
294
+ requireFields(input, 'to', 'from', 'intent', 'payload');
295
+ const result = await coordSend(input);
296
+ if (isCoordError(result))
297
+ return toolError(result.error, result.message);
298
+ return toolSuccess(result);
299
+ }, { toolName: 'coord_send' }),
300
+ };
301
+ // ============================================================================
302
+ // coord_inbox (4a: agent messaging)
303
+ // ============================================================================
304
+ export const coordInboxTool = {
305
+ definition: {
306
+ name: 'coord_inbox',
307
+ description: 'Check an agent\'s message inbox. Returns pending messages by default. Filter by status to see acked or completed messages.',
308
+ annotations: {
309
+ title: 'Check Inbox',
310
+ readOnlyHint: true,
311
+ destructiveHint: false,
312
+ idempotentHint: true,
313
+ },
314
+ inputSchema: {
315
+ type: 'object',
316
+ properties: {
317
+ agent_id: { type: 'string', description: 'Agent whose inbox to check' },
318
+ status: { type: 'string', enum: ['pending', 'acked', 'completed'], description: 'Filter by message status' },
319
+ limit: { type: 'number', description: 'Max messages to return (default: 20)' },
320
+ project_id: { type: 'string', description: 'Optional project identifier' },
321
+ },
322
+ required: ['agent_id'],
323
+ },
324
+ },
325
+ handler: withRunTracking(async (args) => {
326
+ const input = args;
327
+ requireFields(input, 'agent_id');
328
+ const result = await coordInbox(input);
329
+ if (isCoordError(result))
330
+ return toolError(result.error, result.message);
331
+ return toolSuccess(result);
332
+ }, { toolName: 'coord_inbox' }),
333
+ };
334
+ // ============================================================================
335
+ // coord_ack (4a: agent messaging)
336
+ // ============================================================================
337
+ export const coordAckTool = {
338
+ definition: {
339
+ name: 'coord_ack',
340
+ description: 'Acknowledge a message and optionally post a result. Status goes pending→acked (no result) or pending→completed (with result). Can also complete a previously acked message.',
341
+ annotations: {
342
+ title: 'Acknowledge Message',
343
+ readOnlyHint: false,
344
+ destructiveHint: false,
345
+ idempotentHint: true,
346
+ },
347
+ inputSchema: {
348
+ type: 'object',
349
+ properties: {
350
+ message_id: { type: 'string', description: 'ID of the message to acknowledge' },
351
+ agent_id: { type: 'string', description: 'Agent acknowledging the message' },
352
+ result: { type: 'object', description: 'Optional result to attach (marks message as completed)', additionalProperties: true },
353
+ project_id: { type: 'string', description: 'Optional project identifier' },
354
+ },
355
+ required: ['message_id', 'agent_id'],
356
+ },
357
+ },
358
+ handler: withRunTracking(async (args) => {
359
+ const input = args;
360
+ requireFields(input, 'message_id', 'agent_id');
361
+ const result = await coordAck(input);
362
+ if (isCoordError(result))
363
+ return toolError(result.error, result.message);
364
+ return toolSuccess(result);
365
+ }, { toolName: 'coord_ack' }),
366
+ };
367
+ // ============================================================================
368
+ // Export All Tools
369
+ // ============================================================================
370
+ export const coordinatorTools = [
371
+ coordRegisterTool,
372
+ coordHeartbeatTool,
373
+ coordLockTool,
374
+ coordUnlockTool,
375
+ coordStatusTool,
376
+ coordLogTool,
377
+ coordSendTool,
378
+ coordInboxTool,
379
+ coordAckTool,
380
+ ];
381
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/coordinator/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const corpusSearchTool: ToolSpec;
3
+ export declare const corpusStatusTool: ToolSpec;
4
+ export declare const corpusTools: ToolSpec[];
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/corpus/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAoBvC,eAAO,MAAM,gBAAgB,EAAE,QAoD9B,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,QA8B9B,CAAC;AAMF,eAAO,MAAM,WAAW,EAAE,QAAQ,EAGjC,CAAC"}
@@ -0,0 +1,105 @@
1
+ // ============================================================================
2
+ // Corpus Domain Tools
3
+ // ============================================================================
4
+ // MCP tools for searching decibel-corpus - the shared knowledge base.
5
+ // Enables cross-project learning from patterns, playbooks, and field notes.
6
+ // ============================================================================
7
+ import { toolSuccess, toolError, requireFields } from '../shared/index.js';
8
+ import { corpusSearch, getCorpusPath, corpusExists, } from '../corpus.js';
9
+ // ============================================================================
10
+ // Constants
11
+ // ============================================================================
12
+ const VALID_TYPES = ['pattern', 'playbook', 'field-note', 'all'];
13
+ // ============================================================================
14
+ // Corpus Search Tool
15
+ // ============================================================================
16
+ export const corpusSearchTool = {
17
+ definition: {
18
+ name: 'corpus_search',
19
+ description: `Search decibel-corpus for patterns, playbooks, and field notes. Use when you encounter problems that may have been solved before (DB collisions, auth patterns, deployment issues, webhook retries, etc.). Returns matching documents with snippets and relevance scores.`,
20
+ annotations: {
21
+ title: 'Search Corpus',
22
+ readOnlyHint: true,
23
+ destructiveHint: false,
24
+ },
25
+ inputSchema: {
26
+ type: 'object',
27
+ properties: {
28
+ query: {
29
+ type: 'string',
30
+ description: 'Search terms (e.g., "duplicate key", "advisory lock", "webhook retry", "rate limit")',
31
+ },
32
+ type: {
33
+ type: 'string',
34
+ enum: ['pattern', 'playbook', 'field-note', 'all'],
35
+ description: 'Filter by content type. Patterns are reusable solutions, playbooks are step-by-step guides, field-notes are lessons learned. Default: all',
36
+ },
37
+ limit: {
38
+ type: 'number',
39
+ description: 'Maximum results to return (default: 5)',
40
+ },
41
+ },
42
+ required: ['query'],
43
+ },
44
+ },
45
+ handler: async (args) => {
46
+ try {
47
+ const input = args;
48
+ requireFields(input, 'query');
49
+ if (input.type && !VALID_TYPES.includes(input.type)) {
50
+ throw new Error(`Invalid type: ${input.type}. Must be one of: ${VALID_TYPES.join(', ')}`);
51
+ }
52
+ // Check if corpus exists
53
+ if (!await corpusExists()) {
54
+ return toolError(`Corpus not found at ${getCorpusPath()}`, 'Clone decibel-corpus to ~/Documents/GitHub/decibel-corpus or set DECIBEL_CORPUS_PATH');
55
+ }
56
+ const result = await corpusSearch(input);
57
+ return toolSuccess(result);
58
+ }
59
+ catch (err) {
60
+ return toolError(err instanceof Error ? err.message : String(err));
61
+ }
62
+ },
63
+ };
64
+ // ============================================================================
65
+ // Corpus Status Tool (for debugging)
66
+ // ============================================================================
67
+ export const corpusStatusTool = {
68
+ definition: {
69
+ name: 'corpus_status',
70
+ description: 'Check the status of decibel-corpus. Shows location and whether it exists.',
71
+ annotations: {
72
+ title: 'Corpus Status',
73
+ readOnlyHint: true,
74
+ destructiveHint: false,
75
+ },
76
+ inputSchema: {
77
+ type: 'object',
78
+ properties: {},
79
+ },
80
+ },
81
+ handler: async () => {
82
+ try {
83
+ const path = getCorpusPath();
84
+ const exists = await corpusExists();
85
+ return toolSuccess({
86
+ corpus_path: path,
87
+ exists,
88
+ hint: exists
89
+ ? 'Corpus is available. Use corpus_search to find patterns.'
90
+ : 'Clone decibel-corpus to this path or set DECIBEL_CORPUS_PATH env var.',
91
+ });
92
+ }
93
+ catch (err) {
94
+ return toolError(err instanceof Error ? err.message : String(err));
95
+ }
96
+ },
97
+ };
98
+ // ============================================================================
99
+ // Export All Tools
100
+ // ============================================================================
101
+ export const corpusTools = [
102
+ corpusSearchTool,
103
+ corpusStatusTool,
104
+ ];
105
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/corpus/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ export type CorpusContentType = 'pattern' | 'playbook' | 'field-note';
2
+ export interface CorpusSearchInput {
3
+ query: string;
4
+ type?: CorpusContentType | 'all';
5
+ limit?: number;
6
+ }
7
+ export interface CorpusMatch {
8
+ id: string;
9
+ path: string;
10
+ type: CorpusContentType;
11
+ title: string;
12
+ snippet: string;
13
+ relevance: number;
14
+ }
15
+ export interface CorpusSearchResult {
16
+ matches: CorpusMatch[];
17
+ query: string;
18
+ searched: number;
19
+ corpus_path: string;
20
+ }
21
+ /**
22
+ * Search the decibel-corpus for patterns, playbooks, and field notes
23
+ */
24
+ export declare function corpusSearch(input: CorpusSearchInput): Promise<CorpusSearchResult>;
25
+ /**
26
+ * Get the corpus path for display/debugging
27
+ */
28
+ export declare function getCorpusPath(): string;
29
+ /**
30
+ * Check if corpus exists at the configured path
31
+ */
32
+ export declare function corpusExists(): Promise<boolean>;
33
+ //# sourceMappingURL=corpus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"corpus.d.ts","sourceRoot":"","sources":["../../src/tools/corpus.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;AAEtE,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,iBAAiB,GAAG,KAAK,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAyHD;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA6DxF;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD"}