@descryy/mcp 0.11.3 → 0.11.5

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 (441) hide show
  1. package/package.json +20 -20
  2. package/dist/action-handshake.d.ts +0 -38
  3. package/dist/action-handshake.d.ts.map +0 -1
  4. package/dist/action-handshake.js +0 -127
  5. package/dist/action-handshake.js.map +0 -1
  6. package/dist/bin/descry-mcp.d.ts +0 -7
  7. package/dist/bin/descry-mcp.d.ts.map +0 -1
  8. package/dist/bin/descry-mcp.js +0 -72
  9. package/dist/bin/descry-mcp.js.map +0 -1
  10. package/dist/browser/auth.d.ts +0 -84
  11. package/dist/browser/auth.d.ts.map +0 -1
  12. package/dist/browser/auth.js +0 -233
  13. package/dist/browser/auth.js.map +0 -1
  14. package/dist/browser/capability-probe.d.ts +0 -109
  15. package/dist/browser/capability-probe.d.ts.map +0 -1
  16. package/dist/browser/capability-probe.js +0 -201
  17. package/dist/browser/capability-probe.js.map +0 -1
  18. package/dist/browser/driver.d.ts +0 -570
  19. package/dist/browser/driver.d.ts.map +0 -1
  20. package/dist/browser/driver.js +0 -116
  21. package/dist/browser/driver.js.map +0 -1
  22. package/dist/browser/evidence.d.ts +0 -28
  23. package/dist/browser/evidence.d.ts.map +0 -1
  24. package/dist/browser/evidence.js +0 -82
  25. package/dist/browser/evidence.js.map +0 -1
  26. package/dist/browser/fake-driver.d.ts +0 -116
  27. package/dist/browser/fake-driver.d.ts.map +0 -1
  28. package/dist/browser/fake-driver.js +0 -416
  29. package/dist/browser/fake-driver.js.map +0 -1
  30. package/dist/browser/fault-attribution.d.ts +0 -178
  31. package/dist/browser/fault-attribution.d.ts.map +0 -1
  32. package/dist/browser/fault-attribution.js +0 -266
  33. package/dist/browser/fault-attribution.js.map +0 -1
  34. package/dist/browser/graph-write.d.ts +0 -45
  35. package/dist/browser/graph-write.d.ts.map +0 -1
  36. package/dist/browser/graph-write.js +0 -103
  37. package/dist/browser/graph-write.js.map +0 -1
  38. package/dist/browser/identity-graph-write.d.ts +0 -55
  39. package/dist/browser/identity-graph-write.d.ts.map +0 -1
  40. package/dist/browser/identity-graph-write.js +0 -45
  41. package/dist/browser/identity-graph-write.js.map +0 -1
  42. package/dist/browser/page-probe.d.ts +0 -81
  43. package/dist/browser/page-probe.d.ts.map +0 -1
  44. package/dist/browser/page-probe.js +0 -202
  45. package/dist/browser/page-probe.js.map +0 -1
  46. package/dist/browser/playwright-driver.d.ts +0 -114
  47. package/dist/browser/playwright-driver.d.ts.map +0 -1
  48. package/dist/browser/playwright-driver.js +0 -1479
  49. package/dist/browser/playwright-driver.js.map +0 -1
  50. package/dist/browser/provider.d.ts +0 -26
  51. package/dist/browser/provider.d.ts.map +0 -1
  52. package/dist/browser/provider.js +0 -14
  53. package/dist/browser/provider.js.map +0 -1
  54. package/dist/browser/reach-recording-session.d.ts +0 -44
  55. package/dist/browser/reach-recording-session.d.ts.map +0 -1
  56. package/dist/browser/reach-recording-session.js +0 -143
  57. package/dist/browser/reach-recording-session.js.map +0 -1
  58. package/dist/browser/reachability.d.ts +0 -168
  59. package/dist/browser/reachability.d.ts.map +0 -1
  60. package/dist/browser/reachability.js +0 -294
  61. package/dist/browser/reachability.js.map +0 -1
  62. package/dist/browser/registry.d.ts +0 -126
  63. package/dist/browser/registry.d.ts.map +0 -1
  64. package/dist/browser/registry.js +0 -177
  65. package/dist/browser/registry.js.map +0 -1
  66. package/dist/browser/scenario-provenance.d.ts +0 -23
  67. package/dist/browser/scenario-provenance.d.ts.map +0 -1
  68. package/dist/browser/scenario-provenance.js +0 -73
  69. package/dist/browser/scenario-provenance.js.map +0 -1
  70. package/dist/browser/scenario-resolve.d.ts +0 -28
  71. package/dist/browser/scenario-resolve.d.ts.map +0 -1
  72. package/dist/browser/scenario-resolve.js +0 -96
  73. package/dist/browser/scenario-resolve.js.map +0 -1
  74. package/dist/browser/scenario-runner.d.ts +0 -72
  75. package/dist/browser/scenario-runner.d.ts.map +0 -1
  76. package/dist/browser/scenario-runner.js +0 -353
  77. package/dist/browser/scenario-runner.js.map +0 -1
  78. package/dist/browser/stack-parser.d.ts +0 -19
  79. package/dist/browser/stack-parser.d.ts.map +0 -1
  80. package/dist/browser/stack-parser.js +0 -85
  81. package/dist/browser/stack-parser.js.map +0 -1
  82. package/dist/browser/tool-support.d.ts +0 -71
  83. package/dist/browser/tool-support.d.ts.map +0 -1
  84. package/dist/browser/tool-support.js +0 -216
  85. package/dist/browser/tool-support.js.map +0 -1
  86. package/dist/browser/url-scheme.d.ts +0 -14
  87. package/dist/browser/url-scheme.d.ts.map +0 -1
  88. package/dist/browser/url-scheme.js +0 -38
  89. package/dist/browser/url-scheme.js.map +0 -1
  90. package/dist/browser/wait-target.d.ts +0 -37
  91. package/dist/browser/wait-target.d.ts.map +0 -1
  92. package/dist/browser/wait-target.js +0 -54
  93. package/dist/browser/wait-target.js.map +0 -1
  94. package/dist/cancellation.d.ts +0 -20
  95. package/dist/cancellation.d.ts.map +0 -1
  96. package/dist/cancellation.js +0 -41
  97. package/dist/cancellation.js.map +0 -1
  98. package/dist/capped.d.ts +0 -17
  99. package/dist/capped.d.ts.map +0 -1
  100. package/dist/capped.js +0 -15
  101. package/dist/capped.js.map +0 -1
  102. package/dist/credential-store.d.ts +0 -22
  103. package/dist/credential-store.d.ts.map +0 -1
  104. package/dist/credential-store.js +0 -33
  105. package/dist/credential-store.js.map +0 -1
  106. package/dist/disclosure-ledger.d.ts +0 -14
  107. package/dist/disclosure-ledger.d.ts.map +0 -1
  108. package/dist/disclosure-ledger.js +0 -18
  109. package/dist/disclosure-ledger.js.map +0 -1
  110. package/dist/evidence/observed-route-evidence.d.ts +0 -25
  111. package/dist/evidence/observed-route-evidence.d.ts.map +0 -1
  112. package/dist/evidence/observed-route-evidence.js +0 -76
  113. package/dist/evidence/observed-route-evidence.js.map +0 -1
  114. package/dist/heap.d.ts +0 -61
  115. package/dist/heap.d.ts.map +0 -1
  116. package/dist/heap.js +0 -82
  117. package/dist/heap.js.map +0 -1
  118. package/dist/heartbeat.d.ts +0 -46
  119. package/dist/heartbeat.d.ts.map +0 -1
  120. package/dist/heartbeat.js +0 -66
  121. package/dist/heartbeat.js.map +0 -1
  122. package/dist/index.d.ts +0 -32
  123. package/dist/index.d.ts.map +0 -1
  124. package/dist/index.js +0 -19
  125. package/dist/index.js.map +0 -1
  126. package/dist/module-trust.d.ts +0 -37
  127. package/dist/module-trust.d.ts.map +0 -1
  128. package/dist/module-trust.js +0 -77
  129. package/dist/module-trust.js.map +0 -1
  130. package/dist/path-confinement.d.ts +0 -31
  131. package/dist/path-confinement.d.ts.map +0 -1
  132. package/dist/path-confinement.js +0 -44
  133. package/dist/path-confinement.js.map +0 -1
  134. package/dist/planner/predict-then-propose.d.ts +0 -134
  135. package/dist/planner/predict-then-propose.d.ts.map +0 -1
  136. package/dist/planner/predict-then-propose.js +0 -138
  137. package/dist/planner/predict-then-propose.js.map +0 -1
  138. package/dist/planner/propose-journey.d.ts +0 -75
  139. package/dist/planner/propose-journey.d.ts.map +0 -1
  140. package/dist/planner/propose-journey.js +0 -96
  141. package/dist/planner/propose-journey.js.map +0 -1
  142. package/dist/protocol.d.ts +0 -57
  143. package/dist/protocol.d.ts.map +0 -1
  144. package/dist/protocol.js +0 -90
  145. package/dist/protocol.js.map +0 -1
  146. package/dist/registry.d.ts +0 -103
  147. package/dist/registry.d.ts.map +0 -1
  148. package/dist/registry.js +0 -319
  149. package/dist/registry.js.map +0 -1
  150. package/dist/render.d.ts +0 -580
  151. package/dist/render.d.ts.map +0 -1
  152. package/dist/render.js +0 -867
  153. package/dist/render.js.map +0 -1
  154. package/dist/runtime-registry.d.ts +0 -22
  155. package/dist/runtime-registry.d.ts.map +0 -1
  156. package/dist/runtime-registry.js +0 -142
  157. package/dist/runtime-registry.js.map +0 -1
  158. package/dist/sandbox-defaults.d.ts +0 -41
  159. package/dist/sandbox-defaults.d.ts.map +0 -1
  160. package/dist/sandbox-defaults.js +0 -14
  161. package/dist/sandbox-defaults.js.map +0 -1
  162. package/dist/scenarios/browser-run-plan-projection.d.ts +0 -161
  163. package/dist/scenarios/browser-run-plan-projection.d.ts.map +0 -1
  164. package/dist/scenarios/browser-run-plan-projection.js +0 -264
  165. package/dist/scenarios/browser-run-plan-projection.js.map +0 -1
  166. package/dist/scenarios/credential-ref.d.ts +0 -102
  167. package/dist/scenarios/credential-ref.d.ts.map +0 -1
  168. package/dist/scenarios/credential-ref.js +0 -148
  169. package/dist/scenarios/credential-ref.js.map +0 -1
  170. package/dist/scenarios/index.d.ts +0 -7
  171. package/dist/scenarios/index.d.ts.map +0 -1
  172. package/dist/scenarios/index.js +0 -7
  173. package/dist/scenarios/index.js.map +0 -1
  174. package/dist/scenarios/parse.d.ts +0 -18
  175. package/dist/scenarios/parse.d.ts.map +0 -1
  176. package/dist/scenarios/parse.js +0 -212
  177. package/dist/scenarios/parse.js.map +0 -1
  178. package/dist/scenarios/scenario.d.ts +0 -93
  179. package/dist/scenarios/scenario.d.ts.map +0 -1
  180. package/dist/scenarios/scenario.js +0 -27
  181. package/dist/scenarios/scenario.js.map +0 -1
  182. package/dist/scenarios/secret-ref.d.ts +0 -86
  183. package/dist/scenarios/secret-ref.d.ts.map +0 -1
  184. package/dist/scenarios/secret-ref.js +0 -125
  185. package/dist/scenarios/secret-ref.js.map +0 -1
  186. package/dist/scenarios/storage.d.ts +0 -21
  187. package/dist/scenarios/storage.d.ts.map +0 -1
  188. package/dist/scenarios/storage.js +0 -103
  189. package/dist/scenarios/storage.js.map +0 -1
  190. package/dist/server.d.ts +0 -61
  191. package/dist/server.d.ts.map +0 -1
  192. package/dist/server.js +0 -541
  193. package/dist/server.js.map +0 -1
  194. package/dist/session.d.ts +0 -243
  195. package/dist/session.d.ts.map +0 -1
  196. package/dist/session.js +0 -602
  197. package/dist/session.js.map +0 -1
  198. package/dist/tools/alias-kit.d.ts +0 -29
  199. package/dist/tools/alias-kit.d.ts.map +0 -1
  200. package/dist/tools/alias-kit.js +0 -21
  201. package/dist/tools/alias-kit.js.map +0 -1
  202. package/dist/tools/aliases.d.ts +0 -42
  203. package/dist/tools/aliases.d.ts.map +0 -1
  204. package/dist/tools/aliases.js +0 -52
  205. package/dist/tools/aliases.js.map +0 -1
  206. package/dist/tools/analyze-workspace.d.ts +0 -52
  207. package/dist/tools/analyze-workspace.d.ts.map +0 -1
  208. package/dist/tools/analyze-workspace.js +0 -207
  209. package/dist/tools/analyze-workspace.js.map +0 -1
  210. package/dist/tools/analyze.d.ts +0 -163
  211. package/dist/tools/analyze.d.ts.map +0 -1
  212. package/dist/tools/analyze.js +0 -724
  213. package/dist/tools/analyze.js.map +0 -1
  214. package/dist/tools/browser-click.d.ts +0 -18
  215. package/dist/tools/browser-click.d.ts.map +0 -1
  216. package/dist/tools/browser-click.js +0 -110
  217. package/dist/tools/browser-click.js.map +0 -1
  218. package/dist/tools/browser-close-session.d.ts +0 -39
  219. package/dist/tools/browser-close-session.d.ts.map +0 -1
  220. package/dist/tools/browser-close-session.js +0 -120
  221. package/dist/tools/browser-close-session.js.map +0 -1
  222. package/dist/tools/browser-fill.d.ts +0 -18
  223. package/dist/tools/browser-fill.d.ts.map +0 -1
  224. package/dist/tools/browser-fill.js +0 -117
  225. package/dist/tools/browser-fill.js.map +0 -1
  226. package/dist/tools/browser-navigate.d.ts +0 -15
  227. package/dist/tools/browser-navigate.d.ts.map +0 -1
  228. package/dist/tools/browser-navigate.js +0 -104
  229. package/dist/tools/browser-navigate.js.map +0 -1
  230. package/dist/tools/browser-read.d.ts +0 -33
  231. package/dist/tools/browser-read.d.ts.map +0 -1
  232. package/dist/tools/browser-read.js +0 -113
  233. package/dist/tools/browser-read.js.map +0 -1
  234. package/dist/tools/browser-run-scenario.d.ts +0 -28
  235. package/dist/tools/browser-run-scenario.d.ts.map +0 -1
  236. package/dist/tools/browser-run-scenario.js +0 -206
  237. package/dist/tools/browser-run-scenario.js.map +0 -1
  238. package/dist/tools/browser-save-scenario.d.ts +0 -19
  239. package/dist/tools/browser-save-scenario.d.ts.map +0 -1
  240. package/dist/tools/browser-save-scenario.js +0 -447
  241. package/dist/tools/browser-save-scenario.js.map +0 -1
  242. package/dist/tools/browser-select.d.ts +0 -20
  243. package/dist/tools/browser-select.d.ts.map +0 -1
  244. package/dist/tools/browser-select.js +0 -120
  245. package/dist/tools/browser-select.js.map +0 -1
  246. package/dist/tools/browser-snapshot.d.ts +0 -46
  247. package/dist/tools/browser-snapshot.d.ts.map +0 -1
  248. package/dist/tools/browser-snapshot.js +0 -127
  249. package/dist/tools/browser-snapshot.js.map +0 -1
  250. package/dist/tools/browser-start-session.d.ts +0 -24
  251. package/dist/tools/browser-start-session.d.ts.map +0 -1
  252. package/dist/tools/browser-start-session.js +0 -622
  253. package/dist/tools/browser-start-session.js.map +0 -1
  254. package/dist/tools/browser-submit.d.ts +0 -18
  255. package/dist/tools/browser-submit.d.ts.map +0 -1
  256. package/dist/tools/browser-submit.js +0 -106
  257. package/dist/tools/browser-submit.js.map +0 -1
  258. package/dist/tools/browser-type.d.ts +0 -18
  259. package/dist/tools/browser-type.d.ts.map +0 -1
  260. package/dist/tools/browser-type.js +0 -115
  261. package/dist/tools/browser-type.js.map +0 -1
  262. package/dist/tools/browser-wait-for.d.ts +0 -45
  263. package/dist/tools/browser-wait-for.d.ts.map +0 -1
  264. package/dist/tools/browser-wait-for.js +0 -150
  265. package/dist/tools/browser-wait-for.js.map +0 -1
  266. package/dist/tools/browser.d.ts +0 -69
  267. package/dist/tools/browser.d.ts.map +0 -1
  268. package/dist/tools/browser.js +0 -386
  269. package/dist/tools/browser.js.map +0 -1
  270. package/dist/tools/chain.d.ts +0 -41
  271. package/dist/tools/chain.d.ts.map +0 -1
  272. package/dist/tools/chain.js +0 -105
  273. package/dist/tools/chain.js.map +0 -1
  274. package/dist/tools/change-scope.d.ts +0 -25
  275. package/dist/tools/change-scope.d.ts.map +0 -1
  276. package/dist/tools/change-scope.js +0 -110
  277. package/dist/tools/change-scope.js.map +0 -1
  278. package/dist/tools/code-context.d.ts +0 -83
  279. package/dist/tools/code-context.d.ts.map +0 -1
  280. package/dist/tools/code-context.js +0 -416
  281. package/dist/tools/code-context.js.map +0 -1
  282. package/dist/tools/contracts.d.ts +0 -74
  283. package/dist/tools/contracts.d.ts.map +0 -1
  284. package/dist/tools/contracts.js +0 -196
  285. package/dist/tools/contracts.js.map +0 -1
  286. package/dist/tools/cross-pr.d.ts +0 -178
  287. package/dist/tools/cross-pr.d.ts.map +0 -1
  288. package/dist/tools/cross-pr.js +0 -321
  289. package/dist/tools/cross-pr.js.map +0 -1
  290. package/dist/tools/disclosure.d.ts +0 -75
  291. package/dist/tools/disclosure.d.ts.map +0 -1
  292. package/dist/tools/disclosure.js +0 -288
  293. package/dist/tools/disclosure.js.map +0 -1
  294. package/dist/tools/draw-conclusion.d.ts +0 -55
  295. package/dist/tools/draw-conclusion.d.ts.map +0 -1
  296. package/dist/tools/draw-conclusion.js +0 -259
  297. package/dist/tools/draw-conclusion.js.map +0 -1
  298. package/dist/tools/git-context.d.ts +0 -39
  299. package/dist/tools/git-context.d.ts.map +0 -1
  300. package/dist/tools/git-context.js +0 -364
  301. package/dist/tools/git-context.js.map +0 -1
  302. package/dist/tools/git-diff.d.ts +0 -45
  303. package/dist/tools/git-diff.d.ts.map +0 -1
  304. package/dist/tools/git-diff.js +0 -338
  305. package/dist/tools/git-diff.js.map +0 -1
  306. package/dist/tools/git-history.d.ts +0 -16
  307. package/dist/tools/git-history.d.ts.map +0 -1
  308. package/dist/tools/git-history.js +0 -86
  309. package/dist/tools/git-history.js.map +0 -1
  310. package/dist/tools/history.d.ts +0 -34
  311. package/dist/tools/history.d.ts.map +0 -1
  312. package/dist/tools/history.js +0 -121
  313. package/dist/tools/history.js.map +0 -1
  314. package/dist/tools/impact.d.ts +0 -46
  315. package/dist/tools/impact.d.ts.map +0 -1
  316. package/dist/tools/impact.js +0 -225
  317. package/dist/tools/impact.js.map +0 -1
  318. package/dist/tools/index.d.ts +0 -59
  319. package/dist/tools/index.d.ts.map +0 -1
  320. package/dist/tools/index.js +0 -70
  321. package/dist/tools/index.js.map +0 -1
  322. package/dist/tools/kit.d.ts +0 -165
  323. package/dist/tools/kit.d.ts.map +0 -1
  324. package/dist/tools/kit.js +0 -153
  325. package/dist/tools/kit.js.map +0 -1
  326. package/dist/tools/link-workspace.d.ts +0 -24
  327. package/dist/tools/link-workspace.d.ts.map +0 -1
  328. package/dist/tools/link-workspace.js +0 -131
  329. package/dist/tools/link-workspace.js.map +0 -1
  330. package/dist/tools/lookup.d.ts +0 -19
  331. package/dist/tools/lookup.d.ts.map +0 -1
  332. package/dist/tools/lookup.js +0 -63
  333. package/dist/tools/lookup.js.map +0 -1
  334. package/dist/tools/mark-incident.d.ts +0 -28
  335. package/dist/tools/mark-incident.d.ts.map +0 -1
  336. package/dist/tools/mark-incident.js +0 -188
  337. package/dist/tools/mark-incident.js.map +0 -1
  338. package/dist/tools/merged-browser.d.ts +0 -11
  339. package/dist/tools/merged-browser.d.ts.map +0 -1
  340. package/dist/tools/merged-browser.js +0 -20
  341. package/dist/tools/merged-browser.js.map +0 -1
  342. package/dist/tools/merged-context.d.ts +0 -11
  343. package/dist/tools/merged-context.d.ts.map +0 -1
  344. package/dist/tools/merged-context.js +0 -21
  345. package/dist/tools/merged-context.js.map +0 -1
  346. package/dist/tools/merged-observe.d.ts +0 -13
  347. package/dist/tools/merged-observe.d.ts.map +0 -1
  348. package/dist/tools/merged-observe.js +0 -21
  349. package/dist/tools/merged-observe.js.map +0 -1
  350. package/dist/tools/merged-workspace.d.ts +0 -14
  351. package/dist/tools/merged-workspace.d.ts.map +0 -1
  352. package/dist/tools/merged-workspace.js +0 -21
  353. package/dist/tools/merged-workspace.js.map +0 -1
  354. package/dist/tools/observe-runtime.d.ts +0 -250
  355. package/dist/tools/observe-runtime.d.ts.map +0 -1
  356. package/dist/tools/observe-runtime.js +0 -1753
  357. package/dist/tools/observe-runtime.js.map +0 -1
  358. package/dist/tools/observe-tests.d.ts +0 -57
  359. package/dist/tools/observe-tests.d.ts.map +0 -1
  360. package/dist/tools/observe-tests.js +0 -368
  361. package/dist/tools/observe-tests.js.map +0 -1
  362. package/dist/tools/observe.d.ts +0 -28
  363. package/dist/tools/observe.d.ts.map +0 -1
  364. package/dist/tools/observe.js +0 -330
  365. package/dist/tools/observe.js.map +0 -1
  366. package/dist/tools/pr-analysis.d.ts +0 -189
  367. package/dist/tools/pr-analysis.d.ts.map +0 -1
  368. package/dist/tools/pr-analysis.js +0 -299
  369. package/dist/tools/pr-analysis.js.map +0 -1
  370. package/dist/tools/pre-push.d.ts +0 -168
  371. package/dist/tools/pre-push.d.ts.map +0 -1
  372. package/dist/tools/pre-push.js +0 -416
  373. package/dist/tools/pre-push.js.map +0 -1
  374. package/dist/tools/predict-reach.d.ts +0 -57
  375. package/dist/tools/predict-reach.d.ts.map +0 -1
  376. package/dist/tools/predict-reach.js +0 -159
  377. package/dist/tools/predict-reach.js.map +0 -1
  378. package/dist/tools/propagation.d.ts +0 -37
  379. package/dist/tools/propagation.d.ts.map +0 -1
  380. package/dist/tools/propagation.js +0 -162
  381. package/dist/tools/propagation.js.map +0 -1
  382. package/dist/tools/propose-journey.d.ts +0 -16
  383. package/dist/tools/propose-journey.d.ts.map +0 -1
  384. package/dist/tools/propose-journey.js +0 -121
  385. package/dist/tools/propose-journey.js.map +0 -1
  386. package/dist/tools/prove-reach.d.ts +0 -74
  387. package/dist/tools/prove-reach.d.ts.map +0 -1
  388. package/dist/tools/prove-reach.js +0 -286
  389. package/dist/tools/prove-reach.js.map +0 -1
  390. package/dist/tools/questions.d.ts +0 -30
  391. package/dist/tools/questions.d.ts.map +0 -1
  392. package/dist/tools/questions.js +0 -232
  393. package/dist/tools/questions.js.map +0 -1
  394. package/dist/tools/refusal-fetch.d.ts +0 -35
  395. package/dist/tools/refusal-fetch.d.ts.map +0 -1
  396. package/dist/tools/refusal-fetch.js +0 -103
  397. package/dist/tools/refusal-fetch.js.map +0 -1
  398. package/dist/tools/runtime-incident.d.ts +0 -33
  399. package/dist/tools/runtime-incident.d.ts.map +0 -1
  400. package/dist/tools/runtime-incident.js +0 -67
  401. package/dist/tools/runtime-incident.js.map +0 -1
  402. package/dist/tools/runtime-journey-drive.d.ts +0 -102
  403. package/dist/tools/runtime-journey-drive.d.ts.map +0 -1
  404. package/dist/tools/runtime-journey-drive.js +0 -247
  405. package/dist/tools/runtime-journey-drive.js.map +0 -1
  406. package/dist/tools/scope.d.ts +0 -45
  407. package/dist/tools/scope.d.ts.map +0 -1
  408. package/dist/tools/scope.js +0 -186
  409. package/dist/tools/scope.js.map +0 -1
  410. package/dist/tools/similar-incidents.d.ts +0 -43
  411. package/dist/tools/similar-incidents.d.ts.map +0 -1
  412. package/dist/tools/similar-incidents.js +0 -179
  413. package/dist/tools/similar-incidents.js.map +0 -1
  414. package/dist/tools/validate.d.ts +0 -133
  415. package/dist/tools/validate.d.ts.map +0 -1
  416. package/dist/tools/validate.js +0 -442
  417. package/dist/tools/validate.js.map +0 -1
  418. package/dist/tools/verb.d.ts +0 -46
  419. package/dist/tools/verb.d.ts.map +0 -1
  420. package/dist/tools/verb.js +0 -78
  421. package/dist/tools/verb.js.map +0 -1
  422. package/dist/tools/verification-status.d.ts +0 -38
  423. package/dist/tools/verification-status.d.ts.map +0 -1
  424. package/dist/tools/verification-status.js +0 -203
  425. package/dist/tools/verification-status.js.map +0 -1
  426. package/dist/tools/verify-claim.d.ts +0 -29
  427. package/dist/tools/verify-claim.d.ts.map +0 -1
  428. package/dist/tools/verify-claim.js +0 -220
  429. package/dist/tools/verify-claim.js.map +0 -1
  430. package/dist/tools/workspace.d.ts +0 -28
  431. package/dist/tools/workspace.d.ts.map +0 -1
  432. package/dist/tools/workspace.js +0 -101
  433. package/dist/tools/workspace.js.map +0 -1
  434. package/dist/transport.d.ts +0 -32
  435. package/dist/transport.d.ts.map +0 -1
  436. package/dist/transport.js +0 -85
  437. package/dist/transport.js.map +0 -1
  438. package/dist/workspace-index.d.ts +0 -164
  439. package/dist/workspace-index.d.ts.map +0 -1
  440. package/dist/workspace-index.js +0 -381
  441. package/dist/workspace-index.js.map +0 -1
