@descryy/mcp 0.11.5 → 0.11.7

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 (445) hide show
  1. package/dist/action-handshake.d.ts +38 -0
  2. package/dist/action-handshake.d.ts.map +1 -0
  3. package/dist/action-handshake.js +127 -0
  4. package/dist/action-handshake.js.map +1 -0
  5. package/dist/bin/descry-mcp.d.ts +7 -0
  6. package/dist/bin/descry-mcp.d.ts.map +1 -0
  7. package/dist/bin/descry-mcp.js +73 -0
  8. package/dist/bin/descry-mcp.js.map +1 -0
  9. package/dist/browser/auth.d.ts +84 -0
  10. package/dist/browser/auth.d.ts.map +1 -0
  11. package/dist/browser/auth.js +233 -0
  12. package/dist/browser/auth.js.map +1 -0
  13. package/dist/browser/capability-probe.d.ts +109 -0
  14. package/dist/browser/capability-probe.d.ts.map +1 -0
  15. package/dist/browser/capability-probe.js +201 -0
  16. package/dist/browser/capability-probe.js.map +1 -0
  17. package/dist/browser/driver.d.ts +591 -0
  18. package/dist/browser/driver.d.ts.map +1 -0
  19. package/dist/browser/driver.js +116 -0
  20. package/dist/browser/driver.js.map +1 -0
  21. package/dist/browser/evidence.d.ts +28 -0
  22. package/dist/browser/evidence.d.ts.map +1 -0
  23. package/dist/browser/evidence.js +82 -0
  24. package/dist/browser/evidence.js.map +1 -0
  25. package/dist/browser/fake-driver.d.ts +116 -0
  26. package/dist/browser/fake-driver.d.ts.map +1 -0
  27. package/dist/browser/fake-driver.js +416 -0
  28. package/dist/browser/fake-driver.js.map +1 -0
  29. package/dist/browser/fault-attribution.d.ts +178 -0
  30. package/dist/browser/fault-attribution.d.ts.map +1 -0
  31. package/dist/browser/fault-attribution.js +266 -0
  32. package/dist/browser/fault-attribution.js.map +1 -0
  33. package/dist/browser/graph-write.d.ts +45 -0
  34. package/dist/browser/graph-write.d.ts.map +1 -0
  35. package/dist/browser/graph-write.js +103 -0
  36. package/dist/browser/graph-write.js.map +1 -0
  37. package/dist/browser/identity-graph-write.d.ts +55 -0
  38. package/dist/browser/identity-graph-write.d.ts.map +1 -0
  39. package/dist/browser/identity-graph-write.js +45 -0
  40. package/dist/browser/identity-graph-write.js.map +1 -0
  41. package/dist/browser/page-probe.d.ts +81 -0
  42. package/dist/browser/page-probe.d.ts.map +1 -0
  43. package/dist/browser/page-probe.js +202 -0
  44. package/dist/browser/page-probe.js.map +1 -0
  45. package/dist/browser/playwright-driver.d.ts +115 -0
  46. package/dist/browser/playwright-driver.d.ts.map +1 -0
  47. package/dist/browser/playwright-driver.js +1545 -0
  48. package/dist/browser/playwright-driver.js.map +1 -0
  49. package/dist/browser/provider.d.ts +26 -0
  50. package/dist/browser/provider.d.ts.map +1 -0
  51. package/dist/browser/provider.js +14 -0
  52. package/dist/browser/provider.js.map +1 -0
  53. package/dist/browser/reach-recording-session.d.ts +44 -0
  54. package/dist/browser/reach-recording-session.d.ts.map +1 -0
  55. package/dist/browser/reach-recording-session.js +151 -0
  56. package/dist/browser/reach-recording-session.js.map +1 -0
  57. package/dist/browser/reachability.d.ts +168 -0
  58. package/dist/browser/reachability.d.ts.map +1 -0
  59. package/dist/browser/reachability.js +294 -0
  60. package/dist/browser/reachability.js.map +1 -0
  61. package/dist/browser/registry.d.ts +126 -0
  62. package/dist/browser/registry.d.ts.map +1 -0
  63. package/dist/browser/registry.js +177 -0
  64. package/dist/browser/registry.js.map +1 -0
  65. package/dist/browser/scenario-provenance.d.ts +23 -0
  66. package/dist/browser/scenario-provenance.d.ts.map +1 -0
  67. package/dist/browser/scenario-provenance.js +73 -0
  68. package/dist/browser/scenario-provenance.js.map +1 -0
  69. package/dist/browser/scenario-resolve.d.ts +28 -0
  70. package/dist/browser/scenario-resolve.d.ts.map +1 -0
  71. package/dist/browser/scenario-resolve.js +96 -0
  72. package/dist/browser/scenario-resolve.js.map +1 -0
  73. package/dist/browser/scenario-runner.d.ts +72 -0
  74. package/dist/browser/scenario-runner.d.ts.map +1 -0
  75. package/dist/browser/scenario-runner.js +353 -0
  76. package/dist/browser/scenario-runner.js.map +1 -0
  77. package/dist/browser/stack-parser.d.ts +19 -0
  78. package/dist/browser/stack-parser.d.ts.map +1 -0
  79. package/dist/browser/stack-parser.js +85 -0
  80. package/dist/browser/stack-parser.js.map +1 -0
  81. package/dist/browser/tool-support.d.ts +71 -0
  82. package/dist/browser/tool-support.d.ts.map +1 -0
  83. package/dist/browser/tool-support.js +216 -0
  84. package/dist/browser/tool-support.js.map +1 -0
  85. package/dist/browser/url-scheme.d.ts +14 -0
  86. package/dist/browser/url-scheme.d.ts.map +1 -0
  87. package/dist/browser/url-scheme.js +38 -0
  88. package/dist/browser/url-scheme.js.map +1 -0
  89. package/dist/browser/wait-target.d.ts +37 -0
  90. package/dist/browser/wait-target.d.ts.map +1 -0
  91. package/dist/browser/wait-target.js +54 -0
  92. package/dist/browser/wait-target.js.map +1 -0
  93. package/dist/cancellation.d.ts +20 -0
  94. package/dist/cancellation.d.ts.map +1 -0
  95. package/dist/cancellation.js +41 -0
  96. package/dist/cancellation.js.map +1 -0
  97. package/dist/capped.d.ts +39 -0
  98. package/dist/capped.d.ts.map +1 -0
  99. package/dist/capped.js +43 -0
  100. package/dist/capped.js.map +1 -0
  101. package/dist/credential-store.d.ts +22 -0
  102. package/dist/credential-store.d.ts.map +1 -0
  103. package/dist/credential-store.js +33 -0
  104. package/dist/credential-store.js.map +1 -0
  105. package/dist/disclosure-ledger.d.ts +14 -0
  106. package/dist/disclosure-ledger.d.ts.map +1 -0
  107. package/dist/disclosure-ledger.js +18 -0
  108. package/dist/disclosure-ledger.js.map +1 -0
  109. package/dist/evidence/observed-route-evidence.d.ts +25 -0
  110. package/dist/evidence/observed-route-evidence.d.ts.map +1 -0
  111. package/dist/evidence/observed-route-evidence.js +76 -0
  112. package/dist/evidence/observed-route-evidence.js.map +1 -0
  113. package/dist/heap.d.ts +61 -0
  114. package/dist/heap.d.ts.map +1 -0
  115. package/dist/heap.js +82 -0
  116. package/dist/heap.js.map +1 -0
  117. package/dist/heartbeat.d.ts +46 -0
  118. package/dist/heartbeat.d.ts.map +1 -0
  119. package/dist/heartbeat.js +66 -0
  120. package/dist/heartbeat.js.map +1 -0
  121. package/dist/index.d.ts +32 -0
  122. package/dist/index.d.ts.map +1 -0
  123. package/dist/index.js +19 -0
  124. package/dist/index.js.map +1 -0
  125. package/dist/module-trust.d.ts +37 -0
  126. package/dist/module-trust.d.ts.map +1 -0
  127. package/dist/module-trust.js +77 -0
  128. package/dist/module-trust.js.map +1 -0
  129. package/dist/path-confinement.d.ts +31 -0
  130. package/dist/path-confinement.d.ts.map +1 -0
  131. package/dist/path-confinement.js +44 -0
  132. package/dist/path-confinement.js.map +1 -0
  133. package/dist/planner/predict-then-propose.d.ts +134 -0
  134. package/dist/planner/predict-then-propose.d.ts.map +1 -0
  135. package/dist/planner/predict-then-propose.js +138 -0
  136. package/dist/planner/predict-then-propose.js.map +1 -0
  137. package/dist/planner/propose-journey.d.ts +75 -0
  138. package/dist/planner/propose-journey.d.ts.map +1 -0
  139. package/dist/planner/propose-journey.js +96 -0
  140. package/dist/planner/propose-journey.js.map +1 -0
  141. package/dist/protocol.d.ts +57 -0
  142. package/dist/protocol.d.ts.map +1 -0
  143. package/dist/protocol.js +90 -0
  144. package/dist/protocol.js.map +1 -0
  145. package/dist/ready-checks.d.ts +12 -0
  146. package/dist/ready-checks.d.ts.map +1 -0
  147. package/dist/ready-checks.js +43 -0
  148. package/dist/ready-checks.js.map +1 -0
  149. package/dist/registry.d.ts +103 -0
  150. package/dist/registry.d.ts.map +1 -0
  151. package/dist/registry.js +327 -0
  152. package/dist/registry.js.map +1 -0
  153. package/dist/render.d.ts +623 -0
  154. package/dist/render.d.ts.map +1 -0
  155. package/dist/render.js +968 -0
  156. package/dist/render.js.map +1 -0
  157. package/dist/runtime-registry.d.ts +22 -0
  158. package/dist/runtime-registry.d.ts.map +1 -0
  159. package/dist/runtime-registry.js +142 -0
  160. package/dist/runtime-registry.js.map +1 -0
  161. package/dist/sandbox-defaults.d.ts +41 -0
  162. package/dist/sandbox-defaults.d.ts.map +1 -0
  163. package/dist/sandbox-defaults.js +14 -0
  164. package/dist/sandbox-defaults.js.map +1 -0
  165. package/dist/scenarios/browser-run-plan-projection.d.ts +161 -0
  166. package/dist/scenarios/browser-run-plan-projection.d.ts.map +1 -0
  167. package/dist/scenarios/browser-run-plan-projection.js +264 -0
  168. package/dist/scenarios/browser-run-plan-projection.js.map +1 -0
  169. package/dist/scenarios/credential-ref.d.ts +102 -0
  170. package/dist/scenarios/credential-ref.d.ts.map +1 -0
  171. package/dist/scenarios/credential-ref.js +148 -0
  172. package/dist/scenarios/credential-ref.js.map +1 -0
  173. package/dist/scenarios/index.d.ts +7 -0
  174. package/dist/scenarios/index.d.ts.map +1 -0
  175. package/dist/scenarios/index.js +7 -0
  176. package/dist/scenarios/index.js.map +1 -0
  177. package/dist/scenarios/parse.d.ts +18 -0
  178. package/dist/scenarios/parse.d.ts.map +1 -0
  179. package/dist/scenarios/parse.js +212 -0
  180. package/dist/scenarios/parse.js.map +1 -0
  181. package/dist/scenarios/scenario.d.ts +93 -0
  182. package/dist/scenarios/scenario.d.ts.map +1 -0
  183. package/dist/scenarios/scenario.js +27 -0
  184. package/dist/scenarios/scenario.js.map +1 -0
  185. package/dist/scenarios/secret-ref.d.ts +86 -0
  186. package/dist/scenarios/secret-ref.d.ts.map +1 -0
  187. package/dist/scenarios/secret-ref.js +125 -0
  188. package/dist/scenarios/secret-ref.js.map +1 -0
  189. package/dist/scenarios/storage.d.ts +21 -0
  190. package/dist/scenarios/storage.d.ts.map +1 -0
  191. package/dist/scenarios/storage.js +103 -0
  192. package/dist/scenarios/storage.js.map +1 -0
  193. package/dist/server.d.ts +61 -0
  194. package/dist/server.d.ts.map +1 -0
  195. package/dist/server.js +642 -0
  196. package/dist/server.js.map +1 -0
  197. package/dist/session.d.ts +356 -0
  198. package/dist/session.d.ts.map +1 -0
  199. package/dist/session.js +779 -0
  200. package/dist/session.js.map +1 -0
  201. package/dist/tools/alias-kit.d.ts +29 -0
  202. package/dist/tools/alias-kit.d.ts.map +1 -0
  203. package/dist/tools/alias-kit.js +21 -0
  204. package/dist/tools/alias-kit.js.map +1 -0
  205. package/dist/tools/aliases.d.ts +42 -0
  206. package/dist/tools/aliases.d.ts.map +1 -0
  207. package/dist/tools/aliases.js +52 -0
  208. package/dist/tools/aliases.js.map +1 -0
  209. package/dist/tools/analyze-workspace.d.ts +52 -0
  210. package/dist/tools/analyze-workspace.d.ts.map +1 -0
  211. package/dist/tools/analyze-workspace.js +207 -0
  212. package/dist/tools/analyze-workspace.js.map +1 -0
  213. package/dist/tools/analyze.d.ts +163 -0
  214. package/dist/tools/analyze.d.ts.map +1 -0
  215. package/dist/tools/analyze.js +724 -0
  216. package/dist/tools/analyze.js.map +1 -0
  217. package/dist/tools/browser-click.d.ts +18 -0
  218. package/dist/tools/browser-click.d.ts.map +1 -0
  219. package/dist/tools/browser-click.js +110 -0
  220. package/dist/tools/browser-click.js.map +1 -0
  221. package/dist/tools/browser-close-session.d.ts +39 -0
  222. package/dist/tools/browser-close-session.d.ts.map +1 -0
  223. package/dist/tools/browser-close-session.js +120 -0
  224. package/dist/tools/browser-close-session.js.map +1 -0
  225. package/dist/tools/browser-fill.d.ts +18 -0
  226. package/dist/tools/browser-fill.d.ts.map +1 -0
  227. package/dist/tools/browser-fill.js +117 -0
  228. package/dist/tools/browser-fill.js.map +1 -0
  229. package/dist/tools/browser-navigate.d.ts +15 -0
  230. package/dist/tools/browser-navigate.d.ts.map +1 -0
  231. package/dist/tools/browser-navigate.js +106 -0
  232. package/dist/tools/browser-navigate.js.map +1 -0
  233. package/dist/tools/browser-read.d.ts +33 -0
  234. package/dist/tools/browser-read.d.ts.map +1 -0
  235. package/dist/tools/browser-read.js +105 -0
  236. package/dist/tools/browser-read.js.map +1 -0
  237. package/dist/tools/browser-run-scenario.d.ts +28 -0
  238. package/dist/tools/browser-run-scenario.d.ts.map +1 -0
  239. package/dist/tools/browser-run-scenario.js +238 -0
  240. package/dist/tools/browser-run-scenario.js.map +1 -0
  241. package/dist/tools/browser-save-scenario.d.ts +19 -0
  242. package/dist/tools/browser-save-scenario.d.ts.map +1 -0
  243. package/dist/tools/browser-save-scenario.js +447 -0
  244. package/dist/tools/browser-save-scenario.js.map +1 -0
  245. package/dist/tools/browser-select.d.ts +20 -0
  246. package/dist/tools/browser-select.d.ts.map +1 -0
  247. package/dist/tools/browser-select.js +120 -0
  248. package/dist/tools/browser-select.js.map +1 -0
  249. package/dist/tools/browser-snapshot.d.ts +46 -0
  250. package/dist/tools/browser-snapshot.d.ts.map +1 -0
  251. package/dist/tools/browser-snapshot.js +127 -0
  252. package/dist/tools/browser-snapshot.js.map +1 -0
  253. package/dist/tools/browser-start-session.d.ts +24 -0
  254. package/dist/tools/browser-start-session.d.ts.map +1 -0
  255. package/dist/tools/browser-start-session.js +653 -0
  256. package/dist/tools/browser-start-session.js.map +1 -0
  257. package/dist/tools/browser-submit.d.ts +18 -0
  258. package/dist/tools/browser-submit.d.ts.map +1 -0
  259. package/dist/tools/browser-submit.js +106 -0
  260. package/dist/tools/browser-submit.js.map +1 -0
  261. package/dist/tools/browser-type.d.ts +18 -0
  262. package/dist/tools/browser-type.d.ts.map +1 -0
  263. package/dist/tools/browser-type.js +115 -0
  264. package/dist/tools/browser-type.js.map +1 -0
  265. package/dist/tools/browser-wait-for.d.ts +45 -0
  266. package/dist/tools/browser-wait-for.d.ts.map +1 -0
  267. package/dist/tools/browser-wait-for.js +164 -0
  268. package/dist/tools/browser-wait-for.js.map +1 -0
  269. package/dist/tools/browser.d.ts +69 -0
  270. package/dist/tools/browser.d.ts.map +1 -0
  271. package/dist/tools/browser.js +326 -0
  272. package/dist/tools/browser.js.map +1 -0
  273. package/dist/tools/chain.d.ts +41 -0
  274. package/dist/tools/chain.d.ts.map +1 -0
  275. package/dist/tools/chain.js +101 -0
  276. package/dist/tools/chain.js.map +1 -0
  277. package/dist/tools/change-scope.d.ts +25 -0
  278. package/dist/tools/change-scope.d.ts.map +1 -0
  279. package/dist/tools/change-scope.js +103 -0
  280. package/dist/tools/change-scope.js.map +1 -0
  281. package/dist/tools/code-context.d.ts +83 -0
  282. package/dist/tools/code-context.d.ts.map +1 -0
  283. package/dist/tools/code-context.js +432 -0
  284. package/dist/tools/code-context.js.map +1 -0
  285. package/dist/tools/contracts.d.ts +74 -0
  286. package/dist/tools/contracts.d.ts.map +1 -0
  287. package/dist/tools/contracts.js +214 -0
  288. package/dist/tools/contracts.js.map +1 -0
  289. package/dist/tools/cross-pr.d.ts +178 -0
  290. package/dist/tools/cross-pr.d.ts.map +1 -0
  291. package/dist/tools/cross-pr.js +362 -0
  292. package/dist/tools/cross-pr.js.map +1 -0
  293. package/dist/tools/disclosure.d.ts +75 -0
  294. package/dist/tools/disclosure.d.ts.map +1 -0
  295. package/dist/tools/disclosure.js +325 -0
  296. package/dist/tools/disclosure.js.map +1 -0
  297. package/dist/tools/draw-conclusion.d.ts +55 -0
  298. package/dist/tools/draw-conclusion.d.ts.map +1 -0
  299. package/dist/tools/draw-conclusion.js +243 -0
  300. package/dist/tools/draw-conclusion.js.map +1 -0
  301. package/dist/tools/git-context.d.ts +39 -0
  302. package/dist/tools/git-context.d.ts.map +1 -0
  303. package/dist/tools/git-context.js +374 -0
  304. package/dist/tools/git-context.js.map +1 -0
  305. package/dist/tools/git-diff.d.ts +45 -0
  306. package/dist/tools/git-diff.d.ts.map +1 -0
  307. package/dist/tools/git-diff.js +338 -0
  308. package/dist/tools/git-diff.js.map +1 -0
  309. package/dist/tools/git-history.d.ts +16 -0
  310. package/dist/tools/git-history.d.ts.map +1 -0
  311. package/dist/tools/git-history.js +106 -0
  312. package/dist/tools/git-history.js.map +1 -0
  313. package/dist/tools/history.d.ts +34 -0
  314. package/dist/tools/history.d.ts.map +1 -0
  315. package/dist/tools/history.js +121 -0
  316. package/dist/tools/history.js.map +1 -0
  317. package/dist/tools/impact.d.ts +46 -0
  318. package/dist/tools/impact.d.ts.map +1 -0
  319. package/dist/tools/impact.js +225 -0
  320. package/dist/tools/impact.js.map +1 -0
  321. package/dist/tools/index.d.ts +59 -0
  322. package/dist/tools/index.d.ts.map +1 -0
  323. package/dist/tools/index.js +70 -0
  324. package/dist/tools/index.js.map +1 -0
  325. package/dist/tools/kit.d.ts +165 -0
  326. package/dist/tools/kit.d.ts.map +1 -0
  327. package/dist/tools/kit.js +153 -0
  328. package/dist/tools/kit.js.map +1 -0
  329. package/dist/tools/link-workspace.d.ts +24 -0
  330. package/dist/tools/link-workspace.d.ts.map +1 -0
  331. package/dist/tools/link-workspace.js +131 -0
  332. package/dist/tools/link-workspace.js.map +1 -0
  333. package/dist/tools/lookup.d.ts +19 -0
  334. package/dist/tools/lookup.d.ts.map +1 -0
  335. package/dist/tools/lookup.js +63 -0
  336. package/dist/tools/lookup.js.map +1 -0
  337. package/dist/tools/mark-incident.d.ts +28 -0
  338. package/dist/tools/mark-incident.d.ts.map +1 -0
  339. package/dist/tools/mark-incident.js +171 -0
  340. package/dist/tools/mark-incident.js.map +1 -0
  341. package/dist/tools/merged-browser.d.ts +11 -0
  342. package/dist/tools/merged-browser.d.ts.map +1 -0
  343. package/dist/tools/merged-browser.js +20 -0
  344. package/dist/tools/merged-browser.js.map +1 -0
  345. package/dist/tools/merged-context.d.ts +11 -0
  346. package/dist/tools/merged-context.d.ts.map +1 -0
  347. package/dist/tools/merged-context.js +21 -0
  348. package/dist/tools/merged-context.js.map +1 -0
  349. package/dist/tools/merged-observe.d.ts +13 -0
  350. package/dist/tools/merged-observe.d.ts.map +1 -0
  351. package/dist/tools/merged-observe.js +21 -0
  352. package/dist/tools/merged-observe.js.map +1 -0
  353. package/dist/tools/merged-workspace.d.ts +14 -0
  354. package/dist/tools/merged-workspace.d.ts.map +1 -0
  355. package/dist/tools/merged-workspace.js +21 -0
  356. package/dist/tools/merged-workspace.js.map +1 -0
  357. package/dist/tools/observe-runtime.d.ts +262 -0
  358. package/dist/tools/observe-runtime.d.ts.map +1 -0
  359. package/dist/tools/observe-runtime.js +1966 -0
  360. package/dist/tools/observe-runtime.js.map +1 -0
  361. package/dist/tools/observe-tests.d.ts +57 -0
  362. package/dist/tools/observe-tests.d.ts.map +1 -0
  363. package/dist/tools/observe-tests.js +391 -0
  364. package/dist/tools/observe-tests.js.map +1 -0
  365. package/dist/tools/observe.d.ts +28 -0
  366. package/dist/tools/observe.d.ts.map +1 -0
  367. package/dist/tools/observe.js +291 -0
  368. package/dist/tools/observe.js.map +1 -0
  369. package/dist/tools/pr-analysis.d.ts +189 -0
  370. package/dist/tools/pr-analysis.d.ts.map +1 -0
  371. package/dist/tools/pr-analysis.js +365 -0
  372. package/dist/tools/pr-analysis.js.map +1 -0
  373. package/dist/tools/pre-push.d.ts +168 -0
  374. package/dist/tools/pre-push.d.ts.map +1 -0
  375. package/dist/tools/pre-push.js +416 -0
  376. package/dist/tools/pre-push.js.map +1 -0
  377. package/dist/tools/predict-reach.d.ts +57 -0
  378. package/dist/tools/predict-reach.d.ts.map +1 -0
  379. package/dist/tools/predict-reach.js +183 -0
  380. package/dist/tools/predict-reach.js.map +1 -0
  381. package/dist/tools/propagation.d.ts +37 -0
  382. package/dist/tools/propagation.d.ts.map +1 -0
  383. package/dist/tools/propagation.js +162 -0
  384. package/dist/tools/propagation.js.map +1 -0
  385. package/dist/tools/propose-journey.d.ts +16 -0
  386. package/dist/tools/propose-journey.d.ts.map +1 -0
  387. package/dist/tools/propose-journey.js +132 -0
  388. package/dist/tools/propose-journey.js.map +1 -0
  389. package/dist/tools/prove-reach.d.ts +74 -0
  390. package/dist/tools/prove-reach.d.ts.map +1 -0
  391. package/dist/tools/prove-reach.js +274 -0
  392. package/dist/tools/prove-reach.js.map +1 -0
  393. package/dist/tools/questions.d.ts +30 -0
  394. package/dist/tools/questions.d.ts.map +1 -0
  395. package/dist/tools/questions.js +230 -0
  396. package/dist/tools/questions.js.map +1 -0
  397. package/dist/tools/refusal-fetch.d.ts +35 -0
  398. package/dist/tools/refusal-fetch.d.ts.map +1 -0
  399. package/dist/tools/refusal-fetch.js +123 -0
  400. package/dist/tools/refusal-fetch.js.map +1 -0
  401. package/dist/tools/runtime-incident.d.ts +33 -0
  402. package/dist/tools/runtime-incident.d.ts.map +1 -0
  403. package/dist/tools/runtime-incident.js +67 -0
  404. package/dist/tools/runtime-incident.js.map +1 -0
  405. package/dist/tools/runtime-journey-drive.d.ts +102 -0
  406. package/dist/tools/runtime-journey-drive.d.ts.map +1 -0
  407. package/dist/tools/runtime-journey-drive.js +247 -0
  408. package/dist/tools/runtime-journey-drive.js.map +1 -0
  409. package/dist/tools/scope.d.ts +45 -0
  410. package/dist/tools/scope.d.ts.map +1 -0
  411. package/dist/tools/scope.js +217 -0
  412. package/dist/tools/scope.js.map +1 -0
  413. package/dist/tools/similar-incidents.d.ts +43 -0
  414. package/dist/tools/similar-incidents.d.ts.map +1 -0
  415. package/dist/tools/similar-incidents.js +190 -0
  416. package/dist/tools/similar-incidents.js.map +1 -0
  417. package/dist/tools/validate.d.ts +133 -0
  418. package/dist/tools/validate.d.ts.map +1 -0
  419. package/dist/tools/validate.js +488 -0
  420. package/dist/tools/validate.js.map +1 -0
  421. package/dist/tools/verb.d.ts +46 -0
  422. package/dist/tools/verb.d.ts.map +1 -0
  423. package/dist/tools/verb.js +78 -0
  424. package/dist/tools/verb.js.map +1 -0
  425. package/dist/tools/verification-status.d.ts +38 -0
  426. package/dist/tools/verification-status.d.ts.map +1 -0
  427. package/dist/tools/verification-status.js +203 -0
  428. package/dist/tools/verification-status.js.map +1 -0
  429. package/dist/tools/verify-claim.d.ts +29 -0
  430. package/dist/tools/verify-claim.d.ts.map +1 -0
  431. package/dist/tools/verify-claim.js +218 -0
  432. package/dist/tools/verify-claim.js.map +1 -0
  433. package/dist/tools/workspace.d.ts +28 -0
  434. package/dist/tools/workspace.d.ts.map +1 -0
  435. package/dist/tools/workspace.js +94 -0
  436. package/dist/tools/workspace.js.map +1 -0
  437. package/dist/transport.d.ts +32 -0
  438. package/dist/transport.d.ts.map +1 -0
  439. package/dist/transport.js +85 -0
  440. package/dist/transport.js.map +1 -0
  441. package/dist/workspace-index.d.ts +164 -0
  442. package/dist/workspace-index.d.ts.map +1 -0
  443. package/dist/workspace-index.js +381 -0
  444. package/dist/workspace-index.js.map +1 -0
  445. package/package.json +5 -5
