@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,75 @@
1
+ export type ActorType = 'human' | 'ai' | 'system';
2
+ export type ProvenanceAction = 'create' | 'edit' | 'review' | 'approve' | 'reject' | 'link' | 'apply' | 'derive';
3
+ export type ReasonCode = 'initial_creation' | 'refinement' | 'correction' | 'clarification' | 'implementation' | 'graduation' | 'rejection' | 'linkage';
4
+ export interface ProvenanceEvent {
5
+ event_id: string;
6
+ timestamp: string;
7
+ actor_id: string;
8
+ actor_type: ActorType;
9
+ action: ProvenanceAction;
10
+ artifact_refs: string[];
11
+ reason_code: ReasonCode;
12
+ summary?: string;
13
+ fingerprint_before?: string | null;
14
+ fingerprint_after?: string;
15
+ }
16
+ export interface EmitProvenanceInput {
17
+ actor_id: string;
18
+ action: ProvenanceAction;
19
+ artifact_refs: string[];
20
+ reason_code: ReasonCode;
21
+ summary?: string;
22
+ fingerprint_before?: string | null;
23
+ fingerprint_after?: string;
24
+ }
25
+ export interface ListProvenanceInput {
26
+ projectId?: string;
27
+ artifact_ref?: string;
28
+ actor_id?: string;
29
+ limit?: number;
30
+ }
31
+ export interface ListProvenanceOutput {
32
+ events: ProvenanceEvent[];
33
+ total_count: number;
34
+ }
35
+ export interface ProjectResolutionError {
36
+ error: 'project_resolution_failed';
37
+ message: string;
38
+ hint: string;
39
+ }
40
+ /**
41
+ * Generate a unique event ID in format PROV-{timestamp}-{ms}
42
+ */
43
+ export declare function generateEventId(): string;
44
+ /**
45
+ * Hash content using SHA-256 and return first 16 characters.
46
+ * Format: sha256:{first16chars}
47
+ */
48
+ export declare function hashContent(content: string): string;
49
+ /**
50
+ * Get the default actor ID from environment or fallback.
51
+ * Priority: DECIBEL_ACTOR_ID env var > git config > $USER
52
+ */
53
+ export declare function getDefaultActorId(): string;
54
+ /**
55
+ * Emit a provenance event for an artifact action.
56
+ * Stores in .decibel/provenance/events/PROV-*.yml
57
+ *
58
+ * @param input - Event data (actor_id, action, artifact_refs, reason_code, summary, fingerprints)
59
+ * @param projectRoot - Root path of the project (or projectId to resolve)
60
+ * @returns The event_id of the created provenance event
61
+ */
62
+ export declare function emitProvenance(input: EmitProvenanceInput, projectId?: string): Promise<string | ProjectResolutionError>;
63
+ /**
64
+ * List provenance events, optionally filtered by artifact_ref or actor_id.
65
+ *
66
+ * @param input - Filter criteria (projectId, artifact_ref, actor_id, limit)
67
+ * @returns List of matching provenance events
68
+ */
69
+ export declare function listProvenance(input: ListProvenanceInput): Promise<ListProvenanceOutput | ProjectResolutionError>;
70
+ /**
71
+ * Helper to emit provenance for artifact creation.
72
+ * Convenience wrapper for emitProvenance with 'create' action.
73
+ */
74
+ export declare function emitCreateProvenance(artifactRef: string, content: string, summary: string, projectId?: string): Promise<string | ProjectResolutionError>;
75
+ //# sourceMappingURL=provenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.d.ts","sourceRoot":"","sources":["../../src/tools/provenance.ts"],"names":[],"mappings":"AAaA,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,IAAI,GAAG,QAAQ,CAAC;AAClD,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AACjH,MAAM,MAAM,UAAU,GAClB,kBAAkB,GAClB,YAAY,GACZ,YAAY,GACZ,eAAe,GACf,gBAAgB,GAChB,YAAY,GACZ,WAAW,GACX,SAAS,CAAC;AAEd,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,SAAS,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC;IACzB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,2BAA2B,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAeD;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAsBD;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C;AAgDD;;;;;;;GAOG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,EAC1B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAyC1C;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAClC,KAAK,EAAE,mBAAmB,GACzB,OAAO,CAAC,oBAAoB,GAAG,sBAAsB,CAAC,CA+CxD;AAED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,sBAAsB,CAAC,CAgB1C"}
@@ -0,0 +1,224 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import crypto from 'crypto';
4
+ import { execSync } from 'child_process';
5
+ import { log } from '../config.js';
6
+ import { ensureDir } from '../dataRoot.js';
7
+ import { resolveProjectPaths, validateWritePath } from '../projectRegistry.js';
8
+ import YAML from 'yaml';
9
+ // ============================================================================
10
+ // Helpers
11
+ // ============================================================================
12
+ function makeProjectResolutionError(operation) {
13
+ return {
14
+ error: 'project_resolution_failed',
15
+ message: `Cannot ${operation}: No project context available.`,
16
+ hint: 'Either specify projectId parameter, set DECIBEL_PROJECT_ROOT env var, or run from a directory containing .decibel/',
17
+ };
18
+ }
19
+ /**
20
+ * Generate a unique event ID in format PROV-{timestamp}-{ms}
21
+ */
22
+ export function generateEventId() {
23
+ const now = new Date();
24
+ const dateStr = now.toISOString().slice(0, 10).replace(/-/g, '');
25
+ const timeStr = now.toISOString().slice(11, 19).replace(/:/g, '');
26
+ const ms = now.getMilliseconds().toString().padStart(3, '0');
27
+ return `PROV-${dateStr}T${timeStr}-${ms}`;
28
+ }
29
+ /**
30
+ * Hash content using SHA-256 and return first 16 characters.
31
+ * Format: sha256:{first16chars}
32
+ */
33
+ export function hashContent(content) {
34
+ const hash = crypto.createHash('sha256').update(content, 'utf-8').digest('hex');
35
+ return `sha256:${hash.slice(0, 16)}`;
36
+ }
37
+ /**
38
+ * Get git user identity (name <email>) from git config.
39
+ * Returns null if git is not available or not configured.
40
+ */
41
+ function getGitUser() {
42
+ try {
43
+ const name = execSync('git config user.name', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
44
+ const email = execSync('git config user.email', { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
45
+ if (name && email) {
46
+ return `${name} <${email}>`;
47
+ }
48
+ if (name) {
49
+ return name;
50
+ }
51
+ return null;
52
+ }
53
+ catch {
54
+ return null;
55
+ }
56
+ }
57
+ /**
58
+ * Get the default actor ID from environment or fallback.
59
+ * Priority: DECIBEL_ACTOR_ID env var > git config > $USER
60
+ */
61
+ export function getDefaultActorId() {
62
+ if (process.env.DECIBEL_ACTOR_ID) {
63
+ return process.env.DECIBEL_ACTOR_ID;
64
+ }
65
+ // Try git user identity
66
+ const gitUser = getGitUser();
67
+ if (gitUser) {
68
+ return `human:${gitUser}`;
69
+ }
70
+ // Fallback to OS username
71
+ const username = process.env.USER || process.env.USERNAME || 'unknown';
72
+ return `human:${username}`;
73
+ }
74
+ /**
75
+ * Determine actor type from actor ID prefix.
76
+ */
77
+ function getActorType(actorId) {
78
+ if (actorId.startsWith('ai:') || actorId.startsWith('agent:') || actorId.startsWith('claude:')) {
79
+ return 'ai';
80
+ }
81
+ if (actorId.startsWith('system:') || actorId.startsWith('hook:') || actorId.startsWith('automation:')) {
82
+ return 'system';
83
+ }
84
+ return 'human';
85
+ }
86
+ /**
87
+ * Parse a provenance YAML file into a ProvenanceEvent.
88
+ */
89
+ async function parseProvenanceFile(filePath) {
90
+ try {
91
+ const content = await fs.readFile(filePath, 'utf-8');
92
+ const data = YAML.parse(content);
93
+ if (!data.event_id || !data.timestamp || !data.actor_id || !data.action) {
94
+ return null;
95
+ }
96
+ return {
97
+ event_id: data.event_id,
98
+ timestamp: data.timestamp,
99
+ actor_id: data.actor_id,
100
+ actor_type: data.actor_type || getActorType(data.actor_id),
101
+ action: data.action,
102
+ artifact_refs: data.artifact_refs || [],
103
+ reason_code: data.reason_code || 'initial_creation',
104
+ summary: data.summary,
105
+ fingerprint_before: data.fingerprint_before,
106
+ fingerprint_after: data.fingerprint_after,
107
+ };
108
+ }
109
+ catch {
110
+ return null;
111
+ }
112
+ }
113
+ // ============================================================================
114
+ // Public API
115
+ // ============================================================================
116
+ /**
117
+ * Emit a provenance event for an artifact action.
118
+ * Stores in .decibel/provenance/events/PROV-*.yml
119
+ *
120
+ * @param input - Event data (actor_id, action, artifact_refs, reason_code, summary, fingerprints)
121
+ * @param projectRoot - Root path of the project (or projectId to resolve)
122
+ * @returns The event_id of the created provenance event
123
+ */
124
+ export async function emitProvenance(input, projectId) {
125
+ let resolved;
126
+ try {
127
+ resolved = resolveProjectPaths(projectId);
128
+ }
129
+ catch {
130
+ return makeProjectResolutionError('emit provenance event');
131
+ }
132
+ const eventId = generateEventId();
133
+ const timestamp = new Date().toISOString();
134
+ const actorType = getActorType(input.actor_id);
135
+ const event = {
136
+ event_id: eventId,
137
+ timestamp,
138
+ actor_id: input.actor_id,
139
+ actor_type: actorType,
140
+ action: input.action,
141
+ artifact_refs: input.artifact_refs,
142
+ reason_code: input.reason_code,
143
+ summary: input.summary,
144
+ fingerprint_before: input.fingerprint_before,
145
+ fingerprint_after: input.fingerprint_after,
146
+ };
147
+ // Store in .decibel/provenance/events/
148
+ const eventsDir = resolved.subPath('provenance', 'events');
149
+ ensureDir(eventsDir);
150
+ const filename = `${eventId}.yml`;
151
+ const filePath = path.join(eventsDir, filename);
152
+ // Build YAML content
153
+ const yamlContent = YAML.stringify(event, { lineWidth: 0 });
154
+ validateWritePath(filePath, resolved);
155
+ await fs.writeFile(filePath, yamlContent, 'utf-8');
156
+ log(`Provenance: Emitted ${eventId} for action "${input.action}" on ${input.artifact_refs.length} artifact(s)`);
157
+ return eventId;
158
+ }
159
+ /**
160
+ * List provenance events, optionally filtered by artifact_ref or actor_id.
161
+ *
162
+ * @param input - Filter criteria (projectId, artifact_ref, actor_id, limit)
163
+ * @returns List of matching provenance events
164
+ */
165
+ export async function listProvenance(input) {
166
+ let resolved;
167
+ try {
168
+ resolved = resolveProjectPaths(input.projectId);
169
+ }
170
+ catch {
171
+ return makeProjectResolutionError('list provenance events');
172
+ }
173
+ const eventsDir = resolved.subPath('provenance', 'events');
174
+ const limit = input.limit || 50;
175
+ let events = [];
176
+ try {
177
+ const files = await fs.readdir(eventsDir);
178
+ const yamlFiles = files.filter(f => f.endsWith('.yml') && f.startsWith('PROV-'));
179
+ for (const file of yamlFiles) {
180
+ const filePath = path.join(eventsDir, file);
181
+ const event = await parseProvenanceFile(filePath);
182
+ if (!event)
183
+ continue;
184
+ // Apply filters
185
+ if (input.artifact_ref && !event.artifact_refs.includes(input.artifact_ref)) {
186
+ continue;
187
+ }
188
+ if (input.actor_id && event.actor_id !== input.actor_id) {
189
+ continue;
190
+ }
191
+ events.push(event);
192
+ }
193
+ }
194
+ catch {
195
+ // Directory doesn't exist yet
196
+ }
197
+ const totalCount = events.length;
198
+ // Sort by timestamp descending (newest first)
199
+ events.sort((a, b) => b.timestamp.localeCompare(a.timestamp));
200
+ // Apply limit
201
+ events = events.slice(0, limit);
202
+ return {
203
+ events,
204
+ total_count: totalCount,
205
+ };
206
+ }
207
+ /**
208
+ * Helper to emit provenance for artifact creation.
209
+ * Convenience wrapper for emitProvenance with 'create' action.
210
+ */
211
+ export async function emitCreateProvenance(artifactRef, content, summary, projectId) {
212
+ const actorId = getDefaultActorId();
213
+ const fingerprint = hashContent(content);
214
+ return emitProvenance({
215
+ actor_id: actorId,
216
+ action: 'create',
217
+ artifact_refs: [artifactRef],
218
+ reason_code: 'initial_creation',
219
+ summary,
220
+ fingerprint_before: null,
221
+ fingerprint_after: fingerprint,
222
+ }, projectId);
223
+ }
224
+ //# sourceMappingURL=provenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provenance.js","sourceRoot":"","sources":["../../src/tools/provenance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Rate Limiter for AI Callers
3
+ *
4
+ * Prevents runaway scenarios where AI makes too many requests.
5
+ * Humans bypass rate limiting entirely.
6
+ */
7
+ import { CallerRole } from './dojoPolicy.js';
8
+ interface RateLimitConfig {
9
+ maxRequestsPerMinute: number;
10
+ maxConcurrent: number;
11
+ }
12
+ export interface RateLimitResult {
13
+ allowed: boolean;
14
+ reason?: string;
15
+ retryAfterMs?: number;
16
+ }
17
+ /**
18
+ * Check if a request is allowed under rate limits.
19
+ * Call this BEFORE processing a request.
20
+ */
21
+ export declare function checkRateLimit(callerRole?: CallerRole): RateLimitResult;
22
+ /**
23
+ * Record that a request has started.
24
+ * Call this AFTER checkRateLimit returns allowed: true.
25
+ */
26
+ export declare function recordRequestStart(callerRole?: CallerRole): void;
27
+ /**
28
+ * Record that a request has completed.
29
+ * Call this in a finally block after processing.
30
+ */
31
+ export declare function recordRequestEnd(callerRole?: CallerRole): void;
32
+ /**
33
+ * Get current rate limit status for monitoring/debugging.
34
+ */
35
+ export declare function getRateLimitStatus(callerRole: CallerRole): {
36
+ requestsInLastMinute: number;
37
+ concurrent: number;
38
+ limits: RateLimitConfig;
39
+ };
40
+ /**
41
+ * Reset rate limit state (useful for testing).
42
+ */
43
+ export declare function resetRateLimits(): void;
44
+ export {};
45
+ //# sourceMappingURL=rateLimiter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.d.ts","sourceRoot":"","sources":["../../src/tools/rateLimiter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7C,UAAU,eAAe;IACvB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;CACvB;AA8BD,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,UAAU,GAAE,UAAoB,GAAG,eAAe,CA+BhF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,GAAE,UAAoB,GAAG,IAAI,CAKzE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,GAAE,UAAoB,GAAG,IAAI,CAIvE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG;IAC1D,oBAAoB,EAAE,MAAM,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,eAAe,CAAC;CACzB,CAWA;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAEtC"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Rate Limiter for AI Callers
3
+ *
4
+ * Prevents runaway scenarios where AI makes too many requests.
5
+ * Humans bypass rate limiting entirely.
6
+ */
7
+ import { log } from '../config.js';
8
+ const DEFAULT_LIMITS = {
9
+ human: { maxRequestsPerMinute: Infinity, maxConcurrent: Infinity },
10
+ mother: { maxRequestsPerMinute: 30, maxConcurrent: 3 },
11
+ ai: { maxRequestsPerMinute: 20, maxConcurrent: 2 },
12
+ };
13
+ const state = new Map();
14
+ function getState(role) {
15
+ if (!state.has(role)) {
16
+ state.set(role, { requests: [], concurrent: 0 });
17
+ }
18
+ return state.get(role);
19
+ }
20
+ /**
21
+ * Check if a request is allowed under rate limits.
22
+ * Call this BEFORE processing a request.
23
+ */
24
+ export function checkRateLimit(callerRole = 'human') {
25
+ const limits = DEFAULT_LIMITS[callerRole];
26
+ const roleState = getState(callerRole);
27
+ const now = Date.now();
28
+ const oneMinuteAgo = now - 60_000;
29
+ // Clean old requests
30
+ roleState.requests = roleState.requests.filter(ts => ts > oneMinuteAgo);
31
+ // Check concurrent limit
32
+ if (roleState.concurrent >= limits.maxConcurrent) {
33
+ log(`rateLimiter: ${callerRole} blocked - concurrent limit (${roleState.concurrent}/${limits.maxConcurrent})`);
34
+ return {
35
+ allowed: false,
36
+ reason: `Concurrent request limit reached (${limits.maxConcurrent}). Wait for current requests to complete.`,
37
+ };
38
+ }
39
+ // Check requests per minute
40
+ if (roleState.requests.length >= limits.maxRequestsPerMinute) {
41
+ const oldestRequest = roleState.requests[0];
42
+ const retryAfterMs = oldestRequest + 60_000 - now;
43
+ log(`rateLimiter: ${callerRole} blocked - rate limit (${roleState.requests.length}/${limits.maxRequestsPerMinute}/min)`);
44
+ return {
45
+ allowed: false,
46
+ reason: `Rate limit exceeded (${limits.maxRequestsPerMinute} requests/minute). Try again in ${Math.ceil(retryAfterMs / 1000)}s.`,
47
+ retryAfterMs,
48
+ };
49
+ }
50
+ return { allowed: true };
51
+ }
52
+ /**
53
+ * Record that a request has started.
54
+ * Call this AFTER checkRateLimit returns allowed: true.
55
+ */
56
+ export function recordRequestStart(callerRole = 'human') {
57
+ const roleState = getState(callerRole);
58
+ roleState.requests.push(Date.now());
59
+ roleState.concurrent++;
60
+ log(`rateLimiter: ${callerRole} request started (concurrent: ${roleState.concurrent})`);
61
+ }
62
+ /**
63
+ * Record that a request has completed.
64
+ * Call this in a finally block after processing.
65
+ */
66
+ export function recordRequestEnd(callerRole = 'human') {
67
+ const roleState = getState(callerRole);
68
+ roleState.concurrent = Math.max(0, roleState.concurrent - 1);
69
+ log(`rateLimiter: ${callerRole} request ended (concurrent: ${roleState.concurrent})`);
70
+ }
71
+ /**
72
+ * Get current rate limit status for monitoring/debugging.
73
+ */
74
+ export function getRateLimitStatus(callerRole) {
75
+ const limits = DEFAULT_LIMITS[callerRole];
76
+ const roleState = getState(callerRole);
77
+ const oneMinuteAgo = Date.now() - 60_000;
78
+ const recentRequests = roleState.requests.filter(ts => ts > oneMinuteAgo);
79
+ return {
80
+ requestsInLastMinute: recentRequests.length,
81
+ concurrent: roleState.concurrent,
82
+ limits,
83
+ };
84
+ }
85
+ /**
86
+ * Reset rate limit state (useful for testing).
87
+ */
88
+ export function resetRateLimits() {
89
+ state.clear();
90
+ }
91
+ //# sourceMappingURL=rateLimiter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateLimiter.js","sourceRoot":"","sources":["../../src/tools/rateLimiter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const projectInitTool: ToolSpec;
3
+ export declare const projectStatusTool: ToolSpec;
4
+ export declare const registryListTool: ToolSpec;
5
+ export declare const registryAddTool: ToolSpec;
6
+ export declare const registryRemoveTool: ToolSpec;
7
+ export declare const registryAliasTool: ToolSpec;
8
+ export declare const registryResolveTool: ToolSpec;
9
+ export declare const registryTools: ToolSpec[];
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/registry/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAuFvC,eAAO,MAAM,eAAe,EAAE,QAyL7B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QA2F/B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAqC9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,QA+C7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,QAmChC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAqC/B,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,QAsCjC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,QAAQ,EAQnC,CAAC"}