@descryy/mcp 0.11.5 → 0.11.6

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 +3 -3
@@ -0,0 +1,591 @@
1
+ /**
2
+ * Browser port for @descryy/mcp — testable without a real Chromium; runtime-browser isn't
3
+ * registry-published yet (§3.1). Mirrors runtime-browser's real exports (exception: `type()`);
4
+ * no verdict/severity (DEC-381). Rule 1: nothing here names a language, framework or extension.
5
+ */
6
+ import type { StackTrace } from "@descryy/runtime-contracts";
7
+ import type { PageFingerprint } from "./capability-probe.ts";
8
+ import type { WaitForTarget } from "./wait-target.ts";
9
+ /** One document a snapshot read — an iframe inside the page. The main document is never a
10
+ * `FrameRef`; it is `null`, so "in the page" and "in a frame" can never render alike. */
11
+ export interface FrameRef {
12
+ /** Stable within one snapshot only, exactly like a `ref` — a frame's index is not a page
13
+ * identity, and pretending otherwise would let a caller carry it across a re-render. */
14
+ readonly id: string;
15
+ readonly url: string;
16
+ /** The frame's `name`, or the iframe element's `id`/`title` — whichever it carries, so a
17
+ * reply reads "the checkout frame" rather than "frame 3". Null when it carries none. */
18
+ readonly name: string | null;
19
+ }
20
+ /** A page element as a snapshot presented it. `ref` is the handle an action takes. */
21
+ export interface SnapshotElement {
22
+ readonly ref: string;
23
+ readonly role: string;
24
+ readonly name: string;
25
+ /** How the driver finds this element again; every verb takes a `ref`, never a selector,
26
+ * because a ref ties to the snapshot the agent saw. Also what a scenario persists across
27
+ * sessions. **Null when no candidate resolves to exactly one element** (rule 2: no guessed selector). */
28
+ readonly selector: string | null;
29
+ /** The iframe this element lives in, or null for the main document. A selector is unique
30
+ * only within its own document — two frames can both hold `[id="submit"]` — so a selector
31
+ * without this beside it is ambiguous. Elements in a frame carry `selector: null` for that
32
+ * reason: the scenario format has no field to name a frame, so there is nothing that could
33
+ * be saved, and a selector that silently replayed against the main document is the quiet
34
+ * wrong answer rule 2 exists to refuse. They stay actionable by `ref` for this session. */
35
+ readonly frame: FrameRef | null;
36
+ /** True when the element was found inside an **open** shadow root. Its selector, when one
37
+ * was found, is checked for uniqueness both inside that root and across the whole document
38
+ * under piercing resolution — a hook unique only inside its own component is not addressable. */
39
+ readonly inShadowRoot: boolean;
40
+ /**
41
+ * Which component's render produced this element, additive to role+name — never a
42
+ * replacement. Role+name is what survives a production build; this is what does not, so
43
+ * every verb keeps taking `ref` and every scenario keeps saving `role`+`name`+`selector`
44
+ * regardless of what this field says.
45
+ *
46
+ * **Null** means grounding did not run for this element at all — no grounder was
47
+ * configured for this session, or the element carries no `selector` to probe by (grounding
48
+ * resolves a document selector, and a framed or hookless element has none). That is a
49
+ * different fact from `outcome: "refused"`, which means grounding ran and is naming why it
50
+ * could not identify a component — rule 7: a skip and an empty answer must not read alike.
51
+ */
52
+ readonly identity: ElementComponentIdentity | null;
53
+ }
54
+ /** Every way an element's producing component can be reported, as a closed set — mirrors
55
+ * identity grounding's own outcome vocabulary without naming what produced them (rule 1:
56
+ * nothing in this port names a language or framework). */
57
+ export type ComponentIdentityOutcome = "grounded" | "component-only" | "refused";
58
+ /** How this element's producing component was identified. Never a guess: `refused` is a
59
+ * named reason, not an absence, and a caller must not read a null `component` on any
60
+ * outcome as "there is no component" — it means grounding could not say which one. */
61
+ export interface ElementComponentIdentity {
62
+ readonly outcome: ComponentIdentityOutcome;
63
+ /** The component's name, when one was named. Null on `refused`. */
64
+ readonly component: string | null;
65
+ /** The file said to have authored this component. Null when no location was produced. */
66
+ readonly file: string | null;
67
+ readonly line: number | null;
68
+ /**
69
+ * True when `file` names authored source. False when it names compiled output instead —
70
+ * still real, still worth reporting, just not the file a developer wrote. Meaningless when
71
+ * `file` is null.
72
+ */
73
+ readonly authoredSource: boolean;
74
+ /** Why nothing could be named. Null except on `refused` — including the production-build
75
+ * case, where the honest answer is a named refusal, never a guessed or mangled name. */
76
+ readonly reason: string | null;
77
+ }
78
+ /** One document the snapshot tried to read. A frame that could not be read is present with
79
+ * `enumerated: false` and a reason, never dropped — rule 7: a silent omission and an empty
80
+ * frame are different facts and must not render alike. */
81
+ export interface FrameReach {
82
+ /** Null for the main document. */
83
+ readonly frame: FrameRef | null;
84
+ readonly enumerated: boolean;
85
+ /** How many interactive elements this document contributed. 0 with `enumerated: true` means
86
+ * the document really holds none. */
87
+ readonly elements: number;
88
+ /** Why nothing was read. Null exactly when `enumerated` is true. */
89
+ readonly reason: string | null;
90
+ }
91
+ /** What shadow-root piercing saw, and what it cannot see. */
92
+ export interface ShadowReach {
93
+ /** Elements in this snapshot that came from inside an open shadow root. */
94
+ readonly piercedElements: number;
95
+ /** Elements whose own hook was unique inside their shadow root but **not** across the
96
+ * document, so their selector was withheld. Counted rather than guessed at. */
97
+ readonly ambiguousInDocument: number;
98
+ /** Custom elements exposing no reachable shadow root and holding no light-DOM children —
99
+ * the signature of a **closed** shadow root. No API can confirm one: `element.shadowRoot`
100
+ * is null for "closed" and for "none at all" alike. **Suspected, never asserted**, and
101
+ * reported so a caller knows the page may hold controls nothing here can reach. */
102
+ readonly suspectedClosedHosts: number;
103
+ /** False when the closed-root probe could not run at all — then `suspectedClosedHosts: 0`
104
+ * means "not looked for", not "none found", and a caller must not read it as the latter. */
105
+ readonly probed: boolean;
106
+ }
107
+ /**
108
+ * What the interactive query matched and this snapshot would not repeat.
109
+ *
110
+ * The CSS query matches what is in the *document*; a snapshot is supposed to say what is on
111
+ * the *page*. A `display:none` menu, a closed `<dialog>`, an inactive tab panel and `<canvas>`
112
+ * fallback content all match the query and none of them is on the screen, so listing them is
113
+ * Descry naming a control the user does not have — which rule 2 makes worse than naming none.
114
+ *
115
+ * It is **not** an off-screen count. An element below the fold is on the page and is listed;
116
+ * the reveal pass depends on that, and rejecting it would swap this precision defect for a
117
+ * recall one.
118
+ */
119
+ export interface HiddenReach {
120
+ /** Elements withheld from `elements` because the page renders them nowhere. */
121
+ readonly withheld: number;
122
+ /** Elements the visibility test could not answer for. They are **listed anyway** — omitting
123
+ * on an unanswered question would hide real controls behind a test that did not run — which
124
+ * also makes `withheld` a floor rather than a total whenever this is above zero (rule 7). */
125
+ readonly untested: number;
126
+ }
127
+ /** Nothing withheld and nothing left unanswered — the honest reading for a driver with no DOM. */
128
+ export declare const NO_HIDDEN_REACH: HiddenReach;
129
+ /** What a reveal pass did. Null on `PageSnapshot` when no reveal was asked for — "not
130
+ * attempted" and "attempted and found nothing" are different facts. */
131
+ export interface RevealOutcome {
132
+ /** How many scroll-and-re-enumerate rounds ran. */
133
+ readonly passes: number;
134
+ /** Scrollable containers (`overflow: auto|scroll`) this pass scrolled **in addition to the
135
+ * page itself**. A list inside one does not move when the window does, so a window-only
136
+ * reveal reports "nothing below the fold" about a page whose content is entirely below one.
137
+ * Counted rather than named: a container has no ref and no stable name to give. */
138
+ readonly containersScrolled: number;
139
+ /** Elements that were not in the first enumeration and are still present at the end. */
140
+ readonly revealedElements: number;
141
+ /** Elements seen during the pass that were **gone by the end of it** — a virtualized list
142
+ * recycling its rows. They are counted and not listed, deliberately: a ref to an element
143
+ * the page has already destroyed is a lie, and this number is the honest form of
144
+ * "there is more here than one snapshot can hold at once". */
145
+ readonly recycledElements: number;
146
+ /** True when the pass cap stopped it while the page was still producing new elements — so
147
+ * "nothing more below" and "I stopped looking" stay distinguishable. */
148
+ readonly stoppedAtCap: boolean;
149
+ /** Where the page was left scrolled. Revealing changes the page's scroll position; saying
150
+ * so is cheaper than pretending observation was free. */
151
+ readonly finalScrollY: number;
152
+ /** Frames are not scrolled — only the main document is. Non-empty names the frames whose
153
+ * below-the-fold content this pass did not reach. */
154
+ readonly framesNotScrolled: readonly string[];
155
+ /** Why the pass could not run, or could not run fully. Null when it ran normally. A reveal
156
+ * that silently did nothing and a reveal that found nothing would otherwise read alike. */
157
+ readonly reason: string | null;
158
+ }
159
+ /** How a snapshot should be taken. */
160
+ export interface SnapshotOptions {
161
+ /** Scroll the main document and re-enumerate until it stops producing new elements, or a
162
+ * cap is hit. Off by default: it moves the page, and a virtualized list will destroy rows
163
+ * as it goes. On, it is the only way to see content that does not exist until it scrolls
164
+ * into view. Either way the outcome is reported in `reveal`. */
165
+ readonly reveal?: boolean;
166
+ }
167
+ export type { WaitForTarget } from "./wait-target.ts";
168
+ export interface PageSnapshot {
169
+ readonly url: string;
170
+ readonly title: string;
171
+ readonly elements: readonly SnapshotElement[];
172
+ /** Element count before any budget applied, always uncapped (§5.2) — lets a caller
173
+ * distinguish "no more elements" from "the rest didn't fit". Driver never truncates
174
+ * (equals elements.length here), but lives on the port so a tool can't lose the real count.
175
+ * It counts what this snapshot can hand back a ref for — never what the page might hold
176
+ * after scrolling. That second number, when it is known at all, is `reveal`'s. */
177
+ readonly totalElements: number;
178
+ /** Every document this snapshot tried to read — the main one first, then each iframe,
179
+ * including any it could not read. Always at least one entry. */
180
+ readonly frames: readonly FrameReach[];
181
+ readonly shadow: ShadowReach;
182
+ readonly hidden: HiddenReach;
183
+ /** Null when `SnapshotOptions.reveal` was not set. */
184
+ readonly reveal: RevealOutcome | null;
185
+ }
186
+ /** The main document's entry, for a driver with no frames of its own to report. */
187
+ export declare function mainFrameOnly(elements: number): readonly FrameReach[];
188
+ /** Nothing pierced, nothing suspected — the honest reading for a driver with no DOM behind it. */
189
+ export declare const NO_SHADOW_REACH: ShadowReach;
190
+ /** Every verb that changes the application. `waitFor` is deliberately absent: it performs
191
+ * nothing, so recording it as an action would claim a change that never happened, and
192
+ * `PerformedStep` would carry steps with no target, no url and no text. */
193
+ export type BrowserActionKind = "navigate" | "click" | "type" | "fill" | "select" | "submit";
194
+ export interface ObservedAction {
195
+ readonly action: BrowserActionKind;
196
+ /** Null for `navigate`, which acts on the page rather than on an element. */
197
+ readonly ref: string | null;
198
+ /** How text reached the field — "append" for `type`, "replace" for `fill`, null when no
199
+ * text entered. Without it "field now contains X" and "X was appended" read identically;
200
+ * the runtime collector's INPUT payload carries the same field for the same reason. */
201
+ readonly mode: "replace" | "append" | null;
202
+ readonly url: string;
203
+ readonly at: string;
204
+ }
205
+ /** What rewriteScriptUrls did with one script URL. Per-URL, not a summary — partial mapping
206
+ * is the steady state (own bundle maps, CDN dependency doesn't), and collapsing to a count
207
+ * would hide that boundary and any third-party script a caller should ignore. */
208
+ export interface ScriptUrlOutcome {
209
+ /** The URL as it appeared in the stack, `:line:column` suffix included. */
210
+ readonly url: string;
211
+ /** The on-disk file it was rewritten to, or null when it was left as a URL. */
212
+ readonly mapped: string | null;
213
+ /** Why it was left alone. Null exactly when `mapped` is set. */
214
+ readonly reason: string | null;
215
+ }
216
+ export interface ObservedConsoleError {
217
+ readonly text: string;
218
+ /** Stack rendered from parsed frames, or null. Already rewritten to real files/lines where
219
+ * possible — rewriteScriptUrls runs inside the runtime collector before the parser sees it.
220
+ * A surviving http:// URL is a frame that genuinely didn't map (see scriptUrlMapping). */
221
+ readonly stackText: string | null;
222
+ /** Per-URL mapping outcomes; empty means no rewrite ran (no stack parser configured),
223
+ * not "nothing mapped" — the two must not be reported alike. */
224
+ readonly scriptUrlMapping: readonly ScriptUrlOutcome[];
225
+ readonly at: string;
226
+ }
227
+ /** How a request's lifecycle ended, when the collector can tell. `status: null` used to
228
+ * conflate "never answers" with "hasn't yet" — `"pending"` splits that back out (still
229
+ * in flight at drain, neither success nor failure); `"unanswered"` is Playwright's own requestfailed. */
230
+ /** How a request ended, as far as anything can say. Three of the four come off the
231
+ * collector's own terminal event. The fourth, `"unattributed"`, is this package's and never
232
+ * the collector's: it means a terminal event for this URL exists and Descry cannot say it
233
+ * belongs to *this* request — see `collect()` in `playwright-driver.ts`. It is deliberately
234
+ * not "pending", which is a positive claim that the request is still in flight. */
235
+ export type RequestOutcome = "answered" | "unanswered" | "pending" | "unattributed";
236
+ export interface ObservedRequest {
237
+ readonly method: string;
238
+ readonly url: string;
239
+ /** Null when the request produced no response at all, which is a different fact from a 500. */
240
+ readonly status: number | null;
241
+ /** How this request's lifecycle ended, when the collector reports it. Optional: a separate
242
+ * lane's field to populate, this port can't assume that build is running. Absent degrades to
243
+ * isFailedRequest's pre-existing status-only rule rather than mis-reading an older build. */
244
+ readonly outcome?: RequestOutcome;
245
+ /** The `fetch()` call site as raw text, when the initiator capture claimed one. Null is honest absence. */
246
+ readonly stackText: string | null;
247
+ /** Per-URL mapping outcomes for that call site. See `ScriptUrlOutcome`. */
248
+ readonly scriptUrlMapping: readonly ScriptUrlOutcome[];
249
+ /** Same call site parsed into frames with real file paths. Null unless the caller named a
250
+ * stack-trace parser — this package can't parse a stack itself without naming a language
251
+ * (rule 1). **The field the R4 edge write needs** (confirmObservedFrontendCaller). */
252
+ readonly stackTrace: StackTrace | null;
253
+ readonly at: string;
254
+ }
255
+ /** A request that didn't succeed — mechanical, not a judgement. With no `outcome` (older
256
+ * descry-runtime build): no response, or 4xx/5xx. With `outcome`: "pending" excluded (in-flight
257
+ * proves nothing); "unanswered" is always a failure (requestfailed is stronger than a bare status). */
258
+ export declare function isFailedRequest(request: ObservedRequest): boolean;
259
+ /** Everything witnessed since the last drain. Raw — see this file's header. */
260
+ export interface BrowserObservation {
261
+ readonly actions: readonly ObservedAction[];
262
+ readonly consoleErrors: readonly ObservedConsoleError[];
263
+ /** Every request issued, not only failures — a success proves *this frontend action reached
264
+ * this backend route*, the arrow the R4 edge write runs on. Filtering here would discard
265
+ * it; the reply narrows to failures for readability, correlation does not. */
266
+ readonly requests: readonly ObservedRequest[];
267
+ /** Actions whose network activity hadn't finished when the driver stopped waiting. Without
268
+ * this, "nothing happened" and "I stopped looking" render identically — rule 7 forbids that.
269
+ * Non-empty means that action's observation is incomplete, and says so. */
270
+ readonly unsettled: readonly UnsettledAction[];
271
+ /** B4: facts this evidence path refused to publish, each already named for the user. Populated
272
+ * when a collector payload contradicted itself (a numeric status alongside `"unanswered"`, or
273
+ * the reverse) and the unreconcilable half was therefore dropped. Empty on every ordinary
274
+ * drain; non-empty means this observation is *narrower* than what the collector said, and rule
275
+ * 7 requires saying so rather than letting the narrowing pass as the whole truth. */
276
+ readonly evidenceWarnings: readonly string[];
277
+ }
278
+ export interface UnsettledAction {
279
+ readonly action: ObservedAction["action"];
280
+ readonly ref: string | null;
281
+ /** How long the driver waited before giving up, in ms. */
282
+ readonly waitedMs: number;
283
+ }
284
+ export declare const EMPTY_OBSERVATION: BrowserObservation;
285
+ /** An element the way a scenario stores it — role+name+selector — restated here rather than
286
+ * imported from the scenario format (this port must stay readable with no scenario format in
287
+ * the process, same reasoning as `ScenarioActionKind` mirroring `BrowserActionKind` the other
288
+ * way). `selector` stays nullable, unlike the scenario's `TargetDescriptor` — an element with no
289
+ * stable hook can still be acted on mid-session, it just can never be *saved* (B1, unchanged). */
290
+ export interface PerformedTarget {
291
+ readonly role: string;
292
+ readonly name: string;
293
+ readonly selector: string | null;
294
+ }
295
+ /** One action this session actually performed, kept for the session's whole lifetime —
296
+ * unlike `ObservedAction`, this is never drained. It is provenance for `browser_save_scenario`:
297
+ * a step recorded here was necessarily resolvable at the moment it ran, on this session's own
298
+ * consented origin (every action here acts on a ref that only exists because a snapshot of a
299
+ * consented page issued it) — stronger evidence than re-resolving the same step against a LATER
300
+ * static snapshot, which is exactly what fails for a UI that reveals controls progressively.
301
+ * Assertions have no counterpart here: an assertion is never "performed". */
302
+ export interface PerformedStep {
303
+ readonly action: BrowserActionKind;
304
+ /** The element actually resolved and acted on, at the moment this action ran. Null for `navigate`. */
305
+ readonly target: PerformedTarget | null;
306
+ /** Where a `navigate` went. Null for click/type/fill. */
307
+ readonly url: string | null;
308
+ /** What was entered, for `type`/`fill`. Null otherwise. */
309
+ readonly text: string | null;
310
+ readonly at: string;
311
+ }
312
+ /**
313
+ * One cookie to seed before the first navigation (11.4-b). Deliberately carries no
314
+ * `domain`: the driver sets it to the target origin's own, so a caller cannot name a
315
+ * second origin here even by mistake — accepting one would silently widen the
316
+ * single-origin consent every other browser tool is bound to.
317
+ */
318
+ export interface SeededCookie {
319
+ readonly name: string;
320
+ readonly value: string;
321
+ /** Defaults to "/" when omitted. */
322
+ readonly path?: string;
323
+ readonly httpOnly?: boolean;
324
+ readonly secure?: boolean;
325
+ readonly sameSite?: "Strict" | "Lax" | "None";
326
+ }
327
+ /**
328
+ * An already-authenticated session to seed before the first navigation — 11.4-b.
329
+ * Without this, browser tooling can drive a login *form* within the consented
330
+ * origin but cannot reach a screen that requires an existing session, and
331
+ * re-authenticates on every fresh session. Both halves are same-origin by
332
+ * construction: `SeededCookie` carries no domain, and `localStorage` here is a
333
+ * flat key/value map for the one consented origin rather than Playwright's own
334
+ * multi-origin `storageState` array — a second origin has no field to name.
335
+ */
336
+ export interface BrowserStorageState {
337
+ readonly cookies?: readonly SeededCookie[];
338
+ readonly localStorage?: Readonly<Record<string, string>>;
339
+ }
340
+ /**
341
+ * What `BrowserPageSession.injectStorageState` actually did — the mid-session
342
+ * counterpart to `BrowserLaunchOptions.storageState`, which only ever seeds
343
+ * before the first navigation. A scenario's sign-in step needs this to land a
344
+ * previously captured session (`browser_start_session`'s `saveStorageStateTo`
345
+ * half, or any other cookie/token) into a session that is already open and
346
+ * has already navigated somewhere.
347
+ */
348
+ export interface StorageStateInjectionResult {
349
+ readonly cookiesInjected: number;
350
+ readonly localStorageInjected: number;
351
+ /**
352
+ * Non-null when one or more `localStorage` entries were requested for an
353
+ * origin the page is not currently showing. A page can only write
354
+ * `localStorage` for its own current origin — there is no browser
355
+ * primitive that writes it for an origin the page isn't on — so those
356
+ * entries were skipped rather than silently dropped or written to the
357
+ * wrong origin. Cookies are unaffected: they land regardless of the page's
358
+ * current origin.
359
+ */
360
+ readonly localStorageSkipped: string | null;
361
+ }
362
+ export interface BrowserLaunchOptions {
363
+ readonly targetUrl: string;
364
+ readonly headless?: boolean;
365
+ readonly storageState?: BrowserStorageState;
366
+ /**
367
+ * Headers added to requests **on this session's own origin only** — B1.
368
+ *
369
+ * The second way an application authenticates a browser, and the one a
370
+ * storage state cannot express: a bearer token that lives in the caller's
371
+ * hands rather than in the browser's.
372
+ *
373
+ * The origin restriction is load-bearing and belongs on the port rather
374
+ * than in a driver's discretion. A header set on a whole browser travels
375
+ * with every request that browser makes, which on an ordinary page means
376
+ * the third-party scripts, fonts and analytics endpoints it loads — so an
377
+ * unrestricted implementation of this field hands the developer's token to
378
+ * everyone their page embeds. A driver that cannot scope it must not
379
+ * implement it.
380
+ */
381
+ readonly extraHttpHeaders?: Readonly<Record<string, string>>;
382
+ /**
383
+ * Write this session's cookies and stored data here when it closes, so a
384
+ * login performed once can seed later sessions — B1's "log in once" half.
385
+ *
386
+ * Absolute, and the caller above has already refused a path inside the
387
+ * repository: the file is a live credential.
388
+ */
389
+ readonly saveStorageStateTo?: string;
390
+ }
391
+ /** launchBrowserSessionOrRefuse's refusal, unchanged. `remedy` is supplied by the driver
392
+ * (CHROMIUM_INSTALL_REMEDY), never held as a constant here — a copy would be a second
393
+ * source of truth that goes stale. */
394
+ export interface ChromiumRefusal {
395
+ readonly refusal: "chromiumNotInstalled";
396
+ readonly message: string;
397
+ readonly remedy: string;
398
+ readonly expectedExecutablePath: string;
399
+ }
400
+ export type BrowserLaunchResult = {
401
+ readonly launched: true;
402
+ readonly session: BrowserPageSession;
403
+ } | ({
404
+ readonly launched: false;
405
+ } & ChromiumRefusal);
406
+ /** The browser died. Distinct from a closed session: a crash invalidates the id rather than ending it cleanly. */
407
+ export declare class BrowserSessionCrashedError extends Error {
408
+ readonly sessionId: string;
409
+ constructor(sessionId: string);
410
+ }
411
+ /** The ref named no element in the current snapshot. Thrown for an invented ref and for a
412
+ * ref from a superseded snapshot alike — both are acting on an element the agent never saw;
413
+ * falling back to a stale selector could click whatever now matches on an uninspected page. */
414
+ export declare class UnknownElementRefError extends Error {
415
+ constructor(ref: string);
416
+ }
417
+ /** The ref named an element that is not a chooser, so there is no option to pick. Distinct
418
+ * from `NoSuchOptionError`: one says "wrong kind of element", the other "right element,
419
+ * wrong value", and they send a caller to two different fixes. */
420
+ export declare class NotSelectableError extends Error {
421
+ constructor(ref: string, role: string);
422
+ }
423
+ /** The element is a chooser, but nothing it offers matches the value asked for. Carries the
424
+ * real option list rather than a count: the next call needs the labels, and a caller told
425
+ * only "no match" has to spend a round trip discovering them. */
426
+ export declare class NoSuchOptionError extends Error {
427
+ readonly available: readonly string[];
428
+ constructor(ref: string, value: string, available: readonly string[]);
429
+ }
430
+ /** Nothing about this element amounts to a submit. Either it is in no form at all, or its
431
+ * form carries no submit control — in which case whatever submits it is a script on some
432
+ * other control, and clicking that control is the honest way to reach it. */
433
+ export declare class NotSubmittableError extends Error {
434
+ constructor(ref: string, reason: "noForm" | "noSubmitControl");
435
+ }
436
+ /**
437
+ * The element is on the page and cannot be operated by a person.
438
+ *
439
+ * Distinct from every refusal above it, which say the element is the wrong
440
+ * *kind* of thing. This one says it is the right kind and the page has put it
441
+ * out of reach — an `inert` subtree under a modal, or a disabled control.
442
+ *
443
+ * It exists because `click` gets this check from Playwright's own actionability
444
+ * rules and `select`/`submit` do not: `selectOption` does not hit-test, and a
445
+ * form submitted through `requestSubmit()` in page script is not checked at
446
+ * all. So two verbs could drive a control their sibling `click` correctly
447
+ * refused, and rule 2 makes that worse than a missing capability — a false
448
+ * success is recorded as reach.
449
+ */
450
+ export declare class NotOperableError extends Error {
451
+ constructor(ref: string, reason: "inert" | "disabled");
452
+ }
453
+ export interface WaitForOptions {
454
+ /** Hard ceiling in ms. The driver applies its own maximum; the outcome reports the ceiling actually used. */
455
+ readonly timeoutMs?: number;
456
+ }
457
+ /**
458
+ * What a wait ended up seeing.
459
+ *
460
+ * Always carries a fresh snapshot, on both outcomes. On success because the element the
461
+ * wait was for has just come into existence and needs a ref; on a timeout because "it did
462
+ * not appear" and "here is what is there instead" is the difference between a caller that
463
+ * can act next and one that has to guess. Taking it invalidates every earlier ref, which is
464
+ * a real consequence of waiting for a page to change and is disclosed rather than hidden.
465
+ */
466
+ export interface WaitForOutcome {
467
+ readonly appeared: boolean;
468
+ /** How long was actually spent waiting, in ms. */
469
+ readonly waitedMs: number;
470
+ /** The ceiling that applied, after the driver's own maximum. Reported so a caller can tell a short wait from a clamped one. */
471
+ readonly timeoutMs: number;
472
+ /** The first element that satisfied the target, or null. */
473
+ readonly matched: SnapshotElement | null;
474
+ /** How many elements satisfied it. More than one is not a refusal — the question a wait asks is whether the thing is there — but a caller acting on `matched` should know it was not the only one. */
475
+ readonly matchCount: number;
476
+ /** The page as it stood when the wait ended. Every ref issued before this call is now stale. */
477
+ readonly snapshot: PageSnapshot;
478
+ }
479
+ export interface BrowserPageSession {
480
+ readonly sessionId: string;
481
+ /** When the page was actually created, ISO-8601. What evidence is ordered by. */
482
+ readonly startedAt: string;
483
+ /** False once the page crashed or closed. Not derivable from closure — runtime-browser
484
+ * verified a real crash still reports isClosed() === false, so this is a member, not
485
+ * something a caller computes. */
486
+ isUsable(): boolean;
487
+ currentUrl(): string;
488
+ navigate(url: string): Promise<void>;
489
+ snapshot(options?: SnapshotOptions): Promise<PageSnapshot>;
490
+ click(ref: string): Promise<void>;
491
+ /** Types real keystrokes, appending to the field. Unlike `fill`, **this fires key events** —
492
+ * an autocomplete, per-character validation, or debounced search sees nothing from `fill`.
493
+ * Using `fill` on such a field is a wrong answer from entirely correct code. */
494
+ type(ref: string, text: string): Promise<void>;
495
+ /** Replace the element's value with `text`, setting it directly. Fires no key events. */
496
+ fill(ref: string, text: string): Promise<void>;
497
+ /** Choose `value` on a chooser, by option value or by the label a person reads — whichever
498
+ * matches exactly. Refuses rather than picking a near match (`NoSuchOptionError`), and
499
+ * refuses on an element that offers nothing to choose (`NotSelectableError`). */
500
+ select(ref: string, value: string): Promise<void>;
501
+ /** Submit the form `ref` sits in, through that form's own submit control, so the page sees
502
+ * the submission it would see from a person. Refuses with `NotSubmittableError` when the
503
+ * element is in no form, or in a form with no submit control — neither is guessed at. */
504
+ submit(ref: string): Promise<void>;
505
+ /** Wait until an element matching `target` is on the page, or until the ceiling. Performs
506
+ * nothing, so it records no action; it is still not a pure read, because the fresh snapshot
507
+ * it returns invalidates every ref issued before it. A timeout is an outcome, never a throw —
508
+ * "it did not appear" is a fact about the page and the caller needs it in hand. */
509
+ waitFor(target: WaitForTarget, options?: WaitForOptions): Promise<WaitForOutcome>;
510
+ /** Everything witnessed since the last drain, removed as it's returned. Drained, not peeked —
511
+ * a contract (§4 requires flush on four teardown paths): a peeking read would re-report
512
+ * observations already attached to an earlier reply. */
513
+ /**
514
+ * Why a `saveStorageStateTo` write did not happen, or null — B1.
515
+ *
516
+ * Optional on the port because a driver that was never asked to save one
517
+ * has nothing to report, and a driver that saved successfully reports null.
518
+ * It exists at all because rule 7 makes a silent failure the wrong outcome:
519
+ * a caller who asked for a state and got none would otherwise find out on
520
+ * the next run, when a session seeded from an absent file quietly drove the
521
+ * logged-out surface.
522
+ */
523
+ storageStateSaveFailure?(): string | null;
524
+ /**
525
+ * Injects cookies and localStorage into this session's ALREADY-open
526
+ * browser context — the mid-session counterpart to
527
+ * `BrowserLaunchOptions.storageState`, which only ever seeds before the
528
+ * first navigation. A scenario's sign-in step uses this to land a
529
+ * previously captured session, or any other cookie/token, without
530
+ * replaying a login form on every run.
531
+ *
532
+ * `origin` is named explicitly, unlike the launch-time seed — a
533
+ * mid-drive page has quite possibly navigated away from the session's
534
+ * original target (an SSO redirect, for instance), so there is no single
535
+ * origin to default to the way there is at launch. Cookies land
536
+ * regardless of the page's current origin; `localStorage` can only be
537
+ * written for the origin the page is actually showing right now, and a
538
+ * mismatch is disclosed on the result (`StorageStateInjectionResult.
539
+ * localStorageSkipped`) rather than thrown or silently dropped.
540
+ */
541
+ injectStorageState(origin: string, state: BrowserStorageState): Promise<StorageStateInjectionResult>;
542
+ drainEvidence(): Promise<BrowserObservation>;
543
+ /** Every action this session has performed, in order, since it opened — never drained (contrast
544
+ * `drainEvidence`), so `browser_save_scenario` can check a step against the whole session's
545
+ * history, not just what has not yet been reported. There is no path back to a
546
+ * `BrowserPageSession` once its session id is closed or reaped (`registry.ts`'s `use()` returns
547
+ * `ok: false`), so this history is unreachable — never fabricable — after `browser_close_session`. */
548
+ performedSteps(): readonly PerformedStep[];
549
+ /**
550
+ * Count the shapes on this page that put reach at risk — shadow roots, child
551
+ * frames, windowed regions, a canvas, a password field, a challenge (§4.2).
552
+ *
553
+ * **Optional on purpose.** A driver that cannot probe must be able to say so
554
+ * by not having the method, because the alternative is a driver returning a
555
+ * fingerprint of zeroes, which reads as a clean page rather than as an
556
+ * unexamined one. `reach-recording-session.ts` records the absence as a skip.
557
+ */
558
+ fingerprint?(): Promise<PageFingerprint>;
559
+ /**
560
+ * RT-263: a fast, read-only reachability probe for `targetUrl`, run before a
561
+ * scenario replay spends real navigate/step timeouts discovering the same thing —
562
+ * "the application this session was opened against has since died." Optional
563
+ * because it is only meaningful for a page session actually backed by a network
564
+ * client; the fake driver used in tests has no real network to probe and correctly
565
+ * leaves this undefined rather than guessing an answer. `null` means "not
566
+ * applicable" (e.g. an unparseable target) — the caller should proceed as if this
567
+ * method did not exist, not treat it as a refusal.
568
+ */
569
+ probeTargetReachable?(targetUrl: string): Promise<{
570
+ readonly reachable: boolean;
571
+ readonly message: string;
572
+ } | null>;
573
+ /** Tear down and return whatever was still held. Idempotent, returns the final flush rather
574
+ * than void — evidence captured then dropped is worse than never captured, since nothing
575
+ * discloses it; every path, crash included, hands back what it was holding. */
576
+ close(): Promise<BrowserObservation>;
577
+ }
578
+ export interface BrowserDriver {
579
+ /** Open a session at targetUrl, or refuse. A missing browser is a **returned value**, never
580
+ * a thrown error, so a tool mapping it to `refused` can't forget to catch it — `refused` is
581
+ * a fact about Descry, never the user's code. */
582
+ launch(options: BrowserLaunchOptions): Promise<BrowserLaunchResult>;
583
+ /** Same probe as `BrowserPageSession.probeTargetReachable`, run before `launch()` itself —
584
+ * see that method's doc. Optional for the same reason: the fake driver has nothing real
585
+ * to probe. */
586
+ probeTargetReachable?(targetUrl: string): Promise<{
587
+ readonly reachable: boolean;
588
+ readonly message: string;
589
+ } | null>;
590
+ }
591
+ //# sourceMappingURL=driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/browser/driver.ts"],"names":[],"mappings":"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"}