@@ -0,0 +1,171 @@
1
+ /** `mark_incident` — "that was a bug, I fixed it": the only incident-minting path with
2
+ * precision 1.0 (a person asserts it). Needed because automatic detection (reverts,
3
+ * `Fixes #123`) found zero incidents in 3 repos, and a fix-forward heuristic scored 25%
4
+ * against a 90% threshold and was refused. Stored in `.descry/config.json` (DEC-223,
5
+ * DEC-017 — derived tables don't survive rebuilds) and capped at class B; `action` class per DEC-278, gated by the `confirmToken` handshake. */
6
+ import { buildGraph, confirmedIncidentId, createConfirmedIncidentSource, evictStaleConfirmedIncidentNodes, nodesInFiles, persistGraph, } from "@descryy/core";
7
+ import { writeConfirmedIncident } from "../session.js";
8
+ import { answer, optionalString, optionalStringArray, requiredString, ToolInputError, } from "./kit.js";
9
+ const SCHEMA = {
10
+ type: "object",
11
+ properties: {
12
+ summary: {
13
+ type: "string",
14
+ description: "What broke, one sentence — the symptom, not the fix. Becomes the incident's name.",
15
+ },
16
+ files: {
17
+ type: "array",
18
+ items: { type: "string" },
19
+ minItems: 1,
20
+ description: "Paths the defect lived in — where the bug was, not every file the fix touched.",
21
+ },
22
+ errorText: {
23
+ type: "string",
24
+ description: "Error/exception text as seen. Optional.",
25
+ },
26
+ fixedAtCommit: {
27
+ type: "string",
28
+ description: "Commit that fixed it. Optional.",
29
+ },
30
+ confirmedBy: {
31
+ type: "string",
32
+ description: "Default \"user\".",
33
+ },
34
+ confirmToken: {
35
+ type: "string",
36
+ description: "Arguments frozen when the token was minted; a changed field is discarded and disclosed.",
37
+ },
38
+ },
39
+ required: ["summary", "files"],
40
+ additionalProperties: false,
41
+ };
42
+ async function run(args, ctx) {
43
+ const { session } = ctx;
44
+ const summary = requiredString(args, "summary");
45
+ const files = optionalStringArray(args, "files");
46
+ if (files === undefined || files.length === 0) {
47
+ throw new ToolInputError('"files" must name at least one repo-relative path — an incident naming no file has nothing ' +
48
+ "to attach it to, and would be invisible to every query that looks for one");
49
+ }
50
+ const errorText = optionalString(args, "errorText");
51
+ const fixedAtCommit = optionalString(args, "fixedAtCommit");
52
+ const confirmedBy = optionalString(args, "confirmedBy") ?? "user";
53
+ const root = await session.root();
54
+ const recorded = {
55
+ repo: session.config.repo,
56
+ summary,
57
+ files: [...new Set(files)].sort(),
58
+ ...(errorText === undefined ? {} : { errorText }),
59
+ ...(fixedAtCommit === undefined ? {} : { fixedAtCommit }),
60
+ confirmedBy,
61
+ confirmedAt: new Date().toISOString(),
62
+ };
63
+ const driver = session.store().driver;
64
+ // Measured before the projection runs — it mints a FILE node for every named path, so
65
+ // asking after would always say "all in the graph", a tautology.
66
+ const { missing: filesNotInGraph } = nodesInFiles(driver, recorded.files);
67
+ ctx.progress(`Recording an incident in ${session.config.repo}`);
68
+ const written = await writeConfirmedIncident(session.repoPath, recorded);
69
+ // Projected now, not at next `analyze`, so the incident is visible in the conversation
70
+ // that recorded it (same reason `questions` merges its just-written fact into its own response).
71
+ ctx.progress("Projecting it into the graph");
72
+ const batch = await createConfirmedIncidentSource({
73
+ repo: session.config.repo,
74
+ // `written.records` — the already-deduped list on file — not
75
+ // `session.config.confirmedIncidents` plus `recorded`: when this call
76
+ // merged into an existing record, `recorded` alone would project a second
77
+ // `IRNode` sharing that record's id (UAT phase 5, F9).
78
+ incidents: written.records,
79
+ }).emit({ root });
80
+ const built = buildGraph([batch], { nodeExists: (id) => session.provider().node(id) !== undefined });
81
+ persistGraph(driver, [batch], built);
82
+ // `written.records` is the full, current list — the source no longer being
83
+ // resolved with a companion git-history batch, an incident deleted from
84
+ // config since the last write shares no file with any surviving one, and
85
+ // the shared writer's file-overlap eviction never fires for it. This is
86
+ // the "current run's node set" the deletion is measured against.
87
+ evictStaleConfirmedIncidentNodes(driver, batch.producedBy, new Set(built.nodes.filter((n) => n.producedBy === batch.producedBy).map((n) => n.id)));
88
+ const stamp = session.provider().baseStamp();
89
+ const notes = [
90
+ "Recorded as testimony, not as a reading of the repository. An edge resting on it is capped at " +
91
+ "reliability class B (DEC-223) however much structure surrounds it — one unaudited assertion " +
92
+ "is one unaudited assertion.",
93
+ `The durable record is ${written.path}, which is a file you can read and correct. The graph ` +
94
+ "holds a projection of it, re-derived by every analyze, so a rebuild never loses it.",
95
+ ];
96
+ if (fixedAtCommit === undefined) {
97
+ notes.push("No fixing commit was named, so no FIX_PATTERN was minted and no FIXED_BY edge exists. " +
98
+ '"A defect existed" and "this commit fixed it" are separate claims and only the second ' +
99
+ "licenses that edge.");
100
+ }
101
+ if (filesNotInGraph.length > 0) {
102
+ notes.push(`${filesNotInGraph.length} of the named path(s) have no node in the graph ` +
103
+ `(${filesNotInGraph.slice(0, 5).join(", ")}). The incident is recorded and correlated to ` +
104
+ "them anyway — a developer naming a file Descry cannot read is a gap in Descry, not a " +
105
+ "mistake to discard. Run analyze if the graph predates them.");
106
+ }
107
+ if (written.merged) {
108
+ notes.push(`This exact incident (same summary and error text) was already on record — this is ` +
109
+ `occurrence ${written.occurrences} of it, not a second incident. A retried submission and ` +
110
+ "a genuine recurrence are indistinguishable from content alone, so both are merged into " +
111
+ "one record rather than minting a second INCIDENT node, which would silently double this " +
112
+ "incident's weight in blast-radius bias and similar_incidents scoring.");
113
+ }
114
+ return answer({
115
+ headline: written.merged
116
+ ? `This incident in ${session.config.repo} was already on record — recorded as occurrence ` +
117
+ `${written.occurrences}, correlated to ${recorded.files.length} file(s) this time. ` +
118
+ `${written.total} confirmed incident(s) on record.`
119
+ : `Recorded an incident in ${session.config.repo}, correlated to ${recorded.files.length} file(s). ` +
120
+ `${written.total} confirmed incident(s) now on record.`,
121
+ // Name-level fact: this defect existed and touched these paths — no claim about program shape.
122
+ nameLevel: true,
123
+ // R0, honestly — testimony isn't a point on the R0-R4 ladder (which measures tooling
124
+ // run); the real ceiling is `humanAsserted`, expressed where a finding is classified.
125
+ resolutionFloor: 0,
126
+ commitSha: stamp.commitSha,
127
+ graphBuiltAt: stamp.graphBuiltAt,
128
+ irSchemaVersion: stamp.irSchemaVersion,
129
+ commitSpread: stamp.commitSpread,
130
+ repoCount: stamp.repoCount,
131
+ notes,
132
+ data: {
133
+ // `written.record` — the merge, when this call matched a record already on
134
+ // file, never the as-submitted `recorded` alone (which would misreport a
135
+ // narrower `files` list than what is actually stored).
136
+ recorded: written.record,
137
+ incidentNodeId: confirmedIncidentId({ repo: session.config.repo, ...(root.workspace === undefined ? {} : { workspace: root.workspace }) }, recorded),
138
+ configPath: written.path,
139
+ totalConfirmed: written.total,
140
+ filesNotInGraph,
141
+ merged: written.merged,
142
+ occurrences: written.occurrences,
143
+ },
144
+ });
145
+ }
146
+ /** Always returns a sentence — unlike `questions`'s unconfirmed shape, no argument to this
147
+ * tool makes it not write. */
148
+ function describeAction(args) {
149
+ const summary = args["summary"];
150
+ const files = args["files"];
151
+ if (typeof summary !== "string" || !Array.isArray(files) || files.length === 0)
152
+ return undefined;
153
+ return (`record a confirmed incident — "${summary}" — correlated to ${files.length} file(s) ` +
154
+ `(${files.slice(0, 3).join(", ")}${files.length > 3 ? ", …" : ""}). It is written to ` +
155
+ ".descry/config.json and projected into the graph, where it will bias future blast radii " +
156
+ "toward those files and can be matched against future failures. Capped at reliability class B.");
157
+ }
158
+ export const markIncidentTool = {
159
+ name: "mark_incident",
160
+ class: "action",
161
+ tier: "evidence",
162
+ version: "1.0.0",
163
+ title: "Record a bug you just fixed, so a future failure can match against it",
164
+ description: "Record a defect and the files it lived in, so similar_incidents can match future failures " +
165
+ "against it. Capped at reliability B. Gated: first call returns a token; call again with " +
166
+ "\"confirmToken\" to record it.",
167
+ inputSchema: SCHEMA,
168
+ run,
169
+ describeAction,
170
+ };
171
+ //# sourceMappingURL=mark-incident.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mark-incident.js","sourceRoot":"","sources":["../../src/tools/mark-incident.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The registration surface for the `browser` merge — one file the index and
3
+ * the alias table both import from, so the tool and its eight retired names
4
+ * cannot drift apart (add a verb here and both sides see it in the same
5
+ * change).
6
+ */
7
+ import { type ToolAlias } from "./alias-kit.ts";
8
+ import type { ToolDefinition } from "./kit.ts";
9
+ export declare const BROWSER_GROUP_TOOLS: readonly ToolDefinition[];
10
+ export declare const BROWSER_GROUP_ALIASES: readonly (readonly [string, ToolAlias])[];
11
+ //# sourceMappingURL=merged-browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-browser.d.ts","sourceRoot":"","sources":["../../src/tools/merged-browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAAkB,CAAC;AAE5E,eAAO,MAAM,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAS1E,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The registration surface for the `browser` merge — one file the index and
3
+ * the alias table both import from, so the tool and its eight retired names
4
+ * cannot drift apart (add a verb here and both sides see it in the same
5
+ * change).
6
+ */
7
+ import { browserTool } from "./browser.js";
8
+ import { withVerb } from "./alias-kit.js";
9
+ export const BROWSER_GROUP_TOOLS = [browserTool];
10
+ export const BROWSER_GROUP_ALIASES = [
11
+ ["browser_start_session", { to: "browser", args: withVerb("start_session") }],
12
+ ["browser_click", { to: "browser", args: withVerb("click") }],
13
+ ["browser_type", { to: "browser", args: withVerb("type") }],
14
+ ["browser_fill", { to: "browser", args: withVerb("fill") }],
15
+ ["browser_select", { to: "browser", args: withVerb("select") }],
16
+ ["browser_submit", { to: "browser", args: withVerb("submit") }],
17
+ ["browser_save_scenario", { to: "browser", args: withVerb("save_scenario") }],
18
+ ["browser_run_scenario", { to: "browser", args: withVerb("run_scenario") }],
19
+ ];
20
+ //# sourceMappingURL=merged-browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-browser.js","sourceRoot":"","sources":["../../src/tools/merged-browser.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAG1D,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC,WAAW,CAAC,CAAC;AAE5E,MAAM,CAAC,MAAM,qBAAqB,GAA8C;IAC9E,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7E,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3D,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/D,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC/D,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;IAC7E,CAAC,sBAAsB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;CAC5E,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * The three merged tools from mcp-surface-consolidation.md groups 1–3, and
3
+ * the seven aliases that let their retired names keep dispatching (aliases.ts's
4
+ * `TOOL_ALIASES` — not wired here; the integrator adds these entries to that
5
+ * map in the same change that removes the seven old tools from `TOOLS`).
6
+ */
7
+ import { type ToolAlias } from "./alias-kit.ts";
8
+ import type { ToolDefinition } from "./kit.ts";
9
+ export declare const CONTEXT_GROUP_TOOLS: readonly ToolDefinition[];
10
+ export declare const CONTEXT_GROUP_ALIASES: readonly (readonly [string, ToolAlias])[];
11
+ //# sourceMappingURL=merged-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-context.d.ts","sourceRoot":"","sources":["../../src/tools/merged-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAAsD,CAAC;AAEhH,eAAO,MAAM,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAQ1E,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The three merged tools from mcp-surface-consolidation.md groups 1–3, and
3
+ * the seven aliases that let their retired names keep dispatching (aliases.ts's
4
+ * `TOOL_ALIASES` — not wired here; the integrator adds these entries to that
5
+ * map in the same change that removes the seven old tools from `TOOLS`).
6
+ */
7
+ import { codeContextTool } from "./code-context.js";
8
+ import { disclosureTool } from "./disclosure.js";
9
+ import { gitContextTool } from "./git-context.js";
10
+ import { withVerb } from "./alias-kit.js";
11
+ export const CONTEXT_GROUP_TOOLS = [codeContextTool, gitContextTool, disclosureTool];
12
+ export const CONTEXT_GROUP_ALIASES = [
13
+ ["impact", { to: "code_context", args: withVerb("impact") }],
14
+ ["history", { to: "code_context", args: withVerb("history") }],
15
+ ["propagation", { to: "code_context", args: withVerb("propagation") }],
16
+ ["get_git_diff", { to: "git_context", args: withVerb("diff") }],
17
+ ["get_git_history", { to: "git_context", args: withVerb("log") }],
18
+ ["verification_status", { to: "disclosure", args: withVerb("coverage") }],
19
+ ["refusal_fetch", { to: "disclosure", args: withVerb("unresolved") }],
20
+ ];
21
+ //# sourceMappingURL=merged-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-context.js","sourceRoot":"","sources":["../../src/tools/merged-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAG1D,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC,eAAe,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;AAEhH,MAAM,CAAC,MAAM,qBAAqB,GAA8C;IAC9E,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC5D,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAC9D,CAAC,aAAa,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;IACtE,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/D,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACjE,CAAC,qBAAqB,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACzE,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;CACtE,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * The two tools `observe.ts` and `browser-read.ts` produce, plus the alias table redirecting the
3
+ * six retired names they absorb (documents/plans/mcp-surface-consolidation.md, groups 1 and 2).
4
+ *
5
+ * `index.ts` and `aliases.ts` are the integrator's to wire — this file only assembles what those
6
+ * two modules need: `OBSERVE_GROUP_TOOLS` to add to `TOOLS`, `OBSERVE_GROUP_ALIASES` to add to
7
+ * `TOOL_ALIASES` (see `aliases.ts`'s own doc for why a retired name answers but is not listed).
8
+ */
9
+ import { type ToolAlias } from "./alias-kit.ts";
10
+ import type { ToolDefinition } from "./kit.ts";
11
+ export declare const OBSERVE_GROUP_TOOLS: readonly ToolDefinition[];
12
+ export declare const OBSERVE_GROUP_ALIASES: readonly (readonly [string, ToolAlias])[];
13
+ //# sourceMappingURL=merged-observe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-observe.d.ts","sourceRoot":"","sources":["../../src/tools/merged-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAI/C,eAAO,MAAM,mBAAmB,EAAE,SAAS,cAAc,EAAmC,CAAC;AAE7F,eAAO,MAAM,qBAAqB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAO1E,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The two tools `observe.ts` and `browser-read.ts` produce, plus the alias table redirecting the
3
+ * six retired names they absorb (documents/plans/mcp-surface-consolidation.md, groups 1 and 2).
4
+ *
5
+ * `index.ts` and `aliases.ts` are the integrator's to wire — this file only assembles what those
6
+ * two modules need: `OBSERVE_GROUP_TOOLS` to add to `TOOLS`, `OBSERVE_GROUP_ALIASES` to add to
7
+ * `TOOL_ALIASES` (see `aliases.ts`'s own doc for why a retired name answers but is not listed).
8
+ */
9
+ import { withVerb } from "./alias-kit.js";
10
+ import { observeTool } from "./observe.js";
11
+ import { browserReadTool } from "./browser-read.js";
12
+ export const OBSERVE_GROUP_TOOLS = [observeTool, browserReadTool];
13
+ export const OBSERVE_GROUP_ALIASES = [
14
+ ["observe_runtime", { to: "observe", args: withVerb("runtime") }],
15
+ ["observe_tests", { to: "observe", args: withVerb("tests") }],
16
+ ["browser_snapshot", { to: "browser_read", args: withVerb("snapshot") }],
17
+ ["browser_navigate", { to: "browser_read", args: withVerb("navigate") }],
18
+ ["browser_wait_for", { to: "browser_read", args: withVerb("wait_for") }],
19
+ ["browser_close_session", { to: "browser_read", args: withVerb("close") }],
20
+ ];
21
+ //# sourceMappingURL=merged-observe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-observe.js","sourceRoot":"","sources":["../../src/tools/merged-observe.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,mBAAmB,GAA8B,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AAE7F,MAAM,CAAC,MAAM,qBAAqB,GAA8C;IAC9E,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IACjE,CAAC,eAAe,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IAC7D,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE,CAAC,kBAAkB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;IACxE,CAAC,uBAAuB,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3E,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Assembles what the registry and the alias table need from this session's
3
+ * two merges (documents/plans/mcp-surface-consolidation.md §2, groups 1 and
4
+ * 2): `workspace` (absorbs `analyze`, `analyze_workspace`, `link_workspace`)
5
+ * and `change_scope` (absorbs `scope`, `pre_push`), plus the five retired
6
+ * names that now answer through them. Wiring this into `tools/index.ts` and
7
+ * `tools/aliases.ts` happens elsewhere — this module only assembles the
8
+ * pieces those need.
9
+ */
10
+ import type { ToolDefinition } from "./kit.ts";
11
+ import { type ToolAlias } from "./alias-kit.ts";
12
+ export declare const WORKSPACE_GROUP_TOOLS: readonly ToolDefinition[];
13
+ export declare const WORKSPACE_GROUP_ALIASES: readonly (readonly [string, ToolAlias])[];
14
+ //# sourceMappingURL=merged-workspace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-workspace.d.ts","sourceRoot":"","sources":["../../src/tools/merged-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAY,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAK1D,eAAO,MAAM,qBAAqB,EAAE,SAAS,cAAc,EAAqC,CAAC;AAEjG,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EAM5E,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Assembles what the registry and the alias table need from this session's
3
+ * two merges (documents/plans/mcp-surface-consolidation.md §2, groups 1 and
4
+ * 2): `workspace` (absorbs `analyze`, `analyze_workspace`, `link_workspace`)
5
+ * and `change_scope` (absorbs `scope`, `pre_push`), plus the five retired
6
+ * names that now answer through them. Wiring this into `tools/index.ts` and
7
+ * `tools/aliases.ts` happens elsewhere — this module only assembles the
8
+ * pieces those need.
9
+ */
10
+ import { withVerb } from "./alias-kit.js";
11
+ import { workspaceTool } from "./workspace.js";
12
+ import { changeScopeTool } from "./change-scope.js";
13
+ export const WORKSPACE_GROUP_TOOLS = [workspaceTool, changeScopeTool];
14
+ export const WORKSPACE_GROUP_ALIASES = [
15
+ ["analyze", { to: "workspace", args: withVerb("analyze") }],
16
+ ["analyze_workspace", { to: "workspace", args: withVerb("index") }],
17
+ ["link_workspace", { to: "workspace", args: withVerb("link") }],
18
+ ["scope", { to: "change_scope", args: withVerb("diff") }],
19
+ ["pre_push", { to: "change_scope", args: withVerb("pre_push") }],
20
+ ];
21
+ //# sourceMappingURL=merged-workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merged-workspace.js","sourceRoot":"","sources":["../../src/tools/merged-workspace.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,QAAQ,EAAkB,MAAM,gBAAgB,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAA8B,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;AAEjG,MAAM,CAAC,MAAM,uBAAuB,GAA8C;IAChF,CAAC,SAAS,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3D,CAAC,mBAAmB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;IACnE,CAAC,gBAAgB,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IAC/D,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;IACzD,CAAC,UAAU,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;CACjE,CAAC"}
@@ -0,0 +1,262 @@
1
+ /**
2
+ * `observe_runtime` — boot or attach to a real application, write what was witnessed into the
3
+ * graph as R4 facts. Composes existing descry-runtime stages, no new mechanism (DEC-NEXT-mcp-
4
+ * runtime-dependency-boundary-for-r4-evidence). `action`/`evidence` (DEC-278), gated by
5
+ * confirmToken + profile safetyLevel (DEC-270). Never emits a denial. */
6
+ import type { SignalTypeCount } from "@descryy/ir";
7
+ import { type SqlDriver } from "@descryy/core";
8
+ import type { Evidence, FilesystemPolicy, NetworkPolicy, ProcessHandle, ResourceLimits, ServiceConfiguration } from "@descryy/runtime-contracts";
9
+ import type { RunOptions } from "@descryy/runtime-controller";
10
+ import { type PostgresStatementLogSource } from "@descryy/runtime-database-observation";
11
+ import type { EnvironmentProfile } from "@descryy/runtime-environment-profile";
12
+ import { EvidenceStore } from "@descryy/runtime-evidence-store";
13
+ import { type ToolContext, type ToolDefinition } from "./kit.ts";
14
+ import { type JourneyDriveOutcome } from "./runtime-journey-drive.ts";
15
+ import type { ToolAnswer } from "../render.ts";
16
+ import { type RuntimeAdapterSpec } from "../runtime-registry.ts";
17
+ import { type SavedServiceStart, type SavedStart } from "../session.ts";
18
+ /** One service's readiness declaration, derived from RunOptions rather than imported by
19
+ * name — @descryy/runtime-controller doesn't export ServiceReadinessSpec, and deriving
20
+ * can't drift from what run() actually accepts, because it *is* what run() accepts. */
21
+ type ServiceReadinessSpec = RunOptions["readiness"][string];
22
+ /** Where evidence lands when the call does not say. Beside the graph, not inside it. */
23
+ export declare const DEFAULT_EVIDENCE_RELATIVE_PATH: string;
24
+ /** What one declared service did, from Execution.processes — not ServiceStartResult, which
25
+ * runInstrumentedExecution doesn't return. No ProcessHandle means never-started;
26
+ * `executionState` (FAILED_START) says why when known. */
27
+ export interface ObservedService {
28
+ readonly service: string;
29
+ /** False when no process handle exists for it at all — it never started. */
30
+ readonly started: boolean;
31
+ /** True when this service was attached to rather than spawned. Governs the safety gate — see the header. */
32
+ readonly attached: boolean;
33
+ /** The port it actually bound, when it listens on one. Null for a non-network process or before the port is known. */
34
+ readonly port: number | null;
35
+ /** Null while still running. Set once it exited and was reaped. */
36
+ readonly exitedAt: string | null;
37
+ readonly exitCode: number | null;
38
+ /** Non-null means killed by this signal, whatever `exitCode` says. */
39
+ readonly signal: string | null;
40
+ /**
41
+ * What this service printed (stdout+stderr) before the run failed, or null
42
+ * when nothing was captured for it.
43
+ *
44
+ * Populated only on a failed run: a healthy dev server's boot log is large,
45
+ * uninteresting, and would crowd out every other field. Null and `""` are
46
+ * different answers — `""` is "it ran and said nothing", null is "there is
47
+ * no capture to show", and the second means look somewhere else.
48
+ *
49
+ * This is the field whose absence let a bare `exitCode: 126` be read as a
50
+ * nested-sandbox failure. It never was one: `prlimit` exits 126 for "found
51
+ * but not executable" and writes the reason here, while bwrap exits 1 for
52
+ * every namespace failure there is.
53
+ */
54
+ readonly startupOutput: string | null;
55
+ /** True when `startupOutput` is the tail of a longer capture — so a reader never mistakes a clipped log for the whole of it. */
56
+ readonly startupOutputTruncated: boolean;
57
+ }
58
+ /** What the correlation pass resolved, by family — counts, not rows (a long run produces
59
+ * thousands of items). Rows themselves live in the evidence store, keyed by executionId. */
60
+ export interface CorrelationSummary {
61
+ readonly considered: number;
62
+ readonly skipped: number;
63
+ readonly attributed: number;
64
+ readonly refused: number;
65
+ /** Service names carrying symbol evidence no scope named a repository for. Named, never guessed at. */
66
+ readonly unscopedServices: readonly string[];
67
+ /** Non-empty means the correlation machinery itself broke, not that it looked and found nothing. */
68
+ readonly harnessErrors: readonly string[];
69
+ }
70
+ /** The R4 write, in applyRuntimeObservations's own six-way vocabulary so a reader can
71
+ * account for every observation without inspecting the store. */
72
+ export interface RuntimeWriteSummary {
73
+ /** Edges the graph already held below R4, now witnessed and raised to R4. */
74
+ readonly promoted: readonly string[];
75
+ /** Edges no static producer found, minted at R4 — §11B.3's "recall gap closed". */
76
+ readonly created: readonly string[];
77
+ /** Already at R4 and observed again. Reported, never silently dropped. */
78
+ readonly confirmed: readonly string[];
79
+ /** Observations the graph declined to act on, with the resolver's own reason. */
80
+ readonly refused: readonly string[];
81
+ /** Always empty today — this tool emits no denial (see header) — kept visible rather
82
+ * than unstated. */
83
+ readonly contradictions: readonly string[];
84
+ /** A denial aimed at an edge already at R4. Out of scope by construction; reported, not laundered. */
85
+ readonly staleR4: readonly string[];
86
+ /** Always empty today, same as `contradictions` above and for the same reason (see header:
87
+ * this tool emits no denial) — kept visible rather than unstated. Would carry a denial that
88
+ * also landed on an edge a human confirmed (`attrs.humanAsserted`, DEC-223): named separately
89
+ * from `contradictions` because the two are different situations, not auto-resolved either
90
+ * way. See `applyRuntimeObservations`'s `confirmedFactConflict`. */
91
+ readonly confirmedFactConflict: readonly string[];
92
+ /**
93
+ * Non-null when this run both reached an endpoint (attributed without its own
94
+ * call-site stack) and, separately, resolved at least one call-site stack to a
95
+ * real function elsewhere in the same run's evidence — real signal on two
96
+ * different evidence records that this pass did not join into an edge. See
97
+ * `writeObservations`'s own doc for why joining them would risk a wrong-direction
98
+ * edge rather than a missing one. Null when no such split existed this run.
99
+ */
100
+ readonly unjoinedSplitEvidence: string | null;
101
+ }
102
+ /**
103
+ * RG-5(c) — what the database channel did on this call. `observed: false`
104
+ * always carries a `disclosure` naming why (rule 7); `observed: true` carries
105
+ * `disclosure: null`. Covers both halves this tool wires: the node:sqlite
106
+ * preload's read-back (`recordCount` counts real captured queries either
107
+ * way) and the Postgres statement-log tail, when `database.statementLog` was
108
+ * declared.
109
+ */
110
+ export interface DatabaseChannelObservation {
111
+ readonly observed: boolean;
112
+ readonly disclosure: string | null;
113
+ readonly recordCount: number;
114
+ }
115
+ export interface ObserveRuntimeData {
116
+ /** Null when the run never started — see `services` and the disclosures for why. */
117
+ readonly executionId: string | null;
118
+ /** The controller's own terminal state for this execution. */
119
+ readonly executionState: string | null;
120
+ /** `RuntimeAdapter.language`, passed through verbatim. Nothing here branches on it (rule 1). */
121
+ readonly adapterLanguage: string | null;
122
+ readonly evidencePath: string;
123
+ readonly services: readonly ObservedService[];
124
+ /** Every evidence item this run wrote, by `eventType`. */
125
+ readonly evidenceByType: Readonly<Record<string, number>>;
126
+ readonly correlation: CorrelationSummary | null;
127
+ readonly wrote: RuntimeWriteSummary;
128
+ /** RG-4/RG-6 — non-null only when "journey" was declared and the run reached its readiness
129
+ * window. Null means no journey was declared, or the run never got that far — never
130
+ * fabricated as an empty-but-"ran" outcome. See `runtime-journey-drive.ts`. */
131
+ readonly journey: JourneyDriveOutcome | null;
132
+ /**
133
+ * RG-5(c). Null only on a refusal path that never attempted this channel
134
+ * at all (nothing spawned) — a different fact from a channel that ran and
135
+ * observed nothing, which is `{observed: false, ...}`.
136
+ */
137
+ readonly database: DatabaseChannelObservation | null;
138
+ }
139
+ /** One service's declaration, resolved against the repository root. */
140
+ interface DeclaredService {
141
+ readonly name: string;
142
+ readonly configuration: ServiceConfiguration;
143
+ readonly readiness: ServiceReadinessSpec;
144
+ readonly attached: boolean;
145
+ /** The shape `writeSavedStart` persists for this service — built once, here, rather than
146
+ * re-derived from `configuration` later: `configuration.env` holds real values, and the
147
+ * point of a separate shape is that nothing downstream can accidentally write one to disk. */
148
+ readonly savable: SavedServiceStart;
149
+ }
150
+ /** RG-4's `journey` option — see the schema's own doc. Declared shape only; resolving a named
151
+ * scenario file and projecting it onto steps happens in `run()`, which is async and has the
152
+ * repo path this parse-only function does not need. */
153
+ export interface DeclaredJourney {
154
+ readonly service: string | undefined;
155
+ readonly scenarioName: string | undefined;
156
+ readonly startUrl: string | undefined;
157
+ readonly recordVideo: boolean | undefined;
158
+ readonly headless: boolean | undefined;
159
+ readonly settleForMs: number | undefined;
160
+ }
161
+ /** RG-5(c)'s `database` option — see the schema's own doc. `undefined` means no Postgres
162
+ * channel was declared at all, the "channel absent" case the reply must disclose. */
163
+ export interface DeclaredDatabaseChannel {
164
+ readonly statementLog: PostgresStatementLogSource;
165
+ readonly service: string | undefined;
166
+ }
167
+ export declare function readArguments(args: Record<string, unknown>, repoPath: string, savedStart?: SavedStart): {
168
+ readonly profile: EnvironmentProfile;
169
+ readonly adapterSpec: RuntimeAdapterSpec;
170
+ readonly declared: readonly DeclaredService[];
171
+ /** True when "services" was omitted and this call fell back to a prior successful run's
172
+ * saved settings (build item 3) — false whenever the caller supplied its own, even if
173
+ * they happen to be identical to what is saved. */
174
+ readonly usedSavedServices: boolean;
175
+ /** Saved environment-variable names (never values — see `SavedServiceStart`) with nothing
176
+ * currently set under them in this process. Empty whenever `usedSavedServices` is false. */
177
+ readonly missingSavedEnv: readonly string[];
178
+ readonly observeForMs: number;
179
+ readonly timeoutMs: number;
180
+ readonly fidelityRaw: number;
181
+ readonly environmentTier: string;
182
+ readonly evidencePath: string;
183
+ readonly resourceLimits: ResourceLimits | undefined;
184
+ readonly filesystemPolicy: FilesystemPolicy | undefined;
185
+ readonly networkPolicy: NetworkPolicy | undefined;
186
+ readonly sandboxBackend: "bwrap" | "container" | undefined;
187
+ readonly journey: DeclaredJourney | undefined;
188
+ readonly database: DeclaredDatabaseChannel | undefined;
189
+ };
190
+ /** Exported so `observe.ts` can dispatch the "runtime" verb to this exact body — the merge
191
+ * reuses this function rather than reimplementing it (mcp-surface-consolidation.md). */
192
+ export declare function run(args: Record<string, unknown>, ctx: ToolContext): Promise<ToolAnswer<ObserveRuntimeData>>;
193
+ /**
194
+ * The tail of a failed service's captured output that survives into the reply.
195
+ *
196
+ * Tail rather than head: a process that dies prints its reason last, so
197
+ * clipping from the front is the one choice guaranteed to discard the line this
198
+ * field exists to carry.
199
+ */
200
+ export declare const STARTUP_OUTPUT_TAIL_LIMIT = 4000;
201
+ /** One row per **declared** service, not per spawned process — a never-started service
202
+ * appears with `started: false` rather than vanishing ("it did nothing" vs "it never ran").
203
+ *
204
+ * `startupOutput` is keyed by service name. Callers pass `{}` for a run that did
205
+ * not fail; the policy lives at the call site, where the outcome is known, rather
206
+ * than in here. Exported for `observe-runtime-startup-output.test.ts`, which pins
207
+ * the mapping without needing a runtime new enough to produce real output. */
208
+ export declare function describeServices(processes: readonly ProcessHandle[], declared: readonly {
209
+ readonly name: string;
210
+ readonly attached: boolean;
211
+ }[], startupOutput?: Readonly<Record<string, string>>): readonly ObservedService[];
212
+ /** The two fields the channel mapping reads. Narrower than Evidence on purpose: observe_tests
213
+ * counts channels before its evidence has an evidenceId/executionId — this lets both tools
214
+ * share one implementation rather than a cast that hides the unused fields. */
215
+ type WitnessableEvidence = Pick<Evidence, "eventType" | "source">;
216
+ /** `E` for this run — channels actually seen, via @descryy/ir's independentSignalTypes
217
+ * (clamp-to-six and null-drop are that function's rules, not duplicated here). Exported for
218
+ * its own test — this mapping decides `strongly supported` vs `unconfirmed`. */
219
+ export declare function witnessedSignalTypes(evidence: readonly WitnessableEvidence[]): SignalTypeCount;
220
+ /**
221
+ * The R4 write, and the one join this tool performs: for every evidence item resolved to an
222
+ * endpoint that also carries a call-site stack, ask confirmObservedFrontendCaller. Both come
223
+ * from one observation — nothing here pairs two separate evidence items, on purpose.
224
+ *
225
+ * A stack resolved on some OTHER evidence item (`family === "symbol"`, e.g. a BACKEND_LOG or
226
+ * EXCEPTION line elsewhere in the same run) is never joined to an endpoint item that lacks its
227
+ * own stack, even when both exist in the same run's evidence. `resolveObservedFrontendCaller`
228
+ * takes a stack on faith as "the call site that reached this endpoint" — it does not itself
229
+ * verify the direction, so the caller supplying the wrong stack is exactly how a wrong edge
230
+ * gets minted at R4 with full confidence. Nothing on `Evidence` disambiguates that direction
231
+ * for a cross-record pair: `traceId`/`requestId` can say two items belong to the same request,
232
+ * never that the stack-bearing one is the endpoint's CALLER rather than code running inside its
233
+ * own handling of that same request — which is the common shape (a handler's own exception
234
+ * stack, correlated to the request it was handling, not to whoever issued it). Joining on that
235
+ * key would systematically mint edges in the SERVES direction mislabelled as CALLS/USES_API —
236
+ * worse than the gap disclosed below (rule 2). So this is measured and reported via
237
+ * `unjoinedSplitEvidence`, never inferred into an edge.
238
+ */
239
+ export declare function writeObservations(input: {
240
+ readonly driver: SqlDriver;
241
+ readonly pass: {
242
+ readonly attributed: readonly {
243
+ readonly evidenceId: string;
244
+ readonly graphNodeId: string;
245
+ readonly family: string;
246
+ }[];
247
+ };
248
+ readonly evidenceStore: EvidenceStore;
249
+ readonly repo: string;
250
+ readonly repoRoot: string;
251
+ readonly runId: string;
252
+ readonly commitSha: string;
253
+ }): RuntimeWriteSummary;
254
+ /** §7's `willDo` — and, since readArguments runs first, where an invalid call is refused.
255
+ * Always returns a string, never undefined: unlike `questions`, no call here has nothing
256
+ * to confirm. Reads the *parsed* services so the confirmation sentence matches the run exactly. */
257
+ /** Exported for the same reason as `run` above — `observe.ts` dispatches the "runtime" verb's
258
+ * consent sentence to this exact function. */
259
+ export declare function describeAction(args: Record<string, unknown>, ctx: ToolContext): string;
260
+ export declare const observeRuntimeTool: ToolDefinition;
261
+ export {};
262
+ //# sourceMappingURL=observe-runtime.d.ts.map