@@ -1,266 +0,0 @@
1
- /**
2
- * When a browser action fails: whose fault was it?
3
- *
4
- * ## This concept did not already exist
5
- *
6
- * `browser-reliability.md` §4.5 says "the product already carries this
7
- * concept". Checked before building: it does not. `descry-runtime` has four
8
- * incidental uses of the word "attributable" — a log envelope naming its
9
- * unwrapper, evidence carrying a process id, a correlator comment about not
10
- * blaming a producer, a test runner locating a fact — and no fault-domain type,
11
- * no owner vocabulary and nothing that decides between them. The nearest real
12
- * neighbours are `@descryy/ir`'s five **result states** and five **report
13
- * categories**, and both answer a different question: they say how much Descry
14
- * can claim, never who broke it. So this is new, and it is deliberately shaped
15
- * like its neighbours — a small closed vocabulary, one function that decides,
16
- * and an explicit value for "do not know".
17
- *
18
- * ## The one rule everything else serves
19
- *
20
- * **A timeout with nothing corroborating it is never the application's fault.**
21
- * A wait that expired is a fact about Descry: the page did not reach a state
22
- * Descry was waiting for, within a budget Descry chose. It is equally
23
- * consistent with a broken button, a slow one, an overlay, and an animation.
24
- * Reporting it as the user's bug is the single fastest way to make a testing
25
- * tool untrusted, and the cost of being wrong is asymmetric — an
26
- * `undetermined` that was really a bug costs one missed finding, and an
27
- * `application` that was really our timeout costs the tool's credibility.
28
- * That is rule 2 (precision over recall) applied to blame rather than to edges.
29
- *
30
- * So `application` is only ever named with a **first-party corroborating
31
- * signal** in the same window: the page threw, or a request to the
32
- * application's own origin failed. Never on the timeout alone.
33
- *
34
- * ## Where the corroborating signal comes from (C3)
35
- *
36
- * It does not exist yet when the failure happens. The recording decorator sees
37
- * the throw and must not drain evidence to enrich it — evidence is drained, not
38
- * peeked, and reading it there would steal what the calling tool is about to
39
- * report. So `attributeActionFailure` runs on the error and the clock alone and
40
- * most real failures start `undetermined`, which is the honest answer to what
41
- * it was given. `evidenceInWindow` and `refineAttribution` below are the second
42
- * half: the next drain of that session hands over what the page actually
43
- * produced, the counts are narrowed to the failed action's own window, and the
44
- * attribution is re-decided once. Wired at the two places a drain happens —
45
- * `observeAndCorrelate` for every evidence-bearing tool call, and the
46
- * registry's `reap` for the tail no tool call ever returns.
47
- */
48
- import { BrowserSessionCrashedError, isFailedRequest, UnknownElementRefError } from "./driver.js";
49
- /**
50
- * The four fault domains, plus the fifth value that keeps the other four
51
- * honest. `undetermined` is not a failure to classify — it is the correct
52
- * answer whenever the evidence does not reach one of the four, and a
53
- * vocabulary without it would force every case into a guess.
54
- */
55
- export const FAULT_OWNERS = ["application", "automation", "environment", "dependency", "undetermined"];
56
- /** Playwright's expiry reads as a message, not a type, on the far side of the
57
- * port. Matching it is a heuristic and is treated as one: a false positive
58
- * only ever routes to `undetermined`, which is where an unrecognised error
59
- * goes anyway. */
60
- function looksLikeExpiry(error) {
61
- const text = error instanceof Error ? `${error.name} ${error.message}` : String(error);
62
- return /timeout|timed out|exceeded/i.test(text);
63
- }
64
- export function attributeActionFailure(failure) {
65
- const { error, verb, pageErrors, failedRequests, thirdPartyFailedRequests } = failure;
66
- if (error instanceof UnknownElementRefError) {
67
- return {
68
- owner: "automation",
69
- reason: `Descry tried to ${verb} an element it no longer had a valid handle for.`,
70
- evidence: "The ref named no element in the session's current snapshot — it was invented or it was superseded.",
71
- };
72
- }
73
- if (error instanceof BrowserSessionCrashedError) {
74
- return {
75
- owner: "environment",
76
- reason: "The browser process went away mid-action, so nothing about the page was established.",
77
- evidence: "The session reported itself unusable before the action could complete.",
78
- };
79
- }
80
- // Corroboration first, expiry second. A page that threw while Descry waited
81
- // is a first-party signal and outranks the wait; the wait alone never does.
82
- if (pageErrors > 0) {
83
- return {
84
- owner: "application",
85
- reason: `The page raised errors of its own while Descry was waiting to ${verb}.`,
86
- evidence: `${pageErrors} console error${pageErrors === 1 ? "" : "s"} in the same window as the failed action.`,
87
- };
88
- }
89
- if (failedRequests > 0) {
90
- if (thirdPartyFailedRequests >= failedRequests) {
91
- return {
92
- owner: "dependency",
93
- reason: `Every request that failed while Descry was waiting to ${verb} went to a third-party origin.`,
94
- evidence: `${failedRequests} failed request${failedRequests === 1 ? "" : "s"}, all of them off the application's own origin.`,
95
- };
96
- }
97
- const firstParty = failedRequests - thirdPartyFailedRequests;
98
- return {
99
- owner: "application",
100
- reason: `Requests to the application's own origin failed while Descry was waiting to ${verb}.`,
101
- evidence: `${firstParty} of ${failedRequests} failed request${failedRequests === 1 ? "" : "s"} were first-party.`,
102
- };
103
- }
104
- if (looksLikeExpiry(error)) {
105
- return {
106
- owner: "undetermined",
107
- reason: `The element did not become actionable within the time Descry waited, and nothing else was observed ` +
108
- `that would say why. A slow page, a covering overlay and a broken ${verb} target all look like this.`,
109
- evidence: `The ${verb} expired after ${failure.elapsedMs} ms with no console error and no failed request alongside it.`,
110
- };
111
- }
112
- return {
113
- owner: "undetermined",
114
- reason: `The ${verb} failed for a reason Descry could not place in any of the four fault domains.`,
115
- evidence: `${error instanceof Error ? `${error.name}: ${error.message}` : String(error)} after ${failure.elapsedMs} ms, with nothing else observed.`,
116
- };
117
- }
118
- /**
119
- * Counts, out of one drained observation, only what happened **inside a failed
120
- * action's own window**.
121
- *
122
- * ## Why the window, and not the drain
123
- *
124
- * A drain is not a window. A drained observation covers everything since the
125
- * last drain, which — because a failed verb throws and the tool never gets to
126
- * drain — routinely includes a later, unrelated action. Counting the whole
127
- * drain would let a console error caused by the *next* click decide who broke
128
- * the previous one, and it would say so in the report's voice. The action's own
129
- * start and end are recorded by the decorator for exactly this, and everything
130
- * outside them is discarded rather than discounted.
131
- *
132
- * ## What is excluded, and why each exclusion goes the same way
133
- *
134
- * A timestamp that will not parse, a request URL that will not parse, and an
135
- * `unattributed` request all resolve *away* from `application`. That is not
136
- * symmetry for its own sake: the asymmetric cost this module was built around
137
- * says an `undetermined` that was really a bug costs one finding, and an
138
- * `application` that was really Descry's own timeout costs the tool. So an
139
- * unreadable URL is counted as third-party (it cannot name the application), an
140
- * unreadable timestamp is counted as outside the window, and a request whose
141
- * terminal event could not be assigned to it is not counted as a failure at
142
- * all — otherwise C3's own refusal to guess a join would come straight back as
143
- * a guess about blame.
144
- */
145
- export function evidenceInWindow(observation, window, applicationOrigin) {
146
- const inside = (at) => {
147
- const ms = Date.parse(at);
148
- return Number.isFinite(ms) && ms >= window.from && ms <= window.to;
149
- };
150
- const failed = observation.requests.filter((request) => request.outcome !== "unattributed" && isFailedRequest(request) && inside(request.at));
151
- const thirdParty = failed.filter((request) => {
152
- try {
153
- return new URL(request.url).origin !== applicationOrigin;
154
- }
155
- catch {
156
- return true;
157
- }
158
- });
159
- return {
160
- pageErrors: observation.consoleErrors.filter((error) => inside(error.at)).length,
161
- failedRequests: failed.length,
162
- thirdPartyFailedRequests: thirdParty.length,
163
- };
164
- }
165
- /**
166
- * Re-decide an attribution once evidence that was not available at the moment
167
- * of failure has arrived. Only ever called on `undetermined`: an attribution
168
- * that already reached one of the four rested on a signal this later evidence
169
- * cannot withdraw, and silently rewriting it would make the same failure read
170
- * two ways in two replies.
171
- */
172
- export function refineAttribution(attribution, failure, later) {
173
- if (attribution.owner !== "undetermined")
174
- return attribution;
175
- const refined = attributeActionFailure({
176
- ...failure,
177
- pageErrors: failure.pageErrors + later.pageErrors,
178
- failedRequests: failure.failedRequests + later.failedRequests,
179
- thirdPartyFailedRequests: failure.thirdPartyFailedRequests + later.thirdPartyFailedRequests,
180
- });
181
- if (refined.owner === "undetermined")
182
- return attribution;
183
- return { ...refined, evidence: `${refined.evidence} (observed after the action, in the next evidence this session flushed)` };
184
- }
185
- export function faultNote(attribution) {
186
- return `Fault: ${attribution.owner}. ${attribution.reason} ${attribution.evidence}`;
187
- }
188
- /**
189
- * RG-12(b): the vocabulary reconciliation. The site names three layers to a
190
- * user — "your product", "your environment", "a dependency" — and this
191
- * module's own five values are `application`, `automation`, `environment`,
192
- * `dependency`, `undetermined`. Two real gaps, not one:
193
- *
194
- * 1. `automation` (Descry's *own* fault — a bad ref, a stale handle, a
195
- * harness bug) has nowhere to go in the site's three layers, and it is
196
- * the one value that most protects a user's trust: folding it into
197
- * "your environment" would let Descry's own mistake read as the user's
198
- * infrastructure being at fault, which is backwards.
199
- * 2. `undetermined` has nowhere to go either, and collapsing it into any of
200
- * the three would state a layer the evidence did not actually reach.
201
- *
202
- * **Recommendation (implemented here, not on the site — that copy is a
203
- * different lane's to change): the site gains a fourth and fifth category
204
- * rather than losing this module's granularity.** "Descry itself" for
205
- * `automation` (visible, not hidden — this is the layer that most needs to
206
- * be named when the tool is the one that got it wrong) and "not
207
- * determined" for `undetermined` (an honest refusal is not a hidden
208
- * failure). No code value is deleted to fit the narrower copy; this
209
- * function is the one place that maps the closed five-value set onto
210
- * display text, so a copy change only ever touches this map.
211
- */
212
- export const FAULT_OWNER_DISPLAY_LABELS = {
213
- application: "your product",
214
- automation: "Descry itself",
215
- environment: "your environment",
216
- dependency: "a dependency",
217
- undetermined: "not determined",
218
- };
219
- /**
220
- * RG-12(c): the type-level half of "every failure carries a layer, by
221
- * construction, not by convention." A `switch` with no `default` fails to
222
- * compile the moment `FAULT_OWNERS` gains or loses a value without this
223
- * function being updated to match — the same guarantee `ActionRecord`'s
224
- * discriminated union (`reachability.ts`) gives the *presence* of an
225
- * attribution; this is what gives the *display* side the same guarantee.
226
- */
227
- export function faultOwnerDisplayLabel(owner) {
228
- switch (owner) {
229
- case "application":
230
- return FAULT_OWNER_DISPLAY_LABELS.application;
231
- case "automation":
232
- return FAULT_OWNER_DISPLAY_LABELS.automation;
233
- case "environment":
234
- return FAULT_OWNER_DISPLAY_LABELS.environment;
235
- case "dependency":
236
- return FAULT_OWNER_DISPLAY_LABELS.dependency;
237
- case "undetermined":
238
- return FAULT_OWNER_DISPLAY_LABELS.undetermined;
239
- default: {
240
- // Exhaustiveness check: if FAULT_OWNERS ever gains a member, `owner`
241
- // stops being `never` here and this file fails to compile — the
242
- // enforcement is at build time, not at review time.
243
- const exhaustive = owner;
244
- throw new Error(`faultOwnerDisplayLabel: unhandled FaultOwner ${String(exhaustive)}`);
245
- }
246
- }
247
- }
248
- /**
249
- * RG-12(c): the run-level half. Not a convention check — `ActionRecord`'s
250
- * discriminated union already makes `{ succeeded: false, attribution: null }`
251
- * uncoinstructable inside this module. This is the belt for a caller
252
- * reaching in from outside the type system (a cast, a deserialised record,
253
- * a future refactor that widens the type back out) — the same "trust but
254
- * verify" `report()`'s own filter used to need before the union made it
255
- * unnecessary there. Throws by name rather than silently dropping the
256
- * finding, which is the failure mode this whole item exists to close.
257
- */
258
- export function assertEveryFailureAttributed(actions) {
259
- for (const action of actions) {
260
- if (!action.succeeded && (action.attribution === null || action.attribution === undefined)) {
261
- throw new Error("assertEveryFailureAttributed: a failed action carries no FaultAttribution. Every reportable failure " +
262
- "must carry a layer — a failure with none must not reach a report at all.");
263
- }
264
- }
265
- }
266
- //# sourceMappingURL=fault-attribution.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fault-attribution.js","sourceRoot":"","sources":["../../src/browser/fault-attribution.ts"],"names":[],"mappings":"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"}
@@ -1,45 +0,0 @@
1
- /**
2
- * §5.4: joins a real browser action to a real R4 edge — witnessed, not the
3
- * R1 string-match `impact`/`propagation` already do. Precision over recall:
4
- * anything unresolvable (no stack, no endpoint, ambiguous) drops the observation entirely rather than writing a weak edge. Never mints a denial.
5
- */
6
- import type { SqlDriver } from "@descryy/core";
7
- import { type ObservedRequest } from "./driver.ts";
8
- /** A graph node this browser evidence actually reached — §5.3's "any graph node reached, surfaced in the same reply". */
9
- export interface ReachedNode {
10
- readonly nodeId: string;
11
- readonly name: string;
12
- readonly type: string;
13
- /** The request that reached it, so a reader can see which action this was. */
14
- readonly via: {
15
- readonly method: string;
16
- readonly url: string;
17
- readonly status: number | null;
18
- };
19
- }
20
- export interface BrowserGraphWrite {
21
- /** Endpoints the page's own requests resolved to, whether or not an edge was written. */
22
- readonly reached: readonly ReachedNode[];
23
- /** Existing edges promoted to R4 by this observation. */
24
- readonly promoted: readonly string[];
25
- /** Edges the structural side never named, minted at R4 — the recall gap closing. */
26
- readonly created: readonly string[];
27
- /** Reasons an observation was declined. Kept, because a silent drop is indistinguishable from nothing having happened. */
28
- readonly refused: readonly string[];
29
- /** R4-vs-R4 disagreements, passed through untouched — this module does not adjudicate them. */
30
- readonly contradictions: readonly string[];
31
- }
32
- export declare const NO_GRAPH_WRITE: BrowserGraphWrite;
33
- export interface BrowserGraphWriteInput {
34
- readonly driver: SqlDriver;
35
- readonly repo: string;
36
- readonly runId: string;
37
- readonly commitSha: string;
38
- readonly repoRoot: string;
39
- readonly requests: readonly ObservedRequest[];
40
- }
41
- /** Correlates what the page did against the graph, recording only what was genuinely witnessed. Runs over every request, not just failures — a successful call is what proves the arrow. */
42
- export declare function writeBrowserObservations(input: BrowserGraphWriteInput): BrowserGraphWrite;
43
- /** What a reply says about a write. Empty when nothing was reached — silence about nothing is not a disclosure gap. */
44
- export declare function graphWriteNotes(write: BrowserGraphWrite, requests: readonly ObservedRequest[]): string[];
45
- //# sourceMappingURL=graph-write.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-write.d.ts","sourceRoot":"","sources":["../../src/browser/graph-write.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EAAmB,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAEpE,yHAAyH;AACzH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACjG;AAED,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,yDAAyD;IACzD,QAAQ,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,oFAAoF;IACpF,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,0HAA0H;IAC1H,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,+FAA+F;IAC/F,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5C;AAED,eAAO,MAAM,cAAc,EAAE,iBAA+F,CAAC;AAE7H,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,eAAe,EAAE,CAAC;CAC/C;AAED,4LAA4L;AAC5L,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,sBAAsB,GAAG,iBAAiB,CA6DzF;AAED,uHAAuH;AACvH,wBAAgB,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,EAAE,CA8CxG"}
@@ -1,103 +0,0 @@
1
- /**
2
- * §5.4: joins a real browser action to a real R4 edge — witnessed, not the
3
- * R1 string-match `impact`/`propagation` already do. Precision over recall:
4
- * anything unresolvable (no stack, no endpoint, ambiguous) drops the observation entirely rather than writing a weak edge. Never mints a denial.
5
- */
6
- import { confirmObservedFrontendCaller, resolveEndpointNode } from "@descryy/runtime-graph-correlator";
7
- import { isFailedRequest } from "./driver.js";
8
- export const NO_GRAPH_WRITE = { reached: [], promoted: [], created: [], refused: [], contradictions: [] };
9
- /** Correlates what the page did against the graph, recording only what was genuinely witnessed. Runs over every request, not just failures — a successful call is what proves the arrow. */
10
- export function writeBrowserObservations(input) {
11
- const reached = [];
12
- const promoted = [];
13
- const created = [];
14
- const refused = [];
15
- const contradictions = [];
16
- const seen = new Set();
17
- for (const request of input.requests) {
18
- let path;
19
- try {
20
- path = new URL(request.url).pathname;
21
- }
22
- catch {
23
- continue;
24
- }
25
- const resolution = resolveEndpointNode(input.driver, request.method, path);
26
- if (resolution.outcome !== "resolved") {
27
- // Not worth reporting per request: a page issues requests for
28
- // stylesheets, images and third-party origins, none meant to be an
29
- // endpoint here — reporting each miss would bury the real ones.
30
- continue;
31
- }
32
- const endpoint = resolution.node;
33
- const key = `${endpoint.id}::${request.method}::${path}`;
34
- if (!seen.has(key)) {
35
- seen.add(key);
36
- reached.push({
37
- nodeId: endpoint.id,
38
- name: endpoint.name,
39
- type: endpoint.type,
40
- via: { method: request.method, url: request.url, status: request.status },
41
- });
42
- }
43
- if (request.stackTrace === null) {
44
- // Endpoint reached, but no parsed stack means no caller edge — disclosed rather than dropped ("saw the hit, not the source" is still useful).
45
- refused.push(`${request.method} ${path} reached ${endpoint.name}, but no parsed call-site stack was captured, so no ` +
46
- "caller edge was written. Name a stackParser on browser_start_session to capture one.");
47
- continue;
48
- }
49
- const outcome = confirmObservedFrontendCaller(input.driver, {
50
- endpointNodeId: endpoint.id,
51
- stackTrace: request.stackTrace,
52
- repo: input.repo,
53
- runId: input.runId,
54
- commitSha: input.commitSha,
55
- repoRoot: input.repoRoot,
56
- });
57
- promoted.push(...outcome.confirmation.promoted);
58
- created.push(...outcome.confirmation.created);
59
- refused.push(...outcome.confirmation.refused.map((r) => r.reason));
60
- contradictions.push(...outcome.confirmation.contradictions.map((c) => c.detail));
61
- }
62
- return { reached, promoted, created, refused, contradictions };
63
- }
64
- /** What a reply says about a write. Empty when nothing was reached — silence about nothing is not a disclosure gap. */
65
- export function graphWriteNotes(write, requests) {
66
- const notes = [];
67
- const confirmed = write.promoted.length + write.created.length;
68
- if (confirmed > 0) {
69
- notes.push(`${confirmed} frontend→backend edge(s) were confirmed at resolution 4 from this run — ` +
70
- `${write.promoted.length} existing edge(s) promoted, ${write.created.length} minted that static ` +
71
- "analysis had not found. These are witnessed, not name-matched: a real request carrying a real " +
72
- "call-site stack. impact and propagation read them with no further action.");
73
- }
74
- if (write.reached.length > 0 && confirmed === 0) {
75
- notes.push(`${write.reached.length} endpoint(s) in the graph were reached by this page, but no caller edge was ` +
76
- "written — see data.graph.refused for why. The endpoints are named so the gap is visible rather than absent.");
77
- }
78
- // Always stated, not only when non-empty (F7, UAT Phase 5): `contradictions`
79
- // covers one narrow thing — an observation disagreeing with an existing R4
80
- // edge — and an empty array reads as "nothing disagreed" unless the scope is
81
- // named. It has no relationship to `confirmedFacts` in `.descry/config.json`
82
- // and never consults them, so a real disagreement between this run's
83
- // observations and a developer-confirmed fact (an env URL, say) produces no
84
- // note here at all — not because nothing disagreed, but because nothing
85
- // looked. Stated whenever there is something to state it about, i.e.
86
- // whenever this run actually reached or confirmed anything.
87
- if (confirmed > 0 || write.reached.length > 0 || write.contradictions.length > 0) {
88
- notes.push(write.contradictions.length > 0
89
- ? `${write.contradictions.length} observation(s) disagree with an existing R4 edge. Reported, not resolved: ` +
90
- "adjudicating two runtime observations against each other is not this call's job."
91
- : "No R4 edge disagreed with this run's observations. This checks observation-versus-stored-R4-edge " +
92
- 'only — it does not compare against a developer-confirmed fact in .descry/config.json\'s ' +
93
- '"confirmedFacts" (an env URL, say); nothing in this surface does that today.');
94
- }
95
- const unexplained = requests.filter((r) => r.stackTrace === null && !isFailedRequest(r)).length;
96
- if (unexplained > 0 && confirmed === 0 && write.reached.length === 0) {
97
- notes.push(`${requests.length} request(s) were observed and none resolved to an endpoint in the graph. If this ` +
98
- "repository has not been analysed, run analyze first — nothing here can be related to code the graph " +
99
- "does not hold.");
100
- }
101
- return notes;
102
- }
103
- //# sourceMappingURL=graph-write.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph-write.js","sourceRoot":"","sources":["../../src/browser/graph-write.ts"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- /**
2
- * The graph half of B1: `symbolLocationForGraph` (`@descryy/runtime-identity-grounding`)
3
- * already hands `resolveSymbolNode` (`@descryy/runtime-graph-correlator`) exactly its own
4
- * input shape and stops — its own header says so, deliberately, because a compiled location
5
- * is withheld there rather than passed through as if it were authored source. This file is
6
- * the hand-off itself: wiring, not a second resolver. It does not duplicate
7
- * `resolveSymbolNode`'s ambiguity refusal, line-mismatch reporting or path translation — it
8
- * calls it and restates the outcome in this package's own node shape.
9
- *
10
- * No new node type, no new edge type: this resolves to a `FUNCTION`/`CLASS` node an adapter
11
- * already produced. `descry-core`'s frozen 15/15 vocabulary is untouched.
12
- */
13
- import type { SqlDriver } from "@descryy/core";
14
- import { type ElementIdentity } from "@descryy/runtime-identity-grounding";
15
- /** The graph node an identity resolved to — only what a caller needs to name it, never the
16
- * full `IRNode` (this package does not depend on `@descryy/ir`'s node shape beyond id/name/type). */
17
- export interface IdentityGraphNode {
18
- readonly nodeId: string;
19
- readonly name: string;
20
- readonly type: string;
21
- }
22
- export type IdentityGraphOutcome = {
23
- readonly outcome: "resolved";
24
- readonly node: IdentityGraphNode;
25
- } | {
26
- readonly outcome: "line-mismatch";
27
- readonly node: IdentityGraphNode;
28
- readonly reason: string;
29
- } | {
30
- readonly outcome: "not-found";
31
- readonly reason: string;
32
- } | {
33
- readonly outcome: "ambiguous";
34
- readonly reason: string;
35
- }
36
- /** Identity grounding did not produce a graph-eligible location for this element at all —
37
- * a refusal, a component named with no location, or a compiled location deliberately
38
- * withheld by `symbolLocationForGraph`. The element's own `identity` field already says
39
- * which; this outcome exists so a caller asking "does this reach the graph" gets one
40
- * answer without re-deriving it from `ElementIdentity`'s three-way split. */
41
- | {
42
- readonly outcome: "withheld";
43
- readonly reason: string;
44
- };
45
- /**
46
- * Resolves one grounded element to the graph node an adapter already produced from the same
47
- * source. `repo` has no honest default (`resolveSymbolNode`'s own discipline — DEC-054, a
48
- * session can hold two same-named, same-relative-path symbols from different repos), so it is
49
- * required here too.
50
- */
51
- export declare function resolveIdentityGraphNode(driver: SqlDriver, identity: ElementIdentity, repo: string, options?: {
52
- readonly repoRoot?: string;
53
- readonly cwd?: string;
54
- }): IdentityGraphOutcome;
55
- //# sourceMappingURL=identity-graph-write.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-graph-write.d.ts","sourceRoot":"","sources":["../../src/browser/identity-graph-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C,OAAO,EAA0B,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAEnG;sGACsG;AACtG,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAC5B;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAClE;IAAE,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAChG;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC1D;IAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE;AAC5D;;;;8EAI8E;GAC5E;IAAE,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAE9D;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,eAAe,EACzB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAClE,oBAAoB,CAsBtB"}
@@ -1,45 +0,0 @@
1
- /**
2
- * The graph half of B1: `symbolLocationForGraph` (`@descryy/runtime-identity-grounding`)
3
- * already hands `resolveSymbolNode` (`@descryy/runtime-graph-correlator`) exactly its own
4
- * input shape and stops — its own header says so, deliberately, because a compiled location
5
- * is withheld there rather than passed through as if it were authored source. This file is
6
- * the hand-off itself: wiring, not a second resolver. It does not duplicate
7
- * `resolveSymbolNode`'s ambiguity refusal, line-mismatch reporting or path translation — it
8
- * calls it and restates the outcome in this package's own node shape.
9
- *
10
- * No new node type, no new edge type: this resolves to a `FUNCTION`/`CLASS` node an adapter
11
- * already produced. `descry-core`'s frozen 15/15 vocabulary is untouched.
12
- */
13
- import { resolveSymbolNode } from "@descryy/runtime-graph-correlator";
14
- import { symbolLocationForGraph } from "@descryy/runtime-identity-grounding";
15
- /**
16
- * Resolves one grounded element to the graph node an adapter already produced from the same
17
- * source. `repo` has no honest default (`resolveSymbolNode`'s own discipline — DEC-054, a
18
- * session can hold two same-named, same-relative-path symbols from different repos), so it is
19
- * required here too.
20
- */
21
- export function resolveIdentityGraphNode(driver, identity, repo, options = {}) {
22
- const location = symbolLocationForGraph(identity);
23
- if (location === null) {
24
- return {
25
- outcome: "withheld",
26
- reason: "identity grounding did not produce an authored file and symbol for this element — see the " +
27
- "element's own identity outcome (grounded/component-only/refused) for why.",
28
- };
29
- }
30
- const resolution = resolveSymbolNode(driver, location, repo, options);
31
- switch (resolution.outcome) {
32
- case "resolved":
33
- return { outcome: "resolved", node: toGraphNode(resolution.node) };
34
- case "line-mismatch":
35
- return { outcome: "line-mismatch", node: toGraphNode(resolution.node), reason: resolution.reason };
36
- case "not-found":
37
- return { outcome: "not-found", reason: resolution.reason };
38
- case "ambiguous":
39
- return { outcome: "ambiguous", reason: resolution.reason };
40
- }
41
- }
42
- function toGraphNode(node) {
43
- return { nodeId: node.id, name: node.name, type: node.type };
44
- }
45
- //# sourceMappingURL=identity-graph-write.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity-graph-write.js","sourceRoot":"","sources":["../../src/browser/identity-graph-write.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAwB,MAAM,qCAAqC,CAAC;AAsBnG;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,MAAiB,EACjB,QAAyB,EACzB,IAAY,EACZ,UAAiE,EAAE;IAEnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,OAAO,EAAE,UAAU;YACnB,MAAM,EACJ,4FAA4F;gBAC5F,2EAA2E;SAC9E,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACtE,QAAQ,UAAU,CAAC,OAAO,EAAE,CAAC;QAC3B,KAAK,UAAU;YACb,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACrE,KAAK,eAAe;YAClB,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QACrG,KAAK,WAAW;YACd,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;QAC7D,KAAK,WAAW;YACd,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IAC/D,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,IAA2E;IAC9F,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;AAC/D,CAAC"}
@@ -1,81 +0,0 @@
1
- /**
2
- * The in-page half of the capability probe: one function, serialized into the
3
- * page, that counts the shapes `capability-probe.ts` turns into a reach
4
- * estimate.
5
- *
6
- * ## Why it lives here and not in the driver
7
- *
8
- * `playwright-driver.ts` is one lane's file and this is another's. Keeping the
9
- * probe body here means the driver gains a six-line delegating method rather
10
- * than two hundred lines of DOM walking, which is the difference between a
11
- * mergeable change and a rewritten file.
12
- *
13
- * ## Structural DOM types, again, and why
14
- *
15
- * `tsc` omits the DOM lib on purpose repo-wide — pulling it in would put
16
- * `document` and `window` in scope in every engine file. The driver already
17
- * declares the minimum it needs for `computeSelector`; this declares the
18
- * minimum the probe needs. Both are structural, both are checked by the
19
- * compiler, and neither leaks browser globals into modules that have no
20
- * business with them.
21
- *
22
- * ## Every count is defensive, and an uncountable thing is null, never zero
23
- *
24
- * A probe that throws takes the session's opening disclosure with it, and a
25
- * probe that reports `0` for something it could not look at teaches a false
26
- * fact — which is the failure the five result states exist to prevent, applied
27
- * one level down. So each group is wrapped, and `clientSideRouting` is
28
- * `boolean | null` because a static probe genuinely cannot see it.
29
- */
30
- import type { PageFingerprint } from "./capability-probe.ts";
31
- /** The element surface the probe reads. Structural; see this file's header. */
32
- export interface ProbeElement {
33
- readonly ownerDocument: ProbeDocument;
34
- readonly shadowRoot: ProbeRoot | null;
35
- getAttribute(name: string): string | null;
36
- getBoundingClientRect(): {
37
- readonly width: number;
38
- readonly height: number;
39
- };
40
- readonly scrollHeight: number;
41
- readonly clientHeight: number;
42
- readonly tagName: string;
43
- }
44
- export interface ProbeRoot {
45
- querySelectorAll(selector: string): ArrayLike<ProbeElement>;
46
- }
47
- export interface ProbeDocument extends ProbeRoot {
48
- readonly documentElement: {
49
- readonly scrollHeight: number;
50
- } | null;
51
- readonly defaultView: ProbeView | null;
52
- readonly location: {
53
- readonly href: string;
54
- readonly origin: string;
55
- };
56
- }
57
- export interface ProbeView {
58
- readonly innerWidth: number;
59
- readonly innerHeight: number;
60
- getComputedStyle(element: ProbeElement): {
61
- readonly position: string;
62
- };
63
- }
64
- /**
65
- * Runs inside the page. Must not close over anything in this module — it is
66
- * serialized, so every constant it uses is passed in.
67
- */
68
- export declare function probeInPage(root: ProbeElement, constants: {
69
- readonly interactive: string;
70
- readonly challengeMarkers: readonly (readonly [string, string])[];
71
- readonly scrollOverflowRatio: number;
72
- readonly overlayCovers: number;
73
- }): PageFingerprint;
74
- /** The constants `probeInPage` must be handed, since it cannot close over them. */
75
- export declare const PROBE_CONSTANTS: {
76
- readonly interactive: "a, button, input, select, textarea, [role], [onclick], summary";
77
- readonly challengeMarkers: readonly (readonly [string, string])[];
78
- readonly scrollOverflowRatio: 1.5;
79
- readonly overlayCovers: 0.4;
80
- };
81
- //# sourceMappingURL=page-probe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page-probe.d.ts","sourceRoot":"","sources":["../../src/browser/page-probe.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,+EAA+E;AAC/E,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IACtC,QAAQ,CAAC,UAAU,EAAE,SAAS,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,qBAAqB,IAAI;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC,YAAY,CAAC,CAAC;CAC7D;AAED,MAAM,WAAW,aAAc,SAAQ,SAAS;IAC9C,QAAQ,CAAC,eAAe,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACnE,QAAQ,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAC;IACvC,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACvE;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG;QAAE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;CACxE;AA4BD;;;GAGG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,YAAY,EAClB,SAAS,EAAE;IACT,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,gBAAgB,EAAE,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;IAClE,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC,GACA,eAAe,CA+HjB;AAED,mFAAmF;AACnF,eAAO,MAAM,eAAe;;;;;CAKlB,CAAC"}