@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
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Decibel Systems
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,342 @@
1
+ # @decibel/tools
2
+
3
+ MCP server for project intelligence. 26 facade tools (170+ internal handlers) across 20 domains: work tracking, architecture, experiments, design, git forensics, agent coordination, and more.
4
+
5
+ Tested with Claude Desktop, Claude Code, and Cursor. [Learn more →](https://decibel.systems/tools)
6
+
7
+ <a href="https://github.com/decibelsystems/decibel-tools-mcp#cursor">
8
+ <img src="https://cursor.com/deeplink/mcp-install-dark.svg" alt="Add to Cursor" height="32" />
9
+ </a>
10
+
11
+ > **Note:** The one-click Cursor install only works on GitHub. [Click here](https://github.com/decibelsystems/decibel-tools-mcp#cursor) or see manual setup below.
12
+
13
+ ## What It Does
14
+
15
+ | Domain | Purpose | Example Tools |
16
+ |--------|---------|---------------|
17
+ | **Sentinel** | Work tracking | `sentinel_create_issue`, `sentinel_log_epic`, `sentinel_list_epics` |
18
+ | **Dojo** | AI incubator | `dojo_add_wish`, `dojo_create_proposal`, `dojo_run_experiment` |
19
+ | **Architect** | Decisions | `architect_createAdr`, `architect_createPolicy` |
20
+ | **Roadmap** | Strategy | `roadmap_get`, `roadmap_getHealth`, `roadmap_linkEpic` |
21
+ | **Oracle** | Recommendations | `oracle_next_actions`, `oracle_roadmap` |
22
+ | **Designer** | Design decisions | `designer_record_design_decision`, `designer_crit` |
23
+ | **Friction** | Pain points | `friction_log`, `friction_bump`, `friction_resolve` |
24
+ | **Learnings** | Knowledge base | `learnings_append`, `learnings_list` |
25
+ | **Context** | AI memory | `decibel_context_pin`, `decibel_context_refresh` |
26
+ | **Registry** | Project management | `project_init`, `registry_list`, `registry_add` |
27
+ | **Agentic** | Config compilation | `agentic_compile_pack`, `agentic_render` |
28
+ | **Provenance** | Audit trail | `provenance_list` |
29
+
30
+ ## Quick Start
31
+
32
+ ```bash
33
+ # Install globally
34
+ npm install -g @decibel/tools
35
+
36
+ # Or run directly with npx
37
+ npx @decibel/tools
38
+ ```
39
+
40
+ ## Platform Setup
41
+
42
+ ### Cursor
43
+
44
+ Add to `~/.cursor/mcp.json`:
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "decibel-tools": {
50
+ "command": "npx",
51
+ "args": ["-y", "@decibel/tools"]
52
+ }
53
+ }
54
+ }
55
+ ```
56
+
57
+ ### Claude Code
58
+
59
+ Add to `.mcp.json` in your project root or `~/.claude/settings.json`:
60
+
61
+ ```json
62
+ {
63
+ "mcpServers": {
64
+ "decibel-tools": {
65
+ "command": "npx",
66
+ "args": ["-y", "@decibel/tools"]
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ### Claude Desktop
73
+
74
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS):
75
+
76
+ ```json
77
+ {
78
+ "mcpServers": {
79
+ "decibel-tools": {
80
+ "command": "npx",
81
+ "args": ["-y", "@decibel/tools"]
82
+ }
83
+ }
84
+ }
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Tools Reference
90
+
91
+ ### Sentinel (16 tools)
92
+ *Work tracking: issues, epics, test specs*
93
+
94
+ | Tool | Description |
95
+ |------|-------------|
96
+ | `sentinel_create_issue` | Create a tracked issue with severity (low/med/high/critical) |
97
+ | `sentinel_close_issue` | Close an issue with resolution note |
98
+ | `sentinel_list_repo_issues` | List issues for a project, optionally filtered by status |
99
+ | `sentinel_listIssues` | List issues with filtering by epic or status |
100
+ | `sentinel_createIssue` | Create issue (YAML format with auto-generated ID) |
101
+ | `sentinel_log_epic` | Create a new epic (large feature) record |
102
+ | `sentinel_list_epics` | List all epics with optional filters |
103
+ | `sentinel_get_epic` | Get details of a specific epic |
104
+ | `sentinel_get_epic_issues` | Get all issues linked to an epic |
105
+ | `sentinel_resolve_epic` | Fuzzy search for epics by name or keyword |
106
+ | `sentinel_scan` | Scan project data for validation, orphans, stale items |
107
+ | `sentinel_scanData` | Scan using Python Sentinel Data Inspector |
108
+ | `sentinel_createTestSpec` | Create a test specification atom |
109
+ | `sentinel_listTestSpecs` | List all test specifications |
110
+ | `sentinel_compileTests` | Compile test specs into documentation |
111
+ | `sentinel_auditPolicies` | Audit policy compliance and freshness |
112
+
113
+ ### Dojo (10 tools)
114
+ *AI Feature Incubator: wishes, proposals, experiments*
115
+
116
+ | Tool | Description |
117
+ |------|-------------|
118
+ | `dojo_add_wish` | Add a capability wish (what, why, inputs, outputs) |
119
+ | `dojo_list_wishes` | List wishes from the wishlist |
120
+ | `dojo_create_proposal` | Create a proposal for a feature or capability |
121
+ | `dojo_scaffold_experiment` | Create experiment skeleton from a proposal |
122
+ | `dojo_list` | List proposals, experiments, and wishes |
123
+ | `dojo_run_experiment` | Run an experiment in sandbox mode |
124
+ | `dojo_get_results` | Get results from a previous experiment run |
125
+ | `dojo_read_artifact` | Read artifact file from experiment results |
126
+ | `dojo_can_graduate` | Check if experiment can graduate to real tool |
127
+ | `dojo_projects` | List available projects for Dojo operations |
128
+
129
+ ### Architect (6 tools)
130
+ *Architecture decisions and policies*
131
+
132
+ | Tool | Description |
133
+ |------|-------------|
134
+ | `architect_record_arch_decision` | Record an ADR (markdown format) |
135
+ | `architect_createAdr` | Create ADR (YAML format with auto ID) |
136
+ | `architect_createPolicy` | Create a policy with rules and enforcement |
137
+ | `architect_listPolicies` | List all policies, filter by severity/tags |
138
+ | `architect_getPolicy` | Get details of a specific policy |
139
+ | `architect_compileOversight` | Compile policies into documentation |
140
+
141
+ ### Roadmap (6 tools)
142
+ *Strategic planning and health tracking*
143
+
144
+ | Tool | Description |
145
+ |------|-------------|
146
+ | `roadmap_get` | Get full roadmap (objectives, themes, milestones) |
147
+ | `roadmap_list` | List epics with roadmap context and health scores |
148
+ | `roadmap_getEpicContext` | Get strategic context for a specific epic |
149
+ | `roadmap_getHealth` | Get epics with low health scores needing attention |
150
+ | `roadmap_linkEpic` | Link epic to theme, milestone, objectives |
151
+ | `roadmap_init` | Initialize a new roadmap.yaml scaffold |
152
+
153
+ ### Oracle (2 tools)
154
+ *AI-powered recommendations*
155
+
156
+ | Tool | Description |
157
+ |------|-------------|
158
+ | `oracle_next_actions` | Get recommended next actions for a project |
159
+ | `oracle_roadmap` | Evaluate roadmap progress against milestones |
160
+
161
+ ### Designer (7 tools)
162
+ *Design decisions, Figma integration, and creative feedback*
163
+
164
+ | Tool | Description |
165
+ |------|-------------|
166
+ | `designer_record_design_decision` | Record a design decision |
167
+ | `designer_crit` | Log early creative feedback (gut reactions, hunches) |
168
+ | `designer_list_crits` | List crit observations, filter by area/sentiment |
169
+ | `designer_sync_tokens` | Sync design tokens from Figma variables |
170
+ | `designer_review_figma` | Review Figma component against design principles |
171
+ | `designer_upsert_principle` | Create or update a design principle |
172
+ | `designer_list_principles` | List design principles, filter by category |
173
+
174
+ ### Friction (4 tools)
175
+ *Track recurring pain points*
176
+
177
+ | Tool | Description |
178
+ |------|-------------|
179
+ | `friction_log` | Log a friction point (context, description, impact) |
180
+ | `friction_list` | List friction points sorted by impact/signal |
181
+ | `friction_resolve` | Mark friction as resolved with solution reference |
182
+ | `friction_bump` | Bump signal count when encountering same friction |
183
+
184
+ ### Learnings (2 tools)
185
+ *Living knowledge documents*
186
+
187
+ | Tool | Description |
188
+ |------|-------------|
189
+ | `learnings_append` | Append entry to project's learnings document |
190
+ | `learnings_list` | List entries, filter by category |
191
+
192
+ ### Context (8 tools)
193
+ *AI memory: pinned facts, events, artifacts*
194
+
195
+ | Tool | Description |
196
+ |------|-------------|
197
+ | `decibel_context_refresh` | Compile full context pack for AI memory |
198
+ | `decibel_context_pin` | Pin a fact to persistent memory |
199
+ | `decibel_context_unpin` | Remove a pinned fact |
200
+ | `decibel_context_list` | List all pinned facts |
201
+ | `decibel_event_append` | Append event to activity journal |
202
+ | `decibel_event_search` | Search events in journal |
203
+ | `decibel_artifact_list` | List artifacts for a run |
204
+ | `decibel_artifact_read` | Read artifact content |
205
+
206
+ ### Registry (7 tools)
207
+ *Project discovery and management*
208
+
209
+ | Tool | Description |
210
+ |------|-------------|
211
+ | `project_init` | Initialize .decibel/ folder in a project |
212
+ | `project_status` | Check project status and available tools |
213
+ | `registry_list` | List all registered projects |
214
+ | `registry_add` | Register a project in the registry |
215
+ | `registry_remove` | Remove project from registry |
216
+ | `registry_alias` | Add alias to a project |
217
+ | `registry_resolve` | Test resolution of project ID/alias |
218
+
219
+ ### Agentic (4 tools)
220
+ *Configuration compilation and rendering*
221
+
222
+ | Tool | Description |
223
+ |------|-------------|
224
+ | `agentic_compile_pack` | Compile config into versioned, hashed pack |
225
+ | `agentic_render` | Transform payload into rendered text |
226
+ | `agentic_lint` | Validate output against renderer constraints |
227
+ | `agentic_golden_eval` | Run golden eval regression tests |
228
+
229
+ ### Provenance (1 tool)
230
+ *Audit trail*
231
+
232
+ | Tool | Description |
233
+ |------|-------------|
234
+ | `provenance_list` | List provenance events for artifact/actor |
235
+
236
+ ---
237
+
238
+ ## Data Storage
239
+
240
+ Data is stored in project-local `.decibel/` folders:
241
+
242
+ ```
243
+ {project}/
244
+ └── .decibel/
245
+ ├── sentinel/
246
+ │ ├── issues/ # ISS-{nnnn}.yml
247
+ │ └── epics/ # EPIC-{nnnn}.yml
248
+ ├── architect/
249
+ │ ├── adrs/ # ADR-{nnnn}.yml
250
+ │ └── policies/ # POL-{nnnn}.yaml
251
+ ├── dojo/
252
+ │ ├── proposals/ # DOJO-PROP-{nnnn}.yml
253
+ │ ├── experiments/ # DOJO-EXP-{nnnn}/
254
+ │ └── wishes/ # WISH-{nnnn}.yml
255
+ ├── designer/ # Design decisions
256
+ ├── friction/ # Pain point logs
257
+ ├── learnings/ # Knowledge documents
258
+ ├── context/ # Pinned facts, events
259
+ └── voice/inbox/ # Voice messages
260
+ ```
261
+
262
+ ## Configuration
263
+
264
+ | Variable | Default | Description |
265
+ |----------|---------|-------------|
266
+ | `DECIBEL_ENV` | `dev` | Environment (dev, staging, prod) |
267
+ | `DECIBEL_ORG` | `mediareason` | Organization name |
268
+ | `DECIBEL_MCP_ROOT` | `~/.decibel` | Global data storage root |
269
+
270
+ Optional for cloud features:
271
+ - `SUPABASE_URL` - Supabase project URL
272
+ - `SUPABASE_SERVICE_KEY` - Supabase service role key
273
+ - `OPENAI_API_KEY` - For image generation
274
+ - `FIGMA_ACCESS_TOKEN` - For Figma integration (designer_sync_tokens, designer_review_figma)
275
+
276
+ ## Usage Examples
277
+
278
+ ### Example 1: Initialize a Project and Create an Epic
279
+
280
+ ```
281
+ User: "Initialize decibel for this project and create an epic for user authentication"
282
+
283
+ AI uses: project_init → sentinel_log_epic
284
+
285
+ Result: Creates .decibel/ folder structure and EPIC-0001.yml for "User Authentication"
286
+ ```
287
+
288
+ ### Example 2: Track Work with Issues Linked to Epics
289
+
290
+ ```
291
+ User: "Create issues for the auth epic: login form, password reset, and session management"
292
+
293
+ AI uses: sentinel_resolve_epic → sentinel_createIssue (×3)
294
+
295
+ Result: Creates ISS-0001, ISS-0002, ISS-0003 all linked to EPIC-0001
296
+ ```
297
+
298
+ ### Example 3: Record Architecture Decisions
299
+
300
+ ```
301
+ User: "We decided to use JWT tokens instead of sessions. Document this ADR."
302
+
303
+ AI uses: architect_createAdr
304
+
305
+ Result: Creates ADR-0001.yml with context, decision, and consequences
306
+ ```
307
+
308
+ ### Example 4: AI Feature Incubation (Dojo)
309
+
310
+ ```
311
+ User: "I wish we had a tool that detects rate limit patterns in logs"
312
+
313
+ AI uses: dojo_add_wish → dojo_create_proposal → dojo_scaffold_experiment
314
+
315
+ Result: WISH-0001.yml → DOJO-PROP-0001.yml → DOJO-EXP-0001/ with entrypoint ready to implement
316
+ ```
317
+
318
+ ### Example 5: Get Recommended Next Actions
319
+
320
+ ```
321
+ User: "What should I work on next?"
322
+
323
+ AI uses: oracle_next_actions
324
+
325
+ Result: Prioritized list based on stale issues, epic health, pending experiments
326
+ ```
327
+
328
+ ## Privacy Policy
329
+
330
+ **Local Storage Only**: All project data is stored locally in `.decibel/` folders within your project directories. No data is sent to external servers by default.
331
+
332
+ **Optional Cloud Integrations**: Some tools optionally connect to external services when you explicitly configure API keys:
333
+ - **Figma API** (`designer_sync_tokens`, `designer_review_figma`) - requires `FIGMA_ACCESS_TOKEN`
334
+ - **Supabase** (voice inbox sync) - requires `SUPABASE_URL` and `SUPABASE_SERVICE_KEY`
335
+
336
+ These optional integrations are clearly marked with `openWorldHint: true` in their tool annotations.
337
+
338
+ **No Telemetry**: This MCP server does not collect telemetry, usage analytics, or any form of tracking data.
339
+
340
+ ## License
341
+
342
+ MIT - [Decibel Systems](https://decibel.systems)
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Agentic Pack Compiler
3
+ *
4
+ * Compiles agentic configuration files into a versioned, hashed pack.
5
+ * Reads from .decibel/architect/agentic/ and outputs compiled_agentic_pack.json
6
+ */
7
+ import { ResolvedProjectPaths } from '../projectRegistry.js';
8
+ import { CompileResult, CompilePackInput, CompilePackOutput } from './types.js';
9
+ /**
10
+ * Compile agentic pack from project configuration
11
+ */
12
+ export declare function compilePack(input: CompilePackInput): Promise<CompilePackOutput>;
13
+ /**
14
+ * Load a previously compiled pack
15
+ */
16
+ export declare function loadCompiledPack(resolved: ResolvedProjectPaths): Promise<CompileResult | null>;
17
+ /**
18
+ * Get or compile pack (compile if not exists or outdated)
19
+ */
20
+ export declare function getOrCompilePack(resolved: ResolvedProjectPaths): Promise<CompileResult>;
21
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../src/agentic/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,EAAuB,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAElF,OAAO,EAEL,aAAa,EAKb,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AA0MpB;;GAEG;AACH,wBAAsB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2CrF;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQpG;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,aAAa,CAAC,CAcxB"}
@@ -0,0 +1,267 @@
1
+ /**
2
+ * Agentic Pack Compiler
3
+ *
4
+ * Compiles agentic configuration files into a versioned, hashed pack.
5
+ * Reads from .decibel/architect/agentic/ and outputs compiled_agentic_pack.json
6
+ */
7
+ import fs from 'fs/promises';
8
+ import path from 'path';
9
+ import crypto from 'crypto';
10
+ import yaml from 'yaml';
11
+ import { log } from '../config.js';
12
+ import { resolveProjectPaths } from '../projectRegistry.js';
13
+ import { ensureDir } from '../dataRoot.js';
14
+ // ============================================================================
15
+ // Default Configurations
16
+ // ============================================================================
17
+ const DEFAULT_TAXONOMY = {
18
+ roles: {
19
+ Sensor: { emoji: '👁️', description: 'Data collection and observation' },
20
+ Analyst: { emoji: '🧠', description: 'Pattern recognition and analysis' },
21
+ Overmind: { emoji: '🎯', description: 'Decision making and coordination' },
22
+ Specialist: { emoji: '🔧', description: 'Domain-specific expertise' },
23
+ },
24
+ statuses: {
25
+ OK: { emoji: '✓', color: 'green' },
26
+ DEGRADED: { emoji: '⚠️', color: 'yellow' },
27
+ BLOCKED: { emoji: '🛑', color: 'red' },
28
+ ALERT: { emoji: '🚨', color: 'magenta' },
29
+ },
30
+ loads: {
31
+ GREEN: { emoji: '🟢', color: 'green' },
32
+ YELLOW: { emoji: '🟡', color: 'yellow' },
33
+ RED: { emoji: '🔴', color: 'red' },
34
+ },
35
+ };
36
+ const DEFAULT_RENDERER = {
37
+ id: 'default',
38
+ name: 'Default Renderer',
39
+ description: 'Basic text output with minimal formatting',
40
+ template: `{{role_emoji}} {{role}} | {{status}} | Load: {{load}}
41
+
42
+ {{summary}}
43
+
44
+ {{#evidence}}
45
+ Evidence:
46
+ {{#items}}
47
+ - {{source}}: {{value}}
48
+ {{/items}}
49
+ {{/evidence}}
50
+
51
+ {{#missing_data}}
52
+ Missing Data:
53
+ {{#items}}
54
+ - {{field}}: {{reason}}
55
+ {{/items}}
56
+ {{/missing_data}}
57
+
58
+ {{#decision}}
59
+ Decision: {{decision}}
60
+ {{/decision}}`,
61
+ constraints: {
62
+ max_emoji_count: 5,
63
+ emoji_position: 'header-only',
64
+ max_lines: 50,
65
+ banned_words: ['amazing', 'incredible', 'revolutionary', 'game-changing'],
66
+ banned_punctuation: ['!'],
67
+ },
68
+ };
69
+ const DEFAULT_CONSENSUS = {
70
+ quorum_threshold: 0.67,
71
+ dissent_highlight_threshold: 0.3,
72
+ max_pending_decisions: 10,
73
+ };
74
+ // ============================================================================
75
+ // YAML Loading Helpers
76
+ // ============================================================================
77
+ async function loadYamlFile(filePath) {
78
+ try {
79
+ const content = await fs.readFile(filePath, 'utf-8');
80
+ return yaml.parse(content);
81
+ }
82
+ catch (error) {
83
+ if (error.code === 'ENOENT') {
84
+ return null;
85
+ }
86
+ throw error;
87
+ }
88
+ }
89
+ async function loadYamlDir(dirPath) {
90
+ const result = {};
91
+ try {
92
+ const files = await fs.readdir(dirPath);
93
+ for (const file of files) {
94
+ if (file.endsWith('.yaml') || file.endsWith('.yml')) {
95
+ const filePath = path.join(dirPath, file);
96
+ const content = await loadYamlFile(filePath);
97
+ if (content) {
98
+ const id = path.basename(file, path.extname(file));
99
+ result[id] = content;
100
+ }
101
+ }
102
+ }
103
+ }
104
+ catch (error) {
105
+ if (error.code !== 'ENOENT') {
106
+ throw error;
107
+ }
108
+ }
109
+ return result;
110
+ }
111
+ // ============================================================================
112
+ // Pack Compiler
113
+ // ============================================================================
114
+ async function loadPackConfigs(agenticDir) {
115
+ const sourceFiles = [];
116
+ // Load taxonomy
117
+ const taxonomyPath = path.join(agenticDir, 'taxonomy.yaml');
118
+ const taxonomy = (await loadYamlFile(taxonomyPath)) || DEFAULT_TAXONOMY;
119
+ if (await fileExists(taxonomyPath))
120
+ sourceFiles.push(taxonomyPath);
121
+ // Load renderers
122
+ const renderersPath = path.join(agenticDir, 'renderers.yaml');
123
+ let renderers = { default: DEFAULT_RENDERER };
124
+ const loadedRenderers = await loadYamlFile(renderersPath);
125
+ if (loadedRenderers) {
126
+ renderers = { ...renderers, ...loadedRenderers };
127
+ sourceFiles.push(renderersPath);
128
+ }
129
+ // Also load from renderers/ directory
130
+ const renderersDir = path.join(agenticDir, 'renderers');
131
+ const dirRenderers = await loadYamlDir(renderersDir);
132
+ for (const [id, config] of Object.entries(dirRenderers)) {
133
+ renderers[id] = { ...config, id };
134
+ sourceFiles.push(path.join(renderersDir, `${id}.yaml`));
135
+ }
136
+ // Load consensus
137
+ const consensusPath = path.join(agenticDir, 'consensus.yaml');
138
+ const consensus = (await loadYamlFile(consensusPath)) || DEFAULT_CONSENSUS;
139
+ if (await fileExists(consensusPath))
140
+ sourceFiles.push(consensusPath);
141
+ // Load ANSI styles
142
+ const ansiStylesPath = path.join(agenticDir, 'ansi_styles.yaml');
143
+ const ansiStyles = await loadYamlFile(ansiStylesPath);
144
+ if (await fileExists(ansiStylesPath))
145
+ sourceFiles.push(ansiStylesPath);
146
+ // Load avatars
147
+ const avatarsDir = path.join(agenticDir, 'avatars');
148
+ const avatars = await loadYamlDir(avatarsDir);
149
+ for (const file of Object.keys(avatars)) {
150
+ sourceFiles.push(path.join(avatarsDir, `${file}.yaml`));
151
+ }
152
+ // Load pack overrides
153
+ const packsDir = path.join(agenticDir, 'packs');
154
+ const packs = await loadYamlDir(packsDir);
155
+ for (const [packId, packConfig] of Object.entries(packs)) {
156
+ // Merge pack-specific overrides
157
+ if (packConfig.renderers) {
158
+ renderers = { ...renderers, ...packConfig.renderers };
159
+ }
160
+ if (packConfig.avatars) {
161
+ Object.assign(avatars, packConfig.avatars);
162
+ }
163
+ sourceFiles.push(path.join(packsDir, `${packId}.yaml`));
164
+ }
165
+ return {
166
+ pack: {
167
+ taxonomy,
168
+ renderers,
169
+ consensus,
170
+ avatars,
171
+ ansi_styles: ansiStyles || undefined,
172
+ },
173
+ sourceFiles,
174
+ };
175
+ }
176
+ async function fileExists(filePath) {
177
+ try {
178
+ await fs.access(filePath);
179
+ return true;
180
+ }
181
+ catch {
182
+ return false;
183
+ }
184
+ }
185
+ function computePackHash(pack) {
186
+ const content = JSON.stringify(pack, Object.keys(pack).sort());
187
+ return crypto.createHash('sha256').update(content).digest('hex').substring(0, 12);
188
+ }
189
+ function generatePackId() {
190
+ const timestamp = new Date().toISOString().replace(/[-:]/g, '').split('.')[0];
191
+ const random = Math.random().toString(36).substring(2, 6);
192
+ return `pack-${timestamp}-${random}`;
193
+ }
194
+ // ============================================================================
195
+ // Public API
196
+ // ============================================================================
197
+ /**
198
+ * Compile agentic pack from project configuration
199
+ */
200
+ export async function compilePack(input) {
201
+ try {
202
+ const resolved = resolveProjectPaths(input.projectId);
203
+ const agenticDir = resolved.subPath('architect', 'agentic');
204
+ log(`agentic-compiler: Compiling pack from ${agenticDir}`);
205
+ // Load all configs
206
+ const { pack, sourceFiles } = await loadPackConfigs(agenticDir);
207
+ // Generate pack ID and hash
208
+ const packId = generatePackId();
209
+ const packHash = computePackHash(pack);
210
+ const result = {
211
+ pack_id: packId,
212
+ pack_hash: packHash,
213
+ compiled_at: new Date().toISOString(),
214
+ content: pack,
215
+ source_files: sourceFiles,
216
+ };
217
+ // Write compiled pack to output
218
+ const outputDir = resolved.subPath('architect', 'agentic', 'compiled');
219
+ ensureDir(outputDir);
220
+ const outputPath = path.join(outputDir, 'compiled_agentic_pack.json');
221
+ await fs.writeFile(outputPath, JSON.stringify(result, null, 2), 'utf-8');
222
+ log(`agentic-compiler: Pack compiled successfully (${packHash})`);
223
+ log(`agentic-compiler: Output written to ${outputPath}`);
224
+ return {
225
+ status: 'compiled',
226
+ result,
227
+ };
228
+ }
229
+ catch (error) {
230
+ const message = error instanceof Error ? error.message : String(error);
231
+ log(`agentic-compiler: Error compiling pack: ${message}`);
232
+ return {
233
+ status: 'error',
234
+ error: message,
235
+ };
236
+ }
237
+ }
238
+ /**
239
+ * Load a previously compiled pack
240
+ */
241
+ export async function loadCompiledPack(resolved) {
242
+ const outputPath = resolved.subPath('architect', 'agentic', 'compiled', 'compiled_agentic_pack.json');
243
+ try {
244
+ const content = await fs.readFile(outputPath, 'utf-8');
245
+ return JSON.parse(content);
246
+ }
247
+ catch {
248
+ return null;
249
+ }
250
+ }
251
+ /**
252
+ * Get or compile pack (compile if not exists or outdated)
253
+ */
254
+ export async function getOrCompilePack(resolved) {
255
+ // Try to load existing
256
+ const existing = await loadCompiledPack(resolved);
257
+ if (existing) {
258
+ return existing;
259
+ }
260
+ // Compile new
261
+ const result = await compilePack({ projectId: resolved.id });
262
+ if (result.status === 'error' || !result.result) {
263
+ throw new Error(result.error || 'Failed to compile pack');
264
+ }
265
+ return result.result;
266
+ }
267
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../src/agentic/compiler.ts"],"names":[],"mappings":"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"}