@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,570 @@
1
+ // ============================================================================
2
+ // Vector Domain Logic
3
+ // ============================================================================
4
+ // Core implementation for Vector (AI session tracking and analysis).
5
+ // Manages runs, events, and inference scoring.
6
+ // ============================================================================
7
+ import fs from 'fs/promises';
8
+ import path from 'path';
9
+ import { resolveProjectPaths } from '../projectRegistry.js';
10
+ import { log } from '../config.js';
11
+ // ============================================================================
12
+ // Constants
13
+ // ============================================================================
14
+ const VALID_AGENT_TYPES = ['claude-code', 'cursor', 'replit', 'chatgpt', 'custom'];
15
+ /** Path to global hook events log */
16
+ const GLOBAL_EVENTS_PATH = path.join(process.env.HOME || '~', '.decibel', 'events.jsonl');
17
+ /** How far back to look for hook events (ms) */
18
+ const HOOK_EVENT_LOOKBACK_MS = 5 * 60 * 1000; // 5 minutes
19
+ const VALID_EVENT_TYPES = [
20
+ 'prompt_received', 'plan_proposed', 'assumption_made', 'clarifying_question',
21
+ 'command_ran', 'file_touched', 'test_result', 'backtrack', 'error',
22
+ 'user_correction', 'run_completed',
23
+ 'delegation_sent', 'delegation_received', 'delegation_completed',
24
+ ];
25
+ // Inference scoring constants
26
+ const MISSING_NON_GOALS_POINTS = 15;
27
+ const MISSING_ACCEPTANCE_POINTS = 15;
28
+ const MISSING_CONSTRAINTS_POINTS = 10;
29
+ const MISSING_SCOPE_BOUNDS_POINTS = 10;
30
+ const AMBIGUOUS_VERBS_POINTS = 10;
31
+ const UNDEFINED_NOUN_POINTS = 5;
32
+ const UNGUARDED_RISK_AREA_POINTS = 10;
33
+ const MAX_SCORE = 100;
34
+ // Detection patterns
35
+ const AMBIGUOUS_VERBS = ['refactor', 'clean up', 'cleanup', 'improve', 'optimize', 'fix', 'update', 'enhance'];
36
+ const RISK_AREAS = ['database', 'db', 'auth', 'authentication', 'payment', 'migration', 'security', 'password', 'credential', 'secret'];
37
+ // ============================================================================
38
+ // Helpers
39
+ // ============================================================================
40
+ function generateRunId() {
41
+ const now = new Date();
42
+ return `RUN-${now.toISOString().replace(/[:.]/g, '-')}`;
43
+ }
44
+ function getRunsDir(projectId) {
45
+ const resolved = resolveProjectPaths(projectId);
46
+ return resolved.subPath('runs');
47
+ }
48
+ async function ensureDir(dir) {
49
+ try {
50
+ await fs.mkdir(dir, { recursive: true });
51
+ }
52
+ catch (err) {
53
+ // Ignore if exists
54
+ const error = err;
55
+ if (error.code !== 'EEXIST')
56
+ throw err;
57
+ }
58
+ }
59
+ async function fileExists(filePath) {
60
+ try {
61
+ await fs.access(filePath);
62
+ return true;
63
+ }
64
+ catch {
65
+ return false;
66
+ }
67
+ }
68
+ /**
69
+ * Map hook tool names to Vector event types
70
+ */
71
+ function mapToolToEventType(tool) {
72
+ const toolLower = tool.toLowerCase();
73
+ if (toolLower === 'edit' || toolLower === 'write' || toolLower === 'notebookedit') {
74
+ return 'file_touched';
75
+ }
76
+ if (toolLower === 'bash') {
77
+ return 'command_ran';
78
+ }
79
+ // Default to file_touched for unknown tools
80
+ return 'file_touched';
81
+ }
82
+ /**
83
+ * Import recent hook events from global events.jsonl
84
+ * Filters by project name and recency (last 5 minutes by default)
85
+ */
86
+ async function importHookEvents(projectName, agent, run_id, lookbackMs = HOOK_EVENT_LOOKBACK_MS) {
87
+ const events = [];
88
+ if (!await fileExists(GLOBAL_EVENTS_PATH)) {
89
+ log(`Vector: No global events file at ${GLOBAL_EVENTS_PATH}`);
90
+ return events;
91
+ }
92
+ try {
93
+ const content = await fs.readFile(GLOBAL_EVENTS_PATH, 'utf-8');
94
+ const lines = content.trim().split('\n').filter(Boolean);
95
+ const cutoffTime = Date.now() - lookbackMs;
96
+ for (const line of lines) {
97
+ try {
98
+ const hookEvent = JSON.parse(line);
99
+ // Filter by project
100
+ if (hookEvent.project !== projectName) {
101
+ continue;
102
+ }
103
+ // Filter by recency
104
+ const eventTime = new Date(hookEvent.ts).getTime();
105
+ if (eventTime < cutoffTime) {
106
+ continue;
107
+ }
108
+ // Convert to VectorEvent
109
+ const vectorEvent = {
110
+ ts: hookEvent.ts,
111
+ run_id,
112
+ agent,
113
+ type: mapToolToEventType(hookEvent.tool),
114
+ payload: {
115
+ tool: hookEvent.tool,
116
+ cwd: hookEvent.cwd,
117
+ source: 'hook_import',
118
+ },
119
+ };
120
+ events.push(vectorEvent);
121
+ }
122
+ catch {
123
+ // Skip malformed lines
124
+ }
125
+ }
126
+ log(`Vector: Imported ${events.length} hook events for project ${projectName}`);
127
+ }
128
+ catch (err) {
129
+ log(`Vector: Error reading global events: ${err}`);
130
+ }
131
+ return events;
132
+ }
133
+ // ============================================================================
134
+ // Run Management
135
+ // ============================================================================
136
+ /**
137
+ * Create a new run for an agent session
138
+ */
139
+ export async function createRun(input) {
140
+ const projectId = input.projectId || input.project_id;
141
+ const resolved = resolveProjectPaths(projectId);
142
+ const runsDir = resolved.subPath('runs');
143
+ // Get project name for hook event matching
144
+ const projectName = path.basename(resolved.projectPath);
145
+ // Validate agent type
146
+ if (!VALID_AGENT_TYPES.includes(input.agent.type)) {
147
+ throw new Error(`Invalid agent type: ${input.agent.type}. Must be one of: ${VALID_AGENT_TYPES.join(', ')}`);
148
+ }
149
+ const run_id = generateRunId();
150
+ const runDir = path.join(runsDir, run_id);
151
+ await ensureDir(runDir);
152
+ // Create prompt.json
153
+ const promptSpec = {
154
+ run_id,
155
+ agent: input.agent,
156
+ raw_prompt: input.raw_prompt,
157
+ intent: input.intent,
158
+ delegated_by: input.delegated_by,
159
+ created_at: new Date().toISOString(),
160
+ };
161
+ await fs.writeFile(path.join(runDir, 'prompt.json'), JSON.stringify(promptSpec, null, 2));
162
+ // Initialize events.jsonl (empty)
163
+ await fs.writeFile(path.join(runDir, 'events.jsonl'), '');
164
+ // Log initial prompt_received event
165
+ const initialEvent = {
166
+ ts: new Date().toISOString(),
167
+ run_id,
168
+ agent: input.agent,
169
+ type: 'prompt_received',
170
+ payload: { prompt: input.raw_prompt },
171
+ };
172
+ await fs.appendFile(path.join(runDir, 'events.jsonl'), JSON.stringify(initialEvent) + '\n');
173
+ // Log delegation_received if this run was delegated
174
+ if (input.delegated_by) {
175
+ const delegationEvent = {
176
+ ts: new Date().toISOString(),
177
+ run_id,
178
+ agent: input.agent,
179
+ type: 'delegation_received',
180
+ payload: {
181
+ source_agent: input.delegated_by.agent_id,
182
+ source_run_id: input.delegated_by.run_id,
183
+ },
184
+ };
185
+ await fs.appendFile(path.join(runDir, 'events.jsonl'), JSON.stringify(delegationEvent) + '\n');
186
+ }
187
+ // Import recent hook events from global events.jsonl (Option D reconciliation)
188
+ const hookEvents = await importHookEvents(projectName, input.agent, run_id);
189
+ if (hookEvents.length > 0) {
190
+ const eventsPath = path.join(runDir, 'events.jsonl');
191
+ for (const event of hookEvents) {
192
+ await fs.appendFile(eventsPath, JSON.stringify(event) + '\n');
193
+ }
194
+ }
195
+ log(`Vector: Created run ${run_id} (imported ${hookEvents.length} hook events)`);
196
+ return {
197
+ run_id,
198
+ path: runDir,
199
+ imported_events: hookEvents.length > 0 ? hookEvents.length : undefined,
200
+ };
201
+ }
202
+ /**
203
+ * Log an event to an existing run
204
+ */
205
+ export async function logEvent(input) {
206
+ const projectId = input.projectId || input.project_id;
207
+ const runsDir = getRunsDir(projectId);
208
+ const runDir = path.join(runsDir, input.run_id);
209
+ // Validate run exists
210
+ if (!await fileExists(runDir)) {
211
+ throw new Error(`Run not found: ${input.run_id}`);
212
+ }
213
+ // Validate event type
214
+ if (!VALID_EVENT_TYPES.includes(input.type)) {
215
+ throw new Error(`Invalid event type: ${input.type}. Must be one of: ${VALID_EVENT_TYPES.join(', ')}`);
216
+ }
217
+ // Read prompt.json to get agent info
218
+ const promptPath = path.join(runDir, 'prompt.json');
219
+ const promptContent = await fs.readFile(promptPath, 'utf-8');
220
+ const promptSpec = JSON.parse(promptContent);
221
+ // Create event
222
+ const event = {
223
+ ts: new Date().toISOString(),
224
+ run_id: input.run_id,
225
+ agent: promptSpec.agent,
226
+ type: input.type,
227
+ payload: input.payload,
228
+ };
229
+ // Append to events.jsonl
230
+ const eventsPath = path.join(runDir, 'events.jsonl');
231
+ await fs.appendFile(eventsPath, JSON.stringify(event) + '\n');
232
+ // Count events
233
+ const eventsContent = await fs.readFile(eventsPath, 'utf-8');
234
+ const eventCount = eventsContent.trim().split('\n').filter(Boolean).length;
235
+ log(`Vector: Logged ${input.type} event to ${input.run_id}`);
236
+ return { success: true, event_count: eventCount };
237
+ }
238
+ /**
239
+ * Complete a run with summary
240
+ */
241
+ export async function completeRun(input) {
242
+ const projectId = input.projectId || input.project_id;
243
+ const runsDir = getRunsDir(projectId);
244
+ const runDir = path.join(runsDir, input.run_id);
245
+ // Validate run exists
246
+ if (!await fileExists(runDir)) {
247
+ throw new Error(`Run not found: ${input.run_id}`);
248
+ }
249
+ // Read prompt.json to get agent info
250
+ const promptPath = path.join(runDir, 'prompt.json');
251
+ const promptContent = await fs.readFile(promptPath, 'utf-8');
252
+ const promptSpec = JSON.parse(promptContent);
253
+ // Log run_completed event
254
+ const completedEvent = {
255
+ ts: new Date().toISOString(),
256
+ run_id: input.run_id,
257
+ agent: promptSpec.agent,
258
+ type: 'run_completed',
259
+ payload: {
260
+ success: input.success,
261
+ summary: input.summary,
262
+ },
263
+ };
264
+ const eventsPath = path.join(runDir, 'events.jsonl');
265
+ await fs.appendFile(eventsPath, JSON.stringify(completedEvent) + '\n');
266
+ // Create summary.md
267
+ const summaryContent = `# Run Summary: ${input.run_id}
268
+
269
+ **Agent**: ${promptSpec.agent.type}${promptSpec.agent.version ? ` v${promptSpec.agent.version}` : ''}
270
+ **Started**: ${promptSpec.created_at}
271
+ **Completed**: ${completedEvent.ts}
272
+ **Status**: ${input.success ? 'Success' : 'Failed'}
273
+
274
+ ## Original Prompt
275
+
276
+ \`\`\`
277
+ ${promptSpec.raw_prompt}
278
+ \`\`\`
279
+
280
+ ## Summary
281
+
282
+ ${input.summary || 'No summary provided.'}
283
+ `;
284
+ await fs.writeFile(path.join(runDir, 'summary.md'), summaryContent);
285
+ log(`Vector: Completed run ${input.run_id}`);
286
+ return { success: true, run_id: input.run_id };
287
+ }
288
+ /**
289
+ * List runs for a project
290
+ */
291
+ export async function listRuns(input) {
292
+ const projectId = input.projectId || input.project_id;
293
+ const runsDir = getRunsDir(projectId);
294
+ // Ensure runs dir exists
295
+ await ensureDir(runsDir);
296
+ const entries = await fs.readdir(runsDir, { withFileTypes: true });
297
+ const runDirs = entries
298
+ .filter(e => e.isDirectory() && e.name.startsWith('RUN-'))
299
+ .map(e => e.name);
300
+ // Sort by run ID (which includes timestamp)
301
+ runDirs.sort().reverse();
302
+ const limit = input.limit || 20;
303
+ const runs = [];
304
+ for (const run_id of runDirs.slice(0, limit)) {
305
+ try {
306
+ const runDir = path.join(runsDir, run_id);
307
+ const promptPath = path.join(runDir, 'prompt.json');
308
+ const eventsPath = path.join(runDir, 'events.jsonl');
309
+ if (!await fileExists(promptPath))
310
+ continue;
311
+ const promptContent = await fs.readFile(promptPath, 'utf-8');
312
+ const promptSpec = JSON.parse(promptContent);
313
+ // Filter by agent type if specified
314
+ if (input.agent_type && promptSpec.agent.type !== input.agent_type) {
315
+ continue;
316
+ }
317
+ // Count events and check for completion
318
+ let eventCount = 0;
319
+ let completed_at;
320
+ let success;
321
+ let summary;
322
+ if (await fileExists(eventsPath)) {
323
+ const eventsContent = await fs.readFile(eventsPath, 'utf-8');
324
+ const lines = eventsContent.trim().split('\n').filter(Boolean);
325
+ eventCount = lines.length;
326
+ // Check last event for completion
327
+ if (lines.length > 0) {
328
+ const lastEvent = JSON.parse(lines[lines.length - 1]);
329
+ if (lastEvent.type === 'run_completed') {
330
+ completed_at = lastEvent.ts;
331
+ success = lastEvent.payload?.success;
332
+ summary = lastEvent.payload?.summary;
333
+ }
334
+ }
335
+ }
336
+ runs.push({
337
+ run_id,
338
+ agent: promptSpec.agent,
339
+ created_at: promptSpec.created_at,
340
+ completed_at,
341
+ event_count: eventCount,
342
+ success,
343
+ summary,
344
+ });
345
+ }
346
+ catch (err) {
347
+ log(`Vector: Error reading run ${run_id}: ${err}`);
348
+ }
349
+ }
350
+ return { runs };
351
+ }
352
+ /**
353
+ * Get details of a specific run
354
+ */
355
+ export async function getRun(input) {
356
+ const projectId = input.projectId || input.project_id;
357
+ const runsDir = getRunsDir(projectId);
358
+ const runDir = path.join(runsDir, input.run_id);
359
+ // Validate run exists
360
+ if (!await fileExists(runDir)) {
361
+ throw new Error(`Run not found: ${input.run_id}`);
362
+ }
363
+ // Read prompt
364
+ const promptPath = path.join(runDir, 'prompt.json');
365
+ const promptContent = await fs.readFile(promptPath, 'utf-8');
366
+ const prompt = JSON.parse(promptContent);
367
+ // Read events
368
+ const eventsPath = path.join(runDir, 'events.jsonl');
369
+ let events = [];
370
+ let completed = false;
371
+ if (await fileExists(eventsPath)) {
372
+ const eventsContent = await fs.readFile(eventsPath, 'utf-8');
373
+ const lines = eventsContent.trim().split('\n').filter(Boolean);
374
+ events = lines.map(line => JSON.parse(line));
375
+ // Check if completed
376
+ if (events.length > 0 && events[events.length - 1].type === 'run_completed') {
377
+ completed = true;
378
+ }
379
+ }
380
+ const result = {
381
+ prompt,
382
+ event_count: events.length,
383
+ completed,
384
+ };
385
+ if (input.include_events) {
386
+ result.events = events;
387
+ }
388
+ return result;
389
+ }
390
+ /**
391
+ * Walk delegation chain from a run_id and return the full tree.
392
+ * Goes up to the root parent, then down through all children.
393
+ */
394
+ export async function vectorTrace(input) {
395
+ const projectId = input.projectId || input.project_id;
396
+ const runsDir = getRunsDir(projectId);
397
+ const maxDepth = input.depth || 10;
398
+ // Helper to read a run's prompt.json
399
+ async function readPrompt(runId) {
400
+ const promptPath = path.join(runsDir, runId, 'prompt.json');
401
+ if (!await fileExists(promptPath))
402
+ return null;
403
+ const content = await fs.readFile(promptPath, 'utf-8');
404
+ return JSON.parse(content);
405
+ }
406
+ // Helper to check completion status
407
+ async function isCompleted(runId) {
408
+ const eventsPath = path.join(runsDir, runId, 'events.jsonl');
409
+ if (!await fileExists(eventsPath))
410
+ return { completed: false };
411
+ const content = await fs.readFile(eventsPath, 'utf-8');
412
+ const lines = content.trim().split('\n').filter(Boolean);
413
+ if (lines.length === 0)
414
+ return { completed: false };
415
+ const last = JSON.parse(lines[lines.length - 1]);
416
+ if (last.type === 'run_completed') {
417
+ return { completed: true, success: last.payload?.success };
418
+ }
419
+ return { completed: false };
420
+ }
421
+ // Walk up to find root
422
+ let rootRunId = input.run_id;
423
+ let rootPrompt = await readPrompt(rootRunId);
424
+ if (!rootPrompt)
425
+ throw new Error(`Run not found: ${input.run_id}`);
426
+ let upSteps = 0;
427
+ while (rootPrompt.delegated_by && upSteps < maxDepth) {
428
+ const parentPrompt = await readPrompt(rootPrompt.delegated_by.run_id);
429
+ if (!parentPrompt)
430
+ break; // parent run not found, stop here
431
+ rootRunId = rootPrompt.delegated_by.run_id;
432
+ rootPrompt = parentPrompt;
433
+ upSteps++;
434
+ }
435
+ // Build tree downward from root
436
+ async function buildNode(runId, currentDepth) {
437
+ const prompt = await readPrompt(runId);
438
+ const status = await isCompleted(runId);
439
+ const node = {
440
+ run_id: runId,
441
+ agent: prompt?.agent || { type: 'custom' },
442
+ created_at: prompt?.created_at || '',
443
+ completed: status.completed,
444
+ success: status.success,
445
+ parent: prompt?.delegated_by,
446
+ children: [],
447
+ };
448
+ if (currentDepth < maxDepth && prompt?.delegated_to) {
449
+ for (const child of prompt.delegated_to) {
450
+ const childNode = await buildNode(child.run_id, currentDepth + 1);
451
+ node.children.push(childNode);
452
+ }
453
+ }
454
+ return node;
455
+ }
456
+ const root = await buildNode(rootRunId, 0);
457
+ // Calculate actual depth
458
+ function treeDepth(node) {
459
+ if (node.children.length === 0)
460
+ return 0;
461
+ return 1 + Math.max(...node.children.map(treeDepth));
462
+ }
463
+ return { root, depth: treeDepth(root) };
464
+ }
465
+ // ============================================================================
466
+ // Inference Scoring
467
+ // ============================================================================
468
+ /**
469
+ * Calculate inference load score for a prompt
470
+ */
471
+ export function scorePrompt(input) {
472
+ const prompt = input.prompt.toLowerCase();
473
+ const breakdown = {};
474
+ let totalScore = 0;
475
+ const suggestions = [];
476
+ // Check for non-goals
477
+ if (!prompt.includes('non-goal') && !prompt.includes('do not') && !prompt.includes("don't") && !prompt.includes('avoid')) {
478
+ breakdown.nonGoals = MISSING_NON_GOALS_POINTS;
479
+ totalScore += MISSING_NON_GOALS_POINTS;
480
+ suggestions.push({
481
+ type: 'add_non_goals',
482
+ message: 'Add explicit non-goals to prevent scope creep (e.g., "Do NOT refactor unrelated code")',
483
+ priority: 'high',
484
+ });
485
+ }
486
+ // Check for acceptance criteria
487
+ if (!prompt.includes('accept') && !prompt.includes('success') && !prompt.includes('done when') && !prompt.includes('complete when')) {
488
+ breakdown.acceptance = MISSING_ACCEPTANCE_POINTS;
489
+ totalScore += MISSING_ACCEPTANCE_POINTS;
490
+ suggestions.push({
491
+ type: 'add_acceptance',
492
+ message: 'Add acceptance criteria (e.g., "Done when tests pass and API returns 200")',
493
+ priority: 'high',
494
+ });
495
+ }
496
+ // Check for constraints
497
+ if (!prompt.includes('constraint') && !prompt.includes('must') && !prompt.includes('require') && !prompt.includes('only')) {
498
+ breakdown.constraints = MISSING_CONSTRAINTS_POINTS;
499
+ totalScore += MISSING_CONSTRAINTS_POINTS;
500
+ suggestions.push({
501
+ type: 'add_constraints',
502
+ message: 'Add constraints (e.g., "Must maintain backward compatibility")',
503
+ priority: 'medium',
504
+ });
505
+ }
506
+ // Check for scope bounds (file/module hints)
507
+ const hasFilePath = /\.(ts|js|py|go|rs|java|tsx|jsx|vue|svelte|rb|php|swift|kt)/.test(prompt);
508
+ const hasModuleHint = /src\/|lib\/|components\/|services\/|utils\//.test(prompt);
509
+ if (!hasFilePath && !hasModuleHint) {
510
+ breakdown.scopeBounds = MISSING_SCOPE_BOUNDS_POINTS;
511
+ totalScore += MISSING_SCOPE_BOUNDS_POINTS;
512
+ suggestions.push({
513
+ type: 'add_scope',
514
+ message: 'Add scope bounds (e.g., "Only modify files in src/services/")',
515
+ priority: 'medium',
516
+ });
517
+ }
518
+ // Check for ambiguous verbs
519
+ const foundAmbiguous = AMBIGUOUS_VERBS.filter(verb => {
520
+ const regex = new RegExp(`\\b${verb}\\b`, 'i');
521
+ return regex.test(prompt);
522
+ });
523
+ if (foundAmbiguous.length > 0) {
524
+ breakdown.ambiguousVerbs = AMBIGUOUS_VERBS_POINTS;
525
+ totalScore += AMBIGUOUS_VERBS_POINTS;
526
+ suggestions.push({
527
+ type: 'clarify_verbs',
528
+ message: `Clarify ambiguous verbs: "${foundAmbiguous.join('", "')}". Be specific about what changes to make.`,
529
+ priority: 'medium',
530
+ });
531
+ }
532
+ // Check for unguarded risk areas
533
+ const foundRiskAreas = RISK_AREAS.filter(area => {
534
+ const regex = new RegExp(`\\b${area}\\b`, 'i');
535
+ return regex.test(prompt);
536
+ });
537
+ if (foundRiskAreas.length > 0 && !prompt.includes('constraint') && !prompt.includes('do not') && !prompt.includes("don't")) {
538
+ breakdown.unguardedRiskAreas = UNGUARDED_RISK_AREA_POINTS;
539
+ totalScore += UNGUARDED_RISK_AREA_POINTS;
540
+ suggestions.push({
541
+ type: 'guard_risk',
542
+ message: `Add guardrails for risk areas: "${foundRiskAreas.join('", "')}". Specify what changes are allowed.`,
543
+ priority: 'high',
544
+ });
545
+ }
546
+ // Cap score
547
+ const cappedScore = Math.min(totalScore, MAX_SCORE);
548
+ // Determine risk level
549
+ let risk_level;
550
+ if (cappedScore <= 25)
551
+ risk_level = 'low';
552
+ else if (cappedScore <= 50)
553
+ risk_level = 'medium';
554
+ else if (cappedScore <= 75)
555
+ risk_level = 'high';
556
+ else
557
+ risk_level = 'critical';
558
+ // Sort suggestions by priority
559
+ suggestions.sort((a, b) => {
560
+ const order = { high: 0, medium: 1, low: 2 };
561
+ return order[a.priority] - order[b.priority];
562
+ });
563
+ return {
564
+ score: cappedScore,
565
+ breakdown,
566
+ suggestions,
567
+ risk_level,
568
+ };
569
+ }
570
+ //# sourceMappingURL=vector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector.js","sourceRoot":"","sources":["../../src/tools/vector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { ToolSpec } from '../types.js';
2
+ export declare const velocitySnapshotTool: ToolSpec;
3
+ export declare const velocityListTool: ToolSpec;
4
+ export declare const velocityTrendsTool: ToolSpec;
5
+ export declare const velocityContributorTool: ToolSpec;
6
+ export declare const velocityInstallHookTool: ToolSpec;
7
+ export declare const velocityUninstallHookTool: ToolSpec;
8
+ export declare const velocityTools: ToolSpec[];
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/velocity/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AA8BvC,eAAO,MAAM,oBAAoB,EAAE,QA0ClC,CAAC;AAMF,eAAO,MAAM,gBAAgB,EAAE,QAwC9B,CAAC;AAMF,eAAO,MAAM,kBAAkB,EAAE,QA+ChC,CAAC;AAMF,eAAO,MAAM,uBAAuB,EAAE,QA8CrC,CAAC;AAQF,eAAO,MAAM,uBAAuB,EAAE,QAoDrC,CAAC;AAMF,eAAO,MAAM,yBAAyB,EAAE,QAoCvC,CAAC;AAMF,eAAO,MAAM,aAAa,EAAE,QAAQ,EAOnC,CAAC"}