@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,482 @@
1
+ /**
2
+ * Senken Trade Tools — trade database integration
3
+ *
4
+ * Tools for querying trade performance, giveback analysis, trade review,
5
+ * and parameter override management.
6
+ *
7
+ * Env var: SENKEN_DATABASE_URL
8
+ */
9
+ import pg from 'pg';
10
+ const { Pool } = pg;
11
+ // Lazy-init pool
12
+ let pool = null;
13
+ function getPool() {
14
+ if (!pool) {
15
+ const connectionString = process.env.SENKEN_DATABASE_URL;
16
+ if (!connectionString) {
17
+ throw new Error('SENKEN_DATABASE_URL environment variable not set');
18
+ }
19
+ pool = new Pool({
20
+ connectionString,
21
+ ssl: { rejectUnauthorized: false },
22
+ max: 5,
23
+ idleTimeoutMillis: 30000,
24
+ });
25
+ }
26
+ return pool;
27
+ }
28
+ // =============================================================================
29
+ // Helper
30
+ // =============================================================================
31
+ function jsonResult(data, isError = false) {
32
+ return {
33
+ content: [{ type: 'text', text: JSON.stringify(data, null, 2) }],
34
+ isError,
35
+ };
36
+ }
37
+ // =============================================================================
38
+ // Tool 1: senken_trade_summary
39
+ // =============================================================================
40
+ const senkenTradeSummary = {
41
+ definition: {
42
+ name: 'senken_trade_summary',
43
+ description: 'Aggregate trade performance. Returns count, win rate, avg R-multiple, total PnL grouped by strategy.',
44
+ annotations: {
45
+ title: 'Trade Summary',
46
+ readOnlyHint: true,
47
+ destructiveHint: false,
48
+ openWorldHint: false,
49
+ },
50
+ inputSchema: {
51
+ type: 'object',
52
+ properties: {
53
+ days: {
54
+ type: 'number',
55
+ description: 'Look-back window in days (default: 30)',
56
+ },
57
+ strategy: {
58
+ type: 'string',
59
+ description: 'Filter by strategy name',
60
+ },
61
+ symbol: {
62
+ type: 'string',
63
+ description: 'Filter by symbol',
64
+ },
65
+ },
66
+ required: [],
67
+ },
68
+ },
69
+ handler: async (args) => {
70
+ try {
71
+ const db = getPool();
72
+ const days = args.days ?? 30;
73
+ const query = `
74
+ SELECT
75
+ strategy,
76
+ COUNT(*)::int AS trade_count,
77
+ ROUND((COUNT(*) FILTER (WHERE r_multiple > 0)::numeric
78
+ / NULLIF(COUNT(*), 0) * 100), 1) AS win_rate_pct,
79
+ ROUND(AVG(r_multiple)::numeric, 2) AS avg_r,
80
+ ROUND(SUM(pnl)::numeric, 2) AS total_pnl
81
+ FROM mother_trades
82
+ WHERE closed_at >= NOW() - ($1 || ' days')::interval
83
+ AND ($2::text IS NULL OR strategy = $2)
84
+ AND ($3::text IS NULL OR symbol = $3)
85
+ GROUP BY strategy
86
+ ORDER BY total_pnl DESC
87
+ `;
88
+ const result = await db.query(query, [
89
+ days,
90
+ args.strategy || null,
91
+ args.symbol || null,
92
+ ]);
93
+ return jsonResult({
94
+ success: true,
95
+ days,
96
+ strategies: result.rows,
97
+ total_trades: result.rows.reduce((s, r) => s + r.trade_count, 0),
98
+ });
99
+ }
100
+ catch (error) {
101
+ const msg = error instanceof Error ? error.message : String(error);
102
+ return jsonResult({ success: false, error: msg }, true);
103
+ }
104
+ },
105
+ };
106
+ // =============================================================================
107
+ // Tool 2: senken_giveback_report (WISH-0001)
108
+ // =============================================================================
109
+ const senkenGivebackReport = {
110
+ definition: {
111
+ name: 'senken_giveback_report',
112
+ description: 'Analyse giveback — how much MFE (max favourable excursion) was captured vs. left on the table. Groups by strategy, symbol, and exit reason.',
113
+ annotations: {
114
+ title: 'Giveback Report',
115
+ readOnlyHint: true,
116
+ destructiveHint: false,
117
+ openWorldHint: false,
118
+ },
119
+ inputSchema: {
120
+ type: 'object',
121
+ properties: {
122
+ days: {
123
+ type: 'number',
124
+ description: 'Look-back window in days (default: 30)',
125
+ },
126
+ strategy: {
127
+ type: 'string',
128
+ description: 'Filter by strategy name',
129
+ },
130
+ limit: {
131
+ type: 'number',
132
+ description: 'Max rows per section (default: 20)',
133
+ },
134
+ },
135
+ required: [],
136
+ },
137
+ },
138
+ handler: async (args) => {
139
+ try {
140
+ const db = getPool();
141
+ const days = args.days ?? 30;
142
+ const limit = args.limit ?? 20;
143
+ // Strategy-level giveback breakdown
144
+ const strategyQuery = `
145
+ SELECT
146
+ t.strategy,
147
+ COUNT(*)::int AS trades,
148
+ ROUND(AVG(s.max_favorable_excursion)::numeric, 2) AS avg_mfe,
149
+ ROUND(AVG(t.r_multiple)::numeric, 2) AS avg_realized_r,
150
+ ROUND(AVG(s.max_favorable_excursion - t.r_multiple)::numeric, 2) AS avg_giveback_r,
151
+ ROUND((AVG((s.max_favorable_excursion - t.r_multiple)
152
+ / NULLIF(s.max_favorable_excursion, 0)) * 100)::numeric, 1) AS avg_giveback_pct
153
+ FROM mother_trades t
154
+ JOIN signal_outcomes s ON s.trade_id = t.id
155
+ WHERE t.closed_at >= NOW() - ($1 || ' days')::interval
156
+ AND ($2::text IS NULL OR t.strategy = $2)
157
+ GROUP BY t.strategy
158
+ ORDER BY avg_giveback_pct DESC
159
+ LIMIT $3
160
+ `;
161
+ // Worst individual givebacks
162
+ const worstQuery = `
163
+ SELECT
164
+ t.id, t.strategy, t.symbol, t.direction,
165
+ ROUND(t.r_multiple::numeric, 2) AS realized_r,
166
+ ROUND(s.max_favorable_excursion::numeric, 2) AS mfe,
167
+ ROUND((s.max_favorable_excursion - t.r_multiple)::numeric, 2) AS giveback_r,
168
+ t.exit_reason, t.closed_at
169
+ FROM mother_trades t
170
+ JOIN signal_outcomes s ON s.trade_id = t.id
171
+ WHERE t.closed_at >= NOW() - ($1 || ' days')::interval
172
+ AND ($2::text IS NULL OR t.strategy = $2)
173
+ AND s.max_favorable_excursion > 0
174
+ ORDER BY (s.max_favorable_excursion - t.r_multiple) DESC
175
+ LIMIT $3
176
+ `;
177
+ // Exit reason distribution
178
+ const exitQuery = `
179
+ SELECT
180
+ t.exit_reason,
181
+ COUNT(*)::int AS trades,
182
+ ROUND(AVG(s.max_favorable_excursion - t.r_multiple)::numeric, 2) AS avg_giveback_r
183
+ FROM mother_trades t
184
+ JOIN signal_outcomes s ON s.trade_id = t.id
185
+ WHERE t.closed_at >= NOW() - ($1 || ' days')::interval
186
+ AND ($2::text IS NULL OR t.strategy = $2)
187
+ GROUP BY t.exit_reason
188
+ ORDER BY avg_giveback_r DESC
189
+ `;
190
+ const [strategyResult, worstResult, exitResult] = await Promise.all([
191
+ db.query(strategyQuery, [days, args.strategy || null, limit]),
192
+ db.query(worstQuery, [days, args.strategy || null, limit]),
193
+ db.query(exitQuery, [days, args.strategy || null]),
194
+ ]);
195
+ return jsonResult({
196
+ success: true,
197
+ days,
198
+ by_strategy: strategyResult.rows,
199
+ worst_givebacks: worstResult.rows,
200
+ by_exit_reason: exitResult.rows,
201
+ });
202
+ }
203
+ catch (error) {
204
+ const msg = error instanceof Error ? error.message : String(error);
205
+ return jsonResult({ success: false, error: msg }, true);
206
+ }
207
+ },
208
+ };
209
+ // =============================================================================
210
+ // Tool 3: senken_trade_review (WISH-0004)
211
+ // =============================================================================
212
+ const senkenTradeReview = {
213
+ definition: {
214
+ name: 'senken_trade_review',
215
+ description: 'Review individual trades with counterfactual analysis. Grades A–F based on MFE capture percentage and suggests lessons.',
216
+ annotations: {
217
+ title: 'Trade Review',
218
+ readOnlyHint: true,
219
+ destructiveHint: false,
220
+ openWorldHint: false,
221
+ },
222
+ inputSchema: {
223
+ type: 'object',
224
+ properties: {
225
+ trade_id: {
226
+ type: 'string',
227
+ description: 'Specific trade ID to review',
228
+ },
229
+ last: {
230
+ type: 'number',
231
+ description: 'Review the last N trades (default: 5)',
232
+ },
233
+ },
234
+ required: [],
235
+ },
236
+ },
237
+ handler: async (args) => {
238
+ try {
239
+ const db = getPool();
240
+ let query;
241
+ let params;
242
+ if (args.trade_id) {
243
+ query = `
244
+ SELECT
245
+ t.*, s.max_favorable_excursion AS mfe,
246
+ s.max_adverse_excursion AS mae,
247
+ s.time_to_mfe_minutes,
248
+ s.metadata AS signal_metadata
249
+ FROM mother_trades t
250
+ LEFT JOIN signal_outcomes s ON s.trade_id = t.id
251
+ WHERE t.id = $1
252
+ `;
253
+ params = [args.trade_id];
254
+ }
255
+ else {
256
+ const last = args.last ?? 5;
257
+ query = `
258
+ SELECT
259
+ t.*, s.max_favorable_excursion AS mfe,
260
+ s.max_adverse_excursion AS mae,
261
+ s.time_to_mfe_minutes,
262
+ s.metadata AS signal_metadata
263
+ FROM mother_trades t
264
+ LEFT JOIN signal_outcomes s ON s.trade_id = t.id
265
+ ORDER BY t.closed_at DESC
266
+ LIMIT $1
267
+ `;
268
+ params = [last];
269
+ }
270
+ const result = await db.query(query, params);
271
+ const reviews = result.rows.map((row) => {
272
+ const mfe = row.mfe ?? 0;
273
+ const realized = row.r_multiple ?? 0;
274
+ const capturePct = mfe > 0 ? (realized / mfe) * 100 : realized > 0 ? 100 : 0;
275
+ // Grade based on capture percentage
276
+ let grade;
277
+ if (capturePct >= 80)
278
+ grade = 'A';
279
+ else if (capturePct >= 60)
280
+ grade = 'B';
281
+ else if (capturePct >= 40)
282
+ grade = 'C';
283
+ else if (capturePct >= 20)
284
+ grade = 'D';
285
+ else
286
+ grade = 'F';
287
+ // Counterfactual exits at different thresholds
288
+ const thresholds = [0.25, 0.5, 0.75, 1.0];
289
+ const counterfactuals = thresholds
290
+ .filter((t) => mfe >= t)
291
+ .map((t) => ({
292
+ exit_at_r: t,
293
+ would_have_captured: mfe >= t,
294
+ r_vs_actual: Math.round((t - realized) * 100) / 100,
295
+ }));
296
+ // Lesson suggestion
297
+ let lesson;
298
+ if (capturePct < 20 && mfe > 1) {
299
+ lesson = 'Large MFE with minimal capture — consider tighter trailing stop';
300
+ }
301
+ else if (capturePct < 40) {
302
+ lesson = 'Below-average capture — review exit timing relative to MFE';
303
+ }
304
+ else if (realized < 0 && mfe > 0.5) {
305
+ lesson = 'Winning trade turned loser — add break-even stop after MFE threshold';
306
+ }
307
+ else {
308
+ lesson = 'Acceptable execution';
309
+ }
310
+ return {
311
+ id: row.id,
312
+ strategy: row.strategy,
313
+ symbol: row.symbol,
314
+ direction: row.direction,
315
+ entry_price: row.entry_price,
316
+ exit_price: row.exit_price,
317
+ r_multiple: Math.round((realized) * 100) / 100,
318
+ pnl: row.pnl,
319
+ exit_reason: row.exit_reason,
320
+ mfe: Math.round(mfe * 100) / 100,
321
+ mae: Math.round((row.mae ?? 0) * 100) / 100,
322
+ capture_pct: Math.round(capturePct * 10) / 10,
323
+ grade,
324
+ counterfactuals,
325
+ lesson,
326
+ closed_at: row.closed_at,
327
+ };
328
+ });
329
+ return jsonResult({
330
+ success: true,
331
+ reviews,
332
+ count: reviews.length,
333
+ });
334
+ }
335
+ catch (error) {
336
+ const msg = error instanceof Error ? error.message : String(error);
337
+ return jsonResult({ success: false, error: msg }, true);
338
+ }
339
+ },
340
+ };
341
+ // =============================================================================
342
+ // Tool 4: senken_list_overrides (WISH-0003, read side)
343
+ // =============================================================================
344
+ const senkenListOverrides = {
345
+ definition: {
346
+ name: 'senken_list_overrides',
347
+ description: 'List active parameter overrides for trading strategies. Shows current value, previous value, who applied, and when.',
348
+ annotations: {
349
+ title: 'List Overrides',
350
+ readOnlyHint: true,
351
+ destructiveHint: false,
352
+ openWorldHint: false,
353
+ },
354
+ inputSchema: {
355
+ type: 'object',
356
+ properties: {
357
+ strategy: {
358
+ type: 'string',
359
+ description: 'Filter by strategy name',
360
+ },
361
+ },
362
+ required: [],
363
+ },
364
+ },
365
+ handler: async (args) => {
366
+ try {
367
+ const db = getPool();
368
+ const query = `
369
+ SELECT
370
+ id, strategy, parameter, value, previous_value,
371
+ reason, applied_by, applied_at
372
+ FROM mother_overrides
373
+ WHERE rolled_back_at IS NULL
374
+ AND ($1::text IS NULL OR strategy = $1)
375
+ ORDER BY applied_at DESC
376
+ `;
377
+ const result = await db.query(query, [args.strategy || null]);
378
+ return jsonResult({
379
+ success: true,
380
+ overrides: result.rows,
381
+ count: result.rows.length,
382
+ });
383
+ }
384
+ catch (error) {
385
+ const msg = error instanceof Error ? error.message : String(error);
386
+ return jsonResult({ success: false, error: msg }, true);
387
+ }
388
+ },
389
+ };
390
+ // =============================================================================
391
+ // Tool 5: senken_apply_override (WISH-0003, write side)
392
+ // =============================================================================
393
+ const senkenApplyOverride = {
394
+ definition: {
395
+ name: 'senken_apply_override',
396
+ description: 'Apply a parameter override to a trading strategy. Records the change with changelog (previous value, timestamp, reason). This action is routed through the approval gate.',
397
+ annotations: {
398
+ title: 'Apply Override',
399
+ readOnlyHint: false,
400
+ destructiveHint: false,
401
+ openWorldHint: false,
402
+ },
403
+ inputSchema: {
404
+ type: 'object',
405
+ properties: {
406
+ strategy: {
407
+ type: 'string',
408
+ description: 'Strategy name to override',
409
+ },
410
+ parameter: {
411
+ type: 'string',
412
+ description: 'Parameter name to override',
413
+ },
414
+ value: {
415
+ type: 'string',
416
+ description: 'New parameter value',
417
+ },
418
+ reason: {
419
+ type: 'string',
420
+ description: 'Reason for the override',
421
+ },
422
+ },
423
+ required: ['strategy', 'parameter', 'value', 'reason'],
424
+ },
425
+ },
426
+ handler: async (args) => {
427
+ try {
428
+ const db = getPool();
429
+ // Get current value if one exists
430
+ const currentQuery = `
431
+ SELECT value FROM mother_overrides
432
+ WHERE strategy = $1 AND parameter = $2 AND rolled_back_at IS NULL
433
+ LIMIT 1
434
+ `;
435
+ const currentResult = await db.query(currentQuery, [
436
+ args.strategy,
437
+ args.parameter,
438
+ ]);
439
+ const previousValue = currentResult.rows[0]?.value ?? null;
440
+ // Roll back existing override for this strategy+parameter
441
+ if (previousValue !== null) {
442
+ await db.query(`UPDATE mother_overrides
443
+ SET rolled_back_at = NOW()
444
+ WHERE strategy = $1 AND parameter = $2 AND rolled_back_at IS NULL`, [args.strategy, args.parameter]);
445
+ }
446
+ // Insert new override
447
+ const insertQuery = `
448
+ INSERT INTO mother_overrides
449
+ (strategy, parameter, value, previous_value, reason, applied_by)
450
+ VALUES ($1, $2, $3, $4, $5, 'agent')
451
+ RETURNING id, strategy, parameter, value, previous_value, reason, applied_by, applied_at
452
+ `;
453
+ const result = await db.query(insertQuery, [
454
+ args.strategy,
455
+ args.parameter,
456
+ args.value,
457
+ previousValue,
458
+ args.reason,
459
+ ]);
460
+ return jsonResult({
461
+ success: true,
462
+ override: result.rows[0],
463
+ replaced_previous: previousValue !== null,
464
+ });
465
+ }
466
+ catch (error) {
467
+ const msg = error instanceof Error ? error.message : String(error);
468
+ return jsonResult({ success: false, error: msg }, true);
469
+ }
470
+ },
471
+ };
472
+ // =============================================================================
473
+ // Export
474
+ // =============================================================================
475
+ export const senkenTools = [
476
+ senkenTradeSummary,
477
+ senkenGivebackReport,
478
+ senkenTradeReview,
479
+ senkenListOverrides,
480
+ senkenApplyOverride,
481
+ ];
482
+ //# sourceMappingURL=senken.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"senken.js","sourceRoot":"","sources":["../../src/tools/senken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const sentinelCreateIssueTool: ToolSpec;
3
+ export declare const sentinelCloseIssueTool: ToolSpec;
4
+ export declare const sentinelListRepoIssuesTool: ToolSpec;
5
+ export declare const sentinelLogEpicTool: ToolSpec;
6
+ export declare const sentinelListEpicsTool: ToolSpec;
7
+ export declare const sentinelReadEpicTool: ToolSpec;
8
+ export declare const sentinelListEpicIssuesTool: ToolSpec;
9
+ export declare const sentinelResolveEpicTool: ToolSpec;
10
+ export declare const sentinelScanTool: ToolSpec;
11
+ export declare const sentinelScanDataTool: ToolSpec;
12
+ export declare const sentinelListIssuesTool: ToolSpec;
13
+ export declare const sentinelCreateIssueTool2: ToolSpec;
14
+ export declare const sentinelReadIssueTool: ToolSpec;
15
+ export declare const sentinelUpdateIssueTool: ToolSpec;
16
+ export declare const sentinelCreateTestSpecTool: ToolSpec;
17
+ export declare const sentinelListTestSpecsTool: ToolSpec;
18
+ export declare const sentinelCompileTestsTool: ToolSpec;
19
+ export declare const sentinelAuditPoliciesTool: ToolSpec;
20
+ export declare const sentinelTools: ToolSpec[];
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/sentinel/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiEvC,eAAO,MAAM,uBAAuB,EAAE,QA6DrC,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,QA2DpC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAqCxC,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,QAmFjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,QAmDnC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QAyClC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,QAiCxC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,QAsCrC,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,QA8E9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,QA4ElC,CAAC;AAMF,eAAO,MAAM,sBAAsB,EAAE,QAkEpC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAoEtC,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,QAuCnC,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,QAmErC,CAAC;AAMF,eAAO,MAAM,0BAA0B,EAAE,QAoFxC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,QAiDvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,EAAE,QAwCtC,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,QAsCvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,QAAQ,EAwBnC,CAAC"}